Vous êtes sur la page 1sur 27

Chapitre 6: Conception d ’un processeur Multi-Cycle

Vue Simplifiée du processeur Mono-Cycle

Contrôle
op
Principal
Contrôle
fun

Cond=
ALU

MemWr
MemWr
MemRd

RegDst
RegWr
ALUctr
nPC_sel

ExtOp

ALUSrc

Rangement Résultat
Regs.
Registres
PC Suiv.

Lecture

Mémoire

Ecrit
Instruction

ALU

Accès
Lecture

Ext
PC

Donn.
Mem
NHA/MMY Multi-cylce Based on UCB Page 1
Réduction Temps Instruction
° Insertion de registres intermédiaires
° Même travail fait dans plusieurs cycles rapides, au lieu de un
seul cycle lent
Registre Registre

Logique Logique
combinatoire combinatoire A

=> Registre

Logique
combinatoire B
Registre

Registre

NHA/MMY Multi-cylce Based on UCB Page 2


PC Suiv.
nPC_sel
PC

NHA/MMY Multi-cylce
Lecture
Instruction

Lecture
Arguments

ExtOp

Based on UCB
ALUSrc
Exec

ALUctr
Partition du CPI

MemRd
Accès MemWr
° Ajout de registres entre étapes intermédiaires

Mémoire

Mem. Banc RegDst


Donn. Reg. RegWr
MemWr

Rangement Résultat
Page 3
PC Suiv. nPC_sel
PC

NHA/MMY Multi-cylce
Lecture
Instruction

° Chemin Critique ?
IR
Reg.
Banc A

ExtOp

Based on UCB
Ext ALUSrc
ALU ALUctr
Cond=
S

Accés MemRd
Mem. MemWr
M

Mem.
Donn
MemToReg

Banc RegDst
Reg. RegWr
Un exemple de chemin données Multi-cycle

Page 4
Conception étape par étape

Etape 1: ISA => Registres Transferts Logique

Etape 2: Composants de Chemin Données

Etape 3: RTs + Composants => Chemin données

Etape 4: Chemin + RTs Logique => RTs Physique


Etape 5: RTs Physique => Contrôle

NHA/MMY Multi-cylce Based on UCB Page 5


Etape 4: R-type (add, sub, . . .)
° Transferts logique des registres
ADD R[rd] <– R[rs] + R[rt]; PC <– PC + 4

° Transferts Physique des registres


IR <– MEM[pc]
ADD A<– R[rs]; B <– R[rt]
S <– A + B
R[rd] <– S; PC <– PC + 4

Banc
Reg.
Mem. Inst.

Banc
Reg.
PC Suiv.

Exec
S
PC

IR

Memoire
Accés
M

Mem.
Donn
NHA/MMY Multi-cylce Based on UCB Page 6
Etape 4:OR logique immédiat
° Transferts logique des registres
ORI R[rt] <– R[rs] OR ZeroExt(Im16); PC <– PC + 4

° Transferts Physique des registres

IR <– MEM[pc]
ORI A<– R[rs]; B <– R[rt]
S <– A or ZeroExt(Im16)
R[rt] <– S; PC <– PC + 4

Banc
Reg.
Mem. Inst.

Banc
Reg.
PC Suiv.

Exec
S
PC

IR

Memoire
Accés
M

