Exercices — Cours 01 & 02

Entraîne-toi sur
l'architecture mémoire

Clique sur chaque exercice · Corrigé caché à dévoiler

1
Capacité et broches d'une puce mémoire
Cours 01 Facile Adresses · Données
📋 Énoncé

On dispose de trois puces mémoire dont voici les caractéristiques :

PuceBroches adresseBroches données
Puce A10 broches8 broches
Puce B20 broches4 broches
Puce C18 broches1 broche
Q1Pour chaque puce, calcule le nombre total d'adresses disponibles.
Q2Pour chaque puce, indique combien de bits sont stockés à chaque adresse.
Q3Calcule la capacité totale de chaque puce en bits, puis en octets.
Q4Quelle puce a la plus grande capacité totale ? Justifie.
▶   VOIR LA CORRECTION
Q1 — Nombre d'adresses
Puce A : 2¹⁰ = 1 024 adresses (= 1K)
Puce B : 2²⁰ = 1 048 576 adresses (= 1M)
Puce C : 2¹⁸ = 262 144 adresses (= 256K)
Q2 — Bits par adresse
Puce A : 8 bits par adresse (= 1 octet)
Puce B : 4 bits par adresse (= 1 quartet / nibble)
Puce C : 1 bit par adresse
Q3 — Capacité totale
Puce A : 1 024 × 8 = 8 192 bits = 1 024 octets = 1 Ko
Puce B : 1 048 576 × 4 = 4 194 304 bits = 524 288 octets = 512 Ko
Puce C : 262 144 × 1 = 262 144 bits = 32 768 octets = 32 Ko
Q4 — Plus grande capacité
Puce B avec 512 Ko, malgré seulement 4 bits par adresse, car elle compense largement par son très grand nombre d'adresses (1M). La capacité = adresses × bits/adresse, et ici 1M × 4 bits > 1K × 8 bits et > 256K × 1 bit.
2
Assemblage en largeur : construire un 1M × 8
Cours 02 Facile Extension largeur
📋 Énoncé

Tu disposes de puces 1M × 4 et tu veux construire une mémoire 1M × 8 pour un microprocesseur qui lit 8 bits à la fois.

Q1Combien de puces 1M×4 faut-il ? Pourquoi ?
Q2Comment câble-t-on les broches d'adresse A0–A19 ? Sont-elles partagées ou séparées ?
Q3Comment répartit-on les broches de données D0–D7 entre les deux puces ?
Q4Le processeur veut lire l'adresse 500. Décris précisément ce que font les deux puces simultanément. Puce 1 stocke 0b1100 à la case 500, Puce 2 stocke 0b0111 à la case 500.
Q5Quelle est la valeur finale sur les 8 fils de données ? Donne-la en binaire et en hexadécimal.
▶   VOIR LA CORRECTION
Q1 — Nombre de puces
Il faut 2 puces 1M×4. La cible est ×8. Chaque puce fournit 4 bits. Pour obtenir 8 bits, il faut 8/4 = 2 puces placées en parallèle sur le bus de données.
Q2 — Câblage des adresses
Les broches A0–A19 sont partagées : chaque fil d'adresse est connecté à la broche correspondante des deux puces simultanément. Les deux puces reçoivent exactement la même adresse au même instant. C'est la condition pour qu'elles sortent les deux moitiés d'un même octet.
Q3 — Répartition des données
Puce 1 : ses broches D0, D1, D2, D3 → bus de données bits 0, 1, 2, 3 (octet bas)
Puce 2 : ses broches D0, D1, D2, D3 → bus de données bits 4, 5, 6, 7 (renommés D4, D5, D6, D7)
Q4 — Ce qui se passe à l'adresse 500
L'adresse 500 est envoyée sur A0–A19 des deux puces.
Puce 1 accède à sa case 500, lit 1100, sort ce quartet sur D0–D3.
Puce 2 accède à sa case 500, lit 0111, sort ce quartet sur D4–D7.
Les deux opérations se font en même temps et en parallèle.
Q5 — Valeur finale
D7–D4 (Puce 2) = 0111  |  D3–D0 (Puce 1) = 1100
Résultat sur 8 bits : 0111 1100
En hexadécimal : 0x7C
3
Signaux CS̄, WĒ, OĒ : interpréter une table d'états
Cours 02 Moyen CS · WE · OE
📋 Énoncé

On observe les états suivants sur les broches de contrôle d'une puce mémoire 1M×8. Pour chaque ligne, détermine le mode de fonctionnement et l'état du bus de données.

