Vous êtes sur la page 1sur 87

Architecture des Ordinateurs

M. Belkadi 1
Un ordinateur est une machine ayant plusieurs
composants qui collaborent pour faire des traitements
automatiques d’informations.

Ces traitements sont décris par des programmes qui


sont un ensemble d’instructions. Ces dernières
spécifies les traitements (les modifications) à effectuer
sur des données pour en obtenir des résultats.

M. Belkadi 2
Les composants d’un ordinateur
Les composants principaux d’un ordinateurs sont:

• L’unité centrale de traitement (Processeur)


• La mémoire centrale
• Les interfaces d’E/S
• Les périphériques d’E/S

Ces composants sont reliés entre eux par des Bus (bus
d’adresses, bus de données, bus de contrôle)

M. Belkadi 3
Architecture d’un ordinateur
L’architecture d’un ordinateur se définie comme la façon
dont sont bâtis ses différents composants (matériels et
logiciels). On distingue au moins deux types d’architectures
dans un ordinateur

• L’architecture logicielle : détermine la façon dont sont organisés les différents


programmes permettant l’exploitation de l’ordinateur

• L’architecture matérielle : détermine la façon dont les


composant matériels sont interconnectés pour mener à bien
son fonctionnement.

M. Belkadi 4
Pour l’architecture matérielle, on distingue
deux types d’architectures :

1. Le Modèle de Harvard

2. Le Modèle de Von Neumann

M. Belkadi 5
Le Modèle de Harvard (1944)

L'architecture de type Harvard est une conception qui


sépare physiquement la mémoire de données et la
mémoire programme. Chacune de ces mémoires a ses
propres bus d’adresses et de données. Les tailles (en
nombre de bits) de ces bus peuvent être différentes.

Bus adresses Bus adresses

Mémoire Mémoire
Processeur programmes
données Bus de données Bus de données

M. Belkadi 6
Le Modèle de Von Neumann

Dans l’architecture de Von neumann la mémoire centrale


contient les instructions et les données. Donc, un seul
bus d’adresses pour les instructions et les données et un
seul bus de données pour les instructions et les données.v

Bus adresses
Mémoire
Processeur Programmes et
Bus de données de données

M. Belkadi 7
Avantages et Inconvénients
Von neumann Harvard
L’exécution d’une instruction L’exécution d’une instruction
nécessitera plus de temps. (rechercher nécessitera moins de temps. (Recherche
en premier temps l’instruction après en simultanée de l’instruction et de la
second lieu chercher les données) donnée)
Un seul bus est utilisé à la fois pour Pas de goulet d’étranglement pour la
l’extraction d'instructions et de recherche de l’instruction et des
données. Cela peut être un goulet données.
d'étranglement et ainsi dégrader les
performances
Le développement de la CPU Le développement de la CPU est plus
(processeur) est simplifié et moins complexe et coûteux
coûteux.
La taille de la mémoire pour les Un espace disponible sur une mémoire
instructions et les données peut être ne peut être utilisé par l’autre.
ajustée.
M. Belkadi 8
Chap. 2 Principaux composants d’un ordinateur
Dans cette partie nous considérons l’architecture de Von Neumann

I. Schéma global d’une architecture

Processeur Bus Adresse Mémoire Principale


Programmes
UCC
&

Bus Data Données


UAL

Bus de Contrôle

Interfaces d’E/S Interfaces d’E/S …… Interfaces d’E/S

Périphérique Périphérique …… Périphérique Périphérique

M. Belkadi 9
1) Le Processeur (UC (Unité Centrale), CPU (Central Processing Unit),
UCT(Unité Centrale de Traitement ))

Le processeur est un circuit électronique complexe (circuit intégré).


Il est chargé d’interpréter et d’exécuter les instructions d’un
Programme, de lire les données et de sauvegarder les résultats dans
la mémoire.

Il est composé de deux organes :

- UCC :Unité de Contrôle et de Commande

- UAL : Unité Arithmétique et Logique

M. Belkadi 10
2) La Mémoire Centrale
Elle est chargée de contenir les instructions et les données du
programme en cours d’exécution.

Une mémoire se présente comme un ensemble de cellules ou


d’emplacements identiques destinés à mémoriser de l'information.

Chaque emplacement est identifié par un numéro qu'on appelle


son adresse.

Pour une mémoire comportant N cellules, les adresses sont les


entiers compris entre 0 et N-1.

Il existe donc un système physique assurant la correspondance


entre chaque emplacement de la mémoire et son adresse.
M. Belkadi 11
3) Les interfaces d’Entrées/ Sorties

Elles permettent d’assurer la communication entre le


microprocesseur ou la mémoire et les périphériques d’E/S (Clavier,
Ecran, Imprimante, Scanner, …). Comme exemples:
(interface VGA, HDMI, USB, RJ45.).

