Chapitre 17 — Mémoires numériques
Organisation, technologies, opérations et extension de capacité

| Finalité du chapitre — Comprendre comment une mémoire stocke et restitue des mots binaires, savoir distinguer les principales technologies et dimensionner une organisation mémoire adaptée à un cahier des charges. |
Niveau conseillé : Bac+1 / Bac+2 — Cycle préparatoire, BTS, BUT, licence ou formation d’ingénieur
Objectifs pédagogiques
- Définir les notions de mot, adresse, capacité, bus et signaux de commande.
- Calculer la capacité d’une mémoire à partir de son organisation et de ses bus.
- Distinguer ROM, PROM, EPROM, EEPROM, Flash, SRAM et DRAM.
- Décrire un cycle de lecture et un cycle d’écriture à l’aide de chronogrammes simples.
- Choisir les signaux de sélection, de validation de sortie et d’écriture.
- Augmenter le nombre de mots ou la largeur des mots en associant plusieurs circuits.
- Construire un plan mémoire et réaliser un décodage d’adresses.
Prérequis
- Systèmes de numération et codage binaire.
- Circuits combinatoires et décodeurs.
- Bus trois états et niveaux logiques.
- Registres et chronogrammes simples.
Plan du chapitre
1. 17.1 Organisation d’une mémoire
2. 17.2 Types de mémoires
3. 17.3 Opérations de lecture et d’écriture
4. 17.4 Extension de capacité
5. Travaux dirigés et activité pratique
6. Synthèse, glossaire, auto-évaluation et corrigés
17.1 Organisation d’une mémoire
Une mémoire numérique est un ensemble organisé de cellules capables de conserver des informations binaires. Les cellules sont regroupées en mots. Chaque mot possède une adresse unique permettant de le sélectionner pour une opération de lecture ou d’écriture.
| Notation usuelle — Une mémoire notée N × m contient N mots de m bits. Exemple : 1K × 8 signifie 1024 mots de 8 bits, soit 8192 bits au total. |

