Les mémoires - Academie pro

publicité
Chapitre 4 : Les mémoires
1. Introduction:
Nous savons que dans un ordinateur toutes les informations : valeur numérique,
instruction, adresse, symbole (chiffre, lettre,... etc.) sont manipulées sous une forme
binaire. Ces informations doivent en général être conservées pendant un certain
temps pour permettre leur exploitation. Ce rôle est dévolu aux mémoires chargées de
conserver programmes, données provenant de l’extérieur, résultats intermédiaires,
données à transférer à l’extérieur, etc.
On peut classer la mémoire en deux catégories principales. La mémoire de masse est
constitué par des supports le plus souvent magnétiques (disquettes, disques durs,
bandes, etc.). Les données et les programmes peuvent y être stockés de façon
prolongée. Ils ne s’effacent pas lorsque l’on coupe l’alimentation. En revanche, ce
type de support est assez lent. Lorsque l’ordinateur est en fonctionnement, les
données et les programmes dont il a besoin sont copies en mémoire centrale. Lorsque
l’on parle de mémoire sans plus de précision, c’est généralement de ce type de
mémoire qu’il s’agit.
Les mémoires à lecture et écriture ou mémoires vives permettent d’enregistrer une
information, de la conserver et de la restituer et sont à accès aléatoire (RA.M :
Random Acces Memory) c'est-à-dire que le temps d’accès à l’information est
indépendant de sa place en mémoire Cette appellation, d’origine historique, est
toujours synonyme de mémoire vive. Bien que très répandue cette appellation n’est
plus suffisante car tous les circuits à semi-conducteur sont aujourd'hui à accès
aléatoire. L’accès séquentiel ne porte plus que sur les mémoires magnétiques
(disques ou bandes). Par contre, une mémoire vive est volatile : la conservation de
son contenu nécessite la permanence de son alimentation électrique.
2. 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: temps d’accès, capacité et coût par bit. Les différents mémoires situées dans
l’unité centrale de traitement sont:

Les registres: accessibles immédiatement par le processeur, ils sont 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: rapide, de faible capacité par rapport à la
mémoire centrale, utilisée comme mémoire tampon entre le CPU et la mémoire
centrale. Elle permet au CPU de faire moins d'accès à la mémoire centrale et ainsi
gagner du temps.

La mémoire centrale: c'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. Cette mémoire est une mémoire à semi-conducteur, 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 ces deux niveaux.
1

la mémoire auxiliaire: c'est une mémoire périphérique de grande capacité et de
coût relativement faible utilisée pour le stockage permanent des informations, et
utilisent pour cela des supports magnétiques ou optiques.
La figure 1 suivante montre une comparaison des différentes catégories de mémoires
dans un ordinateur, plus 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 que le
coût par bit diminue.
capacité
Avantages
Inconvénients
Rapidité
Accès direct
Faible taille
Volatile
Faible capacité
Chère (prix/bit)
Avantages
Inconvénients
Peu chère
Lenteur
Non volatile
Volumineuse
Grande capacité
Figure 1 : Hiérarchie des mémoires -- Avantages et inconvénients
3. Caractéristiques de la mémoire

Capacité: Dite aussi taille de la mémoire, elle correspond au nombre
d’informations qu’elle peut contenir. Elle est généralement exprimée en bits ou en
nombre de mots mémoire.
La table suivante résume les préfixes utilisés pour exprimer les capacités des
mémoires :
Symbole Préfixe Capacité
1o
Octet
2 3 = 8 bits
1k
Kilo
2 10 = 1024
1M
Méga
2 20 = 1048576
1G
Giga
2 30 = 1073741824
1T
Tera
2 40 = 1099511627776
Table 1: Les unités de mesure de la capacité.

Temps d’accès: C’est le temps qui sépare le début de l’opération d’accès et sa
terminaison. Dans la pratique et pour plusieurs types de mémoire, le temps que
demande une opération de lecture peut être différent de celui d’une opération
d’écriture. Dans ce cas nous comptons le temps le plus long.