Il existe deux grandes classes de périphériques :

1. Les périphériques de communication: on peut distinguer des


périphériques d’entrées (Clavier, souris, microphone,…) et des
périphériques de sorties (Ecran, Imprimante, …).

2. Les périphériques de Stockage : La mémoire secondaire ou


auxiliaire : Chargés de stocker de manière permanente les
informations (non volatiles) comme Disque dure, CD,…
M. Belkadi 12
Ces composants sont reliés par des BUS

• Un Bus est un ensemble de fils électriques sur lesquels


transitent les informations entre les unités (composants).

• Largeur du bus (Taille) = nombre de fils le constituant, c’est le


nombre de bits qu’il peut transporter (1fil transporte 1bit)

• Un bus transmis un même type d’informations. Selon la nature


de l’information véhiculée, on distingue 3 types de bus:

M. Belkadi 13
1.Bus de données : Il est Birectionnel assure la transmission des
données ou d’instructions entre le processeur et son environnement,
et inversement. Sa taille correspond à la capacité de traitement du
processeur (nbre de bits qu’il peut traiter à la fois)

2. Bus d’adresses : Il est Unirectionnel, véhicule des adresses. Si ce


bus est formé de n fils (n bits) alors on peut adresser jusqu’à 2n
emplacements différents. Il permet de désigner à chaque instant la
case mémoire et/ou le périphérique auquel le contrôleur veut faire
appel

3.Bus de contrôle : Il transporte les ordres et les signaux de


synchronisation provenant de l’unité de commande vers les divers
organes de la machine. Il véhicule aussi les divers signaux de
réponse des composants.
La CPU utilise un signal pour indiquer par exemple le sens des
transferts sur le bus de données (lecture ou écriture).
M. Belkadi 14
M. Belkadi 15
Décodage d’adresses

Le processeur peut communiquer avec toutes les mémoires et les


différents périphériques qui sont tous connectés à un même bus de
données.
Question: comment faire pour qu’une seule composante puisse accéder
au bus de données à la fois et éviter ainsi des conflits sur ce bus?

Réponse : Un seul composant seulement aura droit d’y accéder au bus


de données à un instant donnée.

Pour cela, il faut utiliser un décodeur d’adresses qui permet de


sélectionner un composant seulement à un instant donnée.

Pour cela, chaque composant possède un CS (Cheap Select) qui sera


relié à une des sortie du décodeur utilisé.
M. Belkadi 16
M. Belkadi 17
NB : Lorsqu’un composant n’est pas sélectionné, ses sorties sont
mises à l’état « Haute Impédance » (Circuit Ouvert) afin de ne pas
perturber les données circulant sur le bus data.

Porte trois états


(tri-state) Bus de Données
Y
A Composant

C
Commande haute impédance

C A Y Sortie
1 0 0 Faible Impédance
1 1 1 Faible Impédance
0 x Z Haute Impédance
M. Belkadi 18
II. Le processeur (microprocesseur)
C’est le cerveau de l’ordinateur. Il est chargé d’assurer une bonne
exécution des instructions d’un programme et de commander les
différents organes de l’ordinateur.

1. Unité de contrôle et de commande (UCC)

2. Unité Arithmétique et Logique (UAL)


dite aussi Unité de Traitement

M. Belkadi 19
1. Unité de Contrôle et de Commande (UCC)
Cette unité est composée d’un ensemble d’organes avec des
fonctionnalités spécifiques Comme:

Le décodeur d’instructions: il se charge de décoder toute