Figure 17.1 — Organisation générale d’une mémoire numérique.
17.1.1 Mot mémoire
Le mot mémoire est l’unité d’information accessible en une seule opération. Sa largeur m correspond au nombre de lignes du bus de données. Un mot peut représenter un octet, une instruction, une adresse, une mesure ou une partie d’un nombre plus long.
Organisation | Nombre de mots | Largeur du mot | Capacité totale |
256 × 4 | 256 | 4 bits | 1024 bits |
1K × 8 | 1024 | 8 bits | 8192 bits = 1 KiB |
4K × 16 | 4096 | 16 bits | 65536 bits = 8 KiB |
64K × 8 | 65536 | 8 bits | 524288 bits = 64 KiB |
| Bit, octet et mot — Un bit prend la valeur 0 ou 1. Un octet contient 8 bits. Le mot est défini par l’architecture : il peut contenir 4, 8, 16, 32 bits ou davantage. |
17.1.2 Adresse
L’adresse est le numéro binaire qui désigne un mot. Si une mémoire possède n lignes d’adresse, elle peut sélectionner au maximum 2ⁿ mots distincts. Les adresses sont généralement numérotées de 0 à 2ⁿ−1.
Nombre de mots = 2ⁿ
Nombre de lignes d’adresse = ⌈log₂(N)⌉
Nombre de lignes d’adresse | Nombre maximal de mots | Plage d’adresses |
8 | 256 | 0 à 255 |
10 | 1024 = 1K | 0 à 1023 |
12 | 4096 = 4K | 0 à 4095 |
17.1.3 Capacité
La capacité totale est le nombre de bits que la mémoire peut stocker :
C = N × m bits
Pour convertir en octets, on divise par 8. Il faut distinguer les préfixes binaires et décimaux : 1 KiB = 1024 octets, tandis que 1 kB = 1000 octets.
| Exemple — Une mémoire 8K × 16 contient 8192 mots de 16 bits : C = 8192 × 16 = 131072 bits = 16384 octets = 16 KiB. Elle nécessite 13 lignes d’adresse et 16 lignes de données. |
17.1.4 Bus d’adresses
Le bus d’adresses transporte le numéro du mot à sélectionner. Il est généralement unidirectionnel, du processeur ou du contrôleur vers la mémoire. Les lignes sont notées A₀, A₁, …, Aₙ₋₁. A₀ est le bit de poids faible de l’adresse.
- Les lignes de poids faible sélectionnent une position à l’intérieur d’un bloc.
- Les lignes de poids fort peuvent servir au choix du circuit ou du bloc mémoire.
- Toutes les mémoires partageant le bus voient l’adresse, mais une seule doit être activée.
17.1.5 Bus de données
Le bus de données transporte le mot lu ou écrit. Il est bidirectionnel pour une RAM : la mémoire place les données sur le bus pendant une lecture et les reçoit pendant une écriture. Dans une ROM, il est généralement utilisé uniquement en sortie.
| Sortie trois états — Lorsqu’un circuit n’est pas sélectionné, ses sorties doivent être en haute impédance afin de ne pas perturber les autres circuits connectés au même bus. |
17.1.6 Signaux de commande
Signal | Nom courant | Rôle |
CS ou CE | Chip Select / Chip Enable | Sélectionne le circuit mémoire. |
OE | Output Enable | Autorise les sorties pendant une lecture. |
WE | Write Enable | Autorise l’écriture dans une mémoire modifiable. |
R/W | Read/Write | Choisit lecture ou écriture selon son niveau. |
CLK | Clock | Cadence les mémoires synchrones. |
RESET | Reset | Initialise certains contrôleurs ou mémoires particulières. |
Les signaux peuvent être actifs à 1 ou actifs à 0. Une barre au-dessus du nom ou le suffixe « n » indique souvent une entrée active à 0 : /CS, /OE, /WE ou CSn.
| Précaution — Toujours vérifier la fiche technique : la polarité, les temps minimaux et la combinaison autorisée des signaux varient selon les circuits. |
17.2 Types de mémoires
Les mémoires se classent principalement selon la conservation des données sans alimentation, la possibilité de modification, la vitesse, la densité, le coût et l’endurance.

