Introduction :
On parle de mémoire comme étant un tableau de mots (des informations) qui sont accèssibles par adresse (en général). Un disque est donc une mémoire, tout comme la banque de registres dans un processeur.
Pour une mémoire, il faut considérer :
- Interconnexions
- Chaleur (perte d'énergie)
- Coût
- Taille
- Volatilité
- Temps d'accès
- Temps de cycle
- Taux de transfert
- Fiabilité
etc.
Types de mémoires :
- disque (magnétique, optique)
- "solid state" : SRAM, DRAM, ROM, (EE)PROM, Flash PROM, Associative
On utilise une hiérarchie de mémoires (plusieurs types différents) pour tenter d'avoir une grosse mémoire rapide à faible coût.
On dit d'une mémoire qu'elle est de type RAM si on peut écrire
dans la mémoire et que le temps d'accès ne dépend
pas de l'emplacement (de l'adresse).
Une mémoire de type ROM (Read Only Memory) est une mémoire
ou on ne pas normalement écrire. Les *PROM permettent d'écrire
(lentement, nombre limité de fois), avec un procédé
spécial.
Rangement des mots en mémoire : (pages 308,309)
Les cases mémoires sont de taille fixe, par exemple 8 bits. Si on veut mettre un mot plus long, par exemple 16 bits, il faut utiliser plus d'une case mémoire. Il y a deux façons de le faire (deux ordres) : Little-Endian et Big-Endian.
Little-Endian : la partie la moins significative se trouve
à l'adresse la plus petite.
Big-Endian : la partie la plus significative se trouve
à l'adresse la plus petite.
Exemple :
On veut ranger le mot de 16 bits ABCDh (en hexadécimal) rangé
à l'adresse 0, dans une mémoire avec des cases de 8 bits.
En Little-Endian, on met CDh à l'adresse 0 et ABh à l'adresse
1; en Big-Endian, on met ABh à l'adresse 0 et CDh à l'adresse
1.
Paramètres de performance :
(table 7.2, page 311)
Symbole | Définition | Explication |
ta | Temps d'accès | Le temps pour accéder à un mot |
tc | Temps de cycle | Temps entre le début d'un accès et le début de l'accès suivant |
k | Taille de bloc | Nombre de mots par bloc |
w (oméga) | Débit | Taux de transmission des mots |
tl | Latence | Temps pour accéder au 1er mot d'une séquence |
tbl = tl + k/w | Temps d'accès de bloc | Temps pour accéder à un bloc de mots en entier |
Les transferts entre cache et mémoire principale et entre mémoire principale et disque se font par bloc de mots.
Hiérarchie de mémoire : (table 7.3, page 311)
Circuits : (section 7.2)
Conceptuellement un bit mémoire ressemble à un flip-flop
: figure 7.3, page 313. (Équivalent fonctionnel d'un bit de
SRAM)
Et on met plusieurs de ces bits ensemble : figures 7.4, 7.5.
Pour avoir des décodeurs plus petits, et mieux utiliser la surface
de la puce, on fait souvent des arrangements 2D : figures 7.6.
Dans le cas présenté, un décodeur 8-256 et un
mux 256-1 ont étés utilisés plutot que d'utiliser
un seul gros décodeur (16-65536).
Si on met plusieurs tableaux 2D, certains appels ça 2 1/2 D
: figure 7.7.
SRAM : (sections 7.2.3, 7.2.4)
SRAM pour Static RAM. C'est un type de mémoire qui garde l'information tant qu'elle est allimentée (le circuit est branché).
Circuit : figure 7.9, page 318.
Deux inverseurs sont utilisés plutot que des portes NOR.
Pour écrire, on force une certaine valeur de b (sur les
fils b et non-b), pendant qu'on active la ligne.
Pour lire, on précharge les fils b à une valeure
au milieu entre 0 et 1, puis on active la ligne.
Protocole d'interface de SRAM :
- Lecture : figure 7.10
- Écriture : figure 7.11
taa est le temps d'accès (entre l'adresse et
l'arrivée de la donnée), qui contient le temps de décodage
d'adresse, précharge et propagation de la valeur.
tw est le temps d'écriture, qui est le temps
pour décoder l'adresse et mémoriser la donnée.
DRAM : (section 7.2.5)
DRAM pour Dynamic RAM. C'est un type de mémoire qui perd tranquillement l'information, il faut donc lui "rafraichir la mémoire".
Circuit : figure 7.12, page 321.
La capacitance se décharge vite (le livre dit 4 ms). Il faut périodiquement
réécrire l'information. En fait il faut lire et réécrire
chaque case mémoire avant qu'elle perde l'information.
Pour écrire, on place les données sur le fil b
et on active la ligne.
Pour lire, on précharge le fil b et on active la ligne.
Ceci décharge la cellule mémoire et il faut donc aussi amplifier
le signal et le réécrire.
Comme la SRAM, l'organisation est 2D mais on a moins de pins d'adresse
(on utilise les mêmes pour la ligne et la colonne) : figure
7.13, page 323.
Le signal CAS (Column Address Select) est aussi utilisé comme
CS (Chip Select).
A chaque fois qu'on accède à une case mémoire, en fait une ligne complète de la mémoire se fait lire (et donc réécrire) et c'est un multiplexeur qui prend la bonne case pour la donner en sortie. Ceci a comme effet secondaire très intéressant, de rafraichir la mémoire de la ligne entière. Donc on n'a qu'à accéder chaque ligne au moins une fois par 4 ms.
Protocole d'interface de DRAM :
- Lecture : figure 7.14
- Écriture : figure 7.15