Chapitre 5 : Conception mono_cycle
Ou somme nous jusqu’à maintenant?
- Les cinq composants classiques d’un ordinateur.
- Objectif: Conception (chemin de données +contrôle) d’un processeur mono-cycle.
- Analyse de l’ensemble d’instructions pour fixer les besoins en
- Tous les instructions MIPS possède 32 bits. Les trois formats d’ instruction sont :
- Les différents champs sont :
- ADD and SUB
- OR Immediate:
- LOAD et STORE
Publicité
– lw rt, rs, imm16 – sw rt, rs, imm16
- BRANCH:
- Mémoire :
- Registres (32 x 32)
- PC
- Étendre signe
- Add et Sub registre or du champs immédiate étendu
- Add 4 pour PC
- Adder
- MUX
- UAL
- Registre
Publicité
–Similaire à un bistable D sauf que:
- N-bit entrées et sorties
- Entrée de validation d’écriture –Write Enable (écriture validée)
- (0): La sortie (Data Out) ne peut être changée.
- (1): La sortie peut devenir celle de l’entrée (Data In).
- Mémoire (idéale)
- Le mot mémoire est sélectionner par :
- Clock input (CLK)
- Adresse valide => Data Out valide après « temps d’accès ».
- Pour toutes les opérations RTL.
- Code séquentielle: PC <- PC + 4
- Branch et Jump: PC <- « autre chose »
- R <- R op R Exemple: addU rd, rs, rt
Publicité
–Ra, Rb, et Rw s’obtiennent des champs rs, rt, et rd. –ALUctr et RegWr: logique de contrôle après le décodage de
l’instruction
31
26 21 16 11 6 0 op rs rt rd decval funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits RegWr
5 Rd
5 Rs 5
Rt ALUctr
Rw Ra Rb AL32 32-bit
U 32
Clk
Registers
32 busA busW
32
32
Result
busB
Page : 11
Temps op. Registre-Registre
Clk
Temps propagation du PC PC Anc. val Nouv. valeur Rs, Rt, Rd, Op, Func
Temps d’accès dans la mémoire d’instructions Anc. Val. Nouvelle valeur
Délai logique de contrôle ALUctr
Anc. Val. Nouvelle valeur
RegWr Anc. Val. Nouvelle valeur
Temps d’accès registres busA, B
Anc. Val. Nouvelle valeur
Délai ALU busW
Anc. Val. Nouvelle valeur
RegWr
5 Rd
5 Rs 5
Rt ALUctr
Rw Ra Rb
busA Écriture Registre
Se fait ici
AbusW
32 L32 32-bit
Result U 32
Clk
Registres
busB
32
32
Page : 12
3c: Opérations logiques avec val. immédiate
- R[rt] <- R op ZeroExt ]
- R[rt] <- Mem + SignExt ] Exemple: lw rt, rs, imm16
- Mem[ R + SignExt <- R ] Exemple: sw rt, rs, imm16
- beq rs, rt, imm16
- PC <- PC + 4 + ( SignExt(imm16) x 4 ) – else
- PC <- PC + 4
- beq rs, rt, imm16 Chemin de données génère le siganl equal
- Banc de registres et mémoire idéalisée:
- Adresse valide => Sortie valide après le « temps d’accès »
Publicité
Chemin critique (Load) =
Temps propagation PC + Temps d’accès mémoire instructions + Temps d’accès banc de registre + Temps ALU pour addition 32 bits + Temps d’accès mémoires de données+ Temps établissement banc de registre Clk Mémoire Instruction idéale
5 Rw Ra Rb 32 32-bit Registres
k
lCInstruction
Instruction Address
Rd
Data Address AMémoire Ldonnées U
Data In idéale
Clk
PC
5 Rs
Rt
Imm 5 16
A s
32 se32
r32 ddAt B
xeN32
Page : 19
Temps op. Registre-Registre
Clk
PC Rs, Rt, Rd, Op, Func
Temps propagation du PC Anc. val
Nouv. valeur Temps d’accès dans la mémoire d’instructions Anc. Val. Nouvelle valeur
Délai logique de contrôle ALUctr
Anc. Val. Nouvelle valeur
RegWr Anc. Val. Nouvelle valeur
Temps d’accès registres busA, B
Anc. Val. Nouvelle valeur
Délai ALU
Address Valeur Anc. Nouv. Valeur
Temps Accés mémoire busW Valeur Anc. Nouv. Valeur
NHA/MMY Chemin de données Mono-Cycle Based on UCB Page : 20
Étape 4: Chemin de données et RTL -> Contrôle
Instruction<31:0>
<<<<022Mémoire
0:156::1> :2instruction
3551> > > Adr
Op
Fun
Rt Rs Rd Imm16 nPC_sel
RegWr RegDst ExtOp ALUSrc ALUctr MemWr MemtoReg Equal
Chemin de données
Contrôle
NHA/MMY Chemin de données Mono-Cycle Based on UCB Page : 21
<16:20>
<11:15>
Signification des signaux de contrôle
- nPC_sel: 0 => PC <– PC + 4; 1 => PC <– PC + 4 + SignExt(Im16) | 00
- ExtOp: “zéro”, “signe”
- ALUsrc: 0 => regB; 1 => immed
- ALUctr: “add”, “sub”, “or”
- nPC_sel <= if (OP == BEQ) then EQUAL else 0
- ALUsrc <= if (OP == “000000”) then “regB” else “immed”
- ALUctr <= if (OP == “000000”) then funct
- ExtOp <= if (OP == ORi) then “zero” else “signe”
- MemWr <= (OP == Store)
- MemtoReg <= (OP == Load)
- RegWr: <= if ((OP == Store) || (OP == BEQ)) then 0 else 1
- RegDst: <= if ((OP == Load) || (OP == ORi)) then 0 else 1
- 5 étapes pour la conception d’un processeur
- Contrôle est plus difficile
- MIPS facilite la logique de contrôle – Mêmes tailles d’instructions – Registres sources toujours au même endroit dans l’instruction – Immédiate toujours même place et taille – Opérations toujours sur registres /immédiate
- Chemin de données mono-cycle => CPI=1, CCT => long
- Partie suivante du cours : implémentation de la logique de contrôle