Figure 17.2 — Classification simplifiée des principales technologies de mémoire.
17.2.1 ROM
La ROM, Read Only Memory, est une mémoire non volatile destinée à conserver des données fixes. Dans sa forme historique, son contenu est défini lors de la fabrication du circuit. Elle est utilisée lorsque le programme ou la table de données ne doit pas être modifié en utilisation normale.
- Conservation sans alimentation.
- Lecture rapide et simple.
- Très faible souplesse de modification.
- Applications : tables de conversion, microcode, paramètres permanents.
17.2.2 PROM
La PROM est livrée vierge et peut être programmée une seule fois par l’utilisateur à l’aide d’un programmateur. La programmation détruit ou crée de manière irréversible des liaisons internes.
| Caractéristique essentielle — La PROM est OTP, One-Time Programmable : une erreur de programmation impose généralement de remplacer le composant. |
17.2.3 EPROM
L’EPROM peut être programmée électriquement puis effacée par exposition à un rayonnement ultraviolet. L’effacement concerne généralement l’ensemble du circuit et nécessite de retirer le composant de son système.
- Boîtier traditionnel avec fenêtre en quartz.
- Effacement lent et global.
- Réutilisable plusieurs fois.
- Technologie aujourd’hui surtout rencontrée dans les systèmes anciens ou en enseignement.
17.2.4 EEPROM
L’EEPROM peut être effacée et reprogrammée électriquement, souvent au niveau de l’octet ou de petits groupes d’octets. Elle permet une mise à jour dans le système sans exposition aux UV.
- Non volatile.
- Écriture plus lente que la lecture.
- Nombre de cycles d’écriture limité.
- Utilisée pour paramètres, calibrations, identifiants et configurations.
17.2.5 Mémoire Flash
La Flash est une forme de mémoire EEPROM optimisée pour une forte densité. L’effacement s’effectue par blocs ou secteurs, ce qui accélère les opérations et réduit le coût par bit.
Aspect | EEPROM classique | Flash |
| Granularité d’effacement | Octet ou petite page | Secteur ou bloc |
Densité | Moyenne | Élevée |
| Vitesse d’écriture globale | Modérée | Élevée par pages |
Applications | Paramètres | Firmware, stockage, cartes mémoire, SSD |
| Endurance — Chaque cellule Flash supporte un nombre fini de cycles programme-effacement. Les systèmes de stockage utilisent des techniques de répartition d’usure, dites wear leveling. |
17.2.6 RAM statique — SRAM
La SRAM mémorise chaque bit dans une cellule bistable. Tant que l’alimentation est présente, la donnée est conservée sans rafraîchissement. Elle est très rapide, mais sa cellule occupe une surface importante.
- Volatile.
- Pas de rafraîchissement.
- Temps d’accès faible.
- Coût par bit élevé et densité plus faible.
- Applications : caches, tampons rapides, petites mémoires embarquées.
17.2.7 RAM dynamique — DRAM
La DRAM stocke chaque bit sous forme de charge électrique dans un condensateur. Cette charge fuit progressivement ; les données doivent donc être rafraîchies périodiquement. La cellule est compacte, ce qui permet une très forte densité.
- Volatile.
- Rafraîchissement obligatoire.
- Densité élevée et coût par bit faible.
- Accès organisé en lignes et colonnes.
- Applications : mémoire principale des ordinateurs et systèmes numériques complexes.
Critère | SRAM | DRAM |
Cellule | Bistable à transistors | Condensateur + transistor |
Rafraîchissement | Non | Oui |
Vitesse | Très élevée | Élevée mais plus complexe |
Coût par bit | Élevé | Faible |
17.2.8 Tableau comparatif général
Mémoire | Volatile | Modifiable | Effacement | Usage typique |
ROM | Non | Non | Impossible | Données fixes |
PROM | Non | Une fois | Impossible | Petites séries |
EPROM | Non | Oui | UV, global | Anciens prototypes |
EEPROM | Non | Oui | Électrique, fin | Configuration |
Flash | Non | Oui | Électrique, blocs | Firmware, stockage |
SRAM | Oui | Oui | Non applicable | Cache, tampon |
DRAM | Oui | Oui | Non applicable | Mémoire centrale |
17.3 Opérations de lecture et d’écriture
Une opération mémoire est une séquence temporelle durant laquelle une adresse est présentée, le circuit est sélectionné et les signaux de commande définissent le sens du transfert.

