Cours de Systèmes Logiques 1 Mémoires : Types, tailles, utilisation
Etienne Messerli & Yann Thoma
Reconfigurable and Embedded Digital Systems Institute Haute Ecole d’Ingénierie et de Gestion du Canton de Vaud
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Septembre 2019
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 1 / 38
Plan
1 Introduction
2 Types de mémoires
3 PROM
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 2 / 38 Introduction Caractéristique des mémoires
But : conserver des informations 3 modes de fonctionnement : Accès en lecture Read pour obtenir l’information enregistrée dans une case spécifiée (adresse) Accès en écriture Write pour enregistrer une information dans une case spécifiée (adresse) Aucun accès à la mémoire (maintien)
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 3 / 38
Introduction Les unités des mémoires
Le bit : unité élémentaire d’information (0 ou 1) L’octet ou byte : paquet de 8 bits (vecteur, nombre), que l’on peut manipuler simultanément. On l’associe parfois à un caractère (code ASCII) Le mot ou word : paquet de bits que l’on peut manipuler simultanément (généralement 16, 32 ou 64 bits) Poids des bits dans un nombre entier : Le bit de poids fort d’un nombre est le bit de gauche en anglais : MSB pour most significant bit Le bit de poids faible d’un nombre est le bit de droite en anglais : LSB pour least significant bit
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 4 / 38 Introduction Les unités des mémoires
Kilo, paquet de 1’024 éléments (210) 1K byte = 1024 bytes Méga, paquet de 1’048’576 éléments, (220) 1M byte = 1024 K bytes = 1’048’576 bytes Giga, paquet de 1’073’741’824 éléments (230) 1G byte = 1024 M bytes = 1’048’576 K bytes Tera, paquet de 1’099’511’627’776 éléments (240) 1T byte = 1024 G bytes = 1’048’576 M bytes Peta ... Convention pour l’indication de bit ou byte : 1Kb : 1 kilo bits 1KB : 1 kilo bytes Oui, mais ...
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 5 / 38
Introduction Unités précises...
Décimal Binaire Valeur Métrique Valeur IEC 1000 kbit kilobit 1024 kibit kibibit 10002 Mbit megabit 10242 Mibit mebibit 10003 Gbit gigabit 10243 Gibit gibibit 10004 Tbit terabit 10244 Tibit tebibit 10005 Pbit petabit 10245 Pibit pebibit 10006 Ebit exabit 10246 Eibit exbibit 10007 Zbit zettabit 10247 Zibit zebibit 10008 Ybit yottabit 10248 Yibit yobibit
Les disques durs sont vendus en décimal Les mémoires sont en binaire
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 6 / 38 Types de mémoires Les types de mémoires
Les mémoires "vives" Informations perdues à la mise hors tension Lecture et écriture en cours d’utilisation Les mémoires "mortes" Informations conservées à la mise hors tension Lecture en cours d’utilisation Ecriture (« programmation ») durant la fabrication de la mémoire ou Ecriture particulière durant fonctionnement du système qui la contient, implique un effacement !
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 7 / 38
Types de mémoires Les types de mémoires
Mémoires volatiles (vives) RAM (random-access memory) : mémoire vive, volatile SRAM static random access memory DRAM dynamic random access memory Mémoires non-volatiles (mortes) ROM† read-only memory PROM† programmable read-only memory EPROM ou UV-EPROM erasable programmable read-only memory EEPROM ou E2PROM electrically EPROM Flash memory FeRAM, MRAM, PRAM
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 8 / 38 Types de mémoires Les types de mémoires volatiles
RAM (random-access memory) : mémoire vive, volatile SRAM static random access memory : http://en.wikipedia.org/wiki/Static_random-access_memory L’information est conservée dans des transistors. Elle est maintenue tant que la tension d’alimentation est présente DRAM dynamic random access memory http://en.wikipedia.org/wiki/Dynamic_random-access_memory L’information est conservée dans un condensateur et maintenue tant que la tension d’alimentation est présente. Il faut recharger (rafraîchir) périodiquement les cellules de mémoire. SDRAM Synchronous dynamic RAM DDR SDRAM Double data rate Synchronous dynamic RAM DDR 100MHz, DDR2 133MHz, DDR3 166MHz, DDR4 200MHz GRDDR : DDDR dédiée aux cartes graphiques HMC : Hybrid Memory Cube
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 9 / 38
Types de mémoires Evolution des mémoires (chip)
Source : http://thenextwavefutures.wordpress.com/2009/08/02/the-end-of-moores-law/
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 10 / 38 Types de mémoires Evolution des mémoires (chip)
Source : DRAM refresher : Problems the technology is set to encounter, Chris Edwards, site newelectronics voir :
www.newelectronics.co.uk/electronics-technology/dram-refresher-problems-the-technology-is-set-to-encounter/34922/
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 11 / 38
Types de mémoires Caractéristique des SDRAM
SDRAM SDRAM PC100 à 100MHz, PC 133 à 133MHz DDR1, 2 et 3 LPDDRx est basé sur la même technologie mais pour du mobile ⇒ Low Power GDDRx est basée sur la DDR3 et est associée au processeur graphique (donc pas au CPU)
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 12 / 38 Types de mémoires Caractéristique des SDRAM
SDRAM SDRAM PC100 à 100MHz, PC 133 à 133MHz DDR1, 2 et 3
Type Data bus Bank Bus clock Data rate Max capacity (bits) (MHz) (MT/s) (Gbits) DDR 64 1 100 to 200 200 to 400 1 DDR 64 2 200 to 533 400 to 1066 4 DDR 64 4 400 to 1066 800 to 2133 8
Transfert sur les deux flancs du clock Data rate = 2 * Bus clock A chaque évolution, le nombre de rangée de circuits double. Dès lors le débit double.
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 13 / 38
Types de mémoires HMC : mémoire série
La mémoire Hybrid Memory Cube (HMC) est une mémoire constituée de couches empilées de mémoire de type DRAM. Cet empilement donne une troisième dimension à la mémoire (habituellement organisée sur une grille bidimensionnelle), d’où le terme cube. La partie de contrôle et la partie stockage de la mémoire sont fusionnées (habituellement, ce sont deux entités séparées sur une DRAM), d’où le terme « Hybrid »
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 14 / 38 Types de mémoires Mémoires non volatiles
ROM † : contenu définit lors de la fabrication PROM† : contenu programmable une seule fois (fusible) EPROM ou UV-EPROM : contenu programmable électriquement et effaçable avec rayons EEPROM : contenu (mot) programmable et effaçable électriquement (quelques millisecondes) Flash memory : contenu programmable électriquement mot par mot et effaçable électriquement par bloc. Type : NOR Flash, NAND Flash http://en.wikipedia.org/wiki/Non-volatile_memory
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 15 / 38
Types de mémoires Utilisation SRAM
Capacités moyenne 4Kb-128Mb Rapide jusqu’à 600 MHz pas de latence annoncé jusqu’à 1 GHz Prix élevé des circuits SRAM mémoire cache pour processeurs SRAM interne au chip, la mémoire fonctionne à la fréquence du CPU !
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 16 / 38 Types de mémoires Utilisation DRAM
Grandes capacités jusqu’à 128 Gbits Rapides : 500MHz Attention : latence importante Limitations accès (pages) Rafraichissement Mémoire centrale des ordinateurs Différents types : DRAMs asynchrones SDRAMs synchrones
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 17 / 38
Types de mémoires Utilisation mémoires Flash
NAND : 512Gbits ou + Haute capacité Contraintes : accès, correction erreur, ... Rapide en effacement et écriture NOR : 2Gbits Accès aléatoire rapide Plus lente en effacement et écriture Plus chère
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 18 / 38 Types de mémoires Utilisation mémoires Flash
NAND Utilisée dans : Clé USB SDCARD pour appareil photo SSD NOR Utilisée dans : Configuration des FPGA ou DSP Téléphones portables pour contenir l’OS
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 19 / 38
Types de mémoires Utilisation EEPROM
Petites capacités : 1Mbits Sauvegarde de paramètres Parallèle ou série Utilisé dans appareil électronique pour quelques paramètres
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 20 / 38 PROM Mémoire morte : PROM
Une mémoire morte 1 bit programmable, une seule fois, peut être réalisée avec une résistance et un fusible.
VCC VCC VCC
R R R
Sortie Sortie = '1' Sortie = '0'
Fusible
GND GND GND Avant programmation Après programmation
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 21 / 38
PROM Mémoire morte 4 × 1 bits
Fonction de sortie = somme de mintermes Un décodeur permet de sélectionner un bit (minterme) parmi les 4 Un ou-câblé peut être réalisé avec des portes à collecteur ouvert.
VCC
F u s ib le
X/Y A0 1 0 S0
A1 2 1 S1 P o rte 3 E n a b le EN 2 S2 é ta ts
3 S3
S o rtie OE
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 22 / 38 PROM Mémoire morte 4 × 2 bits
2 bits de donnée : 2 colonnes de fusibles
VCC VCC VCC VCC VCC VCC
R R R R R R
'1' '1' '1' '1' '1' '1' 'Z' 'Z' 'Z' '0' '0' '0' '0' Si-1 Si-1 Si-1 '0' '1' '0' '1' '0' '1' Si '1' '0' Si '1' '0' Si '1' '0' D0 '1' D0 '1' D0 '1'
D1 '1' FAUX D1 '1' FAUX D1 '1' FAUX
court-circuit !
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 23 / 38
PROM Mémoire morte 4 × 2 bits
Des diodes sont ajoutées pour éviter les court-circuits
VCC VCC VCC VCC
R R R R
'1' '1' '1' '1' '0' 'Z' Chemin bloqué '0' 'Z' Chemin bloqué Si-1 Si-1 '0' '1' '0' '1' Si '1' '0' Si '1' '0' D0 '1' D0 '1'
D1 '0' Juste D1 '0' Juste
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 24 / 38 PROM Mémoire morte 4 × 2 bits
VCC
F u s ib le s
X/Y A0 1 0 S0 A1 2 1 S1 E n a b le EN 2 S2 P o rte s 3 é ta ts 3 S3 D1 S o rtie s D0 OE
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 25 / 38
PROM Mémoire morte 8 × 2 bits
Une entrée d’activation du circuit Chip Select (CS) (peut aussi commander la mise sous tension des blocs internes) Une entrée de 3 bits (Address) pour sélectionner une case de la mémoire Une entrée Output Enable (OE) pour commander l’activation de la sortie de données Une sortie de 2 bits (Data) fournissant la valeur lue
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 26 / 38 PROM Mémoire morte 8 × 2 bits
Architecture de la mémoire
V C C O N
D é c o d e u r A0 S0 A d re s s e 1 x 8 s u r A1 S1 3 b its A2 S2
S3 CS EN V C C O N « C h ip S e le c t » S4
S5
S6
S7 D o n n é e D0 s u r D1 2 b its
OE « O u tp u t E n a b le »
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 27 / 38
PROM Mémoire ROM 256 × 4 bits
Capacité totale : 1024 bits Décomposée en une matrice 32 × 32 bits
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 28 / 38 PROM Extension des addresses : profondeur
Les entrées de sélection du circuit permettent d’étendre la profondeur en utilisant plusieurs circuits
M émoire 16 x 2 bits CS
A3 A2 A1 A0
M é m o ire M é m o ire CS CS 8 x 2 b its 8 x 2 b its A2 A2 A1 A1 A0 A0 D1 D1 D0 D0 OE OE
OE D1 D0
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 29 / 38
PROM Extension des données (largeur)
Il suffit d’utiliser 2 circuits en parallèle
CS M émoire 8 x 4 bits
A2 A1 A0
M é m o ire M é m o ire CS CS 8 x 2 b its 8 x 2 b its A2 A2 A1 A1 A0 A0 D1 D1 D0 D0 OE OE D3 OE D2 D1 D0
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 30 / 38 PROM Symbole CEI d’une PROM
Mémoire HM-7621, capacité 512x4
PROM HM-7621 A0 0 A1 1 A2 2 0 D0 A3 3 0 1 D1 A4 4 A 2 D2 A5 5 511 3 D3 A6 6 A7 7 A8 8
nCS CS
& OE nOE
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 31 / 38
PROM symbole CEI d’une PROM
Mémoire HM-7621, capacité 512x4 Représentation avec des bus (plus lisible)
PROM HM-7621
0 0 A8..0 .. A 3 ..0 D3..0 8 511
nCS CS & OE nOE
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 32 / 38 PROM Mémoire comme système combinatoire
Les bits d’adresse sont les entrées Les bits de donnée sont les sorties La valeur mémorisée à l’adresse x est celle qui figure dans la table de vérité pour la combinaison x des entrées
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 33 / 38
PROM Mémoire comme système combinatoire
Exemple : circuit calculant le nombre de ’1’ dans un mot de 3 bits
CBA Nb_1 N1 N0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 2 1 0 1 0 0 1 0 1 C A2 1 0 1 2 1 0 1 1 0 2 1 0 B A1 1 1 1 3 1 1 A A0 Memoire 8x2 Adresse Donnée A2 A1 A0 D1 D0 D1 N1 0 0 0 0 0 0 0 1 0 1 D0 N0 0 1 0 0 1 0 1 1 1 0 ’1’ EN 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 34 / 38 PROM Mémoire en système combinatoire
Les temps de réaction entrées/sorties sont plus grands (rapport 1 à 10 fréquent) que pour une réalisation avec des portes Les transitoires ne sont pas maîtrisables Une mémoire à n bits d’adresse permet de réaliser toutes les fonctions combinatoires à n entrées. Une mémoire à m bits de données permet de réaliser m fonctions des mêmes entrées
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 35 / 38
PROM Exercices
1 Vous disposez de plusieurs PROM de type HM-7611 (256x4) 1 Réalisez une mémoire de capacité 256x12 2 Réalisez une mémoire de capacité 1024x4 3 Réalisez une mémoire de capacité 512x8 2 Vous disposez de PROM de type HM-7649 (512x8). Dessinez le schéma permettant de réaliser une mémoire d’une capacité de 1Kx4 bits. 3 Vous disposez de PROM de type HM-7603 (32x8). Dessinez le schéma permettant de réaliser une PROM d’une capacité de 128x2 bits.
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 36 / 38 PROM Symbole PROM 256x4
Mémoire HM-7611, capacité 256x4
PROM HM-7611
0 0 A7..0 .. A 3 ..0 D3..0 7 255
nCS CS & OE nOE
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 37 / 38
PROM Symbole PROM 32x8
Mémoire HM-7603, capacité 32x8
PROM HM-7611
0 0 A4..0 .. A 7 ..0 D7..0 4 31
nCS CS & OE nOE
E. Messerli, Y. Thoma (HES-SO / HEIG-VD / REDS) Mémoires : Types, tailles, utilisation Septembre 2019 38 / 38