CasCS̄Mode ?Bus données ?
A100??
B010??
C001??
D000??
E111??
F011??
Q1Complète la table pour chaque cas A à F.
Q2Quel cas est dangereux et pourquoi ?
Q3Dans quel cas la valeur de WĒ et OĒ n'a aucune importance ?
▶   VOIR LA CORRECTION
Q1 — Table complétée
CasCS̄ModeBus données
A100Puce DÉSACTIVÉEHaute impédance Z — CS̄=1 prend le dessus sur tout
B010✓ LECTURESortie — la donnée mémorisée sort sur D0–D7
C001✎ ÉCRITUREEntrée — la donnée présente sur D0–D7 est écrite
D000⚠ INTERDITConflit ! Lect. et écrit. simultanées — comportement indéfini
E111Puce DÉSACTIVÉEHaute impédance Z
F011Stand-byHaute impédance Z — active mais silencieuse
Q2 — Cas dangereux
Le cas D (CS̄=0, WĒ=0, OĒ=0) est le cas interdit. La puce essaie de faire une lecture (sortir des données) et une écriture (recevoir des données) en même temps sur les mêmes broches D0–D7. C'est un conflit électrique : le circuit interne est en contradiction. Le résultat est imprévisible et peut endommager la puce.
Q3 — Quand WĒ et OĒ n'ont aucun effet
Quand CS̄ = 1 (cas A et E). La puce est désactivée quoi qu'il arrive. WĒ et OĒ peuvent valoir n'importe quoi, ça ne change rien. C'est pour ça qu'on note X (don't care) dans la table de vérité.
4
Décodage d'adresse et sélection de puce
Cours 02 Moyen CS̄ · Décodeur · Banques
📋 Énoncé

On veut construire une mémoire de 512K × 8 en utilisant des puces 128K × 8. Le bus d'adresse du système a assez de fils pour couvrir 512K adresses.

Q1Combien de puces 128K×8 sont nécessaires ? De quel type d'extension s'agit-il ?
Q2Combien de broches d'adresse le bus système doit-il avoir pour adresser 512K cases ? Et combien en ont les puces 128K×8 ?
Q3Quels bits du bus d'adresse vont directement sur les puces ? Quels bits servent à générer les CS̄ ?
Q4Donne la table de décodage : pour quelles valeurs de A18 et A17, quelle puce est activée, et quelle est sa plage d'adresses ?
Q5Le processeur accède à l'adresse 0x6A000. Quelle puce est activée ? Quelle est l'adresse interne à la puce ?
▶   VOIR LA CORRECTION
Q1 — Nombre de puces et type d'extension
512K / 128K = 4 puces. Il s'agit d'une extension en profondeur : on augmente le nombre d'adresses. La largeur (8 bits) est déjà celle qu'on veut, donc pas besoin d'extension en largeur.
Q2 — Broches d'adresse
Bus système : 2ⁿ = 512K = 524 288 → n = 19 broches (A0–A18)
Puces 128K×8 : 2ⁿ = 128K = 131 072 → n = 17 broches (A0–A16)
Différence : 19 - 17 = 2 bits supplémentaires pour le décodage (A17 et A18)
Q3 — Répartition des bits d'adresse
A0–A16 (17 bits) → connectés directement aux broches d'adresse des 4 puces (sélectionnent la case à l'intérieur de la puce)
A17 et A18 (2 bits) → vont au décodeur d'adresse qui génère les 4 signaux CS̄
Q4 — Table de décodage
A18A17Puce activéePlage d'adresses
00Puce 0 — CS̄=00x00000 → 0x1FFFF (0 à 131071)
01Puce 1 — CS̄=00x20000 → 0x3FFFF (131072 à 262143)
10Puce 2 — CS̄=00x40000 → 0x5FFFF (262144 à 393215)
11Puce 3 — CS̄=00x60000 → 0x7FFFF (393216 à 524287)
Q5 — Adresse 0x6A000
0x6A000 en binaire : 11 0 1010 0000 0000 0000
→ A18=1, A17=1 → combinaison "1 1" → Puce 3 est activée

Adresse interne (bits A0–A16) : on enlève les 2 bits de poids fort → 0x6A000 - 0x60000 = 0x0A000
→ La puce 3 lit à sa case interne n°40 960 (= 0x0A000).
5
Lire un chronogramme et détecter les erreurs
Cours 02 Moyen Chronogramme · Timing
📋 Énoncé

On observe le chronogramme suivant d'une opération mémoire. Analyse-le et réponds aux questions.

          t0   t1   t2   t3   t4   t5
           │    │    │    │    │    │
ADRESSE  XXXX━━━━━━━━━━━━━━━━━━━━━━━XXXX

CS̄       ━━━━━━━━━━┓              ┏━━━━
                   ┗━━━━━━━━━━━━━┛

       ━━━━┓                         ┏━
             ┗━━━━━━━━━━━━━━━━━━━━━━━━━┛
             ↑ OĒ passe à 0 AVANT l'adresse et CS̄ !

       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

