Leçon 17 sur 18

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 EnableSé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’effacementOctet 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 à transistorsCondensateur + 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