Cycle mémoire: C’est le temps minimal se coulant entre deux accès successifs à
la mémoire. Théoriquement, le cycle mémoire est égal au temps d’accès. Mais
2
pratiquement le premier est plus long que le deuxième, car le bon fonctionnement
de la mémoire nécessite quelques opérations de maintient et de stabilisation des
signaux dans le circuit (ex: synchronisation).

Débit: C’est le nombre d’informations (exprimé en bits) lues ou écrites par
seconde. Le débit est appelé aussi bande passante. Il est exprimé en fonction du
cycle mémoire (CM) et la taille du mot mémoire (TMM) selon la formule
suivante :
D

TMM
CM
Volatilité: Elle caractérise la permanence des informations dans la mémoire
centrale. Une mémoire volatile perd son contenant lorsqu’on coupe le courant.
Celle ci a donc besoin d’un apport constant d’énergie électrique pour conserver
ses informations. La mémoire à base de transistors est volatile. On peut réaliser
des mémoires non volatiles avec les transistors moyennant un générateur de
courant électrique (batterie). Tel est le cas pour la mémoire CMOS qui contient les
paramètres de configuration de l’ordinateur. Il y a une autre catégorie de mémoire,
à base de résistances électriques, qui constitue une mémoire permanente. C’est le
cas de la mémoire centrale qui contient le bios.
4. Organisation des mémoires
4.1. Définitions

Le bit : C’est le plus petit élément d’information que l’on peut stocker dans une
mémoire, il constitue l’unité de base de l’information. Il est souvent appelé point
mémoire : il mémorise un bit d’information;

L’octet, ou byte (en anglais), correspond à un groupement de 8 bits;

La cellule mémoire (case) : C’est la plus petite quantité d’information adressable.
Ces dernières années, la plupart des fabricants se sont mis d’accord sur une cellule
de 8 bits, c’est à dire octet. Les octets sont eux-mêmes regroupés en mots.

Le mot (Word) : C’est un groupement de bits constituant une unité d’information
adressable en mémoire centrale (ex : 8, 12, 16, 24, 32, 36, 48, 60, 64, bits, ...),
c'est à dire que toute opération de lecture ou d'écriture porte sur un mot mémoire.
4.2. Organisation interne
Une mémoire est formée d'un certain nombre de cellules, ou cases, contenant
chacune une information. Chaque cellule a un numéro qui permet de la référencer et
de la localiser. Ce numéro est son adresse. Avec une adresse de n bits il est possible
de référencer directement au plus 2n cellules.
La capacité d'une mémoire est le nombre total de cellules qu'elle contient. Elle
s'exprime en nombre de bits, d'octets (bytes) ou de mots (words). Compte tenu de
l'adressage binaire, les capacités des mémoires s'expriment en puissances de deux ou
en multiples de 210 = 1024. La table 1 vu précédemment explicite les unités
utilisées.
Remarque:
Un ordinateur à mots de 16 bits a 2 octets par mot.
Un ordinateur à mots de 32 bits a 4 octets par mot.
3
4.3. Organisation externe (Connexions aux bus)
Les mémoires sont connectées à un bus adresses de n bits, un bus données de p bits
et des lignes de commandes (figure.2). Pour pouvoir communiquer avec le
microprocesseur, on va relier leurs bus ensembles. Pour cela, il est nécessaire d'avoir
adéquation entre le nombre de bits des bus de données et d'adresses de la mémoire et
du microprocesseur.
Figure 2: Organisation externe de la mémoire
Sur la figure 2 apparaît une broche de validation. Elle permet de sélectionner un
boîtier mémoire parmi plusieurs, d'où son appellation : "chip select"
Dans le cas général, il existe plusieurs boîtiers mémoire sur la carte, tous branchés
sur le même bus données. Dans ce cas, il est nécessaire de construire un signal qui
permettra à un seul boîtier d'accéder au bus données. Ce signal est appelé CS (chip
select) sélection de boîtier ou CE (chip enable) validation de boîtier. Il faut créer
autant de CS qu'il y a de boîtiers.
4.4. Comportement temporel
Sur chaque mémoire, on trouve les broches suivantes : RD, RW et CS. C'est le
microprocesseur qui gère ces signaux de la manière suivante :
Chronogramme de lecture/écriture.