DONNÉES  ZZZZZZZZZZ━━━━━━━━━━━━━━━━━━━━━ZZZ
Q1De quel type d'opération s'agit-il (lecture ou écriture) ? Justifie en regardant WĒ et OĒ.
Q2Y a-t-il une erreur dans ce chronogramme ? Laquelle ? Pourquoi est-ce problématique ?
Q3Redessine (en texte) le chronogramme corrigé avec la bonne séquence temporelle.
Q4Pourquoi les données restent-elles en haute impédance (Z) pendant un moment même après que OĒ=0 et CS̄=0 ?
▶   VOIR LA CORRECTION
Q1 — Type d'opération
C'est une LECTURE. On voit que WĒ = 1 en permanence (pas d'écriture) et OĒ = 0 (sortie de données activée). Les données apparaissent sur le bus en sortie de la puce.
Q2 — L'erreur
OĒ passe à 0 avant que l'adresse soit stable ET avant que CS̄ soit actif. C'est une erreur de séquençage. Conséquences :
— La puce essaie de sortir une donnée alors que l'adresse est encore invalide (en transition)
— Elle sort potentiellement la donnée d'une mauvaise adresse (celle d'avant la transition)
— Le processeur peut lire une donnée corrompue ou aléatoire
Q3 — Chronogramme corrigé
Ordre correct : Adresse stable → CS̄=0 → OĒ=0 → données valides

ADRESSE  XXXX━━━━━━━━━━━━━━━━━━━━━━━━━━XXXX
              ↑ stable en t1

CS̄       ━━━━━━━━┓                  ┏━━━━━
               t1  ┗━━━━━━━━━━━━━━━┛

       ━━━━━━━━━━━━━┓         ┏━━━━━━━━
                    t2  ┗━━━━━━━┛

       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

DONNÉES  ZZZZZZZZZZZZZZZZZ━━━━━━━ZZZZZZZZZ
                          ↑ valide après tACC
Q4 — Pourquoi le délai sur les données
Même quand CS̄=0 et OĒ=0, la puce a besoin d'un temps interne pour aller chercher la donnée dans ses cellules mémoire, l'amplifier, et la faire remonter jusqu'aux broches D0–Dn. Ce délai s'appelle le temps d'accès (tACC). Selon la technologie, il varie de 5 ns (SRAM rapide) à 70 ns (SRAM standard). Pendant ce temps, le bus reste en Z car la donnée n'est pas encore prête.
6
Synthèse — Construire une mémoire 2M × 16 de A à Z
Cours 01 & 02 Difficile Synthèse complète
📋 Énoncé

Un microprocesseur 16 bits dispose d'un bus d'adresse de 21 bits (A0–A20) et d'un bus de données de 16 bits (D0–D15). On veut lui connecter une mémoire totale de 2M × 16 fabriquée uniquement à partir de puces 512K × 4.

Q1Calcule le nombre total de puces 512K×4 nécessaires. Décompose en extension largeur ET profondeur.
Q2Combien de broches d'adresse ont les puces 512K×4 ? Quels bits A0–Ax vont sur les puces ? Quels bits servent au décodage des CS̄ ?
Q3Décris l'organisation en groupes : combien de groupes, combien de puces par groupe, quel bus chaque groupe couvre-t-il ?
Q4Le processeur lit l'adresse 0x150000. Quel groupe est activé ? Justifie avec les bits de décodage.
Q5Dans ce groupe actif, comment les 16 bits de données sont-ils répartis entre les 4 puces du groupe ?
▶   VOIR LA CORRECTION
Q1 — Nombre total de puces
Extension en largeur : on veut 16 bits, chaque puce donne 4 bits → 16/4 = 4 puces par groupe
Extension en profondeur : on veut 2M adresses, chaque groupe couvre 512K → 2M/512K = 2 097 152 / 524 288 = 4 groupes
Total : 4 × 4 = 16 puces 512K×4
Q2 — Broches d'adresse
Puces 512K×4 : 2ⁿ = 524 288 → n = 19 broches (A0–A18)
Bus système : A0–A20 (21 bits pour 2M adresses)
A0–A18 vont directement sur les broches des puces (adresse interne)
A19 et A20 (2 bits) vont au décodeur et génèrent les 4 signaux CS̄ des groupes
Q3 — Organisation en groupes
4 groupes de 4 puces chacun. Chaque groupe couvre 512K adresses.

GroupeA20A19Plage d'adresses
Groupe 0000x000000 – 0x07FFFF
Groupe 1010x080000 – 0x0FFFFF
Groupe 2100x100000 – 0x17FFFF
Groupe 3110x180000 – 0x1FFFFF
Q4 — Adresse 0x150000
0x150000 = 1 376 256 en décimal.
En binaire (21 bits) : 10 1 0101 0000 0000 0000 0000
→ A20=1, A19=0 → combinaison "1 0" → Groupe 2 est activé (plage 0x100000–0x17FFFF)
✓ 0x150000 est bien dans cette plage.
Q5 — Répartition des 16 bits de données
Dans le groupe actif, les 4 puces fournissent chacune 4 bits du bus de données 16 bits :
Puce 1 du groupe → D0, D1, D2, D3
Puce 2 du groupe → D4, D5, D6, D7
Puce 3 du groupe → D8, D9, D10, D11
Puce 4 du groupe → D12, D13, D14, D15

Toutes reçoivent la même adresse (A0–A18) et les mêmes signaux CS̄/WĒ/OĒ. Elles sortent leurs 4 bits simultanément, formant le mot de 16 bits.

EXERCICES — COURS 01 & 02 · ARCHITECTURE MÉMOIRE

Clique sur "VOIR LA CORRECTION" pour vérifier tes réponses