résumé bus systÈme registres unité de traitement unité flottante unité de contrôle décodeur...
TRANSCRIPT
![Page 1: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/1.jpg)
Résumé
BUS SYSTÈME
Registres
Unité deTraitement
UnitéFlottante
Unité deContrôle
Décodeur
PC
ALU
CPU
MÉMOIREPRINCIPALE IO IO IO
CacheDonnées
CacheInstructions
Séquenceur
CK
n BASCULES
Opcode Opérandes
Fanions
RAM
Contrôle
SLC
Opérande
s
Instruction
AdresseCK
![Page 2: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/2.jpg)
Séquenceur
Séquenceur
CK
n BASCULES
Opcode Opérandes
n BASCULES
Opcode Opérandes
Fanions
RAMRAM
Contrôle
SLCSLC
Opérande
s
Instruction
AdresseCK
Résumé
CK
Offset
SLCOpcode
ConditionFanions
+1
Adresse
+
PC
![Page 3: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/3.jpg)
PC+PC+offset
PC+PC+offset
Résumé
MémoireMémoire
Séquenceur
Séquenceur
CK
IR
Opcode Opérandes
IR
Opcode Opérandes
Fanions
RAMRAM
Contrôle
SLCSLC
Opérande
s
MDR MARCK
PC
PC+ adresse initialePC+ adresse initiale
MAR PC+
MDR M[MAR]IR+ MDR
MAR PC+
MDR M[MAR]IR+ MDR
décodification de IRdécodification de IR
PC+PC+1PC+PC+1
saut?saut?
contrôle?contrôle?
adresse?adresse?
exécutionexécution
chargementchargement
OUI
NONOUI
NONOUI NON
CK
![Page 4: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/4.jpg)
Complication #1 Comment peut fonctionner un processeur 8 ou 16
bits quand les instructions doivent coder tellement d'informations? ou
Comment réaliser des instructions qui nécessitent plus d'opérandes que ne peut coder un seul mot mémoire? ou
Comment exécuter des instructions qui nécessitent plusieurs coups d'horloge?
Une solution possible: la microprogrammation.
![Page 5: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/5.jpg)
Décodage - Processeurs câblés
MémoireMémoire
Séquenceur
Séquenceur
CK
IR
Opcode Opérandes
IR
Opcode Opérandes
Fanions
RAMRAM
Contrôle
SLCSLC
Opérande
s
MDR MARCK
PC
OPCODE O S W = E E EADRESSE N L ALC SHC RRA RRB N WRA...000 0 0 ØØØ ØØØ ØØØ ØØØ 0 ØØØ...001 0 1 101 1ØØ ØØØ 000 1 001...011 0 0 111 1ØØ 000 ØØØ 1 010...010 0 0 101 1ØØ 000 000 1 011...100 0 0 001 1ØØ 001 010 1 100...101 0 0 101 1ØØ 011 100 1 011...111 1 0 101 1ØØ 011 000 0 ØØØ...110 0 0 101 010 001 000 1 001...... .........................
RAM 2NxC
![Page 6: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/6.jpg)
Décodage - Microprogrammation
MémoireMémoire
Séquenceur
Séquenceur
CK
IR
Opcode Opérandes
IR
Opcode Opérandes
Fanions Microprogrammes
Microprogrammes
Contrôle
Opérande
s
MDR MARCK
PC
OPCODE ...000 Microinstruction 1 Microinstruction 2 ... Microinstruction N...001 Microinstruction 1 Microinstruction 2 ... Microinstruction N...011 Microinstruction 1...010 Microinstruction 1...... .........................
![Page 7: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/7.jpg)
Décodage - Microprogrammation
MémoireMémoire
Séquenceur
Séquenceur
CK
IR
Opcode Opérandes
IR
Opcode Opérandes
Fanions Microprogrammes
Microprogrammes
Contrôle
Opérande
s
MDR MARCK
PC
OPCODE ...000 ...001 ...011 ............................010 ............................... .........................
S0 S1 S2 Sn
S0 S1 S2 SnS3
![Page 8: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/8.jpg)
Exemple - Motorola 68000
MémoireMémoire
Séquenceur
Séquenceur
CK
IR
Opcode Opérandes
IR
Opcode Opérandes
Fanions Microprogrammes
Microprogrammes
Contrôle
Opérande
s
MDR MARCK
PC
• Architecture 16 bits (extensions 32 bits)• 12 modes d'adressage• 16 fanions• 8 registres de 16 (32) bits de large
Exemple 1: addition (en BCD) des contenus de deux adresses stockées dans deux registres, avec pré-décrément des adresses
abcd -(A1),-(A2)
Exemple 2: soustraction d'un nombre immédiat (16 bits) au contenu d'une position mémoire (adresse 16 bits)
subi.0 #0f0fH,2d52H
![Page 9: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/9.jpg)
abcd -(A1),-(A2) abcd -(A1),-(A2)
Exemple 1 - Codage de l'instruction
MémoireMémoire
Séquenceur
Séquenceur
CK
IR
Opcode Opérandes
IR
Opcode Opérandes
Fanions Microprogrammes
Microprogrammes
Contrôle
Opérande
s
MDR MARCK
PC
1 mot de 16 bits est suffisant pour codercette instruction:
#1: 1100 010100 001001#1: 1100 010100 001001
DestinationSource
Il faut remarquer que le contenu de la destination est écrasé par le résultat.
On peut supposer que le processeur contient une seule ALU.
![Page 10: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/10.jpg)
Exemple 1 - Décodage de l'instruction
MémoireMémoire
Séquenceur
Séquenceur
CK
IR
1100010100001001
IR
1100010100001001
Fanions Microprogrammes
Microprogrammes
Contrôle
Opérande
s
MDR MARCK
PC A1A1-1
M[A1]M[A2]+M[A1]PC+PC+1IR+M[PC+]
A2A2-1
abcd -(A1),-(A2)
S0
S1
S2
![Page 11: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/11.jpg)
subi.0 #0f0fH,2d52Hsubi.0 #0f0fH,2d52H
Exemple 2 - Codage de l'instruction
MémoireMémoire
Séquenceur
Séquenceur
CK
IR
Opcode Opérandes
IR
Opcode Opérandes
Fanions Microprogrammes
Microprogrammes
Contrôle
Opérande
s
MDR MARCK
PC
3 mots de 16 bits sont nécessaires pour codercette instruction:
#1: 0000 010001 111000#1: 0000 010001 111000
Taille des donnéesMode d'adressage
#2: 0000111100001111#2: 0000111100001111
Immédiat
#3: 0010110101010010#3: 0010110101010010
Adresse
![Page 12: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/12.jpg)
Exemple 2 - Décodage de l'instruction
MémoireMémoire
Séquenceur
Séquenceur
CK
IR
0000010001111000
IR
0000010001111000
Fanions Microprogrammes
Microprogrammes
Contrôle
Opérande
s
MDR MARCK
PC
A1IRPC+PC+1IR+M[PC+]
M[IR]M[IR]-A1PC+PC+1IR+M[PC+]
PC+PC+1IR+M[PC+]
subi.0 #0f0fH,2d52H
S0
S1
S2
![Page 13: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/13.jpg)
Complication #2 Existe-t-il des architectures alternatives pour
l'unité de traitement permettant de réduire la complexité des instructions?
La réponse est (évidemment) oui.
Malheureusement, une telle réduction implique une perte de performance: si les instructions sont plus simples, il faut plus d'instructions pour une tâche donnée.
On échange une complexité matérielle contre une complexité logicielle.
![Page 14: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/14.jpg)
Architecture "standard" - Structure
RA
WA
RBWEN
I0 I1
Z
SHIFTER
R0 R1 R2 R3 R4 R5 R6 R7
SH2SH1SH0
AL2AL1AL0
OENSEL
Z≠0
1 0
INPORTOUTPORT
33
3
![Page 15: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/15.jpg)
Architectures "standards" - ExempleLangage de haut niveau:
P := (Q*R + S*T)*(U + V)
Compilation pour une architecture "standard":
MULT Q,R : R Q*RMULT S,T : T S*TADD T,R : R Q*R + S*TADD U,V : V U + VMULT R,V : V (Q*R + S*T)*(U + V)MOVE V,P : P (Q*R + S*T)*(U + V)
![Page 16: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/16.jpg)
I - Architectures load/storeUne première possibilité a déjà été mentionnée. Il s'agit de limiter toute référence à la mémoire principale aux seules instructions de transfert de données (move, load, store). Par exemple, l'instruction:
abcd -(As),-(Ad)
peut être transformée en:dec Asdec Admove (As),Axmove (Ad),Ayabcd Ax,Aymove Ay,(Ad)
Ce type d'architecture est appelé load/store (chargement-rangement).
![Page 17: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/17.jpg)
Architectures load/store - Structure
RA
WA
RBWEN
I0 I1
Z
SHIFTER
R0 R1 R2 R3 R4 R5 R6 R7
SH2SH1SH0
AL2AL1AL0
OEN
SEL
Z≠0
1 0
INPORT OUTPORT
33
3
![Page 18: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/18.jpg)
Architectures load/store - ExempleLangage de haut niveau:
P := (Q*R + S*T)*(U + V)
Compilation pour une architecture load/store:LOAD R1, QLOAD R2, RMULT R1,R2 : R2 Q*RLOAD R1, SLOAD R3, TMULT R1,R3 : R3 S*TADD R2,R3 : R3 Q*R + S*TLOAD R1, ULOAD R2, VADD R1,R2 : R2 U+VMULT R2,R3 : R3 (Q*R + S*T)*(U+V)STORE R3,P : P (Q*R + S*T)*(U+V)
![Page 19: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/19.jpg)
II - Processeurs à accumulateurDans ce type d'architecture les résultats de toutes les opérations sont stockés dans un registre particulier (l'accumulateur) et toutes les variable sont stockées dans la mémoire principale.
Par exemple, l'opération x y + z est réalisée par:load y : ACC yadd z : ACC ACC + zstore x : x ACC
Chaque instruction doit donc contenir deux champs: l'opcode et l'adresse de l'opérande (l'accumulateur est toujours un opérande par défaut).
Exemples: DEC PDP-8, Intel 8080, Motorola 6800.
![Page 20: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/20.jpg)
Processeurs à accumulateur - Structure
I0 I1
Z
SHIFTER
Accumulateur
SH2SH1SH0
AL2AL1AL0
OEN
SEL
Z≠0
0 1
INPORTOUTPORT
![Page 21: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/21.jpg)
Processeurs à accumulateur - ExempleLangage de haut niveau:
P := (Q*R + S*T)*(U + V)
Compilation pour une architecture à accumulateur:
LOAD Q : ACC QMULT R : ACC Q*RSTORE P : P Q*RLOAD S : ACC SMULT T : ACC S*TADD P : ACC Q*R + S*TSTORE P : P Q*R + S*TLOAD U : ACC UADD V : ACC U+VMULT P : ACC (Q*R + S*T)*(U+V)STORE P : P (Q*R + S*T)*(U+V)
![Page 22: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/22.jpg)
III - Processeurs à pile (stack)Dans ce type d'architecture les opérandes se trouvent toujours au sommet d'une pile (stack), typiquement dans la mémoire, et le résultat est ensuite toujours stocké au sommet de la pile. En conséquence, une instruction typique ne contient pas d'adresse d'opérande. Un registre dédié, le stack pointer (SP), pointe toujours le sommet de la pile.
Par exemple, l'opération x y + z est réalisée par:push y : SP+ SP+1; M[SP+] ypush z : SP+ SP+1; M[SP+] zadd : SP+ SP-1;
M[SP+] M[SP+] + M[SP]pop x : SP+ SP-1; x M[SP]
Exemples: Burroughs B5000, HP 300.
![Page 23: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/23.jpg)
Processeurs à pile - Structure
I0 I1
Z
SH2SH1SH0
AL2AL1AL0
POP
SEL
Z≠0
0 1
INPORTOUTPORT
0 1
Adresse M[SP]
PUSH
M[SP+]
SHIFTER
StackPointer
+
+1 0 -1
SP+
SP
![Page 24: Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions](https://reader030.vdocuments.mx/reader030/viewer/2022020921/551d9da1497959293b8d0682/html5/thumbnails/24.jpg)
Processeurs à pile - ExempleLangage de haut niveau:
P := (Q*R + S*T)*(U + V)
Compilation pour une architecture à pile:PUSH Q : SP+ SP+1; M[SP+] QPUSH R : SP+ SP+1; M[SP+] RMULT : SP+ SP-1; M[SP+] Q*RPUSH S : SP+ SP+1; M[SP+] SPUSH T : SP+ SP+1; M[SP+] TMULT : SP+ SP-1; M[SP+] S*TADD : SP+ SP-1; M[SP+] Q*R + S*TPUSH U : SP+ SP+1; M[SP+] UPUSH V : SP+ SP+1; M[SP+] VADD : SP+ SP-1; M[SP+] U+VMULT : SP+ SP-1; M[SP+] (Q*R + S*T)*(U+V)POP P : SP+ SP-1; P (Q*R + S*T)*(U+V)