instruction avant son exécution (A partir du code de l'instruction, il
détermine l'opération à exécuter)

 Le séquenceur (Bloc Logique de Commande) : génère les


différents ordres et commandes nécessaires à l’exécution de
l’instruction en cours. Il est chargé de synchroniser les différentes
activités.
Toute l’activité de l’ordinateur est cadencée par une horloge unique, de
façon à ce que tous les circuits électroniques travaillent de façon
synchronisée. La fréquence de cette horloge s’exprime en MHz
(millions de cyles par seconde) ou en GHz (milliards de cycles par
secondes). M. Belkadi 20
En plus de ces deux composants, cette unité (UCC) contient
aussi des registres ayants des rôles bien spécialisés.
C’est quoi un registre ?
Les registres sont des mémoires à taille réduite (en général 8, 16, 32
ou 64 bits par registre) et à accès rapide. Les registres internes au
processeur sont utilisés pour l’exécution d’instructions. Le nombre de
registres d’un processeur varie d’une dizaine à une centaine.

 Le Compteur Ordinal (CO): (en anglais : instruction pointer ou


Program Counter (PC)) : Ce registre est toujours initialisé à l'adresse
de la première instruction du programme. Il contient toujours
l’adresse de la prochaine instruction à exécuter.

 Le Registre Instruction (RI): Contient toujours l’instruction en


cours d’exécution.
M. Belkadi 21
Schéma d’une UCC

CO (Compteur Ordinal)

…. ordres
H
Séquenceur (bloc logique de contrôle)
…. add, mul, and…

Décodeur

/ n bits
COP
RI (Registre Instruction)

M. Belkadi 22
2. Unité Arithmétique et Logique

Elle est chargée d’effectuer les opérations arithmétiques et logiques.


Donc contient les circuits capables d’effectuer ces opérations
(Additionneur, soustracteur, …) et un ensemble de registres:

Registres à usage général : sont des registres de travail, ils


stockent les opérandes avant les opérations arithmétiques ou logiques
et contiennent les résultats après. Parfois sont dits Accumulateurs.

 Registre d’état (Mot d’état) en anglais PSW (Processor Status


Word) : Permet de stocker des indicateurs dont l'état dépend du
résultat de la dernière opération effectuée par l’UAL.
On les appelle indicateur d’état ou flag ou drapeaux. Dans un
programme le résultat du test de leur état conditionne souvent le
déroulement de la suite du programme.
M. Belkadi 23
Dans un PSW on peut trouver ces indicateurs :
• Retenue (carry : C)
• Retenue intermédiaire (Auxiliary-Carry : AC)
• Négatf (N)
• Débordement (overflow : O ou V)
• Zéro (Z)

N Z C V
Overflow Detection
0: Pas d’Overflow
1: Présence d’overflow

Carry (retenue)
0: Pas de retenue
1: Retenue
Zero
0: Résultat non nul
1: Résultat nul
Negatif
0: Résultat non négatif
1: Résultat négatif

M. Belkadi 24
Schéma d’une UAL
Registres généraux

Opérandes
ADD
SUB Cdes
Résultat UAL AND
…..
N Z C V
Registre d’état

M. Belkadi 25
On peut déduire qu’un processeur contient des registres à
usage général et d’autres avec des fonctions
particulières comme le CO, RI, PSW, SP….
.

M. Belkadi 26
III. MEMOIRE
Nous appelons mémoire tout dispositif capable
d’enregistrer, de conserver et de restituer des informations.

Ces informations peuvent être écrites ou lues:

• Il y a écriture lorsqu'on enregistre des informations en


mémoire,
• Il y a lecture lorsqu'on récupère des informations
précédemment enregistrées.

M. Belkadi 27
On distingue deux grandes catégories de mémoires :

La mémoire centrale (dite aussi mémoire interne) permet


de mémoriser temporairement les données lors de l'exécution
des programmes.

La mémoire de masse (dite aussi mémoire physique,


mémoire secondaire ou mémoire externe) permet de stocker
des informations à long terme, y compris lors de l'arrêt de
l'ordinateur.

Exemple Disque dur, CD-ROM, DVD-ROM,…

M. Belkadi 28
Méthodes d’accès
• Accès séquentiel
Pour accéder à une information on doit parcourir toutes
les informations précédentes
 Accès lent Exemple : bandes magnétiques
• Accès direct
Chaque information a une adresse propre
On peut accéder directement à chaque adresse Exemple :
mémoire centrale
• Accès semi-séquentiel
Intermédiaire entre séquentiel et direct
Exemple : disque dur Accès direct au cylindre
 Accès séquentiel au secteur sur un cylindre
• Accès associatif/par le contenu
Une information est identifiée par une clé
On accède à une information via sa clé Exemple : mémoire cache29
M. Belkadi
Caractéristiques des mémoires
Les principales caractéristiques d'une mémoire sont les
suivantes :

 Le temps d’accès : correspond à l'intervalle de temps


entre la demande de lecture/écriture et la disponibilité de la
donnée
 Le temps de cycle : il représente l'intervalle minimum
qui doit séparer deux demandes successives de lecture ou
d'écriture
 La capacité : c’est le nombre total de bits que contient la
mémoire. Elle s’exprime aussi en :
- octet (8bits), KiloOctet(Ko), MégaOctet(Mo) ou en
GigaOctet (Go)….
M. Belkadi 30
 Le débit : c’est le nombre maximum d'informations lues
ou écrites par seconde.

 Volatilité : elle caractérise la permanence des


informations dans la mémoire. L'information stockée est
volatile si elle risque d'être altérée par un défaut
d'alimentation électrique et non volatile dans le cas
contraire.

M. Belkadi 31
De ces caractéristique, on peut dire qu’une mémoire idéale
serait une mémoire de grande capacité et ayant des temps
d’accès et de cycle très faibles, un débit élevé et est non
volatile.

Mais les mémoires de grande capacité sont souvent très


lente et que les mémoire rapides sont très chères.

Que doit-on faire pour obtenir un meilleur compromis


coût-performance?

M. Belkadi 32
La hiérarchie mémoire

-Les mémoires de faible capacité qui sont très rapide sont


utilisées en faible quantité pour stocker les informations
dont le microprocesseur se sert le plus, et

-Les mémoires de capacité importante qui sont beaucoup


plus lente sont utilisées pour stocker les informations dont
le microprocesseur se sert le moins.

Ainsi, plus on s’éloigne du microprocesseur et plus la


capacité et le temps d’accès des mémoire vont augmenter.

M. Belkadi 33
Les différents niveaux de mémoires

M. Belkadi 34
Registres
Mémoires à accès très rapide (vitesse de CPU), de petites
tailles et non permanentes (Non volatile). elles sont
internes au CPU.

M. Belkadi 35
Mémoire cache
Le Cache : placé entre la CPU et la mémoire centrale
(MC). Il stocke des données récemment utilisées. Sa taille
varie de quelques centaines de Ko à quelques Mo mais elle
est rapide par rapport à la MC
La Mémoire cache est cadencée à la même fréquence que
la CPU
• But de la mémoire cache :
 Débit de la mémoire centrale très lent par rapport au
débit requis par le processeur. Alors en plaçant les
informations (en avance) dans le cache, on accélère la
vitesse de lecture par la CPU.
M. Belkadi 36
Mémoire centrale
La mémoire centrale ou principale (MC): C'est une
mémoire à accès moins rapide que les deux précédentes
(Registres et Mémoire cache). Elle a une taille de
quelques centaines de Mo à quelques Go.
Elle comporte la mémoire vive (RAM) et la mémoire
morte (ROM).

M. Belkadi 37
RAM (Random Acces Memory ou mémoire à accès
aléatoire)

 Mémoire à accès direct


 Une mémoire vive sert au stockage temporaire de
données (Instructions, données).
 Elle doit avoir un temps de cycle très court pour ne pas
ralentir le microprocesseur.
 Les mémoires vives sont volatiles

Il existe deux grandes familles de mémoires RAM :


1- Les RAM Statiques (SRAM) ;
2 - Les RAM Dynamiques (DRAM).

M. Belkadi 38
SRAM (Static RAM) :
• Utilise des bascules pour mémoriser l'information (Chaque
bascule contient entre quatre et six transistors);
• Très rapide mais coûteuse en composants et encombrante ;
• Temps d'accès : de l'ordre de 1 ns ;
• Utilisée pour le cache, par exemple.