Figure 17.3 — Chronogrammes simplifiés de lecture et d’écriture.
17.3.1 Sélection du circuit
Dans un système comportant plusieurs mémoires, un décodeur d’adresses produit un signal CS distinct pour chaque circuit. Un seul composant doit normalement répondre à une adresse donnée.
- CS inactif : le circuit ignore les commandes et place ses sorties en haute impédance.
- CS actif : le circuit peut lire ou écrire selon OE, WE ou R/W.
- Le décodage peut être complet ou partiel.
| Conflit de bus — Si deux mémoires placent simultanément des niveaux opposés sur le bus de données, un courant important peut circuler et les données deviennent invalides. |
17.3.2 Sélection de l’adresse
L’adresse doit être stable suffisamment tôt et rester stable pendant la durée exigée. Le décodeur interne active la ligne ou le groupe de cellules correspondant. Le temps entre la stabilisation de l’adresse et la disponibilité de la donnée est appelé temps d’accès.
17.3.3 Lecture d’une donnée
1. Placer l’adresse du mot sur le bus d’adresses.
2. Activer CS afin de sélectionner la mémoire.
3. Placer WE dans l’état non actif.
4. Activer OE pour autoriser les sorties.
5. Attendre le temps d’accès tACC.
6. Échantillonner la donnée présente sur le bus.
7. Désactiver OE ou CS afin de libérer le bus.
| Temps d’accès — tACC est souvent mesuré depuis le changement d’adresse ou l’activation du circuit jusqu’au moment où la donnée de sortie est garantie valide. |
17.3.4 Écriture d’une donnée
1. Placer l’adresse de destination sur le bus d’adresses.
2. Placer la donnée à écrire sur le bus de données.
3. Activer CS.
4. Appliquer l’impulsion d’écriture sur WE ou sélectionner le mode écriture par R/W.
5. Respecter le temps de préparation des données avant la fin de l’écriture.
6. Respecter le temps de maintien de l’adresse et des données après la fin de l’écriture.
7. Désactiver le circuit et libérer le bus.
17.3.5 Paramètres temporels importants
Paramètre | Signification |
tACC | Temps d’accès depuis l’adresse jusqu’à la donnée valide. |
tCE | Temps depuis l’activation de CS jusqu’à la donnée valide. |
tOE | Temps depuis l’activation de OE jusqu’à la donnée valide. |
tWC | Durée minimale d’un cycle d’écriture. |
tWP | Largeur minimale de l’impulsion WE. |
tDS | Temps de préparation de la donnée avant la fin d’écriture. |
tDH | Temps de maintien de la donnée après la fin d’écriture. |
tHZ | Temps de passage des sorties à haute impédance. |
17.3.6 Exemple de lecture
Une mémoire 2K × 8 reçoit l’adresse 03A5h. CS et OE sont actifs, WE est inactif. Après tACC, le mot stocké à cette adresse apparaît sur D₇…D₀. Le processeur doit attendre la fin de ce délai avant de capturer la valeur.
17.3.7 Exemple d’écriture
Pour écrire 5Ch à l’adresse 0120h, le contrôleur place 0120h sur le bus d’adresses et 5Ch sur le bus de données, active CS puis applique une impulsion WE conforme à la fiche technique. À la fin du cycle, la cellule sélectionnée contient 5Ch.
17.3.8 Mémoires synchrones
Dans une mémoire synchrone, les commandes et les adresses sont échantillonnées sur un front d’horloge. Les données peuvent apparaître après un nombre déterminé de cycles. Cette organisation facilite les transferts rapides en rafales, mais exige une gestion précise de la latence.
| Lecture destructive — Dans certaines technologies anciennes ou dynamiques, la lecture peut perturber la cellule et nécessiter une restauration automatique. Pour l’utilisateur externe, le comportement reste celui d’une lecture normale. |
17.4 Extension de capacité
Lorsqu’un circuit disponible ne possède pas l’organisation requise, plusieurs composants peuvent être associés. Deux objectifs sont possibles : augmenter le nombre de mots, augmenter la largeur du mot, ou combiner les deux.
17.4.1 Augmentation du nombre de mots
Les lignes d’adresse de poids faible sont reliées en parallèle à tous les circuits. Les lignes de poids fort sont décodées pour produire les signaux CS. Le bus de données est commun, mais seul le circuit sélectionné doit le piloter.

Figure 17.4 — Association de deux mémoires 1K × 8 pour former une mémoire 2K × 8.
| Exemple — Deux mémoires 1K × 8 possèdent chacune 10 lignes d’adresse. Pour obtenir 2K × 8, on utilise A₀…A₉ pour l’adresse interne et A₁₀ pour choisir le circuit. |
17.4.2 Augmentation de la taille des mots
Pour augmenter la largeur du mot, les circuits reçoivent les mêmes adresses et les mêmes commandes. Chaque composant fournit une partie différente du bus de données.

