Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur...

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 IO IO Cache Données Cache Instructions Séquenceur CK n BASCULES Opcode Opérandes Fanions RAM C o n t r ô l e SLC O p é r a n d e s Instruction Adresse CK

Transcript of Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur...

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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)