Le microprocesseur positionne son bus adresses sur la case mémoire qu'il
veut lire ou écrire.

Les validations de boîtier CSi sont alors réalisées.

Le microprocesseur positionne alors sa broche lecture RD ou écriture WR
pour indiquer à la mémoire le moment où elle doit mettre l'information sur le
bus de données.

Le temps que met la mémoire pour le faire s'appelle le temps d'accès de la
mémoire.

Tous les signaux sont séquencés par une horloge. Le microprocesseur n'agit
que sur les fronts d'horloge.
4
5. Technologie
Nous allons nous intéresser aux mémoires les plus utilisées dans un microordinateur, les mémoires à accès aléatoire. Dans celles-ci, en connaissant l'adresse de
la ou des cases mémoire, on peut accéder directement à l'information.
On distingue deux types principaux de mémoires à accès aléatoire : les mémoires
vives et les mémoires mortes.
Les mémoires vives sont en général volatiles : elles perdent leurs informations en cas
de coupure d'alimentation. Certaines d'entre elles, ayant une faible consommation,
peuvent être rendues non volatiles par l'adjonction d'une batterie.
Le contenu des mémoires mortes est écrit par le fabricant ou par l'utilisateur.
5.1. Les mémoires vives
Les mémoires vives les plus utilisées actuellement sont les mémoires RAM (Random
Acces Memory : mémoire à accès aléatoire). Il existe deux grandes familles de
mémoires RAM:

Les RAM statiques : Un bit mémoire d'une RAM statique (SRAM : static
RAM) est composé d'une bascule. Tant que le circuit est alimenté,
l'information est sauvegardée. Chaque bascule contient 6 transistors.

Les RAM dynamiques : Une RAM dynamique stocke un bit d'information
sous la forme d'une charge. Elle utilise pour cela l'effet capacitif de certaines
fonctions des semi-conducteurs (condensateur et transistor en technologie
MOS). Cependant, la charge stockée dans le condensateur élémentaire fuit et
au bout de quelques millisecondes, elle est presque entièrement perdue.
Pour préserver cette information, il faut la rafraîchir toutes les 2 ms.
Avantage: Une Cellule mémoire d'une RAM dynamique occupe 4 fois
moins de place que celle d'une RAM statique.
Inconvénients: il faut réaliser une logique de rafraîchissement sur la carte et
le rafraîchissement retarde les accès à la mémoire (1 à 5%).
 Les différents types de mémoires dynamiques:
On distingue deux générations de mémoires dynamiques, la première génération est
dite mémoires asynchrone composée par la mémoire FPM et EDO (processeur 386,
486 et pentium d’Intel). La seconde génération est dite mémoires synchrones,
composée par la SDRAM, RAMBUS (ou DR-SDRAM), VC-SDRAM(ou VCM),
DDR-SDPM...
C’est la façon dont communiquent le processeur et la mémoire qui détermine si la
mémoire est synchrone ou asynchrone.

Les mémoires asynchrones
Quand le processeur fait un accès à ce type de mémoires (écriture ou lecture), il doit
attendre que celle ci ait terminé son travail, pour faire un autre accès. La mémoire
asynchrone génère des Wait-States (temps d’attente), la raison est que le processeur
ne sait pas quand l’information sera disponible par la mémoire pour être sur de
l’avoir, il n’a comme solution que d’attendre que la mémoire la lui transmette. S’il
ne le faisait pas, il pourrait la manquer et cela provoquerait des erreurs.
Parmi les mémoires asynchrones les plus commercialisées, on trouve:
5
 FPM (Fast Page Mode) : c’est une amélioration du mode de fonctionnement des