DRAM (Dynamic RAM) :


• Dans les DRAM, l’information est mémorisée sous la forme
d’une charge électrique stockée dans un condensateur (plus
économique) ;
• Moins rapide que la SRAM,
• Nécessite des rafraîchissements ;
• Temps d'accès : de l'ordre de 10 ns ;
• Utilisée pour la mémoire principale.
M. Belkadi 39
Avantages et Inconvénient de l’utilisation d’une DRAM

Avantages : Cette technique de mémorisation de l’information


dans un condensateur permet une plus grande densité
d’intégration, car un point mémoire nécessite environ quatre
fois moins de transistors que dans une mémoire statique.
Sa consommation s’en retrouve donc aussi très réduite ;

Inconvénient : La présence de courants de fuite dans le


condensateur contribue à sa décharge. Ainsi, l’information est
perdue si on ne la régénère pas périodiquement (charge du
condensateur). Les RAM dynamiques doivent donc être
rafraîchies régulièrement pour entretenir la mémorisation : il
s’agit de lire l’information et de la recharger.
M. Belkadi 40
ROM (Read Only Mémory)
Pour certaines applications, il est nécessaire de pouvoir
conserver des informations de façon permanente même
lorsque l’alimentation électrique est interrompue. On utilise
alors des mémoires mortes ou mémoires à lecture seule
(ROM : Read Only Memory).
• Ces mémoires sont non volatiles.
• Ces mémoires contiennent des données indispensables au
démarrage, telles que :
- Le BIOS est un programme permettant de piloter les
interfaces d'entrée-sortie principales du système,
- Le chargeur d'amorce: un programme permettant de
charger le système d'exploitation en mémoire (vive) et de le
lancer.
M. Belkadi 41
Types de ROM
Les ROM ont petit à petit évolué de mémoires mortes
figées à des mémoires programmables, puis
reprogrammables. Il existe donc plusieurs types de ROM :
ROM; PROM; EPROM; EEPROM; FLASH EPROM.

• ROM
ROM est un circuit intégré dont le contenu est déterminé
une fois pour toute au moment de la fabrication. Au départ,
ces mémoires étaient utilisées pour stocker les parties bas-
niveau du système d’exploitation de l’ordinateur (BIOS du
PC par exemple).