Mem.
Donn
NHA/MMY Multi-cylce Based on UCB Page 7
Etape 4 : Chargement
° Transferts logique des registres
LW R[rt] <– MEM(R[rs] + SignExt(Im16);
PC <– PC + 4
° Transferts Physique des registres

IR <– MEM[pc]
LW A<– R[rs]; B <– R[rt]
S <– A + SignExt(Im16)
M <– MEM[S]
R[rd] <– M; PC <– PC + 4

Banc
Reg.
Mem. Inst.

Banc
Reg.
PC Suiv.

A
Exec
S
PC

IR

Memoire
Accés
M

Mem.
Donn
NHA/MMY Multi-cylce Based on UCB Page 8
Etape 4 : Rangement
° Transferts logique des registres
SW MEM(R[rs] + sx(Im16) <– R[rt];
PC <– PC + 4
° Transferts Physique des registres

IR <– MEM[pc]
SW A<– R[rs]; B <– R[rt]
S <– A + SignEx(Im16);
MEM[S] <– B PC <– PC + 4

Banc
Reg.
Mem. Inst.

Banc
Reg.
PC Suiv.

A
Exec
S
PC

IR

Memoire
Accés
M

Mem.
Donn
NHA/MMY Multi-cylce Based on UCB Page 9
Etape 4 : Saut Conditionnel
° Transferts logique des registres
BEQ Si R[rs] == R[rt]
Alors PC <= PC + SignExt(Im16) +4
Sinon PC <= PC + 4
° Transferts Physique des registres

IR <– MEM[pc] IR <– MEM[pc].


BEQ|Cond= PC <– PC + 4 BEQ|Cond= PC <– PC +
SignExt(Im16)+4

Banc
Reg.
Mem. Inst.

Banc
Reg.
PC Suiv.

A
Exec
S
PC

IR

Memoire
Accés
M

Mem.
Donn
NHA/MMY Multi-cylce Based on UCB Page 10
Chemin de données (Livre): Multi-Cycle
° Minimisation du matériel: 1 mémoire, 1 ALU/adder
PCWr PCWrCond PCSrc BrWr
Zero
IorD MemWr IRWr RegDst RegWr ALUSelA 1 Dest.

Mux
32
32
PC
0 0
32 Cond=

Mux
Rs
0 Ra
Mux

32 RAdr Rt 5 32
Reg Inst.

ALU
32 Rb busA 1
32 Mémoire 5 Banc 32
1 Idéale Rt 0 4 0

Mux
WrAdr 32 Rw Regs. 32
32 Rd 1 32
Din Dout busW busB 32
1 2
32 Contrôle
1 Mux 0 3
<< 2 ALU

Imm 16 Ext
32 ALUOp
ExtOp MemtoReg ALUSelB

NHA/MMY Multi-cylce Based on UCB Page 11


Modèle du Contrôle
° Un état spécifiant les points de contrôle pour les Transferts de Registres.
° Transfert prend place au moment ou on quitte l ’état (front descendant).

Conditions (op, Cond=)

Logique état Etat X


suivant
Transferts de registres
Points de contrôle
Etat Courant
Dépend des entrées

Logique Sorties

Points de contrôle

NHA/MMY Multi-cylce Based on UCB Page 12


Etape 4 => Spécification du contrôle
IR <= MEM[PC] “chercher instruction”

A <= R[rs]
Exécution

B <= R[rt] “lecture/décodage arguments”

BEQ & Cond=


R-type ORi LW BEQ & !Cond=
SW

PC <= PC + 4 PC <= PC +
S <= A fun B S <= A or ZX S <= A + SX S <= A + SX
SX +4

Accès Mem.
M <= MEM[S] MEM[S] <= B

Ecrire registres
PC <= PC + 4

R[rd] <= S R[rt] <= S R[rt] <= M


PC <= PC + 4 PC <= PC + 4 PC <= PC + 4

NHA/MMY Multi-cylce Based on UCB Page 13


Contrôleur Machine Traditionnel

Etat op Cond= Etat Points Contrôle


Suiv.

Table Vérité
Etat Points Contrôle
11 Suiv.
Cond=
6

4 Etat

op
Chem. Donn.
NHA/MMY Multi-cylce Based on UCB Page 14
Etape 5: Chemin Donn. + Digramme Etats => contrôle

° Traduire RTS en points de contrôle


° Affectation des Etats
° Construction Contrôleur

NHA/MMY Multi-cylce Based on UCB Page 15


Traduction RTS en points contrôle
IR <= MEM[PC]
imem_rd, IRen

A <= R[rs]
B <= R[rt]
Aen, Ben

R-type ORi LW BEQ & !Equal BEQ & Equal


SW
S <= A fun B
PC <= PC + 4 PC <= PC +
ALUfun, Sen S <= A or ZX S <= A + SX S <= A + SX
SX || 00

M <= MEM[S] MEM[S] <= B


PC <= PC + 4
R[rd] <= S
PC <= PC + 4
RegDst, R[rt] <= S R[rt] <= M
RegWr, PC <= PC + 4 PC <= PC + 4
PCen

NHA/MMY Multi-cylce Based on UCB Page 16


Affectation des états
IR <= MEM[PC]
0000

A <= R[rs]
B <= R[rt]
0001

R-type ORi LW BEQ & Equal


SW
BEQ & ~Equal
S <= A fun B S <= A or ZX S <= A + SX S <= A + SX PC <= PC + 4 PC <= PC +
0100 0110 1000 1011 0011 SX || 00
0010

M <= MEM[S] MEM[S] <= B


1001 PC <= PC + 4
1100
R[rd] <= S R[rt] <= S R[rt] <= M
PC <= PC + 4 PC <= PC + 4 PC <= PC + 4
0101 0111 1010

NHA/MMY Multi-cylce Based on UCB Page 17


Spécification détaillée du contrôle
Etat Op Cond= Suiv. IR PC Exec Mem Ecrire Reg.
sel A B Ext Sr ALU S R W M M-R Wr Dst
0000 ?????? ? 0001 1
0001 BEQ 0 0011 11
0001 BEQ 1 0010 11
0001 R-type x 0100 11
0001 orI x 0110 11
0001 LW x 1000 11
0001 SW x 1011 11
0010 xxxxxx x 0000 1 1
0011 xxxxxx x 0000 1 0
R: 0100 xxxxxx x 0101 0 1 fun 1
0101 xxxxxx x 0000 1 0 0 1 1
ORi: 0110 xxxxxx x 0111 0 0 or 1
0111 xxxxxx x 0000 1 0 0 1 0
LW: 1000 xxxxxx x 1001 1 0 add 1
1001 xxxxxx x 1010 1 0 0
1010 xxxxxx x 0000 1 0 1 1 0
SW: 1011 xxxxxx x 1100 1 0 add 1
1100 xxxxxx x 0000 1 0 0 1
NHA/MMY Multi-cylce Based on UCB Page 18
Evaluation de Performances

° CPI Moyen?
• Diagramme des états donne CPI pour chaque instruction
• Fréquence d ’utilisation de chaque instruction

Type CPIi Fréquence CPIi x freqIi


Arith/Logic 4 40% 1.6
Chargement 5 30% 1.5
Rangement 4 10% 0.4
Saut Cond. 3 20% 0.6
Moyenne CPI:4.1

NHA/MMY Multi-cylce Based on UCB Page 19


Conception du Contrôleur

° Les diagrammes du contrôle obtenu sont simple et structurées


° Utilisation de structure simple pour construction de “micro-séquenceur”
° Implémentation de la logique de contrôle: programmation
• microprogrammation

Contrôle Contrôle Chem. Donn.


Séquenceur

microinstruction

micro-PC
sequenceur

NHA/MMY Multi-cylce Based on UCB Page 20


Exemple: Compteur/Saut

i i
0000

i+1

ROM
op-code

Zero
Compteur Inc
Charg.

NHA/MMY Multi-cylce Based on UCB Page 21


Compteur/Saut

IR <= MEM[PC] “Lecture instruction”


0000
inca
A <= R[rs]
B <= R[rt]
0001
Charg. Inc
R-type ORi LW BEQ & =
SW
BEQ & ~=
S <= A fun B S <= A or ZX S <= A + SX S <= A + SX PC <= PC + 4 PC <= PC +
0100 0110 1000 1011 0011 SX || 00
0010
Inc Inc Inc Inc
M <= MEM[S] MEM[S] <= B Zero Zero
1001 PC <= PC + 4
inc 1100
R[rd] <= S R[rt] <= S R[rt] <= M
PC <= PC + 4 PC <= PC + 4 PC <= PC + 4 Zero Zero
0101 0111 1010
zero zero
NHA/MMY Multi-cylce Based on UCB Page 22
Le Micro-Sequenceur

Cod=

Contrôle chemin données


ZIC

Micro-PC

op-code
ROM

NHA/MMY Multi-cylce Based on UCB Page 23


Spécification microprogram
µPC Cond= ZIC IR PC Exec Mem Ecrire Regs.
en sel A B Ext Sr ALU S R W M M-R Wr Dst
0000 ? inc 1
0001 0 charg
0001 1 inc
0010 x zero 1 1
BEQ 0011 x zero 1 0
0100
R-Type: x inc 0 1 fun 1
0101 x zero 1 0 0 1 1
ORi: 0110 x inc 0 0 or 1
0111 x zero 1 0 0 1 0
1000 x inc 1 0 add 1
LW:
1001 x inc 1 0 0
1010 x zero 1 0 1 1 0
SW: 1011 x inc 1 0 add 1
1100 x zero 1 0 0 1

NHA/MMY Multi-cylce Based on UCB Page 24


ROM

R-type 000000 0100


BEQ 000100 0011
ori 001101 0110
LW 100011 1000
SW 101011 1011

NHA/MMY Multi-cylce Based on UCB Page 25


Exemple: Contrôle de la Mémoire

PC
adresse
InstMem_rd
Mémoire
Instruction IM_wait
données

IR IR_en

NHA/MMY Multi-cylce Based on UCB Page 26


Contrôleur pour mémoire non-idéale

IR <= MEM[PC]

~wait wait
A <= R[rs]
B <= R[rt]

R-type ORi LW BEQ & =


SW
BEQ & ~=
S <= A fun B S <= A or ZX S <= A + SX S <= A + SX PC <= PC + 4 PC <= PC +
SX || 00

M <= MEM[S] MEM[S] <= B

~wait wait wait


~wait
R[rd] <= S R[rt] <= S R[rt] <= M
PC <= PC + 4 PC <= PC + 4 PC <= PC + 4 PC <= PC + 4

NHA/MMY Multi-cylce Based on UCB Page 27

Vous aimerez peut-être aussi