anciennes DRAM, permettant d’accéder à toute une rangée de cellules qui forme
une page , ainsi, si la prochaine adresse mémoire recherchée concerne la même
page, le contrôleur mémoire n’a pas besoin de répéter la phase de recherche de
cette rangée mais uniquement à indiquer la valeur de la colonne.
 EDO (Extended Data Out) : dite aussi HPM DRAM (Hyper Page Mode DRAM)
est en fait composée de la même manière que la traditionnelle DRAM mais on a
ajouté aux entrées des rangées de bascules qui autorisent le chargement d’une
nouvelle adresse en mémoire sans avoir à attendre le signal de validation de la
lecture. La période d’attente entre deux lectures (wait-states) est ainsi minimisée
et on peut donc faire fonctionner à une fréquence de 50 MHZ contre 25 MHZ
pour la DRAM traditionnelle. Ce type de mémoires offre un temps d’accès allant
de 45 à 70 ns.
 BEDO (Burst EDO) : ce type de mémoire non standardisé permet d’atteindre 66
MHZ, mais ce mode n’était supporté que par peu de chipsets et a quasiment
disparu bien qu’elles ont apporté des solutions techniques intéressantes et proches
de celles des SDRAM.

Les mémoires synchrones
Lorsque le processeur fait un accès à la mémoire, il peut continuer à travailler en
attendant la réponse, par exemple faire un autre accès. Ce type de mémoire ne génère
pas de wait-states. Pour synchroniser la mémoire, on utilise deux composants qu’on
place entre la mémoire et le processeur.
La mémoire est reliée à une horloge, celle ci cadence donc les échanges entre la
mémoire et le processeur. Grâce à cette horloge, le processeur sait quand
l’information sera disponible car la cadence de sortie des informations, en
provenance de la mémoire est régulière.
La mémoire et le processeur Sont reliés à un buffer qui stocke les demandes d’accès
à la mémoire provenant du microprocesseur.
C’est grâce à l’utilisation conjointe d’un buffer et d’une horloge que le processeur
n’a pas à attendre que la mémoire ait terminé son travail pour continuer à travailler.
Parmi les mémoires synchrones on distingue :
 SDRAM (Synchronous DRAM) : en très forte évolution, échange ses données
avec le processeur en se synchronisant avec ce dernier ce qui permet d’éviter les
états d’attente, cette technologie de mémoire est en train de connaître une
importante progression du fait des temps d’accès autorisés de l’ordre de 10 à 12
ns, allant de paire avec une baisse non négligeable des coûts.
 RDRAM : c’est une DRAM de conception originale développée par la société
RAMBUS qui nécessite toutefois des contrôleurs mémoires spécifiques lui
permettant d’être environ 10 fois plus rapide qu'une DRAM classique. Cependant,
du fait de l’usage de contrôleurs spécifiques, son emploi est limité actuellement â
des ordinateurs de jeu ou quelques cartes graphiques.
 SGRAM: Synchronous Graphics RAM est une extension de la SDRAM
également destinée à équiper les cartes graphiques. Elle permet d’accéder aux
données aussi bien par bloc qu’individuellement ce qui réduit le nombre d’accès
en lecture écriture et améliore les performances. La mémoire d’une carte
6
graphique doit contenir 2 types d’information au moins : une copie de l’affichage
écran, gérée par le RAMDAC et des données tel que les textures gérées par le
processeur graphique. La particularité de la SGRAM est de permettre son accès
simultanément au RAMDAC et au processeur graphique.
 DDR SDRAM: Samsung, Nec et Toshiba se sont associés pour mettre au point un
