Академический Документы
Профессиональный Документы
Культура Документы
Conception de l’architecture
Multi-cycle pour ISA MIPS
43
Chapitre IV : Architecture multicycle pour ISA MIPS
4.1. Objectifs
Par définition, dans un modèle à cycle unique, le cycle d’horloge doit avoir la même
durée pour toutes les instructions. Le cycle d’horloge est défini par le chemin le plus long
dans la machine. Par conséquences :
Les performances d’une mise en œuvre à cycle unique ne sont pas bonnes,
car certains types d’instruction pourraient être effectués en un cycle
d’horloge plus court.
De plus, chaque unité fonctionnelle ne peut être utilisée qu’une fois par
cycle ; par conséquent, certaines unités doivent être dupliquées, ce qui
augmente le coût de la mise en œuvre.
Pour cela nous proposons une nouvelle architecture qui a un cycle de base plus court et
qui requièrent plusieurs cycles d’horloge par instruction. Cette technique est appelée
multi-cycle.
Cette architecture multi-cycle est caractérisée par :
• Un seul espace mémoire pour les données et les instructions.
• Insertion de plusieurs registres intermédiaires entres les différents blocs du
chemin de données
Ainsi, nous constatons que :
• Chaque étape de l’exécution prendra un cycle d’horloge
Les exécutions seront donc exécutées en des nombres de cycles différents.
Avec une telle mise en œuvre, une unité fonctionnelle peut être utilisée plusieurs
fois par instruction, tant qu’il s’agit de cycles d’horloge différents. Ceci réduit la
quantité de matériel nécessaire.
44
Chapitre IV : Architecture multicycle pour ISA MIPS
Pour la phase de recherche d’instruction, nous passons par deux étapes au moment du
front du premier cycle de l’horloge
Etape 1 : chargement de format d’instruction dans le registre temporaire IR à partir
d’une mémoire centrale.
Etape 2 : mise à jour de la valeur d’adresse du registre PC par la valeur PC+4, Pour cela
nous exploitons UAL pour effectuer opération d’addition en ajoutons des multiplexeurs
Le niveau RTL est : IR ← MEM[PC] et PC ← PC + 4. L’implémentation matérielle de la
phase de recherche d’instruction est donnée par la figure 52.
Durant le deuxième cycle d’horloge, cette étape consiste à envoyer les numéros de
registres sources depuis le registre d’instruction IR vers le banc de registres pour le cas
des formats R et I afin de lire les contenus des registres sources et les sauvegarder
45
Chapitre IV : Architecture multicycle pour ISA MIPS
momentanément dans les registres A et B Le niveau RTL est donné par : A ← R[rs] et
B ← R[rt]. L’implémentation matérielle de cette phase de décodage est donnée par la
figure 53.
Figure 54. Implémentation matérielle de la première étape de la phase d’exécution pour type-R
En second lieu de cette phase d’exécution, le résultat enregistré dans ALUOut sera
transféré vers la banc de registres dont le numéro de registre de destination est envoyé
par le registre IR. Le niveau RTL est donné par : R[rd] ← ALUOut.
46
Chapitre IV : Architecture multicycle pour ISA MIPS
Figure 55. Implémentation matérielle de la deuxième étape de la phase d’exécution pour type-R
Figure 56. Implémentation matérielle de la première étape de la phase d’exécution pour ORI
47
Chapitre IV : Architecture multicycle pour ISA MIPS
Durant le deuxième cycle de la phase d’exécution, le résultat sera transféré vers la banc
de registres dont le numéro de registre de destination est donné par la valeur de rt
depuis le registre IR. Le niveau RTL de cette étape est : R[rt] ← ALUOut.
Figure 57. Implémentation matérielle de la deuxième étape de la phase d’exécution pour ORI
2 éme exemple : pour l’instruction Lw rt, imm16(rs), elle nécessité trois cycles d’horloge
pour achever la phase d’exécution. En premier cycle, elle déterminer l’adresse du mot à
transférer, le niveau RTL correspondant est donné par :ALUOut ← R[rs] +
SignExt[imm16]. Par la suite, en deuxième cycle d’horloge, le registre MDR lit le mot
depuis la mémoire centrale une fois l’adresse est sélectionnée ; le niveau RTL de cette
étape est : MDR ← Mem[R[rs] + SignExt[imm16]]. Enfin, lors de troisième cycle
d’horloge, le mot sera transféré au banc de registres dans le registre destination dont le
numéro de registre de destination est donné par la valeur de rt depuis le registre IR. Le
niveau RTL est : R[rt] ← MDR. Les figures 58, 59 et 60 illustrent respectivement les
implémentations matérielles des trois étapes de la phase d’exécution de l’instruction
LW.
48
Chapitre IV : Architecture multicycle pour ISA MIPS
3 éme exemple : pour l’instruction Sw rt, imm16 (rs), elle necessite deux cycles
d’horloge pour acehver la phase d’éxécution. En premier elle déterminer l’adresse du
mot à transférer, le niveau RTL correspondant est donné par : ALUOut ← R[rs] +
49
Chapitre IV : Architecture multicycle pour ISA MIPS
4 éme exemple : pour l’instruction beq rs, rt, imm16, elle necessité un seul cycle
d’horloge pour achever la phase d’exécution. le niveau RTL est donné par : ZERO ←
R[rs] == R[rt] et if (R[rs] = R[rt]) then PC ← PC + 4 + ( SignExt(imm16) x 4 ) else
PC ← PC + 4. Le ZERO est un flag de l’UAL indiquant la présence d’un résultat nul lors
de la comparaison entre les deux registres rs et rt. La figure 63 illustre l’implémentation
matérielle de l’exécution de l’instruction beq une fois la condition d’égalité est validée
entre rs et rt.
50
Chapitre IV : Architecture multicycle pour ISA MIPS
51
Chapitre IV : Architecture multicycle pour ISA MIPS
données est contrôlé par des signaux générés par une unité de contrôle. La conception
de l’unité de contrôle multi-cycle est l’objet de partie suivante.
PCWriteCond PCSource
PCWrite ALUOp
IorD Outputs
ALUSrcB
MemRead
Control ALUSrcA
MemWrite
RegWrite
MemtoReg
Op RegDst
IRWrite [5– 0]
0
M
Jump 1 u
Instruction [25–0] 26 28 address [31-0] x
Shift
left 2 2
Instruction
[31-26] PC [31-28]
PC 0 0
M Instruction Read
[25– 21] register 1 M
u Address u
x Read x
Instruction Read A Zero
1 Memory
[20– 16] register 2 data 1 1
MemData 0 ALU ALU ALUOut
Registers
Instruction M Write Read result
[15–0] register data 2 B
Instruction u 0
Write Instruction [15– 11] x 4 1M
data Write
register 1 data u
2 x
Instruction 0 3
[15– 0] M
u
x
Memory 1
data 16 32 ALU
Sign Shift
register control
extend left 2
Instruction [5– 0]
Figure 65. Implémentation matérielle d’un chemin de données multi-cycle avec unité de contrôle
52
Chapitre IV : Architecture multicycle pour ISA MIPS
Table 8. Table de vérité des signaux de contrôle pour une architecture multi-cycle
Cette table de vérité peut être remplacée par une machine à état traditionnelle
mentionnant le passage d’un état à un autre par le biais d’un compteur de 0 à 13 pour
chaque type d’instruction.
53
Chapitre IV : Architecture multicycle pour ISA MIPS
L’unité de contrôle peut être implémentée suivant une logique cablée dont Le registre
d’instruction IR envoie à unité de contrôle le code opératoire de chaque instruction et le
registre d’état fait la mise à jour de l’état présent de l’instruction courante.
54
Chapitre IV : Architecture multicycle pour ISA MIPS
Table 9. Table de vérité des signaux de contrôle pour une architecture multi-cycle
55
Chapitre IV : Architecture multicycle pour ISA MIPS
56