Chap 3 Mémoires
Chap 3 Mémoires
Chap 3 Mémoires
3.1 Définition :
On appelle mémoire tout dispositif électronique capable de stocker et de restituer des
informations. Apres le microprocesseur, la mémoire est sans doute le composant le plus
important dans un ordinateur. Ainsi, la quantité et le type de mémoire vont influencer
grandement la performance globale de l’ordinateur. Par ailleurs, la stabilité et la fiabilité de
l’ordinateur dépendent de la qualité des modules de mémoires ; une mémoire de mauvaise
qualité va souvent provoquer des pannes aléatoires ou des blocages systématiques.
Le nombre de fils d’adresses d’un boîtier mémoire définit le nombre de cases mémoire que
comprend le boîtier. Le nombre de fils de données définit la taille des données que l’on peut
sauvegarder dans chaque case mémoire.
En plus du bus d’adresses et du bus de données, un boîtier mémoire comprend une entrée de
commande qui permet de définir le type d’action que l’on effectue avec la mémoire
(lecture/écriture) et une entrée de sélection qui permet de mettre les entrées/sorties du boîtier
en haute impédance.
On peut donc schématiser un circuit mémoire par la figure suivante où l’on peut distinguer :
Figure 1
- les entrées d’adresses
- les entrées de données
- les sorties de données
- les entrées de commandes :
• une entrée de sélection de lecture ou d’écriture. (R/W)
• une entrée de sélection du circuit. (CS)
Remarque :
Les entrées et sorties de données sont très souvent regroupées sur des bornes
bidirectionnelles.
− Capacité : qui représente le nombre d'informations qu'il est possible de stocker. Elle est
exprimée en octets (bytes) ou en mots de 8, 16 ou 32 bits.
− Format des données : c’est le nombre de bits que l’on peut mémoriser par case mémoire.
On dit aussi que c’est la largeur du mot mémorisable.
− Mode d’accès : Il s’agit de la manière de retrouver une information, d’accéder à un mot
mémoire. Ex : Accès aléatoire, accès par contenu, accès séquentiel, accès direct….
− Le temps d’accès : c’est le temps qui s'écoule entre l'instant où a été lancée une opération
de lecture/écriture en mémoire et l'instant où la première information est disponible sur le bus
de données.
− Le temps de cycle : il représente l'intervalle minimum qui doit séparer deux demandes
successives de lecture ou d'écriture.
− Le débit : c’est le nombre maximum d'informations échangé) par unité de temps.
3.3 Classification des mémoires à semi-conducteur
Les mémoires à semi-conducteur peuvent êtres classée en deux catégories comme l’indique la
figure 2 selon la technologie utilisée :
Figure 2
– Les mémoires statiques sont à base de bascules, elles possèdent un faible taux d’intégration
mais un temps d’accès rapide (Utilisation pour les mémoires cache). Les deux technologies
utilisées pour construire les mémoires vives statiques sont TTL ("Transistor Transistor
Logic") ou logique de transistor à transistor ; et CMOS ("Complementary Metal Oxyde
semiconductor") ou semi-conducteur métal-oxyde complémentaire.
.
Figure 3
Dans une mémoire RAM statique, chaque bit d'information est mémorisé dans une bascule à
transistors qui nécessite au moins deux transistors. En réalité, pour que cette bascule soit
adressable, le schéma de chaque cellule mémoire se complique un peu et se présente sous la
forme indiquée figure 3.
Les transistors T3, T4, T5 et T6 forment la bascule ; le transistor T1 sert à sélectionner la
mémoire pour y écrire une donnée, alors que le transistor T2 sert à sélectionner la cellule pour
lire son contenu.
La mémoire statique nécessite donc 6 transistors par bit et s’avère très coûteuse en pratique,
même si elle est la plus rapide.
Les bascules garantissent la mémorisation de l'information aussi longtemps que l'alimentation
électrique est maintenue sur la mémoire.
On l’utilise généralement pour la mémoire cache.
Figure 5
3.3.1.4 Structure physique interne d’une mémoire centrale
Les entités constituant la mémoire centrale sont :
– RAM (Registre d’adresse Mémoire) : ce registre stock l’adresse du mot à lire ou a écrire.
– RIM (Registre d’information mémoire) : stock l’information lu à partir de la mémoire ou
l’information à écrire dans la mémoire.
– Décodeur : permet de sélectionner un mot mémoire.
– R/W : commande de lecture/écriture, cette commande permet de lire ou d’écrire dans la
mémoire (si R/w=1 alors lecture sinon écriture)
• Bus d’adresses de taille k bits
• Bus de données de taille n bits
Figure 5
Figure 6
Chaque cellule y est matérialisée avec uniquement une ligne de sélection et une ligne de
sortie. Si la ligne de sélection est à "0", la cellule est "isolée" de la sortie. Si la ligne de
sélection est à "1", l'information mémorisée se retrouve sur la ligne de sortie.
La figure 6 correspond au mécanisme de lecture, mais le principe est également valable en
écriture. En fonction de l'adresse chargée dans le registre RAM, le décodeur recevant la
k
même information que celle de la RAM active une et une seule des 2 lignes. Ainsi seules les
cellules (mot mémoire) correspondant à l'adresse demandée sont sélectionnées et l'information
mémorisée est alors disponible en sortie.
Exemple :
Dans une mémoire la taille du bus d’adresses K=14 et la taille du bus de données n=4.
Calculer la capacité de cette mémoire ?
Figure 7
3.3.1.5.2 Augmentation du nombre de mots
k
De même la figure suivante montre la réalisation d'un bloc de 4 x 2 mots de n bits à l'aide de
k
4 boîtiers de 2 x n bits. Il nous faut k+2 lignes d'adresse. Les k bits de bas poids de l'adresse
sont appliqués simultanément sur les 4 boîtiers. Les deux bits de haut poids attaquent un
décodeur à quatre sorties. Chacune de ces quatre lignes permet de sélectionner un boîtier
(entrée de validation du boîtier : CS). Un seul boîtier est alors connecté aux lignes de sortie.
Figure 8
3.3.1.6.1 Problème ?
On veut réaliser une mémoire de capacité C, mais nous disposons uniquement de boîtiers
(des circuits) de taille inférieure ?
Figure 9
3.3.1.6.3 Solution
Soit M une mémoire de capacité C, tel que m est le nombre de mot et n la taille d’un mot.
Soit M’ un boîtier de capacité C’, tel que m’ le nombre de mot et n’ la taille d’un mot. On
suppose que C > C’ (m >= m’, n >=n’).
– Quel est le nombre de boîtiers M’ nécessaire pour réaliser la mémoire M ?
Pour connaître le nombre de boîtiers nécessaire, il faut calculer les deux facteurs suivants :
– P =m/m’
– Q=n/n’
• P : permet de déterminer de nombre de boîtiers M’ nécessaire pour obtenir le nombre de
mots de la mémoire M (extension lignes).
• Q : permet de déterminer le nombre de boîtier M’ nécessaire pour obtenir la taille de mot de
la mémoire M (extension mots ou extension colonnes).
• P.Q donne le nombre total de boîtiers nécessaire pour réaliser la mémoire M.
De même, comme nous l’avons mentionné plus haut, pour sélectionner les boîtiers on utilise
les bits de poids forts d’adresses. Si P est le facteur d’extension lignes alors on prend k bits
tel que P=2k. Les autres bits d’adresses restants sont utilisés pour sélectionner un mot dans un
boîtier.
Figure 10
Figure 11
Figure 12
Remarque :
Les adresses à l’intérieur d’un module sont séquentiels (successives). Il est possible qu’un
module soit réalisé avec des boîtiers de taille inférieure (il faut calculer les facteur d’extension
lignes et colonnes)
Exemple : une mémoire entrelacée avec un degré d’entrelacement égale à 4, un bloc est de
taille de 4 mots
Exemple
• Réaliser une mémoire de 64 mots de 8 bits organisé en deux modules entrelacé,
l’entrelacement se fait à l’intérieur (D=2). En utilisant des circuits (boîtiers) de 16 mots de 8
bits.
Remarque :
Voici un historique de quelques DRAM qui ont été ou sont utilisées dans les PC :
• La DRAM FPM (Fast Page Mode, 1987) : Elle permet d'accéder plus rapidement à des
données en introduisant la notion de page mémoire. (33 à 50 Mhz)
• La DRAM EDO (Extended Data Out, 1995) : Les composants de cette mémoire permettent
de conserver plus longtemps l'information, on peut donc ainsi espacer les cycles de
rafraîchissement. Elle apporte aussi la possibilité d’anticiper sur le prochain cycle mémoire.
(33 à 50 Mhz)
• La DRAM BEDO (Bursted EDO) : On n'adresse plus chaque unité de mémoire
individuellement lorsqu'il faut y lire ou y écrire des données. On se contente de transmettre
l'adresse de départ du processus de lecture/écriture et la longueur du bloc de données (Burst).
Ce procédé permet de gagner beaucoup de temps, notamment avec les grands paquets de
données tels qu'on en manipule avec les applications modernes. (66 Mhz)
Lors d’un accès mémoire, le système de gestion de mémoire cache doit déterminer si
l’information désirée se trouve dans le cache. Si elle s’y trouve, on n’a pas besoin d’aller en
mémoire centrale et on obtient l’information à la vitesse du cache, ~ 5 ns.
Si elle ne s’y trouve pas, on la copie de la mémoire centrale vers le cache, de sorte qu’elle s’y
trouvera la prochaine fois.
Figure 13
Comme son coût est moindre et que sa densité d’intégration est supérieure, la mémoire
dynamique est utilisée pour la mémoire principale de l’ordinateur. Par contre, la mémoire
statique est utilisée pour les caches en raison de sa plus grande vitesse.
Principe
Extérieurement une mémoire morte ressemble à un bloc mémoire sans ligne d'entrée ni
commande d'écriture. Ce système peut se restreindre à k lignes d'adresse, n lignes de sortie et
un signal de sélection du circuit.
Figure 13
Ces mémoires, contrairement aux RAM, ne peuvent être que lue. L’inscription en mémoire
des données reste possible mais est appelée programmation. Suivant le type de ROM, la
méthode de programmation changera. Il existe donc plusieurs types de ROM :
3.3.2.1 LA ROM
Elle est programmée par le fabricant et son contenu ne peut plus être ni modifié, ni effacé par
l'utilisateur.
- Structure :
Cette mémoire est composée d'une matrice dont la programmation s’effectue en reliant les
lignes aux colonnes par des diodes. L'adresse permet de sélectionner une ligne de la matrice et
les données sont alors reçues sur les colonnes (le nombre de colonnes fixant la taille des mots
mémoire).
- Programmation :
L'utilisateur doit fournir au constructeur un masque indiquant les emplacements des diodes
dans matrice.
- Avantages :
• Densité élevée
• Non volatile
• Mémoire rapide
- Inconvénients :
• Écriture impossible
• Modification impossible (toute erreur est fatale).
• Délai de fabrication (3 à 6 semaines)
• Obligation de grandes quantités en raison du coût élevé qu'entraîne la production du
masque et le processus de fabrication.
3.3.2.2 La PROM
C’est une ROM qui peut être programmée une seule fois par l'utilisateur (Programmable
ROM). La programmation est réalisée à partir d’un programmateur spécifique.
- Structure :
Les liaisons à diodes de la ROM sont remplacées par des fusibles pouvant être détruits ou des
jonctions pouvant être court-circuitées.
- Programmation :
Les PROM à fusible sont livrées avec toutes les lignes connectées aux colonnes (0 en chaque
point mémoire). Le processus de programmation consiste donc à programmer les
emplacements des ‘’1’’ en générant des impulsions de courants par l’intermédiaire du
programmateur ; les fusibles situés aux points mémoires sélectionnés se retrouvant donc
détruits.
Le principe est identique dans les PROM à jonctions sauf que les lignes et les colonnes sont
déconnectées (1 en chaque point mémoire). Le processus de programmation consiste donc à
programmer les emplacements des ‘’0’’ en générant des impulsions de courants par
l’intermédiaire du programmateur ; les jonctions situées aux points mémoires sélectionnés se
retrouvant court-circuitées par effet d’avalanche.
- Avantages :
• idem ROM
• Claquage en quelques minutes
• Coût relativement faible
- Inconvénients :
• Modification impossible (toute erreur est fatale).
•
3.3.2.3 L’EPROM ou UV-EPROM
Pour faciliter la mise au point d'un programme ou tout simplement permettre une erreur de
programmation, il est intéressant de pouvoir reprogrammer une PROM. La technique de
claquage utilisée dans celles-ci ne le permet évidemment pas. L'EPROM (Erasable
Programmable ROM) est une PROM qui peut être effacée.
- Structure
Dans une EPROM, le point mémoire est réalisé à partir d’un transistor FAMOS (Floating gate
Avalanche injection Metal Oxyde Silicium). Ce transistor MOS a été introduit par Intel en
1971 et a la particularité de posséder une grille flottante.
- Programmation
La programmation consiste à piéger des charges dans la grille flottante. Pour cela, il faut tout
d’abord appliquer une très forte tension entre Grille et Source. Si l’on applique ensuite une
tension entre D et
S, la canal devient conducteur. Mais comme la tension Grille-Source est très importante, les
électrons sont déviés du canal vers la grille flottante et capturés par celle-ci. Cette charge se
maintient une dizaine d'années en condition normale.
L’exposition d’une vingtaine de minutes à un rayonnement ultraviolet permet d’annuler la
charge stockée dans la grille flottante. Cet effacement est reproductible plus d’un millier de
fois. Les boîtiers des EPROM se caractérisent donc par la présence d’une petite fenêtre
transparente en quartz qui assure le passage des UV. Afin d’éviter toute perte accidentelle de
l’information, il faut obturer la fenêtre d’effacement lors de l’utilisation.
- Avantages :
• Reprogrammable et non Volatile
- Inconvénients :
• Impossible de sélectionner une seule cellule à effacer
• l’écriture est beaucoup plus lente que sur une RAM. (environ 1000x)
3.3.2.4 L’EEPROM
L’EEPROM (Electically EPROM) est une mémoire programmable et effaçable
électriquement.
Elle répond ainsi à l’inconvénient principal de l’EPROM.