ARCHITECTURE DES ORDINATEURS Mémoires EL GHAZI

publicité
ARCHITECTURE DES ORDINATEURS
Mémoires
EL GHAZI ABDELLATIF
http://perso.menara.ma/~elghazi/archi.pdf.
2005/2006
PREMIÈRE ANNÉE
1
Mémoires
Mémoires
G
GEEN
NEER
RA
ALLIITTEES
S EETT D
DEEFFIIN
NIITTIIO
ON
NS
S ........................................................................................................3
Hiérarchie des mémoires .............................................................................................................3
Organisation des informations ...................................................................................................4
Caractéristiques des mémoires .................................................................................................4
Types d’accès....................................................................................................................................4
M
MEEM
MO
OIIR
REE C
CEEN
NTTR
RA
ALLEE .............................................................................................................................5
La mémoire vive (ou RAM)..........................................................................................................5
La mémoire vive dynamique (DRAM) .....................................................................................5
La mémoire statique (SRAM) .....................................................................................................5
LLA
M
MO
OIIR
REE M
MO
OR
RTTEE ((R
RO
OM
M)) ...............................................................................................................6
A MEEM
ROM ......................................................................................................................................................6
PROM....................................................................................................................................................6
EPROM .................................................................................................................................................6
EEPROM...............................................................................................................................................6
M
MEEM
MO
OIIR
REE C
CA
AC
CH
HEE.....................................................................................................................................7
Fonctionnement ...............................................................................................................................7
Divers niveaux de mémoire cache ...........................................................................................7
Mémoire cache des microprocesseurs ....................................................................................7
Défauts de cache .............................................................................................................................8
2
Mémoires
G
GE
EN
NE
ER
RA
AL
LIIT
TE
ES
SE
ET
TD
DE
EF
FIIN
NIIT
TIIO
ON
NS
S
Un ordinateur a deux caractéristique essentielles : la vitesse à laquelle il peut traiter les informations et la capacité de
mémoriser ces information c’est cette deuxième caractéristique que nous allons approfondir dans ce chapitre on va
approfondir.
Une mémoire c’est un dispositif capable d’enregistrer, de conserver et de restituer des informations
Les éléments de mémoire d’un ordinateur se répartissent en plusieurs niveaux caractérisés par leur capacité (nombre
d’informations qu’elles peuvent contenir) et leur temps d’accès
Hiérarchie des mémoires
Les différents éléments de la mémoire d’un ordinateur sont ordonnés en fonction des critères suivants : temps d’accès capacité
et coût par bit.
Quand on s'éloigne du CPU vers les mémoires auxiliaires, on constate que le temps d'accès et la capacité des mémoires
augmentent, mais le coût par bit diminue.
•
Registres : les éléments de mémoires situés dans l'unité centrale de traitement (CPU) caractérisés par une grande
vitesse et servent principalement au stockage des opérandes et des résultats intermédiaires.
•
La mémoire cache ou l'antémémoire est une mémoire rapide de faible capacité (par rapport à la mémoire centrale)
utilisée comme mémoire tampon entre le CPU et la mémoire centrale. cette mémoire permet au CPU de faire moins
d'accès à la mémoire centrale et ainsi de gagner du temps.
•
La mémoire centrale est l'organe principal de rangement des informations utilisées par le CPU. pour exécuter un
programme, il faut le charger en mémoire centrale (instructions + données). cette mémoire est une mémoire à semiconducteur, mais son temps d'accès est beaucoup plus grand que celui des registres et du cache.
•
La mémoire d'appui sert de mémoire intermédiaire entre la mémoire centrale et les mémoires auxiliaires. Elle est
présente dans les ordinateurs les plus évolués et permet d'augmenter la vitesse d'échange des informations entre des 2
niveaux.
•
Mémoires de masse primaire ou mémoire de stockage est constitué de disques durs qui permettent de stocker de
manière permanente les informations (données, programmes).
•
Mémoires de masse secondaire ou mémoire auxiliaire est une mémoire périphérique de grande capacité et de coût
relativement faible. elles servent d'éléments de stockage permanent et utilisent pour cela des supports magnétiques
(disque, cartouches, bandes), et des supports optiques (disques optiques).
3
Mémoires
Organisation des informations
•
•
•
•
•
Bit : unité de base de l’information. Dans une mémoire, le plus petit élément de stockage est souvent appelé point
mémoire : mémorise un bit d’information
Octet (byte en anglais) : groupement de 8 bits
Mot : groupement de bits constituant une unité d’information adressable en mémoire centrale. (8, 12, 16, 24, 32,36,
48, 60, 64,128).
L’enregistrement : Bloc de données. Il constitue l’unité d’information stockée en mémoire auxiliaire (disque, bande).
Fichier : Ensemble d’enregistrement.
Caractéristiques des mémoires
•
•
Adresse : valeur numérique désignant un élément physique de mémoire.
Capacité ou taille de la mémoire : nombre d’information qu’elle peut contenir. On peut l’exprimer en fonction de
nombre de bit de bytes ou de mots
Une mémoire centrale de 512 K-mots de 16 bits équivaut à :
512 * 1024 mots.
512 * 1024 * 2 octets.
512 * 1024 * 2 * 8 bits.
Ainsi 1024 Go = 1024 * 1024 * 1024 = 1 073 741 824 octets soit aussi 2 ^ 30 octets soit également 1 milliard d’octets qui
équivaut aussi à 1 Téra-octet.
•
•
•
•
Temps d’accès : temps qui s’écoule entre une demande de lecture ou d’écriture et son accomplissement mesuré en
nano-secondes – ns – ou milliardième de seconde soit 10-9s)
Cycle mémoire : temps minimum entre deux accès consécutifs plus long que le temps d’accès, car le bon
fonctionnement de la mémoire nécessite quelques opération de maintient, de stabilisation de signaux….
Débit : nombre d’octets ou bits pouvant être lus ou écrits par secondes (exemple 12 Mo/s). bande passante qui
correspond au produit de la largeur du bus de données par le fréquence de ce dernier. Ainsi, avec un bus de données
de 16 bits et une fréquence de bus de 800 MHz on atteint une bande passante de 1.6 Go/s
soit (800 * 106) * 16/8 = 1 600 000 000 octets/s. Plus la bande passante est élevée et plus la mémoire est performante.
Volatilité : perte ou non du contenu, une mémoire volatile perd son contenu lorsqu’on coupe le courant. (RAM :
volatile, si l’on coupe le courant tout est aussitôt perdu ; bande magnétique : perte après 5 ans).
Types d’accès
4
Mémoires
•
•
•
Accès séquentiel : c’est l’accès le plus lent ; pour accéder à une information, il faut lire toutes celles qui précèdent
(bandes).
Accès direct : (par adresse) Les informations ont une adresse propre (mémoire centrale, les registres) .
Accès par le contenu (mémoire associative) : les informations sont identifiées par une clé et la recherche s’effectue
sur cette clé de façon simultanée sur toutes les positions de la mémoire (mémoire cache). la mémoire n’est pas
constituée d’une suite de données mais d’une suite de couples (adresse, donnée). La recherche se fait sur l’adresse
pour accéder ensuite directement à la donnée.
M
ME
EM
MO
OIIR
RE
EC
CE
EN
NT
TR
RA
AL
LE
E
Dans ce chapitre, nous traiterons principalement des mémoires centrales, classées en trois grandes catégories : les mémoires
vives, mortes et spécialisées.
La mémoire centrale ou principale contient les instructions et les données des programmes que l’on désire exécuter, ainsi
qu’une partie du système d’exploitation. Cette mémoire utilise des semi-conducteurs (transistors), mais son temps d‘accès est
beaucoup plus long que celui des registres et du cache.
La mémoire vive (ou RAM)
RAM signifie Random Access Memory ou mémoire à accès aléatoire, c‘est à dire à accès direct. Toutes les informations sont
accessibles à l‘aide de leur adresse. Elle est volatile. Sa conception technologique repose sur un composant : le transistor.
Le transistor peut effectuer la fonction :
• -d‘interrupteur,
• -d‘amplificateur.
La mémoire vive dynamique (DRAM)
La cellule mémoire d‘une RAM dynamique utilise à la fois un transistor comme interrupteur et un condensateur, qui permet
d‘emmagasiner une charge électrique.
Si le condensateur est chargé c‘est un 1 sinon c‘est un 0.
Le principe d‘écriture : Le transistor s‘ouvre, le condensateur se charge puis le transistor se referme.
Le principe de lecture : Le transistor s‘ouvre, si le condensateur se décharge, c‘est qu‘il contenait un 1 sinon c‘est qu‘il
contenait un 0.
La lecture détruit l‘information, il faut donc après chaque lecture régénérer l‘information : on dit que la lecture est destructrice.
Autre inconvénient, le condensateur se décharge tout seul au fil du temps (Courant de fuite), aussi, il est nécessaire de
recharger tous les condensateurs de la mémoire régulièrement (Environ toutes les 2 ms). On dit que la DRAM nécessite un
rafraîchissement régulier. Cependant une cellule mémoire ne comporte qu‘un seul transistor, aussi on peut réaliser de la très
haute intégration (Nombre de transistors que l‘on peut mettre au cm2).
Remarques :
•
•
En réalité par mesure de sécurité on affecte 2 transistors par condensateur.
Le temps d‘accès moyen est de l‘ordre de 10ns (nanoseconde).
La mémoire statique (SRAM)
Une cellule mémoire est mémorisée à l‘aide de 4 transistors : il n‘y a plus de condensateur.
Comme il n‘y a plus de condensateur :
5
Mémoires
•
•
•
il n‘y a plus de rafraîchissement,
la SRAM est donc beaucoup plus rapide que la DRAM
-la mémoire cache est du type statique.
Comme il y a 4 transistors : le nombre de cellules mémoires est inférieur aux DRAM à cause de la chaleur que dégagent les
transistors et par conséquent le nombre de transistors est limité, -on trouve également des SRAM à 6 transistors par bit.
L
LA
AM
ME
EM
MO
OIIR
RE
EM
MO
OR
RT
TE
E ((R
RO
OM
M))
Il existe un type de mémoire permettant de stocker des données en l'absence de courant électrique, il s'agit de la ROM (Read
Only Memory, dont la traduction littérale est mémoire en lecture seule) appelée mémoire morte, parfois mémoire non volatile
car elle ne s'efface pas lors de la mise hors tension du système.
Ce type de mémoire permet notamment de conserver les données nécessaires au démarrage de l'ordinateur. En effet, ces
informations ne peuvent être stockées sur le disque dur étant donné que les paramètres du disque (essentiels à son initialisation)
font partie de ces données vitales à l'amorçage.
Différentes mémoires de type ROM contiennent des données indispensables au démarrage, c'est-à-dire :
• Le BIOS est un programme permettant de piloter les interfaces d'entrée-sortie principales du système, d'où le nom de
BIOS ROM donné parfois à la puce de mémoire morte de la carte-mère qui l'héberge.
•
Le chargeur d'amorce: un programme permettant de charger le système d'exploitation en mémoire (vive) et de le
lancer. Celui-ci cherche généralement le système d'exploitation sur le lecteur de disquette, puis sur le disque dur, ce
qui permet de pouvoir lancer le système d'exploitation à partir d'une disquette système en cas de dysfonctionnement
du système installé sur le disque dur.
•
Le Setup CMOS, c'est l'écran disponible à l'allumage de l'ordinateur permettant de modifier les paramètres du système
(souvent appelé BIOS à tort...).
•
Le Power-On Self Test (POST), programme exécuté automatiquement à l'amorçage du système permettant de faire un
test du système (c'est pour cela par exemple que vous voyez le système "compter" la RAM au démarrage).
Etant donné que les ROM sont beaucoup plus lentes que les mémoires de types RAM (une ROM a un temps d'accès de l'ordre
de 150 ns tandis qu'une mémoire de type SDRAM a un temps d'accès d'environ 10 ns), les instructions contenues dans la ROM
sont parfois copiées en RAM au démarrage, on parle alors de shadowing (en français cela pourrait se traduire par ombrage,
mais on parle généralement de mémoire fantôme).
Les ROM ont petit à petit évolué de mémoires mortes figées à des mémoires programmables, puis reprogrammables.
R OM
Les premières ROM étaient fabriquées à l'aide d'un procédé inscrivant directement les données binaires dans une plaque de
silicium grâce à un masque. Ce procédé est maintenant obsolète.
PROM
Les PROM (Programmable Read Only Memory) ont été mises au point à la fin des années 70 par la firme Texas Instruments.
Ces mémoires sont des puces constituées de milliers de fusibles (ou bien de diodes) pouvant être "grillés" grâce à un appareil
appelé « programmateur de ROM », appliquant une forte tension (12V) aux cases mémoire devant être marquées. Les fusibles
ainsi grillés correspondent à des 0, les autres à des 1.
EPROM
Les EPROM (Erasable Programmable Read Only Memory) sont des PROM pouvant être effacées. Ces puces possèdent une
vitre permettant de laisser passer des rayons ultra-violets. Lorsque la puce est en présence de rayons ultra-violets d'une certaine
longueur d'onde, les fusibles sont reconstitués, c'est-à-dire que tous les bits de la mémoire sont à nouveau à 1. C'est pour cette
raison que l'on qualifie ce type de PROM d'effaçable.
EEPROM
6
Mémoires
Les EEPROM (Electrically Erasable Read Only Memory) sont aussi des PROM effaçables, mais contrairement aux EPROM,
celles-ci peuvent être effacées par un simple courant électrique, c'est-à-dire qu'elles peuvent être effacées même lorsqu'elles
sont en position dans l'ordinateur.
Il existe une variante de ces mémoires appelée mémoires flash (également ROM Flash ou Flash EPROM). Contrairement aux
EEPROM classiques, utilisant 2 à 3 transistors par bit à mémoriser, la Flash EPROM utilise un seul transistor. D'autre part
l'EEPROM peut-être écrite et lue mot par mot, alors que la Flash ne peut être effacé que par pages (la taille des pages étant en
constante diminution).
Enfin la densité de la mémoire Flash est plus importante, ce qui permet la réalisation de puces contenant plusieurs centaines de
Mégaoctets. Des EEPROM sont ainsi préférentiellement utilisées pour la mémorisation de données de configuration et la
mémoire Flash pour du code programmable (programmes informatiques). On qualifie de flashage l'action consistant à
reprogrammer une EEPROM.
M
ME
EM
MO
OIIR
RE
EC
CA
AC
CH
HE
E
La mémoire cache (ou tout type de cache) est une mémoire intermédiaire dans laquelle se trouvent stockées toutes les
informations que le processeur central est le plus susceptible de demander. Elle sert donc à accélérer la communication entre
un élément fournisseur plus lent que l'élément demandeur. Comme ces informations sont immédiatement disponibles, le temps
de traitement se trouve diminué d'autant, ce qui mécaniquement accroît notablement les performances de l'ordinateur.
Il existe souvent plusieurs niveaux de mémoire cache : une interne au processeur, une autre intégrée sur la carte mère, mais on
peut en avoir aussi sur le disque dur.
Mémoire cache est la traduction littérale de l'expression anglaise cache memory, qui vient elle même de mémoire cachée,
principe inventé à Grenoble dans les années 1960, l'académie française propose antémémoire. La différence entre mémoire
cache et mémoire tampon réside dans le fait que la mémoire cache duplique l'information, tandis que le tampon exprime l'idée
d'une salle d'attente, sans impliquer nécessairement une duplication. Le cache buffer (tampon de cache) du disque ou disk
cache (cache de disque) est à la fois un tampon où transite l'information et une mémoire cache qui recopie sous forme
électronique les données stockées dans le disque sous forme magnétique.
Fonctionnement
Le cache contient une copie des données originelles lorsqu'elles sont coûteuses (en termes de temps d'accès) à récupérer ou à
calculer par rapport au temps d'accès au cache. Une fois les données stockées dans le cache, l'utilisation future de ces données
peut être réalisée en accédant à la copie en cache plutôt qu'en récupérant ou recalculant les données, ce qui abaisse le temps
d'accès moyen. Le processus fonctionne ainsi :
1. L'élément demandeur demande une information ;
2. Le cache vérifie s'il possède cette information. S'il la possède, il la retransmet à l'élément demandeur; on parle alors
de succès de cache. S'il ne la possède pas il la demande à l'élément fournisseur (mémoire principale); on parle alors de
défaut de cache ;
3. L'élément fournisseur traite la demande et renvoie la réponse au cache ;
4. Le cache la stocke pour utilisation ultérieure et la retransmet à l'élément demandeur.
Si les mémoires cache permettent d'accroître les performances, c'est en partie grâce à deux principes qui ont été découverts
suite à des études sur le comportement des programmes informatiques :
1. Le principe de localité spatiale : qui indique l'accès à une instruction située à une adresse X va probablement être suivi
d'un accès à une zone tout proche de X
2. Le principe de localité temporelle : qui indique que l'accès à une zone mémoire à un instant donné a de fortes chances
de se reproduire dans la suite du programme.
Divers niveaux de mémoire cache
On trouve une zone de cache :
• cache de premier niveau (L1) dans les processeurs (cache de données souvent séparé du cache d'instructions) ;
• cache de second niveau (L2) dans certains processeurs (peut se situer hors de la puce) ;
• cache de troisième niveau (L3) rarement (sur la carte mère) ;
• dans les disques durs ;
• dans les serveurs proxy.
• dans les serveurs de pages dynamiques.
Mémoire cache des microprocesseurs
7
Mémoires
Elle est souvent subdivisée en niveaux qui peuvent aller jusqu'à trois. Elle est très rapide, et donc très chère. Il s'agit souvent de
SRAM.
Différents niveaux de mémoire d'un microprocesseur
En programmation, la taille de la mémoire cache revêt un attrait tout particulier, car pour profiter de l'accélération fournie par
cette mémoire très rapide, il faut que les parties de programme tiennent le plus possible dans cette mémoire cache. Comme elle
varie suivant les processeurs, ce rôle d'optimisation est souvent dédié au compilateur. De ce fait, plus la taille de la mémoire
cache est grande, plus la taille des programmes accélérés peut être élevée.
C'est aussi un élément souvent utilisé par les constructeurs pour faire varier les performances d'un produit sans changer d'autres
matériels. Par exemple, pour les microprocesseurs, on trouve des séries bridées (avec une taille de mémoire cache
volontairement réduite), tels que les Duron chez AMD ou Celeron chez Intel, et des séries haut de gamme avec une grande
mémoire cache comme les processeurs Opteron chez AMD, ou Pentium 4EE chez Intel.
Un exemple de boucles très courtes qui tient entièrement dans les caches de données et d'instruction, par exemple le calcul
suivant (écrit en langage C) :
long i; double s;
s=0.;
for (i = 1; i<50000000; ++i) s+=1./i;
Définitions :
1.
2.
Une ligne est le plus petit élément de données qui peut être transféré entre la mémoire cache et la mémoire de niveau
supérieur.
Un mot est le plus petit élément de données qui peut être transféré entre le processeur et la mémoire cache.
Défauts de cache
Il existe trois types de défauts de cache en système uni processeur
• les défauts de cache obligatoires: ils correspondent à la première demande du processeur pour une donnée/instruction
spécifique et ne peuvent être évités,
• les défauts de cache capacitifs: l'ensemble des données nécessaires au programme excèdent la taille du cache, qui ne
peut donc pas contenir toutes les données nécessaires,
• les défauts de cache conflictuels: deux adresses distinctes de la mémoire de niveau supérieur sont enregistrées au
même endroit dans le cache et s'évincent mutuellement, créant ainsi des défauts de cache,
8
Téléchargement