M. Belkadi 42
• PROM (Programmable ROM)
Alors que la mémoire ROM est enregistrée de manière
irréversible lors de sa fabrication, la mémoire PROM est
configurée par l’utilisateur en utilisant un programmateur de
PROM, utilisé pour enregistrer son contenu. Le circuit PROM
ne peut plus être modifié par la suite.

• EPROM (Erasable PROM)


Les mémoires EPROM sont des PROM reconfigurables : il est
possible de les effacer pour les reprogrammer. L’effaçage se
produit en exposant le boitier à un rayonnement ultraviolet
(UV).

• EEPROM (Electricaly Erasable PROM)


Même principe qu’une EPROM, mais l’effacement se fait à
l’aide de signaux électriques, ce qui est plus rapide et pratique.
43
M. Belkadi
• FLASH EPROM (Flash disque et carte mémoire)
Les mémoires FLASH sont similaires aux mémoires
EEPROM, mais l’effacement peut se faire sélectivement
par blocs et ne nécessite pas le démontage du circuit. La
Flash EPROM a connu un essor très important ces
dernières années avec l’apparition de la téléphonie portable
et des appareils multimédia (PDA, appareil photo
numérique, lecteur MP3, etc...).

M. Belkadi 44
Assemblage de boitiers mémoire

Les mémoires sont regroupées dans des boitiers mémoire.


Dû aux limites technologiques d'intégration, pour obtenir
des mémoires de grandes tailles, on associe plusieurs
boitiers mémoires.

Ces blocs sont assemblés de sorte à :

• Augmenter la taille des mots de la mémoire

• Augmenter le nombre de mots dans la mémoire

M. Belkadi 45
Mémoire de masse
La mémoire de masse ou secondaire: Elle est non
volatile et a une grande capacité; plusieurs centaines de
Mo à plusieurs centaines de Go

• Mémoires très très lentes

Exemple
Disque dur
 DVD ou CD

M. Belkadi 46
Hiérarchie mémoire : conclusion
• Organisation de façon à ce que la CPU accède le plus
rapidement possible aux données les plus utilisées

• Hiérarchie

 Mémoire cache : rapide et petite


Mémoire centrale : moins rapide et plus gros
 Mémoire de masse : lente et très gros

• Plus une mémoire est lente, moins elle est chère

M. Belkadi 47
La Mémoire Cache

M. Belkadi 48
Exemple Introductif -Cache
Soit une CPU à 2.6 GHz et une mémoire à 10ns de
temps d’accès.

• Q1. Si la CPU veut accéder à une information mémoire,


après combien de temps va-t-elle recevoir l’information?

• Q2. Combien de cycles CPU pendant cette durée?

M. Belkadi 49
Exemple Introductif

• R1. Temps nécessaire pour un accès mémoire:


- Nous avons: 10ns pour faire une lecture /écriture
donc le temps nécessaire est :
T = 10ns = 10 x 10-9 s ; (1ns = 10-9 s )

• R2. Nombre de cycles nécessaires:


Nous avons : f =2.6 GHz = 2.6 x 109 Hz
et C = 1/f
Donc, Nbc = T/C = Txf = 10 x 10-9 x 2.6 x 109

= 26 Cycles
M. Belkadi 50
Exemple Introductif
• Conclusion
- Même si la CPU peut faire n’importe quelle
instruction (add, mult….) en quelques cycles, elle
doit attendre 26 cycles pour avoir les opérandes.

- Trop long pour la CPU d’aller chercher


l’information en mémoire!!!

M. Belkadi 51
Exemple Introductif
Solution:
• Utiliser une mémoire dite rapide. Cependant, la
mémoire rapide est très chère. Donc, c’est trop couteux
d’avoir toute la RAM très rapide.

On va se contenter d’avoir une partie


de mémoire rapide

M. Belkadi 52
Principe de la mémoire cache

requête requête Mémoire


Processeur Cache centrale
mot bloc

Rapide, chère,
faible capacité (SRAM) (DRAM)

Le processeur essaie d’accéder à un mot d’abord dans le cache,


avant de passer à la mémoire principale.

M. Belkadi 53
• En cas de succès (hit), c’est-à-dire la donnée est dans le
cache. La donnée est transférée du cache au processeur. Dans ce
cas, la mémoire principale n’est pas accédée.

M. Belkadi 54
Le répertoire du cache a deux fonctions
-Indiquer si le mot accédé par le processeur est dans le cache (signal match)
-Si c’est le cas, indiquer l’adresse où se trouve le mot dans le cache

