Conception unité de contrôle Ch. D.
mono-cycle
Table des Signaux de Contrôle :
Mips ISA func 10 0000 10 0010 xxxxxxx
op 00 0000 00 0000 00 1101 10 0011 10 1011 00 0100 00 0010
add sub ori lw sw beq jump
RegDst x x x
ALUSrc x
MemtoReg x x x
RegWr
MemWr
nPCsel
ExtOp x x x x
ALUctr<2:0> Add Sub Or Add Add Sub xxx
31 26 21 16 11 6 0
R-type op rs rt rd decval funct add, sub
I-type op rs rt immediate ori, lw, sw, beq
J-type op Adresse destination jump
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 1
Conception unité de contrôle Ch. D. mono-cycle
Table des Signaux de Contrôle :
Mips ISA func 10 0000 10 0010 xxxxxxx
op 00 0000 00 0000 00 1101 10 0011 10 1011 00 0100 00 0010
add sub ori lw sw beq jump
RegDst 1 1 0 0 x x x
ALUSrc 0 0 1 1 1 0 x
MemtoReg 0 0 0 1 x x x
RegWr 1 1 1 1 0 0 0
MemWr 0 0 0 0 1 0 0
nPCsel 0 0 0 0 0 1 0
Jump 0 0 0 0 0 0 1
ExtOp x x 0 1 1 x x
ALUctr<2:0> Add Sub Or Add Add Sub xxx
31 26 21 16 11 6 0
R-type op rs rt rd decval funct add, sub
I-type op rs rt immediate ori, lw, sw, beq
J-type op Adresse destination jump
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 2
Décodage Local
op 00 0000 00 1101 10 0011 10 1011 00 0100 00 0010
R-type ori lw sw beq jump
RegDst 1 0 0 x x x
ALUSrc 0 1 1 1 0 x
MemtoReg 0 0 1 x x x
RegWr 1 1 1 0 0 0
MemWr 0 0 0 1 0 0
Branch 0 0 0 0 1 0
nPCsel 0 0 0 0 0 1
ExtOp x 0 1 1 x x
ALUop<N:0> “R-type” Or Add Add Sub xxx
func
ALU ALUctr
op Contrôle 6
ALUop Contrôle 3
6 Princip.
(Local)
N
ALU
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 3
Codification de ALUop
func
op 6 ALU ALUctr
Contrôle
ALUop Contrôle
6 Princip. 3
(Local)
N
° ALUop demande 2 bits pour représentation (4 codes):
• (1) “R-type” instructions (reste codifié par func)
• “I-type” instructions :
- (2) Or, (3) Add, (4) Sub
° Plus de bits pour le MIPS ISA complet (3 bits)
• (1) “R-type” instructions
• “I-type” instructions :
- (2) Or, (3) Add, (4) Subtract, et (5) And (Example: andi)
R-type ori lw sw beq jump
ALUop (Symbolique) “R-type” Or Add Add Sub xxx
ALUop<2:0> 1 00 0 10 0 00 0 00 0 01 xxx
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 4
Décodage du champ “func”
func
op 6 ALU ALUctr
Contrôle
ALUop Contrôle
6 Princip. 3
(Local)
N
R-type ori lw sw beq jump
ALUop (Symbol.) “R-type” Or Add Add Sub xxx
ALUop<2:0> 1 00 0 10 0 00 0 00 0 01 xxx
31 26 21 16 11 6 0
R-type op rs rt rd decval funct
D ’après conception de L ’ALU:
funct<5:0> Op. Instruction ALUctr ALUctr<2:0> Operation ALU
10 0000 addition 010 Add
10 0010 soustraction 110 Sub
ALU
10 0100 and 000 And
10 0101 or 001 Or
10 1010 slt 111 SLT
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 5
Table de Vérité de ALUctr
funct<3:0> Op. Instruction
0000 addition
ALUop R-type ori lw sw beq 0010 soustraction
(Symbolique) “R-type” Or Add Add Sub 0100 and
ALUop<2:0> 1 00 0 10 0 00 0 00 0 01 0101 or
1010 slt
ALUop func Operation ALUctr
bit<2> bit<1> bit<0> bit<3> bit<2> bit<1> bit<0> ALU bit<2> bit<1> bit<0>
0 0 0 x x x x Add 0 1 0
0 x 1 x x x x Sub 1 1 0
0 1 x x x x x Or 0 0 1
1 x x 0 0 0 0 Add 0 1 0
1 x x 0 0 1 0 Sub 1 1 0
1 x x 0 1 0 0 And 0 0 0
1 x x 0 1 0 1 Or 0 0 1
1 x x 1 0 1 0 SLT 1 1 1
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 6
Equation Logique pour ALUctr<2>
ALUop func
bit<2> bit<1> bit<0> bit<3> bit<2> bit<1> bit<0> ALUctr<2>
0 x 1 x x x x 1
1 x x 0 0 1 0 1
1 x x 1 0 1 0 1
func<3> pas important
° ALUctr<2> = !ALUop<2> & ALUop<0> +
ALUop<2> & !func<2> & func<1> & !func<0>
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 7
Equation Logique pour ALUctr<1>
ALUop func
bit<2> bit<1> bit<0> bit<3> bit<2> bit<1> bit<0> ALUctr<1>
0 0 0 x x x x 1
0 x 1 x x x x 1
1 x x 0 0 0 0 1
1 x x 0 0 1 0 1
1 x x 1 0 1 0 1
° ALUctr<1> = !ALUop<2> & !ALUop<0> +
ALUop<2> & !func<2> & !func<0>
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 8
Equation Logique pour ALUctr<0>
ALUop func
bit<2> bit<1> bit<0> bit<3> bit<2> bit<1> bit<0> ALUctr<0>
0 1 x x x x x 1
1 x x 0 1 0 1 1
1 x x 1 0 1 0 1
° ALUctr<0> = !ALUop<2> & ALUop<0>
+ ALUop<2> & !func<3> & func<2> & !func<1> & func<0>
+ ALUop<2> & func<3> & !func<2> & func<1> & !func<0>
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 9
Bloc de Contrôle de l ’ALU
func
6 ALU ALUctr
ALUop Contrôle
3
(Local)
3
° ALUctr<2> = !ALUop<2> & ALUop<0> +
ALUop<2> & !func<2> & func<1> & !func<0>
° ALUctr<1> = !ALUop<2> & !ALUop<0> +
ALUop<2> & !func<2> & !func<0>
° ALUctr<0> = !ALUop<2> & ALUop<0>
+ ALUop<2> & !func<3> & func<2> & !func<1> & func<0>
+ ALUop<2> & func<3> & !func<2> & func<1> & !func<0>
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 10
Table de Vérité pour le Contrôle Principal
RegDst
func
ALUSrc Contrôle ALUctr
op Contrôle 6
6 Principal
: ALU 3
ALUop (Local)
3
op 00 0000 00 1101 10 0011 10 1011 00 0100 00 0010
R-type ori lw sw beq jump
RegDst 1 0 0 x x x
ALUSrc 0 1 1 1 0 x
MemtoReg 0 0 1 x x x
RegWr 1 1 1 0 0 0
MemWr 0 0 0 1 0 0
nPCsel 0 0 0 0 1 0
Jump 0 0 0 0 0 1
ExtOp x 0 1 1 x x
ALUop (Symbolic) “R-type” Or Add Add Sub xxx
ALUop <2> 1 0 0 0 0 x
ALUop <1> 0 1 0 0 0 x
ALUop <0> 0 0 0 0 1 x
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 11
Table de vérité pour RegWr
op 00 0000 00 1101 10 0011 10 1011 00 0100 00 0010
R-type ori lw sw beq jump
RegWr 1 1 1 0 0 0
° RegWr = R-type + ori + lw
= !op<5> & !op<4> & !op<3> & !op<2> & !op<1> & !op<0> (R-type)
+ !op<5> & !op<4> & op<3> & op<2> & !op<1> & op<0> (ori)
+ op<5> & !op<4> & !op<3> & !op<2> & op<1> & op<0> (lw)
op<5> .. op<5> .. op<5> .. op<5> .. op<5> .. op<5>..
<0> <0> <0> <0> <0> op<0>
R-type ori lw sw beq jump
RegWr
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 12
Implémentation RLP
op<5> .. op<5> .. op<5> .. op<5> .. op<5> .. op<5>..
<0> <0> <0> <0> <0> op<0>
R-type ori lw sw beq jump
RegWr
ALUSrc
RegDst
MemtoReg
MemWr
nPCsel
Jump
ExtOp
ALUop<2>
ALUop<1>
ALUop<0>
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 13
Assemblage général (mettre tout ensemble)
ALUop
ALU ALUctr
RegDst 3 func Contrôle
op Contrôle 3
ALUSrc Instr<5:0> 6
6 principal
Instr<31:26> : Instruction<31:0>
nPC_sel
<21:25>
<16:20>
<11:15>
Instruction
<0:15>
Rd Rt Fetch Unit
RegDst Clk
1 Mux 0
Rs Rt Rt Rs Rd Imm16
RegWr 5 5 5 ALUctr
busA Zero MemWr MemtoReg
Rw Ra Rb
busW 32
ALU
32 32-bits
32 0
Registres busB 0 32
Mux
Clk
Mux
32
32
WrEn Adr 1
Extender
1 Data In 32
imm16 Mémoire
32
Instr<15:0> 16 données
Clk
ALUSrc
ExtOp
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 14
Temps Op. Chargement (Le pire cas)
Clk
Temps Propagation PC
PC Valeur Anc. Nouv.
Valeur Accés mémoire pour Instruction
Rs, Rt, Rd, Valeur Anc. Nouv. Valeur
Op, Func
Délai Logique de Contrôle
ALUctr Valeur Anc. Nouv. Valeur
ExtOp Valeur Anc. Nouv. Valeur
ALUSrc Valeur Anc. Nouv. Valeur
MemtoReg Valeur Anc. Nouv. Valeur Ecriture registres
RegWr Valeur Anc. Nouv. Valeur
Temps Accès Registres
busA Valeur Anc. Nouv. Valeur
Délai Ext & Mux
busB Valeur Anc. Nouv. Valeur
Délai ALU
Address Valeur Anc. Nouv. Valeur
Temps Accés mémoire
busW Valeur Anc. Nouv. Valeur
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 15
Inconvénients du processeur mono-cycle
° Cycle horloge Long:
• Cycle doit être suffisant pour Instruction de chargement :
Temps propagation PC +
Temps Accès Mémoire +
Temps Accès Banc registres +
Délai ALU (calcul adresse données) +
Temps accès mémoire (chargement données) +
Temps établissement Banc registres (écriture données)
° Longueur cycle horloge pour chargement DEPASSE DE
LOINS les nécessités des autres instructions
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 16
Conclusions
° Chemin données mono-cycle => CPI=1, CCT => long
° 5 étapes pour conception de processeur
• 1. Analyse jeux instructions => Exigences chemin données
• 2. Sélection des composants & établissement méthodologie horloge
• 3. Assemblage du chemin données pour réalisation des exigences
• 4. Analyse de l implémentation de chaque instruction pour déterminer les
valeurs nécessaires des contrôles
• 5. Assemblage du logique de contrôle Processeur
Entrées
° Contrôle est le plus difficile Contrôle
Mémoire
° MIPS facilite logique de contrôle Chem. D. Sorties
• Instructions même taille
• Source registres toujours même place dans instruction
• Immédiate toujours mémé place et taille
• Opérations toujours sur registres/immédiate
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 17