Architecture des Ordinateurs 1

Architectures Von Neumann & Harvard, représentation des nombres, algèbre de Boole, circuits combinatoires et séquentiels, hiérarchie mémoire. Tout pour réussir l'examen d'Architecture 1 à l'ISEP.

Architecture Niveau : Débutant → Intermédiaire ~3h de lecture Exercices + QCM
Retour aux cours

Sommaire du Cours

  1. Introduction – Von Neumann, Harvard
  2. Représentation des Nombres – Binaire, Hexa, IEEE 754
  3. Algèbre de Boole – Portes logiques, tables de vérité
  4. Circuits Combinatoires – Additionneurs, MUX, décodeurs
  5. Circuits Séquentiels – Bascules, registres, compteurs
  6. Mémoires – ROM, RAM, SRAM, DRAM
  7. Chemin de Données & UC
  8. Exercices Corrigés – 6 exercices types
  9. QCM Interactif – 10 questions

1. Introduction à l'Architecture des Ordinateurs

L'architecture d'un ordinateur définit l'organisation de ses composants matériels et la manière dont ils interagissent pour exécuter des programmes. Deux modèles historiques dominent : Von Neumann et Harvard.

1.1 Architecture de Von Neumann

Proposée par John von Neumann en 1945, c'est l'architecture de la quasi-totalité des ordinateurs modernes. Ses caractéristiques :

Principes clés – Von Neumann

  • Mémoire unique pour les instructions ET les données (programme stocké).
  • Bus unique pour le transfert instructions/données → goulot d'étranglement (Von Neumann bottleneck).
  • Exécution séquentielle : fetch → decode → execute, cycle par cycle.
  • 4 composants : UAL (calculs), Unité de Contrôle (séquencement), Mémoire, Entrées/Sorties.
  • Avantage : simplicité, 1 seul espace d'adressage. Inconvénient : lenteur due au bus partagé.

1.2 Architecture Harvard

Utilisée dans les DSP (Digital Signal Processors) et microcontrôleurs (AVR, PIC).

Principes clés – Harvard

  • Mémoires séparées : une pour les instructions, une pour les données.
  • Bus séparés → accès simultané instructions + données → plus rapide.
  • Permet le pipeline efficace : fetch d'instruction en parallèle avec l'accès données.
  • Inconvénient : complexité matérielle, deux espaces d'adressage distincts.
CritèreVon NeumannHarvard
MémoireUnique (instructions + données)Séparée (2 bus)
VitesseLimitée (goulot)Plus rapide (parallélisme)
ComplexitéSimplePlus complexe
Usage typiquePC, serveurs (x86, ARM Cortex-A)DSP, microcontrôleurs (AVR, PIC)
Cycle fetch/execute1 bus → séquentiel2 bus → pipelinable

2. Représentation des Nombres

Les ordinateurs manipulent exclusivement des bits (0/1). Comprendre les systèmes de numération et la représentation des nombres signés et flottants est fondamental en architecture.

2.1 Bases de numération

Conversions rapides

Binaire → Décimal : $N = \sum b_i \cdot 2^i$. Ex : $1011_2 = 1\cdot8 + 0\cdot4 + 1\cdot2 + 1\cdot1 = 11_{10}$.

Décimal → Binaire : divisions successives par 2, lire les restes de bas en haut.

Binaire → Hexadécimal : grouper par 4 bits (de droite à gauche). $1011\,1100_2 = \text{BC}_{16}$.

Hexadécimal → Binaire : chaque chiffre hexa sur 4 bits. $\text{3F}_{16} = 0011\,1111_2$.

DécimalBinaire (8 bits)HexadécimalOctal
00000 00000x0000
100000 10100x0A012
420010 10100x2A052
1270111 11110x7F177
2551111 11110xFF377

2.2 Nombres signés – Complément à 2

Le Complément à 2 (standard universel)

Sur $n$ bits, le complément à 2 d'un nombre $A$ est $2^n - A$. Méthode pratique :

  1. Complémenter tous les bits (inverser 0↔1 = complément à 1).
  2. Ajouter 1 au résultat.

Plage sur $n$ bits : $[-2^{n-1},\; 2^{n-1}-1]$. Exemple sur 8 bits : $[-128,\;+127]$.

Exemple : $-5$ sur 8 bits → $+5 = 0000\,0101_2$ → complément → $1111\,1010_2$ → $+1$ → $1111\,1011_2$.

Extension de signe : recopier le bit de poids fort (MSB) vers la gauche. $-5$ sur 16 bits : $1111\,1111\,1111\,1011_2$.

2.3 Virgule flottante – IEEE 754 (simple précision, 32 bits)