Figure 17.5 — Association de deux mémoires 1K × 8 pour former une mémoire 1K × 16.
| Exemple — Le premier circuit est relié à D₀…D₇ et le second à D₈…D₁₅. Les deux sont sélectionnés simultanément et stockent ensemble un mot de 16 bits. |
17.4.3 Extension simultanée
Pour construire une mémoire 4K × 16 à partir de circuits 1K × 8, il faut quatre groupes d’adresses et deux circuits par groupe :
Nombre de circuits = (4K / 1K) × (16 / 8) = 4 × 2 = 8 circuits
- A₀…A₉ adressent les 1024 mots à l’intérieur de chaque circuit.
- A₁₀ et A₁₁ sont décodées pour sélectionner l’un des quatre groupes.
- Dans chaque groupe, deux circuits travaillent en parallèle pour fournir 16 bits.
17.4.4 Décodage d’adresses
Le décodage d’adresses transforme les bits de poids fort en signaux de sélection. Il permet d’affecter une plage d’adresses à chaque mémoire ou périphérique.

Figure 17.6 — Exemple de décodage d’adresses dans un système numérique.
17.4.5 Décodage complet et partiel
Méthode | Principe | Avantage | Inconvénient |
Complet | Tous les bits nécessaires sont décodés. | Une adresse unique par ressource. | Plus de logique. |
Partiel | Certains bits de poids fort sont ignorés. | Circuit simple. | Plusieurs adresses miroirs pour la même ressource. |
| Adresse miroir — Avec un décodage partiel, une même mémoire peut répondre à plusieurs plages d’adresses. Ce comportement doit être volontaire et documenté. |
17.4.6 Méthode générale de dimensionnement
1. Déterminer le nombre de mots N requis.
2. Déterminer la largeur m du mot.
3. Calculer le nombre de lignes d’adresse n = ⌈log₂(N)⌉.
4. Comparer l’organisation requise à celle du circuit disponible.
5. Calculer le facteur d’extension en profondeur Nreq/Ncircuit.
6. Calculer le facteur d’extension en largeur mreq/mcircuit.
7. Multiplier les deux facteurs pour obtenir le nombre de circuits.
8. Définir le câblage des bus et le décodage des signaux CS.
9. Vérifier les niveaux électriques, le fan-out et les temps d’accès.
Applications et travaux dirigés
TD 1 — Capacité et organisation
Une mémoire possède 12 lignes d’adresse et 8 lignes de données.
1. Déterminer le nombre de mots.
2. Calculer la capacité en bits.
3. Exprimer la capacité en KiB.
4. Donner la plage d’adresses en hexadécimal.
TD 2 — Détermination des bus
On souhaite réaliser une mémoire de 32 KiB organisée en mots de 16 bits. Déterminer le nombre de mots, le nombre de lignes d’adresse et le nombre de lignes de données.
TD 3 — Identification des technologies
Associer chaque besoin à la technologie la plus adaptée : cache rapide, paramètres modifiables rarement, programme embarqué mis à jour par blocs, mémoire principale de grande capacité, table fixe non modifiable.
TD 4 — Cycle de lecture
Une mémoire possède tACC = 70 ns, tCE = 50 ns et tOE = 25 ns. L’adresse devient stable à t = 0 ns, CS à 15 ns et OE à 30 ns. À quel instant la donnée est-elle garantie valide ?
TD 5 — Cycle d’écriture
Une mémoire exige tWP ≥ 40 ns, tDS ≥ 15 ns et tDH ≥ 5 ns. Proposer une chronologie simple pour écrire une donnée en respectant ces contraintes.
TD 6 — Extension en profondeur
Construire une mémoire 8K × 8 à partir de circuits 2K × 8. Déterminer le nombre de circuits, le nombre de bits de sélection et le principe du décodage.
TD 7 — Extension en largeur
Construire une mémoire 4K × 32 à partir de circuits 4K × 8. Indiquer le nombre de circuits et la répartition du bus de données.
TD 8 — Extension mixte
Construire une mémoire 16K × 16 à partir de circuits 4K × 8. Déterminer le nombre total de circuits, les lignes d’adresse communes et les lignes utilisées pour sélectionner les banques.
TD 9 — Plan mémoire
Un système dispose de 16 lignes d’adresse. Affecter 8 KiB de ROM à partir de 0000h, 8 KiB de RAM à partir de 2000h et un périphérique de 256 octets à partir de 4000h. Donner les bornes de chaque plage.
TD 10 — Décodage partiel
Une mémoire de 2 KiB est connectée à A₀…A₁₀. Le signal CS dépend uniquement de A₁₅ et A₁₄. Expliquer pourquoi la mémoire apparaît plusieurs fois dans l’espace d’adressage.
Activité pratique — Simulation d’un sous-système mémoire
Objectifs
- Manipuler une mémoire RAM dans un simulateur logique.
- Observer les cycles de lecture et d’écriture.
- Mettre en œuvre un décodeur pour sélectionner deux circuits.
- Vérifier l’absence de conflit sur le bus de données.
Matériel ou logiciel
- Logisim Evolution, Digital, Proteus ou équivalent.
- Deux blocs RAM 16 × 8.
- Un décodeur 1 vers 2 ou une porte inverseuse.
- Interrupteurs pour les adresses et les commandes.
- Afficheurs hexadécimaux ou sondes logiques.
Manipulation A — Lecture et écriture
1. Configurer une RAM 16 × 8.
2. Écrire successivement 3Ah à l’adresse 4 et C7h à l’adresse 9.
3. Passer en lecture et vérifier les deux valeurs.
4. Modifier l’adresse pendant la lecture et observer le changement des sorties.
5. Désactiver OE et vérifier le passage à haute impédance si le simulateur le représente.
Manipulation B — Extension en profondeur
1. Relier A₀…A₃ aux deux mémoires.
2. Utiliser A₄ pour sélectionner la mémoire 0 ou la mémoire 1.
3. Relier les bus de données en commun.
4. Écrire une valeur à l’adresse 03h et une autre à l’adresse 13h.
5. Vérifier que les deux adresses accèdent à des circuits différents.
Questions d’exploitation
- Pourquoi les sorties doivent-elles être en haute impédance lorsque CS est inactif ?
- Que se passe-t-il si les deux circuits sont sélectionnés simultanément en lecture ?
- Comment modifier le montage pour obtenir une mémoire 16 × 16 ?
- Quel est le rôle du bit A₄ dans la mémoire étendue ?
Synthèse du chapitre
Notion | À retenir |
Organisation | N × m signifie N mots de m bits. |
Adresse | n lignes sélectionnent au plus 2ⁿ mots. |
Capacité | C = N × m bits. |
Bus d’adresses | Sélection du mot ou du bloc. |
Bus de données | Transport bidirectionnel des mots pour une RAM. |
ROM / Flash | Mémoires non volatiles. |
SRAM / DRAM | Mémoires volatiles ; la DRAM nécessite un rafraîchissement. |
Lecture | Adresse + sélection + validation des sorties. |
Écriture | Adresse + données + impulsion d’écriture. |
Extension | Association en profondeur, en largeur ou mixte. |
Décodage | Génération des signaux CS à partir des bits de poids fort. |
Glossaire
Terme | Définition |
Adresse | Numéro binaire identifiant un mot mémoire. |
Mot | Groupe de bits lu ou écrit en une opération. |
Capacité | Quantité totale d’information stockable. |
Bus | Ensemble de conducteurs transportant adresses, données ou commandes. |
Volatile | Dont le contenu disparaît sans alimentation. |
Non volatile | Dont le contenu est conservé sans alimentation. |
Temps d’accès | Délai avant disponibilité d’une donnée valide. |
Rafraîchissement | Restauration périodique des cellules DRAM. |
Haute impédance | État où une sortie est électriquement déconnectée du bus. |
Banque mémoire | Groupe de circuits sélectionné comme une unité. |
Plan mémoire | Répartition des plages d’adresses entre les ressources. |
Adresse miroir | Adresse supplémentaire donnant accès à la même ressource. |
Exercices d’entraînement
Exercice 1 — Organisation
Pour une mémoire 64K × 16, déterminer le nombre de lignes d’adresse, le nombre de lignes de données et la capacité en KiB.
Exercice 2 — Capacité inverse
Une mémoire contient 2 MiB et possède un bus de données de 32 bits. Déterminer le nombre de mots et le nombre de lignes d’adresse.
Exercice 3 — Choix technologique
Choisir une technologie pour chacun des cas suivants : cache de processeur, mémoire principale, stockage du firmware reprogrammable, paramètres modifiés quelques fois par jour, numéro de série programmé une seule fois.
Exercice 4 — Chronogramme de lecture
Une donnée est disponible 60 ns après l’adresse, 35 ns après CS et 20 ns après OE. L’adresse est stable à 0 ns, CS à 10 ns et OE à 30 ns. Calculer l’instant de validité.
Exercice 5 — Association de circuits
Combien de circuits 2K × 4 sont nécessaires pour réaliser 8K × 16 ? Décrire l’organisation.
Exercice 6 — Décodage
Un circuit 4K × 8 doit occuper la plage 8000h–8FFFh dans un espace de 16 bits. Identifier les lignes d’adresse internes et la condition de sélection du circuit.
Exercice 7 — Plan mémoire
Construire un plan mémoire contenant 16 KiB de ROM à partir de 0000h, 8 KiB de RAM immédiatement après, puis un bloc d’entrées-sorties de 1 KiB.
Exercice 8 — Analyse critique
Expliquer pourquoi une mémoire Flash ne remplace pas toujours une RAM, même si elle est non volatile et modifiable.
Auto-évaluation
Affirmation | Oui / À revoir |
| Je sais calculer la capacité d’une mémoire N × m. |
|
| Je sais déterminer le nombre de lignes d’adresse. |
|
| Je distingue ROM, EEPROM, Flash, SRAM et DRAM. |
|
| Je sais expliquer un cycle de lecture et d’écriture. |
|
| Je sais augmenter la profondeur et la largeur d’une mémoire. |
|
| Je sais établir un plan mémoire et un décodage d’adresses. |
|
Corrigés des travaux dirigés
Corrigé TD 1
12 lignes d’adresse donnent 2¹² = 4096 mots. La capacité est 4096 × 8 = 32768 bits = 4096 octets = 4 KiB. Les adresses vont de 000h à FFFh.
Corrigé TD 2
32 KiB = 32768 octets. Un mot de 16 bits contient 2 octets, donc N = 16384 mots = 16K mots. Il faut 14 lignes d’adresse et 16 lignes de données.
Corrigé TD 3
Besoin | Technologie proposée |
Cache rapide | SRAM |
| Paramètres modifiables rarement | EEPROM |
| Programme mis à jour par blocs | Flash |
Mémoire principale | DRAM |
Table fixe | ROM ou PROM |
Corrigé TD 4
La donnée est valide après le plus tardif des trois délais : adresse 0 + 70 = 70 ns ; CS 15 + 50 = 65 ns ; OE 30 + 25 = 55 ns. Elle est donc garantie valide à 70 ns.
Corrigé TD 5
Exemple : adresse stable à 0 ns ; donnée stable à 10 ns ; WE actif de 25 ns à 70 ns, soit 45 ns ; la donnée était stable 60 ns avant la fin et reste stable jusqu’à 80 ns, soit 10 ns après. Les contraintes sont satisfaites.
Corrigé TD 6
8K/2K = 4 circuits. Chaque circuit utilise 11 lignes internes A₀…A₁₀. Les deux bits A₁₁ et A₁₂ sont décodés par un décodeur 2 vers 4 pour sélectionner un circuit.
Corrigé TD 7
32/8 = 4 circuits en parallèle. Tous reçoivent les mêmes 12 lignes d’adresse. Ils alimentent respectivement D₀…D₇, D₈…D₁₅, D₁₆…D₂₃ et D₂₄…D₃₁.
Corrigé TD 8
Extension en profondeur : 16K/4K = 4 banques. Extension en largeur : 16/8 = 2 circuits par banque. Total : 8 circuits. A₀…A₁₁ sont communs ; A₁₂ et A₁₃ sélectionnent l’une des quatre banques.
Corrigé TD 9
Ressource | Début | Fin |
ROM 8 KiB | 0000h | 1FFFh |
RAM 8 KiB | 2000h | 3FFFh |
| Périphérique 256 octets | 4000h | 40FFh |
Corrigé TD 10
La mémoire utilise 11 bits pour sélectionner ses 2048 positions. Les bits A₁₁…A₁₃ ne sont pas décodés. Leurs huit combinaisons différentes conduisent au même CS ; la mémoire apparaît donc huit fois dans la zone sélectionnée par A₁₅ et A₁₄.
Corrigés des exercices
Exercice 1
64K = 2¹⁶ mots : 16 lignes d’adresse. La largeur est 16 bits : 16 lignes de données. Capacité = 65536 × 16 bits = 131072 octets = 128 KiB.
Exercice 2
2 MiB = 2²¹ octets. Un mot de 32 bits vaut 4 octets = 2² octets. Nombre de mots = 2¹⁹ = 524288 mots, donc 19 lignes d’adresse.
Exercice 3
Cache : SRAM ; mémoire principale : DRAM ; firmware reprogrammable : Flash ; paramètres modifiés régulièrement : EEPROM ; numéro de série programmé une fois : PROM ou zone OTP.
Exercice 4
Adresse : 60 ns ; CS : 10 + 35 = 45 ns ; OE : 30 + 20 = 50 ns. La donnée est garantie valide à 60 ns.
Exercice 5
Profondeur : 8K/2K = 4 banques. Largeur : 16/4 = 4 circuits par banque. Total : 16 circuits. Deux bits sélectionnent les quatre banques ; quatre circuits travaillent en parallèle dans chaque banque.
Exercice 6
Un circuit 4K utilise A₀…A₁₁. La plage 8000h–8FFFh impose A₁₅…A₁₂ = 1000. Le signal CS est donc actif lorsque ces quatre bits valent 1000.
Exercice 7
Bloc | Début | Fin |
ROM 16 KiB | 0000h | 3FFFh |
RAM 8 KiB | 4000h | 5FFFh |
E/S 1 KiB | 6000h | 63FFh |
Exercice 8
La Flash possède une latence d’écriture plus élevée, un effacement par blocs et une endurance limitée. Elle n’est donc pas adaptée aux modifications très fréquentes ni au rôle de mémoire de travail rapide assuré par une RAM.
Fiche méthode — Dimensionner une mémoire
1. Écrire l’organisation requise sous la forme N × m.
2. Calculer n = ⌈log₂(N)⌉ lignes d’adresse.
3. Calculer C = N × m bits et convertir en octets.
4. Identifier si la mémoire doit être volatile, non volatile, rapide ou reprogrammable.
5. Définir les cycles de lecture et d’écriture et leurs signaux.
6. Comparer avec l’organisation des composants disponibles.
7. Calculer les facteurs d’extension en profondeur et en largeur.
8. Réaliser le décodage des bits d’adresse de poids fort.
9. Vérifier que seul un circuit pilote le bus à la fois.
10. Contrôler les paramètres électriques et temporels à partir des fiches techniques.
| Résultat attendu — À la fin de la démarche, chaque adresse doit sélectionner un mot unique, chaque bit du mot doit être relié au bon fil de données et aucun conflit de bus ne doit être possible. |
Fin du chapitre 17