Les Memoires
RAM - ROM - Decodage d'Adresses - Extension
Architecture des Systemes a Microprocesseur
Chapitre 1 : Introduction aux Memoires
Classification et hierarchie des memoires
🎯 Objectifs du chapitre
- Definir le role d'une memoire
- Classifier les differents types de memoires
- Comprendre la hierarchie memoire
- Identifier les criteres de choix
1.1 Definition et Role
Operations fondamentales
- Ecriture (Write) : Stockage d'une information a une adresse donnee
- Lecture (Read) : Recuperation de l'information stockee
- Effacement : Remise a zero (pour certains types)
1.2 Classification des Memoires
MEMOIRES
│
┌─────────────────┴─────────────────┐
│ │
VOLATILES NON-VOLATILES
(perdent donnees (conservent donnees
sans alimentation) sans alimentation)
│ │
┌─────┴─────┐ ┌────────┴────────┐
│ │ │ │
SRAM DRAM ROM Flash
(statique) (dynamique) (lecture seule) (reinscriptible)
│
┌────────┼────────┐
│ │ │
PROM EPROM EEPROM
| Type | Volatilite | Lecture | Ecriture | Usage |
|---|---|---|---|---|
| SRAM | Volatile | Rapide | Rapide | Cache, registres |
| DRAM | Volatile | Moyenne | Moyenne | RAM principale |
| ROM | Non-volatile | Rapide | Impossible | BIOS, firmware fixe |
| PROM | Non-volatile | Rapide | 1 seule fois | Configuration |
| EPROM | Non-volatile | Rapide | Apres UV | Developpement |
| EEPROM | Non-volatile | Rapide | Electrique | Parametres |
| Flash | Non-volatile | Rapide | Par blocs | Stockage masse |
1.3 Hierarchie Memoire
PYRAMIDE DE LA HIERARCHIE MEMOIRE
▲ Vitesse
│
│ ┌───────────┐
│ │ REGISTRES │ ← Plus rapide, plus cher, plus petit
│ │ (CPU) │ ~1 ns, quelques Ko
│ └─────┬─────┘
│ ┌─────┴─────┐
│ │ CACHE L1 │ ~2-4 ns, 32-64 Ko
│ └─────┬─────┘
│ ┌─────┴─────┐
│ │ CACHE L2 │ ~10 ns, 256 Ko-1 Mo
│ └─────┬─────┘
│ ┌─────┴─────┐
│ │ CACHE L3 │ ~20-40 ns, 2-32 Mo
│ └─────┬─────┘
│ ┌─────────┴─────────┐
│ │ RAM PRINCIPALE │ ~50-100 ns, 4-64 Go
│ │ (DRAM / DDR) │
│ └─────────┬─────────┘
│ ┌─────────┴─────────┐
│ │ SSD │ ~100 µs, 256 Go-4 To
│ └─────────┬─────────┘
│ ┌─────────┴─────────┐
│ │ DISQUE DUR │ ~10 ms, 1-20 To
│ └───────────────────┘
│
└──────────────────────────────────▶ Capacite / Cout
Plus lent, moins cher, plus grand
Chapitre 2 : Caracteristiques des Memoires
Capacite, organisation, temps d'acces
2.1 Capacite Memoire
ou n = nombre de lignes d'adresse, m = largeur du mot
Unites de mesure
| Unite | Symbole | Valeur exacte (binaire) | Valeur decimale |
|---|---|---|---|
| Kilo-octet | Ko (KiB) | 210 = 1 024 octets | ≈ 1 000 o |
| Mega-octet | Mo (MiB) | 220 = 1 048 576 octets | ≈ 1 000 Ko |
| Giga-octet | Go (GiB) | 230 = 1 073 741 824 octets | ≈ 1 000 Mo |
| Tera-octet | To (TiB) | 240 octets | ≈ 1 000 Go |
2.2 Organisation Interne
ORGANISATION D'UNE MEMOIRE 8K × 8
8K mots de 8 bits = 8192 × 8 = 65 536 bits = 64 Kbits = 8 Ko
Nombre d'adresses : 8K = 8192 = 2¹³ → 13 lignes d'adresse (A0-A12)
Largeur du mot : 8 bits → 8 lignes de donnees (D0-D7)
┌─────────────────────────┐
A0 ───────│ │─────── D0
A1 ───────│ │─────── D1
A2 ───────│ │─────── D2
A3 ───────│ MEMOIRE │─────── D3
A4 ───────│ 8K × 8 │─────── D4
... │ │─────── D5
A12 ───────│ │─────── D6
│ │─────── D7
/CS ───────│ │
/OE ───────│ │
/WE ───────│ │
└─────────────────────────┘
/CS = Chip Select (selection du circuit)
/OE = Output Enable (validation des sorties)
/WE = Write Enable (autorisation d'ecriture)
2.3 Temps d'Acces
| Parametre | Symbole | Description |
|---|---|---|
| Temps d'acces | tACC | Delai entre adresse stable et donnees valides |
| Temps de cycle | tCYC | Duree minimale entre deux acces consecutifs |
| Temps de lecture | tRD | Duree de l'operation de lecture |
| Temps d'ecriture | tWR | Duree de l'operation d'ecriture |
Ordres de grandeur
- SRAM : 10-20 ns
- DRAM : 50-100 ns
- Flash : 50-100 ns (lecture), 1 ms (ecriture)
- EEPROM : 100 ns (lecture), 5-10 ms (ecriture)
2.4 Signaux de Controle
| Signal | Nom | Actif | Fonction |
|---|---|---|---|
/CS ou /CE | Chip Select / Chip Enable | Bas (0) | Selectionne le circuit memoire |
/OE | Output Enable | Bas (0) | Active les sorties (lecture) |
/WE | Write Enable | Bas (0) | Autorise l'ecriture |
R/W | Read/Write | 1=Read, 0=Write | Selection operation |
Chapitre 3 : RAM Statique (SRAM)
Structure, fonctionnement et applications
3.1 Principe de la SRAM
CELLULE SRAM (6 TRANSISTORS)
VDD
│
┌──────┴──────┐
│ │
─┴─ ─┴─
│ │ │ │
WL ─────┤ ├─────────┤ ├───── WL
│ │ │ │
─┬─ ─┬─
│ ┌──────┤
├──────┘ │
│ │
─┴─ ─┴─
│ │ │ │
│ │ │ │
─┬─ ─┬─
│ │
├─────────────┤
│ │
GND GND
│ │
BL /BL
(Bit Line) (Bit Line inverse)
WL = Word Line (selection de ligne)
BL, /BL = Bit Lines (lecture/ecriture)
Structure : 2 inverseurs en boucle = bistable
3.2 Fonctionnement
Operation de lecture
- Adresse placee sur le bus d'adresses
- Decodeur active la ligne WL correspondante
- Les transistors d'acces connectent la cellule aux BL
- Amplificateur de lecture detecte la difference BL - /BL
- Donnee disponible sur le bus de donnees
Operation d'ecriture
- Adresse et donnee placees sur les bus
- /WE active (bas)
- Drivers forcent BL et /BL aux valeurs complementaires
- La bascule prend le nouvel etat
3.3 Caracteristiques de la SRAM
Avantages
- Tres rapide (< 20 ns)
- Pas de rafraichissement
- Interface simple
- Faible consommation en veille
Inconvenients
- Couteuse
- Faible densite (6T/bit)
- Volatile
- Consommation active
Applications de la SRAM
- Memoire cache : L1, L2, L3 des processeurs
- Registres : Dans les microcontroleurs
- Buffers : Files d'attente rapides
- FPGA : Configuration et blocs RAM
3.4 Exemple : SRAM 62256 (32K × 8)
BROCHAGE SRAM 62256 (DIP-28)
┌────┐
A14 ─1 │ │ 28─ VCC
A12 ─2 │ │ 27─ /WE
A7 ─3 │ │ 26─ /CS2
A6 ─4 │ │ 25─ A8
A5 ─5 │ │ 24─ A9
A4 ─6 │ │ 23─ A11
A3 ─7 │ │ 22─ /OE
A2 ─8 │ 62 │ 21─ A10
A1 ─9 │256 │ 20─ /CS1
A0 ─10│ │ 19─ D7
D0 ─11│ │ 18─ D6
D1 ─12│ │ 17─ D5
D2 ─13│ │ 16─ D4
GND ─14│ │ 15─ D3
└────┘
Capacite : 32K × 8 = 32768 × 8 = 262 144 bits = 256 Kbits = 32 Ko
Adresses : A0-A14 (15 bits → 2¹⁵ = 32768 adresses)
Donnees : D0-D7 (8 bits)
Temps d'acces typique : 55 ns, 70 ns, 100 ns
Chapitre 4 : RAM Dynamique (DRAM)
Structure, rafraichissement et evolutions
4.1 Principe de la DRAM
CELLULE DRAM (1T-1C)
Word Line (WL)
│
│
─┴─
│ │
───┤ ├───── Bit Line (BL)
│ │
─┬─
│
═╪═ Condensateur (stockage du bit)
│
─┴─
GND
1 Transistor + 1 Condensateur par bit
→ Densite 4× superieure a SRAM
→ Mais necessite rafraichissement toutes les ~64 ms
4.2 Rafraichissement
Methodes de rafraichissement
- RAS-only refresh : Activation de chaque ligne
- CAS-before-RAS : Rafraichissement automatique interne
- Self-refresh : Mode basse consommation autonome
4.3 Evolutions de la DRAM
| Type | Debit | Caracteristique |
|---|---|---|
| FPM DRAM | ~25 Mo/s | Fast Page Mode |
| EDO DRAM | ~40 Mo/s | Extended Data Out |
| SDRAM | ~100 Mo/s | Synchrone avec horloge |
| DDR | ~200 Mo/s | Double Data Rate |
| DDR2 | ~400-800 Mo/s | Prefetch 4n |
| DDR3 | ~800-1600 Mo/s | Prefetch 8n, 1.5V |
| DDR4 | ~1600-3200 Mo/s | Bank groups, 1.2V |
| DDR5 | ~3200-6400 Mo/s | 2 canaux/DIMM, 1.1V |
4.4 Comparaison SRAM vs DRAM
| Critere | SRAM | DRAM |
|---|---|---|
| Structure cellule | 6 transistors | 1 transistor + 1 capa |
| Densite | Faible | Elevee (4× plus) |
| Vitesse | Tres rapide (< 20 ns) | Moyenne (50-100 ns) |
| Rafraichissement | Non necessaire | Obligatoire (~64 ms) |
| Cout | Eleve | Faible |
| Consommation veille | Tres faible | Moyenne (refresh) |
| Usage | Cache, registres | RAM principale |
Chapitre 5 : Memoire ROM
Read Only Memory - Memoire morte
5.1 Principe de la ROM
Caracteristiques
- Contenu programme lors de la fabrication (masque)
- Lecture uniquement (pas d'ecriture possible)
- Conserve les donnees sans alimentation
- Economique pour grandes series
5.2 Structure de la ROM
MATRICE ROM (exemple 4×4)
Decodeur de colonnes
┌───┬───┬───┬───┐
│D0 │D1 │D2 │D3 │
┌───┐ │ │ │ │ │
│ │── A0 ─────┼─●─┼───┼─●─┼───┤ (1 0 1 0)
│ D │ │ │ │ │ │
│ e │── A1 ─────┼───┼─●─┼─●─┼───┤ (0 1 1 0)
│ c │ │ │ │ │ │
│ o │── A2 ─────┼─●─┼─●─┼───┼─●─┤ (1 1 0 1)
│ d │ │ │ │ │ │
│ e │── A3 ─────┼───┼───┼─●─┼─●─┤ (0 0 1 1)
│ u │ │ │ │ │ │
│ r │ └───┴───┴───┴───┘
└───┘
● = Connexion (transistor ou diode) = bit a 1
Absence = bit a 0
Contenu programme par masque lors de la fabrication
5.3 Applications de la ROM
BIOS/UEFI
Programme de demarrage PC
Consoles
Cartouches de jeux
Firmware
Code embarque fixe
Tables
Conversion, caracteres
Son/Image
Donnees figees
Securite
Cles cryptographiques
Chapitre 6 : PROM et EPROM
Memoires programmables et effacables
6.1 PROM (Programmable ROM)
Principe
- A la livraison : tous les bits a 1 (fusibles intacts)
- Programmation : impulsion de courant pour griller les fusibles
- Irreversible : une fois programmee, ne peut etre modifiee
6.2 EPROM (Erasable PROM)
CELLULE EPROM (FAMOS - Floating Gate Avalanche MOS)
┌─────────────────┐
│ Grille de │
│ controle │
└────────┬────────┘
│
┌────────┴────────┐
│ GRILLE │ ← Grille flottante
│ FLOTTANTE │ (piege les electrons)
└────────┬────────┘
│
Source ──────────────────────┼────────────────── Drain
(Substrat)
Programmation : Injection d'electrons par avalanche
Charge piegee dans la grille flottante
Effacement : UV traverse la fenetre et libere les electrons
Duree : 15-30 minutes sous lampe UV
Caracteristiques EPROM
- Fenetre UV : Quartz transparent aux UV (253.7 nm)
- Temps d'effacement : 15-30 minutes
- Cycles : ~100-1000 programmations
- Retention : > 10 ans
6.3 Exemple : EPROM 27C256 (32K × 8)
BROCHAGE EPROM 27C256 (DIP-28)
┌────┐
VPP ─1 │ ◯ │ 28─ VCC ◯ = Fenetre UV
A12 ─2 │ │ 27─ /PGM
A7 ─3 │ │ 26─ NC
A6 ─4 │ │ 25─ A8
A5 ─5 │ │ 24─ A9
A4 ─6 │ │ 23─ A11
A3 ─7 │ │ 22─ /OE
A2 ─8 │27C │ 21─ A10
A1 ─9 │256 │ 20─ /CE
A0 ─10│ │ 19─ D7
D0 ─11│ │ 18─ D6
D1 ─12│ │ 17─ D5
D2 ─13│ │ 16─ D4
GND ─14│ │ 15─ D3
└────┘
VPP = Tension de programmation (12.5V ou 21V selon version)
/PGM = Signal de programmation
Chapitre 7 : EEPROM et Flash
Memoires effacables electriquement
7.1 EEPROM
Caracteristiques EEPROM
- Effacement : Electrique, octet par octet
- Temps d'ecriture : 5-10 ms par octet
- Cycles : 100 000 - 1 000 000
- Capacite : Quelques Ko a quelques Mo
- Interface : Souvent I²C ou SPI
Exemples courants
| Reference | Capacite | Interface | Usage |
|---|---|---|---|
| 24C02 | 256 octets | I²C | Configuration |
| 24C32 | 4 Ko | I²C | Donnees |
| 24C256 | 32 Ko | I²C | Stockage |
| 93C46 | 128 octets | SPI | Parametres |
7.2 Memoire Flash
Flash NOR
- Acces aleatoire rapide
- Execution de code (XIP)
- Lecture rapide (~100 ns)
- Usage : Firmware, BIOS
Flash NAND
- Acces sequentiel par pages
- Haute densite, faible cout
- Ecriture rapide
- Usage : SSD, cles USB, SD
7.3 Comparaison EEPROM vs Flash
| Critere | EEPROM | Flash |
|---|---|---|
| Granularite effacement | Octet par octet | Bloc (4K-128K) |
| Densite | Faible (quelques Mo) | Tres haute (To) |
| Cycles ecriture | 100K - 1M | 10K - 100K |
| Cout par bit | Eleve | Tres faible |
| Usage typique | Parametres, config | Programme, stockage |
7.4 Memoire Flash dans les Microcontroleurs
Les microcontroleurs modernes integrent de la Flash pour le programme et de l'EEPROM pour les donnees :
| MCU | Flash (programme) | SRAM | EEPROM |
|---|---|---|---|
| ATmega328P (Arduino UNO) | 32 Ko | 2 Ko | 1 Ko |
| STM32F103C8 | 64 Ko | 20 Ko | Emulee |
| STM32F407 | 512 Ko - 1 Mo | 192 Ko | Emulee |
| ESP32 | 4 Mo (externe) | 520 Ko | NVS (Flash) |