Format IEEE 754 – 32 bits (float)

Structure : 1 bit signe S | 8 bits exposant E (biaisé de +127) | 23 bits mantisse M (bit implicite 1).

$V = (-1)^S \times (1.M) \times 2^{E-127}$

Cas spéciaux : $E=0, M=0$ → $0$ ; $E=255, M=0$ → $\pm\infty$ ; $E=255, M\neq0$ → NaN.

Exemple : $-6.625_{10}$ → S=1, $6.625=110.101_2=1.10101\times2^2$ → $E=2+127=129=1000\,0001_2$, $M=10101\,00...0$. Résultat : $1\,1000\,0001\,1010\,1000\,...0$.


3. Algèbre de Boole et Portes Logiques

L'algèbre de Boole manipule des variables binaires (0/1) avec 3 opérations fondamentales : ET (·), OU (+), NON (̅). Toute fonction logique peut être exprimée avec ces opérateurs.

3.1 Portes logiques fondamentales

PorteSymboleÉquationTable de véritéPropriété clé
ANDA·B$S = A \cdot B$1 uniquement si A=1 ET B=1$A\cdot0=0$, $A\cdot1=A$, $A\cdot A=A$
ORA+B$S = A + B$1 si A=1 OU B=1 (ou les deux)$A+0=A$, $A+1=1$, $A+A=A$
NOTĀ$S = \overline{A}$Inverse l'entrée$\overline{\overline{A}} = A$
NAND$\overline{A\cdot B}$$S = \overline{A \cdot B}$0 uniquement si A=1 ET B=1Porte universelle
NOR$\overline{A+B}$$S = \overline{A + B}$1 uniquement si A=0 ET B=0Porte universelle
XORA⊕B$S = A \oplus B = A\overline{B} + \overline{A}B$1 si A ≠ B$A\oplus0=A$, $A\oplus1=\overline{A}$, $A\oplus A=0$
XNORA⊙B$S = \overline{A \oplus B}$1 si A = BComparateur d'égalité

3.2 Tables de vérité détaillées (2 entrées)

AND

ABS
000
010
100
111

OR

ABS
000
011
101
111

NAND

ABS
001
011
101
110

XOR

ABS
000
011
101
110

3.3 Lois et théorèmes fondamentaux

À connaître par cœur pour l'examen

  • Idempotence : $A + A = A$, $A \cdot A = A$
  • Complémentarité : $A + \overline{A} = 1$, $A \cdot \overline{A} = 0$
  • Commutativité : $A+B = B+A$, $A\cdot B = B\cdot A$
  • Associativité : $(A+B)+C = A+(B+C)$
  • Distributivité : $A\cdot(B+C) = A\cdot B + A\cdot C$
  • Absorption : $A + A\cdot B = A$
  • De Morgan : $\overline{A+B} = \overline{A}\cdot\overline{B}$, $\overline{A\cdot B} = \overline{A}+\overline{B}$
  • Éléments neutres : $A+0=A$, $A\cdot1=A$

4. Circuits Combinatoires

Un circuit combinatoire est un circuit dont les sorties ne dépendent que des entrées présentes (pas de mémoire, pas de rétroaction).

4.1 Demi-additionneur (Half Adder)

Demi-additionneur – 2 entrées, 2 sorties

Somme $S = A \oplus B$ (XOR)  |  Retenue $C_{out} = A \cdot B$ (AND)

ABS (Somme)Cout (Carry)
0000
0110
1010
1101

4.2 Additionneur complet (Full Adder)

Full Adder – 3 entrées (A, B, Cin), 2 sorties

Somme : $S = A \oplus B \oplus C_{in}$

Retenue sortante : $C_{out} = A\cdot B + C_{in}\cdot(A \oplus B)$

Un additionneur $n$ bits se construit en chaînant $n$ full adders (carry ripple adder). Le temps de propagation est proportionnel à $n$ (délai de propagation de la retenue).

4.3 Multiplexeur (MUX)

MUX $2^n$:1 – $2^n$ entrées de données, $n$ entrées de sélection, 1 sortie

Un multiplexeur sélectionne 1 entrée parmi $2^n$ selon les bits de sélection.

MUX 2:1 : $S = \overline{S_0}\cdot I_0 + S_0\cdot I_1$ (1 bit de sélection $S_0$).

MUX 4:1 : $S = \overline{S_1}\,\overline{S_0}\,I_0 + \overline{S_1}S_0\,I_1 + S_1\overline{S_0}\,I_2 + S_1S_0\,I_3$.

Application : un MUX $2^n$:1 peut implémenter n'importe quelle fonction logique de $n$ variables en connectant les entrées à 0 ou 1 selon la table de vérité.