M. Belkadi 55
• En cas d’échec(miss), c’est-à-dire la donnée n’est pas
dans le cache (on l’appelle défaut de cache). On accède
à la mémoire centrale et on range dans le cache un bloc
de N mots autour du mot désiré.

M. Belkadi 56
Un système cache est composé généralement d’une mémoire
SRAM organisée en lignes, et d’un circuit contrôleur
assurant les fonctions de chargement, de placement, de
remplacement et de mise à jour des informations du cache.
Pour garder la trace des blocs se trouvant dans le cache, le
contrôleur utilise une petite mémoire associative dite
répertoire. M. Belkadi 57
Le transfert des N mots (bloc) de la mémoire vers le cache repose sur
le principe de Localité (localité spatiale et localité temporelle).

Principe de localité temporelle


Si une donnée d'adresse A est accédée à un temps t, la probabilité
qu'elle soit de nouveau accédée aux temps t+1, t+2 est très forte.
La donnée est remontée dans le cache pour minimiser les temps
d'accès suivants.

Principe de localité spatiale


Si une donnée d'adresse A est accédée à un temps t, la probabilité
que les données d'adresses voisines soient accédées aux temps t+1,
t+2 est très forte La donnée d'adresse A et également les données
d'adresse voisines sont remontées dans le cache pour minimiser les
temps d'accès suivants
M. Belkadi 58
Nous précisons que la mémoire centrale est répartie en
Blocs et la mémoire cache en lignes. La taille des blocs est
égale à la taille des lignes.

Si un bloc contient N mots alors une ligne du cache


contient aussi N mots

M. Belkadi 59
Questions
Les données et les instructions sont transférées de la
mémoire principale au cache en petits blocs (mots
mémoire). Par conséquent, plusieurs questions s'imposent:
Où peut-on placer un bloc dans le cache?
Placement de bloc
Comment trouver un bloc s'il est présent dans le cache?
Identification de bloc
Quel bloc doit être remplacé en cas d'échec?
Remplacement de bloc
Qu'arrive-t-il lors d'une écriture?
Stratégie d'écriture
M. Belkadi 60
Placement de bloc

• Chaque ligne de la mémoire cache contient un bloc de la


mémoire centrale.
• Trois méthodes pour gérer la correspondance entre une
ligne dans le cache et un bloc de la mémoire centrale
1. Correspondance directe
2. Correspondance associative totale
3. Correspondance associative par ensemble

Exemples: Lignes de 32 octets


Mémoire cache de 512 Ko : 16000 lignes
Mémoire centrale de 128 Mo : doit être gérée via les 512
Ko de cache. Donc via les 16000 lignes
M. Belkadi 61
Correspondance directe
Si chaque bloc a uniquement une seule place possible dans le cache,
celui-ci est appelé à correspondance directe (direct-mapped). La
correspondance est généralement la suivante:
numéro de ligne cache = numéro de bloc mod nombre de
blocs dans le cache
Cette stratégie de placement est la plus simple à mettre en œuvre,
mais aussi la moins performante.
N° Bloc

N° Ligne

Exemple
14 mod 4 = 2
Mémoire cache Le bloc N° 14
sera mappé à la
Mémoire centrale M. Belkadi ligne N° 2 62
Avantages/Inconvénients du cache direct

Avantages:
- On sait immédiatement où aller chercher la ligne
- Accès très rapide à la ligne

Inconvénient:
- Devra parfois décharger et charger souvent les mêmes
lignes alors que d’autres lignes sont peu accédées
- Peu efficace en pratique

M. Belkadi 63
Correspondance associative totale
Si un bloc peut être placé n'importe où dans le cache,
celui-ci est appelé totalement associatif (fully
associative). Ce type de placement est le plus efficace,
mais aussi le plus compliqué à mettre en œuvre,
nécessitant une logique de contrôle très complexe.
N° Bloc
N° Ligne

Mémoire cache

M. Belkadi 64
Mémoire centrale
Avantages/Inconvénients du cache
associatif
Avantages:
• Meilleur taux de succès

Inconvénient:
• Il faut regarder toutes les lignes : trop lent
séquentiellement
• Recherche en parallèle, très coûteux financièrement car
circuits compliqués

M. Belkadi 65
Correspondance associative par ensemble
Si un bloc peut être placé dans un ensemble restreint de
places dans le cache, celui-ci est dit associatif par
ensemble (set-associative). Un ensemble est un groupe
de blocs dans le cache. Le bloc est placé n'importe où
dans un ensemble habituellement choisi par:
numéro de bloc mod nombre d'ensembles dans le cache

Ces caches demandent une quantité de logique de contrôle


proportionnelle au nombre d'ensembles. 66
M. Belkadi
Avantages/Inconvénients du cache mixte

Avantages:
- Plus souple et efficace que la correspondance directe
- Temps d’accès court
- Méthode utilisée en pratique car meilleur compromis

