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 : unité élémentaire d’information (0 ou 1) L’ ou : paquet de 8 (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 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 1024 kibit 10002 Mbit 10242 Mibit mebibit 10003 Gbit 10243 Gibit 10004 Tbit 10244 Tibit 10005 Pbit 10245 Pibit 10006 Ebit 10246 Eibit 10007 Zbit 10247 Zibit zebibit 10008 Ybit 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 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