4.4 Décodeur

Décodeur $n$ vers $2^n$ – $n$ entrées, $2^n$ sorties (une seule active à la fois)

Décodeur 2→4 : avec entrées $A_1,A_0$, sorties $D_0=\overline{A_1}\,\overline{A_0},\; D_1=\overline{A_1}A_0,\; D_2=A_1\overline{A_0},\; D_3=A_1A_0$.

Utilisation : sélection de périphériques (chip select), décodage d'adresses mémoire, implémentation de fonctions logiques (avec une porte OR sur les sorties).


5. Circuits Séquentiels

Contrairement aux circuits combinatoires, les circuits séquentiels possèdent une mémoire : leur sortie dépend des entrées ET de l'état précédent. L'élément de base est la bascule (latch/flip-flop).

5.1 Bascules (Latches & Flip-Flops)

Une bascule est un circuit bistable (2 états stables : 0 et 1) capable de mémoriser 1 bit.

Bascule RS (Reset-Set)

NOR-RS : $S=1$ → $Q=1$ (set). $R=1$ → $Q=0$ (reset). $R=S=0$ → mémorise. $R=S=1$ → interdit (état indéterminé).

Table caractéristique : $Q_{t+1} = S + \overline{R}\cdot Q_t$ (avec $R\cdot S=0$).

Bascule D (Data) – La plus utilisée en pratique

La bascule D recopie l'entrée D sur la sortie Q lors du front d'horloge (rising edge ou falling edge).

Équation : $Q_{t+1} = D$ (après le front d'horloge).

Avantage : élimine le problème RS ($S=R=1$ interdit). 1 seule entrée de données. Utilisée dans les registres et les compteurs synchrones.

Bascule JK – La plus polyvalente

La bascule JK résout le problème de l'état interdit RS : $J=K=1$ → basculement (toggle, $Q_{t+1} = \overline{Q_t}$).

JK$Q_{t+1}$Mode
00$Q_t$Mémorisation (hold)
010Reset
101Set
11$\overline{Q_t}$Basculement (toggle)

5.2 Registres

Registre $n$ bits

Un registre est un ensemble de $n$ bascules D partageant la même horloge. Capacité de stockage = $n$ bits.

Registre à décalage (shift register) : à chaque front d'horloge, les bits sont décalés d'une position ($Q_i$ → $Q_{i+1}$). Utilisé pour la conversion série/parallèle et les multiplications/divisions par $2^n$.

Registre à chargement parallèle : charge $n$ bits simultanément via une entrée Load.

5.3 Compteurs

Compteurs synchrones et asynchrones

Compteur asynchrone (ripple) : chaque bascule est cadencée par la sortie de la précédente. Simple mais lent (délai cumulatif = $n \times t_{pd}$).

Compteur synchrone : toutes les bascules partagent la même horloge. Plus rapide, plus complexe.

Compteur modulo-N : cycle $0 \to 1 \to \dots \to N-1 \to 0$. Avec $k$ bascules, $N \leq 2^k$. Remise à zéro quand le compte atteint $N$ (décodeur + reset).


6. Mémoires

La mémoire stocke instructions et données. Elle est organisée en hiérarchie : plus on s'approche du processeur, plus c'est rapide, petit et cher.

6.1 Typologie des mémoires

TypeVolatile ?Lecture/ÉcritureTechnologieUsage
ROMNonLecture seuleMasqueBoot, firmware
PROMNonÉcriture 1× (programmable)FusiblesPrototypage
EPROMNonEffaçable UV, réinscriptibleUVDéveloppement
EEPROM / FlashNonEffaçable électriquementÉlectriqueSSD, BIOS, clés USB
SRAMOuiLecture + Écriture rapide6 transistors/basculesCache (L1, L2, L3)
DRAMOuiLecture + Écriture + Rafraîchissement1 transistor + 1 condensateurMémoire principale (RAM)

6.2 SRAM vs DRAM

Comparaison SRAM / DRAM

  • SRAM : 6 transistors par bit, très rapide (~1-10 ns), chère, utilise des bascules → cache processeur.
  • DRAM : 1 transistor + 1 condensateur par bit, plus lente (~50-100 ns), bon marché, nécessite un rafraîchissement périodique (toutes les ~64 ms) → RAM principale.
  • La DRAM est ~4× plus dense que la SRAM mais ~10× plus lente.

6.3 Hiérarchie mémoire

NiveauTypeTaille typiqueLatenceBande passante
Registres CPUBascules internes~100-500 octets~1 cycle (0.3 ns)Très élevée
Cache L1SRAM32-64 Kio~4-5 cycles~1 To/s
Cache L2SRAM256 Kio – 1 Mio~12-20 cycles~500 Go/s
Cache L3SRAM4-32 Mio (partagé)~40-50 cycles~200 Go/s
RAM (DDR4/DDR5)DRAM8-64 Gio~100-150 ns~50 Go/s
SSD / Disque durFlash / Magnétique256 Gio – 2 To~100 µs / ~10 ms~500 Mo/s – 5 Go/s

7. Chemin de Données et Unité de Contrôle

Le processeur est composé de deux parties : le chemin de données (qui exécute les opérations) et l'unité de contrôle (qui orchestre le tout).

7.1 Chemin de données (Datapath)

Composants du datapath

  • UAL (ALU) : effectue les opérations arithmétiques (+, −, ×) et logiques (AND, OR, XOR, shifts).
  • Banc de registres : stocke les opérandes et résultats intermédiaires (ex : 32 registres de 32 bits sur MIPS).
  • Bus internes : transportent les données entre registres, UAL et mémoire.
  • Registres spécialisés : PC (Program Counter), IR (Instruction Register), MAR (Memory Address Register), MDR (Memory Data Register).

7.2 Unité de Contrôle (Control Unit)

Deux types d'implémentation

UC câblée (hardwired) : logique combinatoire fixe → rapide, mais non modifiable. Utilisée dans les processeurs RISC simples.

UC microprogrammée : séquence de micro-instructions stockée en ROM → flexible mais plus lente. Utilisée dans les processeurs CISC (x86).

7.3 Cycle d'instruction

Fetch → Decode → Execute (cycle von Neumann)

  1. Fetch (recherche) : l'instruction pointée par PC est chargée depuis la mémoire dans IR. PC ← PC + 1 (ou +4 selon l'architecture).
  2. Decode (décodage) : l'UC décode l'instruction → identifie le code opération (opcode), les opérandes, et active les signaux de contrôle.
  3. Execute (exécution) : l'UAL effectue l'opération, lit/écrit les registres ou la mémoire selon l'instruction.
  4. Write Back : le résultat est écrit dans le registre de destination (pour les instructions de type R sur MIPS).