M. Belkadi 67
Identification de bloc
On sait que la mémoire est organisée en blocs où chaque
bloc contient N mots. Une adresse mémoire est donc
composée de deux champs : un champ pour désigner le
bloc et l’autre permet d’identifier le mot dans le bloc.
N° Bloc N° Mot

Exemple
Soit une mémoire de 64 mots = 26 mots  6 bits d’adresse.
Si cette mémoire est organisée en bloc de 4 mots, on aura
64/4= 16 blocs. Alors, il nous faut 4 bits pour désigner un
bloc et 2 bits pour identifier les mots. Sur 4 bits Sur 2bits

L’adresse suivante : 110010, désigne le bloc n° 12 et le mot


N°2 (le troisième mot) de ce bloc.
M. Belkadi 68
Identification de bloc
Correspondance direct
Dans le cas d’une correspondance direct, une adresse est
décomposée en trois champs pour identifier la donnée
recherchée dans le cache
Tag (étiquette) Index (N° ligne) N° Mot

• Le champ Index permet l'accès à un emplacement (ligne)


du cache. Cet emplacement contient TAG et plusieurs
mots (DATA).
• Le champ Tag de l'adresse est comparé avec le TAG
obtenu dans la ligne localisée par index. Les 2 TAG
peuvent être : - Différents => Echec (Miss)
- Les mêmes => Succès (Hit) : dans ce cas,
le champ N° Mot est utilisé pour trouver le mot voulu dans
M. Belkadi 69
la ligne
Identification de bloc
Correspondance direct
Pour savoir si une donnée est disponible dans le cache, on
procède comme suit
Accès à la mémoire centrale suite au miss du cache Mémoire

Tag Index N° Mot TAG MotN-1 MotN-2 …….. Mot1 Mot0

TAG MotN-1 MotN-2 …….. Mot1 Mot0

=
N Cache à plusieurs lignes

Le mot du cache vers le processeur

M. Belkadi 70
Identification de bloc
Correspondance Associative Totale
Dans le cas d’une correspondance associative totale , une
adresse est décomposée en deux champs pour identifier la
donnée recherchée dans le cache
Tag (étiquette) N° Mot

•Le champ Tag de l'adresse est comparé en parallèle avec


les TAG de toutes les lignes du cache. Si aucun TAG ne
correspond au Tag de l’adresse, on a un Echec (Miss). Par
contre, s’il ya un TAG du cache égale à la valeur du Tag de
l’adresse, on a un Succès (Hit) : dans ce cas, le champ N°
Mot est utilisé pour trouver le mot voulu dans la ligne

M. Belkadi 71
Identification de bloc
Correspondance Associative Totale
Pour savoir si une donnée est disponible dans le cache, on
procède comme suit :
Accès à la mémoire centrale suite au miss du cache Mémoire

Cache à plusieurs lignes


Tag N° Mot TAG MotN-1 MotN-2 …….. Mot1 Mot0

TAG MotN-1 MotN-2 …….. Mot1 Mot0

Y
TAG MotN-1 MotN-2 …….. Mot1 Mot0

=
TAG MotN-1 MotN-2 …….. Mot1 Mot0
N

Le mot du cache vers le processeur

M. Belkadi 72
Identification de bloc
Correspondance associative par ensemble
Dans le cas d’une correspondance associative par ensemble, une
adresse est décomposée en trois champs pour identifier la donnée
recherchée dans le cache
Tag (étiquette) Set (N° ensemble) N° Mot

• Le champ Set permet d’identifier un ensemble du cache. Cet


ensemble contient un ensemble de lignes où chaque ligne possède un
TAG et plusieurs mots (DATA).
• Le champ Tag de l'adresse est comparé en parallèle avec les TAG
de toutes les lignes de l’ensemble désigné par le champ Set. Si aucun
TAG ne correspond au Tag de l’adresse, on a un Echec (Miss). Par
contre, s’il y a un TAG du cache égale à la valeur du Tag de l’adresse,
on a un Succès (Hit) : dans ce cas, le champ N° Mot est utilisé pour
trouver le mot voulu dans la ligne
M. Belkadi 73
Identification de bloc
Correspondance associative par ensemble
Pour savoir si une donnée est disponible dans le cache, on
procède comme suit :
Accès à la mémoire centrale suite au miss du cache Mémoire

Cache
Tag N° Set N° Mot TAG MotN-1 MotN-2 …….. Mot1 Mot0

TAG MotN-1 MotN-2 …….. Mot1 Mot0

TAG MotN-1 MotN-2 …….. Mot1 Mot0

TAG MotN-1 MotN-2 …….. Mot1 Mot0


= Y

N TAG MotN-11 MotN-2 …….. Mot1 Mot0

