Vous êtes sur la page 1sur 15

Multicycle

Multicycle
 Toutes
les instructions ne prennent pas le même
nombre de cycles

 Les unités (UAL, mux, extension de signe)


peuvent être utilisées plusieurs fois par une même
instruction
ex : +4 pour PC peut être réalisé par l'UAL

 Découpage en travaux de temps équivalents :


cycle plus rapide (fréquence plus élevée)
Chemin critique
 Calculons le temps de cycle en supposant négligeable
certains délais (mux, unité de contrôle, extension de signe,
accès à PC, décalage de 2) :
 accès mémoire données et instruction (4ns)
 UAL et additionneurs (2 ns)
 R/W banc de registres (1 ns)

Instr. I Mem Reg Rd ALU Op D Mem Reg Wr Total


R-
type
load
store
beq
jump
Chemin critique
 Calculons le temps de cycle en supposant
négligeable certains délais (mux, unité de contrôle,
extension de signe, accès à PC, décalage de 2) :
 accès mémoire données et instruction (4ns)
 UAL et additionneurs (2 ns)
 R/W banc de registres (1 ns)

Instr. I Mem Reg Rd ALU Op D Mem Reg Wr Total


R- 4 1 2 1 8
type
load 4 1 2 4 1 12
store 4 1 2 4 11
beq 4 1 2 7
jump 4 4
Multi cycle
 exécution mono-cycle : cycle calculé sur
l'instruction la plus longue

 exécutionmulti-cycle : les instructions ont des


temps d'exécution différents

 dans la pratique les CPU ne sont pas monocycles


5 étapes

1. Fetch : recherche de l'instruction

2. Decode et lecture de registre

3. Exécution instruction de type R, calcul @


mémoire, branch ou jump complétion

4. Lecture ou écriture mémoire

5. Écriture banc de registres (Write Back)

Les instructions prennent entre 3 et 5 cycles


Mono-Cycle vs. Multi-Cycle
Implémentation mono-cycle:

Cycle 1 Cycle 2
Clk

lw sw perte
horologe multicycle plus
lente que 1/5e (car
Implémentation multi-cycle: stabilisation des lignes)

Clk Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9Cycle 10

lw sw R-type
IFetch Dec Exec Mem WB IFetch Dec Exec Mem IFetch
Performance
 CPI : cycle par instruction
 CPI mono cycle tps clock mono cycle
speedup= ×
CPI moyen multi cycle tps clock multi cycle
 ex :
Instruction type CPI Freq Freq * CPI
Load 5 0.25 1.25
Store 4 0.08 0.32
ALU 4 0.43 1.72
Branch taken 4 0.6 * 0.17 0.41
Branch not taken 3 0.4 * 0.17 0.20
Jump 2 0.07 0.14
Total 4.04

tps mono = 1 ns tps multi = 1.1 ns


speedup = (5/4.04) * (1/1.1) = 1.125
=> gain : 12,5%
Chemin de données multicycle (vue simplifiée)
 Des registres doivent séparer les différentes unités

Memory IR
Read Addr 1

A
Address
PC

Read
Register
Read Addr 2 Data 1

ALUout
Read Data
(Instr. or Data) File
ALU
Write Addr Read

B
Write Data Data 2
Write Data
MDR
Chemin de données multicycle
PCWriteCond
PCWrite PCSource
IorD ALUOp
MemRead Control ALUSrcB
MemWrite ALUSrcA
MemtoReg RegWrite
IRWrite RegDst

Instr[31-26]
PC[31-28]

Shift 28
Instr[25-0]
left 2 2
0
1
Memory 0
PC

0 Read Addr 1
Address

A
Read
IR

1 Register 1 zero
Read Addr 2 Data 1

ALUout
Read Data
0 File
(Instr. or Data) ALU
Write Addr
1 Read
Write Data Data 2

B
1 Write Data 0
4
MDR

1
0 2
Instr[15-0] Sign Shift 3
Extend 32 left 2 ALU
Instr[5-0] control
Signaux pour le cycle Fetch
PCWriteCond
PCWrite PCSource
IorD ALUOp
MemRead Control ALUSrcB
MemWrite ALUSrcA
MemtoReg RegWrite
IRWrite RegDst

Instr[31-26]
PC[31-28]

Shift 28
Instr[25-0]
left 2 2
0
1
Memory 0
PC

0 Read Addr 1
Address

A
Read
IR

1 Register 1 zero
Read Addr 2 Data 1

ALUout
Read Data
0 File
(Instr. or Data) ALU
Write Addr
1 Read
Write Data Data 2

B
1 Write Data 0
4
MDR

1
0 2 00
Instr[15-0] Sign Shift 3
Extend 32 left 2 ALU
Instr[5-0] control
Construction d'un automate à états
Instr Fetch

Start
Construction d'un automate à états
IorD=0 Instr Fetch
MemRead;IRWrite
Start ALUSrcA=0
ALUsrcB=01
PCSource,ALUOp=00
Pour les autres signaux : PCWrite
PCWrite,IRWrite,
MemWrite,RegWrite=0
autres=X
Construction d'un automate à états (suite)
IorD=0 Instr Fetch Decode
Pour les autres signaux : MemRead;IRWrite ALUSrcA=0
Start ALUSrcA=0 ALUSrcB=11
PCWrite,IRWrite, ALUsrcB=01 ALUOp=00
MemWrite,RegWrite=0 PCWriteCond=0
autres=X PCSource,ALUOp=00
PCWrite
R- type) eq
)
s w) = b
p = lw or (Op O p
= (Op = j)
(O (
ALUSrcA=1 ALUSrcA=1 ALUSrcA=1
ALUSrcB=10 ALUSrcB=00 ALUSrcB=00 PCSource=10
ALUOp=00 Execute ALUOp=10 ALUOp=01 PCWrite
PCWriteCond=0 PCWriteCond=0 PCSource=01
PCWriteCond

Etc. (étape 4 et 5)
Mise en oeuvre de l'automate
 circuitcombinatoire (avec signaux "état" en entrée
et sortie)

 Mémoire de micro-programme (=> extension du


jeu d'instruction plus facile)

 RISC (Reduced Instruction Set Computer) : jeu


d'instruction réduit => circuit
 CISC (Complex Instruction Set Computer) : jeu
d'instruction important => mémoire micro-
programme
 actuellement : mélange des deux techniques

Vous aimerez peut-être aussi