8. Exercices Corrigés

6 exercices types couvrant l'ensemble du programme. Essaye de résoudre chaque exercice avant de regarder la correction.

Exercice 1 – Conversion de bases

Représentation

Énoncé : Convertir les nombres suivants :

  1. $1101\,0110_2$ en décimal et en hexadécimal.
  2. $7\text{B}_{16}$ en binaire et en décimal.
  3. $156_{10}$ en binaire (8 bits) et en hexadécimal.

Exercice 2 – Complément à 2

Nombres signés

Énoncé :

  1. Représenter $-37$ en complément à 2 sur 8 bits.
  2. Quelle est la valeur décimale de $1110\,1100_2$ (complément à 2, 8 bits) ?
  3. Additionner $+25$ et $-37$ en complément à 2 sur 8 bits. Vérifier le résultat en décimal.

Exercice 3 – Table de vérité et équation logique

Algèbre de Boole

Énoncé : Soit la fonction logique $F(A,B,C) = \overline{A}\cdot B + A\cdot\overline{B}\cdot C + A\cdot B\cdot\overline{C}$.

  1. Établir la table de vérité de $F$.
  2. Simplifier $F$ par la méthode algébrique.
  3. Dessiner le logigramme simplifié utilisant uniquement des portes NAND à 2 entrées.

Exercice 4 – Additionneur 4 bits

Circuits combinatoires

Énoncé : On souhaite additionner $A = 0110_2$ (6) et $B = 0101_2$ (5) avec un additionneur 4 bits à propagation de retenue (ripple carry adder).

  1. Calculer bit à bit les sommes et retenues intermédiaires ($C_0=0$).
  2. Donner le résultat final $S_3S_2S_1S_0$ et la retenue finale $C_4$.
  3. Quel est le temps de propagation si chaque full adder a un délai de 2 ns ?

Exercice 5 – Compteur modulo-6

Circuits séquentiels

Énoncé : Concevoir un compteur synchrone modulo-6 (compte de 0 à 5) à l'aide de bascules D.

  1. Combien de bascules D sont nécessaires ?
  2. Donner la table de transition d'état.
  3. Expliquer le mécanisme de remise à zéro (reset) quand le compteur atteint 6.

Exercice 6 – MUX et implémentation de fonction

Circuits combinatoires

Énoncé : Implémenter la fonction majorité $F(A,B,C) = AB + AC + BC$ à l'aide d'un multiplexeur 8:1, puis d'un multiplexeur 4:1.


9. QCM d'Entraînement

10 questions pour tester tes connaissances. Clique sur chaque question pour révéler la réponse et l'explication.