TAG MotN-1 MotN-2 …….. Mot1 Mot0

Le mot du cache vers le processeur

M. Belkadi 74
Remplacement de bloc
Si le cache est plein, il faut libérer des lignes pour y mettre
d’autres lignes. Plusieurs méthodes (Algorithmes de
remplacement) sont utilisées pour choisir la ligne à
remplacer :
 Aléatoire
First In First Out (FIFO)
 Least Recently used (LRU)
Least Frequently used (LFU)
 NMRU
Il est à noter que la correspondance directe n'a pas besoin d'une
méthode de remplacement spécifique, une ligne mémoire ne peut
être mise que dans une seule ligne du cache, donc il n'existe qu'une
seule possibilité de remplacement. M. Belkadi 75
Remplacement Aléatoire

• Une ligne au hasard est choisie pour être remplacée

• Simple à mettre en œuvre

• Peu efficace en pratique car on peut supprimer des


lignes très accédées

M. Belkadi 76
Remplacement FIFO
(First In First Out)
Premier entré Premier sorti

chaque ligne du cache contient sa date d’entrée, la plus


vieille est remplacée par une ligne de la mémoire principale

 statistiquement : plus efficace que le précédent

 défaut: une ligne référencée régulièrement est retirée du


cache quand elle devient la plus vieille

M. Belkadi 77
Remplacement LRU
Least Recently Used

 la ligne remplacée est la moins récemment utilisée

 on associe à chaque ligne la date de dernière utilisation

 statistiquement : le plus efficace

 Inconvénient : complexité accrue (modification de la


date à chaque accès)

M. Belkadi 78
Remplacement LFU
Least Frequently Used

 Variante de LRU
la ligne remplacée est la moins fréquemment utilisée
 on associe à chaque ligne un compteur s’incrémentant à
chaque utilisation
 on extrait la ligne dont le compteur est le plus petit
 Tri plus simple sur les compteurs que sur les dates

M. Belkadi 79
Remplacement NMRU

NMRU : Not most recently Used : la ligne remplacée n’est


pas la plus récemment utilisée. La ligne remplacée est
choisie aléatoirement parmi celles autres que la ligne la plus
récemment accédée.

M. Belkadi 80
Stratégies d'écriture
Outre les opérations de lecture en mémoire, le processeur
effectue également des écritures, par exemple lorsqu’il
modifie des données.

La stratégie d'écriture est fondamentale pour la performance


du cache de données (environ 25% des accès à ce cache sont
des écritures). Deux stratégies sont couramment employées:
•Cache write-through

•Cache write-back

M. Belkadi 81
Cache write-through

• Écriture simultanée (write-through),

• Quand on écrit un mot d’une ligne du cache, on écrit


simultanément le mot de la même ligne en mémoire
centrale

• Écriture plus longue car accès mémoire centrale

M. Belkadi 82
Cache write-back

• Écriture différée ou réécriture (write-back),


• Le mot est réécrit que dans la ligne du cache,
• Cette ligne est réécrite en mémoire centrale, Quand elle est
supprimée du cache (par une méthode de remplacement).

Pour cela, un bit dit « Bit de modification (Dirty bit) » est


associé à la ligne pour spécifier si elle est modifiée ou non.
Donc deux cas possibles :
0 : le contenu de la ligne n’ pas été modifié
1 : le contenu de la ligne a été modifié
M. Belkadi 83
Si on décide d'écrire une donnée dans une ligne absente du
cache, l'une des deux options suivantes est utilisée :

•Ecriture attribué (write-allocate) : La ligne est chargée


dans le cache puis modifiée.

•Ecriture non attribuée ( no write-allocate) : la ligne est


modifiée directement au niveau supérieur de la hiérarchie
mémoire et non chargée dans le cache.

M. Belkadi 84
Stratégie de chargement (la recherche)
L'algorithme de recherche doit décider quand et
comment une donnée doit être ramenée vers le cache.
On distingue trois (03) méthodes pour ramener une
donnée vers le cache :
• A la demande: consiste à ramener un bloc vers le
cache quand celui-ci est référencé,

• L'anticipation : implique ramener une donnée avant


qu'elle ne soit référencée

• La recherche sélective: permet un choix sur les


données à ramener vers le cache. L'algorithme de
recherche peut décider de ne pas ramener une donnée
vers le cache et de la charger directement de la mémoire
85
ou du disque en court-circuitant le cache M. Belkadi
•La mémoire cache peut être organisée en plusieurs
niveaux: la figure suivante montre un exemple de mémoire
cache à deux niveaux

M. Belkadi 86
• La mémoire cache peut être séparée en cache de données
et cache d’instructions

M. Belkadi 87

Vous aimerez peut-être aussi