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
- BRANCH:
- Mémoire :
Publicité
–instructions & données
- 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
- 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)
Publicité
– CLK pour la synchronisation de l’écriture(fixer le moment
d’écriture) . – Durant l’opération de lecture, La mémoire fonctionne comme un
block logique combinatoire.
- 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
- 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
Publicité
op rs rt immediate 31
26 21 16 0 6 bits 5 bits 5 bits 16 bits 4 nPC_sel
RegWr 5 5 32
Clk
imm16
Rs 5
Rt
busW Rw Ra Rb
busA ?
32 e32 32-bit lagRegistres ÉbusB 32
Adder
00 Adder
Mux
PC Clk
Adresse Inst.
equal
PC Ext
Page : 17
4
00
Assemblage : Chemin de données mono-cycle
imm16
Rd RegDst
Extender
ALUctr
Clk
Rt
RegWr
5 5
Rs
5 Rt
busW Rw Ra Rb
32 32-bit 32
Registres busA
32
32
busB
32
Adder Adder
nPC_sel
PC Ext
Mux
PC
Clk
Mémoire Inst.
Adr
Mux
32 16 imm16
ALUSrc ExtOp
<0:15>
Rs Rt Rd Imm16 1
0 =
<21:25>
<16:20>
<11:15>
Equal
0 1
Instruction<31:0>
MemtoReg
0 1
Clk
MemWr
ALU
32 Data In WrEn Adr
Mémoire données
Page : 18
Mux
Vue simplifiée du chemin critique
- Banc de registres et mémoire idéalisée:
- Adresse valide => Sortie valide après le « temps d’accès »
- 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