Les Memoires

RAM - ROM - Decodage d'Adresses - Extension

Architecture des Systemes a Microprocesseur

🔵 RAM (SRAM/DRAM) 🟢 ROM/EPROM/EEPROM 📍 Decodage Adresses
💾

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

📖
Memoire Dispositif capable de stocker des informations binaires et de les restituer a la demande. Element essentiel de tout systeme informatique pour conserver donnees et programmes.

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
                    
TypeVolatiliteLectureEcritureUsage
SRAMVolatileRapideRapideCache, registres
DRAMVolatileMoyenneMoyenneRAM principale
ROMNon-volatileRapideImpossibleBIOS, firmware fixe
PROMNon-volatileRapide1 seule foisConfiguration
EPROMNon-volatileRapideApres UVDeveloppement
EEPROMNon-volatileRapideElectriqueParametres
FlashNon-volatileRapidePar blocsStockage 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

📖
Capacite Quantite totale d'information qu'une memoire peut stocker. Exprimee en bits, octets (bytes), ou multiples (Ko, Mo, Go).
Capacite totale Capacite = 2n × m bits = 2n mots de m bits

ou n = nombre de lignes d'adresse, m = largeur du mot

Unites de mesure

UniteSymboleValeur exacte (binaire)Valeur decimale
Kilo-octetKo (KiB)210 = 1 024 octets≈ 1 000 o
Mega-octetMo (MiB)220 = 1 048 576 octets≈ 1 000 Ko
Giga-octetGo (GiB)230 = 1 073 741 824 octets≈ 1 000 Mo
Tera-octetTo (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

ParametreSymboleDescription
Temps d'accestACCDelai entre adresse stable et donnees valides
Temps de cycletCYCDuree minimale entre deux acces consecutifs
Temps de lecturetRDDuree de l'operation de lecture
Temps d'ecrituretWRDuree 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

SignalNomActifFonction
/CS ou /CEChip Select / Chip EnableBas (0)Selectionne le circuit memoire
/OEOutput EnableBas (0)Active les sorties (lecture)
/WEWrite EnableBas (0)Autorise l'ecriture
R/WRead/Write1=Read, 0=WriteSelection operation
💡
Convention des signaux actifs bas La barre (/) ou le surlignement indique un signal actif a l'etat bas. /CS = CS actif quand CS = 0.

Chapitre 3 : RAM Statique (SRAM)

Structure, fonctionnement et applications

3.1 Principe de la SRAM

📖
SRAM (Static Random Access Memory) Memoire volatile ou chaque bit est stocke dans une bascule bistable (flip-flop) constituee de 4 a 6 transistors. Conserve l'information tant qu'elle est alimentee, sans rafraichissement.
    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

  1. Adresse placee sur le bus d'adresses
  2. Decodeur active la ligne WL correspondante
  3. Les transistors d'acces connectent la cellule aux BL
  4. Amplificateur de lecture detecte la difference BL - /BL
  5. Donnee disponible sur le bus de donnees

Operation d'ecriture

  1. Adresse et donnee placees sur les bus
  2. /WE active (bas)
  3. Drivers forcent BL et /BL aux valeurs complementaires
  4. 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

📖
DRAM (Dynamic Random Access Memory) Memoire volatile ou chaque bit est stocke dans un condensateur (1 transistor + 1 condensateur). Necessite un rafraichissement periodique car le condensateur se decharge.
    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

⚠️
Necessite du rafraichissement Le condensateur perd sa charge par courants de fuite. Sans rafraichissement, l'information est perdue en quelques millisecondes. Le controleur DRAM doit rafraichir chaque ligne periodiquement.

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

TypeDebitCaracteristique
FPM DRAM~25 Mo/sFast Page Mode
EDO DRAM~40 Mo/sExtended Data Out
SDRAM~100 Mo/sSynchrone avec horloge
DDR~200 Mo/sDouble Data Rate
DDR2~400-800 Mo/sPrefetch 4n
DDR3~800-1600 Mo/sPrefetch 8n, 1.5V
DDR4~1600-3200 Mo/sBank groups, 1.2V
DDR5~3200-6400 Mo/s2 canaux/DIMM, 1.1V
💡
DDR = Double Data Rate Transfert sur les deux fronts d'horloge (montant et descendant), doublant le debit par rapport a la SDRAM classique.

4.4 Comparaison SRAM vs DRAM

CritereSRAMDRAM
Structure cellule6 transistors1 transistor + 1 capa
DensiteFaibleElevee (4× plus)
VitesseTres rapide (< 20 ns)Moyenne (50-100 ns)
RafraichissementNon necessaireObligatoire (~64 ms)
CoutEleveFaible
Consommation veilleTres faibleMoyenne (refresh)
UsageCache, registresRAM principale
🔒

Chapitre 5 : Memoire ROM

Read Only Memory - Memoire morte

5.1 Principe de la ROM

📖
ROM (Read Only Memory) Memoire non volatile dont le contenu est defini lors de la fabrication et ne peut plus etre modifie. Aussi appelee memoire morte car l'information est figee.

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)

📖
PROM ROM programmable une seule fois par l'utilisateur a l'aide d'un programmateur. Les fusibles sont "grilles" de maniere irreversible. Aussi appelee OTP (One-Time Programmable).

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)

📖
EPROM ROM programmable electriquement et effacable par exposition aux rayons ultraviolets (UV). Reconnaissable a sa fenetre en quartz sur le boitier.
    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

📖
EEPROM (Electrically Erasable PROM) ROM programmable et effacable electriquement, octet par octet, sans UV. Permet la modification in-circuit sans retirer le composant.

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

ReferenceCapaciteInterfaceUsage
24C02256 octetsI²CConfiguration
24C324 KoI²CDonnees
24C25632 KoI²CStockage
93C46128 octetsSPIParametres

7.2 Memoire Flash

📖
Memoire Flash Memoire non volatile effacable electriquement par blocs (secteurs), combinant la densite de l'EPROM et la souplesse de l'EEPROM. Deux architectures : NOR (execution de code) et NAND (stockage de masse).
📖

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

CritereEEPROMFlash
Granularite effacementOctet par octetBloc (4K-128K)
DensiteFaible (quelques Mo)Tres haute (To)
Cycles ecriture100K - 1M10K - 100K
Cout par bitEleveTres faible
Usage typiqueParametres, configProgramme, 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 :

MCUFlash (programme)SRAMEEPROM
ATmega328P (Arduino UNO)32 Ko2 Ko1 Ko
STM32F103C864 Ko20 KoEmulee
STM32F407512 Ko - 1 Mo192 KoEmulee
ESP324 Mo (externe)520 KoNVS (Flash)