nouveau standard dit DDR (Double Data Rate) qui doublerait le taux de transfert
des actuelles SDRAM. La SDRAM deviendrait donc DDR SDRAM ou SDRAM
II et offrirait des taux de transfert atteignant 1,03 GO/s. elle est en effet capable de
lire les données aussi bien sur le front montant que sur le front descendant du
signal d’horloge. Ce qui permet de doubler son taux de transfert.
5.2. Les mémoires caches :
La mémoire cache (réalisé en SRAM: plus rapide et plus petite taille ) ou
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.
Le principe de l’antémémoire apporte une solution au problème de la trop grande
différence de vitesse entre le CPU et la mémoire centrale. La solution consiste à
insérer entre les deux une mémoire très rapide mais pas très grande qui va contenir
les informations (instructions, données) dont a besoin le CPU.
L’antémémoire est une mémoire associative, ce qui signifie que les informations ne
sont pas accessibles par une adresse, ce qui est le cas dans la mémoire centrale, mais
sont adressables par le contenu. Chaque case d’une mémoire associative comprend
deux champs correspondant à la clé et à l’information associée à cette clé. Dans le
cas de l’antémémoire, la clé est constituée par l’adresse en mémoire centrale de
l’instruction ou la donnée cherchée et l’information associée est constituée de
l’instruction ou la donnée elle-même. Il faut noter que la recherche par clé dans la
mémoire associative ne s’effectue pas de manière séquentielle, mais en parallèle sur
toutes les cases de la mémoire associative. En un seul accès, on sait si l’instruction
cherchée se trouve ou non dans l’antémémoire.
La mémoire cache doit être suffisamment petite pour que son coût soit proche de
celui d’une mémoire principale, et que le temps d’accès soit le plus intéressant
possible, et suffisamment grand pour ne pas avoir à trop accéder à la mémoire
principale. Des études ont montré que les plus efficaces ont une taille inférieure à
512K mots, mais leur performance dépend beaucoup de la nature des applications
traitées par la machine.
 La mémoire cache de premier niveau
Le processeur, lorsqu’il fait tourner une application, ne peut traiter qu’une portion
limitée de code à la fois et de ce fait n’a certainement pas besoin de tout ce qui est
présent en mémoire vive. D’autre part, lorsqu’il traite une portion de code, il y a de
fortes chances pour que la fraction de code dont il ait besoin juste après soit très
voisine de celle qu’il est en train de traiter. Aussi le processeur dispose-t-il en son
sein d’une mémoire de faible capacité (de l’ordre de quelques Ko: 8 Ko pour un 486,
16 Ko pour un Pentium, 32 Ko pour un pentium MMX) mais d’accès ultra rapide: de
l’ordre de la nanoseconde contre 30 à 80 nanosecondes pour la mémoire vive.
7
Cette mémoire, appelée la mémoire cache de premier niveau, stocke en son sein les
portions de code qui ont la plus forte probabilité d’être demandées par le processeur
au prochain appel de données. D’autre part, il est composé de deux parties de taille
égale, l’une stocke les instructions des programmes, l’autre les données des
programmes. Les autres niveaux de la mémoire cache ne font pas cette distinction.
 La mémoire cache de second niveau
Elle est placée entre la mémoire cache de premier niveau et la mémoire vive et
fonctionne sur le même principe que la mémoire cache de premier niveau, si ce n’est
qu’elle est de capacité plus importante (256 Ko ou 512 Ko voir 1Mo) et d’accès
moins rapide (de l’ordre de 6 nanosecondes).
Ce cache a subit de nombreuses évolutions, et se retrouve aujourd'hui intégré dans le
microprocesseur (sur la carte processeur). Toutefois, s’il est intégré, il n’est pas
imbriqué comme le cache L1. Cela veut dire que changer la taille du cache L1
implique souvent une modification de l’architecture du processeur, ce n’est pas le
cas du cache L2. Ceci permet de proposer des micro-processeurs disposant de
différentes tailles de cache L2.
 La mémoire cache de niveau 3
