RAM (mémoire vive)
Vue d'ensemble
- Objectif : la RAM (Random Access Memory, mémoire à accès aléatoire) est un composant de stockage numérique volatil qui permet de lire ou d'écrire des données vers n'importe quel emplacement mémoire avec un temps d'accès égal. Elle stocke temporairement les données et instructions activement utilisées par les systèmes numériques.
- Symbole : la RAM est représentée par un bloc rectangulaire avec des entrées d'adresse, des entrées de données et des signaux de contrôle (CS, WE, CLK, OE), avec des sorties de données sur la droite.
- Rôle dans DigiSim.io : fournit une fonctionnalité mémoire essentielle pour les conceptions de systèmes numériques, permettant le stockage de données, les tables de correspondance et les variables temporaires dans les circuits simulés.

Description fonctionnelle
Comportement logique
La RAM stocke et récupère des données à partir d'adresses mémoire spécifiées. Son fonctionnement est contrôlé par les entrées d'adresse, les lignes de données et les signaux de contrôle.
Modes de fonctionnement :
- Opération de lecture : lorsque CS=1, WE=0 et OE=1, les données stockées à l'adresse spécifiée apparaissent sur les broches de sortie (combinatoire).
- Opération d'écriture : sur un front montant CLK lorsque CS=1 et WE=1, les données présentes sur les broches d'entrée de données sont stockées à l'adresse spécifiée (écriture synchrone/cadencée).
- État inactif : lorsque CS=0, les broches de sortie sont en état de haute impédance et aucune opération ne se produit.
Table de vérité des signaux de contrôle :
| CS | WE | CLK | OE | Opération |
|---|---|---|---|---|
| 0 | X | X | X | Inactif (sorties en haute impédance) |
| 1 | 0 | X | 0 | Sortie inactive (haute impédance) |
| 1 | 0 | X | 1 | Opération de lecture (combinatoire) |
| 1 | 1 | ↑ | X | Opération d'écriture (sur front montant) |
Note : X signifie « peu importe », ↑ indique un front montant d'horloge
Entrées et sorties
Entrées (20 au total) :
- A0-A7 : broches 0-7. Entrée d'adresse 8 bits spécifiant l'emplacement mémoire (jusqu'à 256 emplacements).
- D0-D7 : broches 8-15. Entrée de données 8 bits (entrées bus) pour l'écriture de données.
- CS (Chip Select) : broche 16. Active la RAM lorsque HIGH.
- WE (Write Enable) : broche 17. Active l'opération d'écriture lorsque HIGH (en conjonction avec le front montant CLK).
- CLK (Clock) : broche 18. Les opérations d'écriture se produisent sur le front montant de CLK.
- OE (Output Enable) : broche 19. Active la sortie de données pendant les opérations de lecture lorsque HIGH.
Sorties (8 au total) :
- Q0-Q7 : sortie de données 8 bits. Pendant les opérations de lecture (CS=1, WE=0, OE=1), fournit en sortie la valeur stockée à l'adresse spécifiée. Sinon, sort en haute impédance (high-Z).
Paramètres configurables
- Taille mémoire : la capacité de la RAM dans DigiSim.io, avec une valeur par défaut de 256×8 (256 adresses, 8 bits par adresse).
- Contenu mémoire initial : valeurs préchargées optionnelles à des fins de simulation.
- Délai de propagation : le délai entre les changements de signal d'adresse/contrôle et la sortie de données.
Représentation visuelle dans DigiSim.io
La RAM est affichée sous la forme d'un bloc rectangulaire avec des entrées et sorties clairement étiquetées. Les entrées d'adresse sont typiquement sur le côté gauche, avec les lignes de données et les signaux de contrôle disposés pour plus de clarté. Lorsqu'elle est connectée dans un circuit, le composant indique visuellement les opérations actives et le flux de données via les changements de couleur sur les fils de connexion. Certaines implémentations peuvent inclure un affichage du contenu mémoire à des fins pédagogiques.
Valeur pédagogique
Concepts clés
- Systèmes mémoire : démontre comment les ordinateurs stockent et récupèrent les données.
- Décodage d'adresse : illustre la relation entre les adresses binaires et les emplacements mémoire spécifiques.
- Stockage de données : montre comment les informations binaires sont organisées dans la mémoire d'ordinateur.
- Calage lecture/écriture : explique la coordination des signaux de contrôle pour les opérations mémoire.
- Hiérarchie mémoire : introduit le concept de différents types de mémoire dans les systèmes informatiques.
Objectifs d'apprentissage
- Comprendre les principes fondamentaux de la mémoire à accès aléatoire.
- Apprendre à effectuer des opérations de lecture et d'écriture en utilisant les signaux de contrôle.
- Reconnaître l'importance de la mémoire dans les systèmes informatiques.
- Appliquer les composants RAM pour construire des solutions de stockage de données dans les conceptions numériques.
- Comprendre la relation entre les adresses mémoire et les données stockées.
Exemples d'utilisation / scénarios
- Stockage de données : stockage de variables et de résultats intermédiaires dans les systèmes numériques.
- Tables de correspondance : implémentation de tables de données prédéfinies pour l'approximation de fonctions ou la conversion de codes.
- Mémoire tampon : création de stockage temporaire entre des composants de système numérique avec des vitesses différentes.
- Stockage de programme : lorsqu'elle est préchargée, stockage des instructions à exécuter par un processeur.
- E/S mappées en mémoire : implémentation de périphériques adressés en mémoire dans les systèmes informatiques.
Notes techniques
- La RAM dans DigiSim.io simule la nature volatile de la RAM physique, où les données sont perdues à la coupure d'alimentation ou à la réinitialisation de la simulation.
- Pour un fonctionnement correct, les signaux de contrôle doivent être correctement séquencés selon la table de vérité.
- L'accès mémoire nécessite la prise en compte des paramètres de calage incluant le temps de mise en place d'adresse et le temps de maintien de données.
- Lorsqu'elle n'est pas sélectionnée (CS=0) ou lorsque la sortie est désactivée (OE=0), les lignes de données entrent dans un état de haute impédance, permettant le partage de bus avec d'autres périphériques.
Détail de l'implémentation du circuit
Structure de cellule mémoire
Cellule SRAM (6T) :
Structure de cellule SRAM à 6 transistors :
- T1, T2 : inverseurs couplés en croix formant un verrou bistable
- T3, T4 : transistors d'accès contrôlés par la ligne de mot (WL)
- T5, T6 : transistors pull-down
- Stockage bistable : les inverseurs couplés en croix maintiennent l'état sans rafraîchissement
- Lignes de bit (BL, BL̅) : détection différentielle pour l'immunité au bruit
Cellule DRAM (1T1C) :
Structure de cellule DRAM à 1 transistor, 1 condensateur :
- T : transistor d'accès contrôlé par la ligne de mot (WL)
- C : condensateur de stockage qui maintient la charge représentant le bit de données
- Ligne de bit (BL) : lit/écrit les données à travers le transistor d'accès
- Nécessite un rafraîchissement : la charge du condensateur fuit et nécessite des cycles de rafraîchissement périodiques
- Densité plus élevée : la structure plus simple permet plus de mémoire par surface de puce
Décodage d'adresse
Les décodeurs de ligne et de colonne convertissent les entrées d'adresse en signaux de sélection de ligne et de colonne :
graph LR
A03[Address A0-A3] --> RDEC[Row Decoder]
A47[Address A4-A7] --> CDEC[Column Decoder]
RDEC --> RS[Row Select 0-15]
CDEC --> CS[Column Select 0-15]
RS --> ARRAY[Memory Cell Array]
CS --> ARRAY
Chemin de données
graph LR
subgraph Read Operation
CELL1[Memory Cell] --> SA[Sense Amplifier]
SA --> OBUF[Output Buffer]
OBUF --> DOUT[Data Output]
end
subgraph Write Operation
DIN[Data Input] --> IBUF[Input Buffer]
IBUF --> WD[Write Driver]
WD --> CELL2[Memory Cell]
end
Composants associés
- ROM (mémoire morte) : mémoire non volatile qui ne peut être que lue
- PROM (ROM programmable) : mémoire programmable une seule fois
- EPROM (PROM effaçable) : effaçable à la lumière ultraviolette
- EEPROM/mémoire Flash : mémoire non volatile effaçable électriquement
- Registre : petite mémoire rapide utilisée pour le stockage temporaire de données
- Registre à décalage : mémoire séquentielle avec capacité de décalage
- Contrôleur mémoire : circuit qui gère les opérations mémoire
- Mémoire cache : mémoire tampon haute vitesse entre le CPU et la mémoire principale
- Décodeur d'adresse : convertit les adresses binaires en lignes de sélection individuelles
- Tampon FIFO/LIFO : mémoire à usage particulier avec accès premier entré-premier sorti ou dernier entré-premier sorti