Si ce type de cache est aujourd’hui courant sur des machines haut de gamme (SUN,
HP, IBM, ALPHA...), dans le monde des PC, il n’a existé qu'un seul exemple de
microprocesseur utilisant une mémoire cache de niveau 3. Il s’agit du K6 et l’athlon
de la société AMD. Jusqu’à présent, ce type de cache a toujours été composé de
mémoire SRAM et implanté sur la carte mère. Sa taille varie de 1 à 8 MO (valeur
généralement constatée, mais il n’y a pas de limitation technique).
Figure 3: Les trois niveaux de cache (L:Level)
CPU
486 DX4
Pentium
Pentium Pro
Pentium II
Pentium III
Vitesse du processeur
100 Mhz
233 Mhz
200 Mhz
300 Mhz
400 Mhz
Vitesse du cache L1
100 Mhz
233 Mhz
200 Mhz
300 Mhz
400 Mhz
Vitesse du cache L2
33 Mhz
66 Mhz
200 Mhz
150 Mhz
200 Mhz
Vitesse carte mère
33 Mhz
66 Mhz
66 Mhz
66 Mhz
100 Mhz
Vitesse mémoire vive
16 Mhz
16 Mhz
16 Mhz
16 Mhz
100 Mhz
Table 2: vitesse des mémoires cache L1 et L2 par rapport aux autres composants
5.3. Les mémoires mortes
Il s’agit des mémoires qui gardent en permanence des données ou dont les données
sont très rarement modifiées. Dans un contexte d’utilisation normale, les données
8
inscrites dans une mémoire morte sont inaltérables, elles peuvent seulement être
lues. Dans certains types de mémoires Mortes, les données sont introduites durant le
procédé de fabrication, dans d’autres cas, les données peuvent être introduites
électriquement.
On donne le nom de Programmation ou de Grillage au processus d’introduction des
données dans une mémoire morte.
 ROM (Read Only Memory): circuit intégré dont le contenu est déterminé une fois
pour toute au moment de la fabrication.
Le coût relativement élevé de leur fabrication impose une fabrication en grandes
séries, ce qui complique la mise à jour de leur contenu. Ces mémoires sont
utilisées pour stocker les parties bas-niveau du système d'exploitation de
l'ordinateur (BIOS du PC par exemple).


Avantages :
Non volatile
Coût faible par grandes quantités (> 1000)
Mémoire très rapide
Inconvénients :
Écriture impossible
Modification impossible (toute erreur est fatale).
Délai de fabrication: 3 à 6 semaines
Obligation de grandes quantités
 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.


Avantages :
Non volatile et vitesse élevée comme pour les ROM
Programmation en quelques minutes
Coût relativement faible
Compatibilité du brochage avec les ROM
Inconvénients :
Écriture impossible
Modification impossible (toute erreur est fatale).
 EPROM (Erasable PROM) : Les mémoires EPROM sont des PROM
reconfigurables : il est possible de les effacer pour les reprogrammer.
L'effacement se produit en exposant le boitier à un fort rayonnement ultraviolet.
Pour cela, le boitier est percé d'une fenêtre transparente permettant l'exposition du
circuit intégré.


Avantages :
Reprogrammable et non Volatile
Inconvénients :
Coût plus élevé
Plus lente
Ecriture Impossible
9
 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.


Avantages :
Comportement d'une RAM non Volatile
Inconvénients :
Coût très élevé Très lente
 FLASH EPROM : 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.
Le temps d'écriture d'un bloc de mémoire FLASH est beaucoup plus grand que
celui d'écriture d'une mémoire RAM, mais du même ordre que celui d'un disque
dur. L'accès en lecture à une EEPROM est à peu près aussi rapide qu'a une
DRAM. On utilise donc parfois des cartes de mémoire FLASH comme mémoire
secondaires, par exemple pour les ordinateurs portables.
11
Téléchargement