Vous êtes sur la page 1sur 14

CHAPITRE IV.

Conception de l’architecture
Multi-cycle pour ISA MIPS

43
Chapitre IV : Architecture multicycle pour ISA MIPS

4.1. Objectifs

L’objectif de ce chapitre est :


• Concevoir un chemin de données multi-cycle
• Définir les signaux de contrôle
• Concevoir une unité de contrôle multi-cycle suivant une machine à états

4.2. Caractéristiques de l’architecture multi-cycle

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

4.3. Conception de chemin de données multi-cycle

Pour le cas de l’architecture multi-cycle, nous devons passer par la conception de 5


phases afin d’élaborer architecture finale de notre processeur multi-cycle

4.3.1 Implémentation matérielle de la phase de recherche d’instruction

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.

Figure 52. Implémentation matérielle de la phase de recherche d’instruction.

4.3.2 Implémentation matérielle de la phase de décodage d’instruction

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 53. Implémentation matérielle de la phase de décodage

4.3.3 Implémentation matérielle de la phase d’exécution d’instruction


Dans cette partie le nombre de cycle d’horloge se diffère d’une instruction à une autre.

4.3.3.1 Exécutions d’instructions de type-R


Cette phase nécessite deux cycles d’horloge, en premier temps l’UAL effectue opération
demandée par instruction entre les opérandes lues des registres A et B et loge le résultat
dans le registre ALUout. Le niveau RTL est ALUOut ←A op B, l’implémentation matérielle de
cette étape est donnée par la figure 54

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

4.3.3.2 Exécutions d’instruction de type I


Dans cette partie, nous traitons 4 exemples :
1 er exemple : pour l’instruction ORi rt, rs, imm16, elle nécessité deux cycles d’horloge
pour la phase d’écution, en premier temps la fonction OU se fait par l'UAL entre le
contenu de rs et la valeur immédiate depuis les registre IR qui a subit une extension par
zéro sur 32 bits. Le résultat sera logé dans le registre ALUOut. le niveau RTL
correspondant est donné par : ALUOut ← R[rs] OR ZeroExt[imm16]].
L’implémentation matérielle de cette première étape d’exécution est donnée par la
figure 56.

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

Figure 58. Implémentation matérielle de la première étape de la phase d’exécution pour LW

Figure 59. Implémentation matérielle de la deuxième étape de la phase d’exécution pour LW

Figure 60. Implémentation matérielle de la troisième étape de la phase d’exécution pour LW

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

SignExt[imm16]. Et en deuxième cycle, le contenu de registre rt sera transféré vers la


mémoire centrale, le niveau RTL correspondant est : Mem[R[rs] + SignExt[imm16]] ←
R[rt]. Les implémentations matérielles sont données par les figures 61 et 62.

Figure 61. Implémentation matérielle de la première étape de la phase d’exécution pour SW

Figure 62. Implémentation matérielle de la deuxième étape de la phase d’exécution pour SW

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

Figure 63. Implémentation matérielle de la phase d’exécution de Beq avec condition


vérifiée.
4.3.3.3 Exécutions d’instructions de type-J
Nous intéressons à l’instruction jump, le niveau RTL est donné par : PC ← PC [31-28] II
(IR[25-0]<<2). La figure 64 illustre l’implémentation matérielle de la phase d’exécution
de l’instruction J.

Figure 64. Implémentation matérielle de la phase d’exécution de J

4.3.4 Assemblage de chemin de données multicyle.

En tenant compte de tout ce qu’il a été présenté précédemment, nous obtenons le


chemin de données d’un processeur multi-cycle donné par la figure 65. Ce chemin de

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

4.4. Conception de l’unité de contrôle multi-cycle (logique cablée et micro-


séquenceur)
La table de vérité des signaux de contrôle pour une architecture multi-cycle est donné
par le tableau suivant (travail à compléter)

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.

Figure 66. Machine à état traditionnelle de l’unité de contrôle multi-cycle

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.

Figure 67. Logique de contrôle cablée de unité de contrôle multi-cycle

Le passage d’un état à un autre peut être :


• Une incrémentation d’état
• Un chargement de code opératoire
• Retour à zéro
Pour cela nous proposons une amélioration au niveau de la table de vérité précédente
qui devient comme suit (A compléter)

54
Chapitre IV : Architecture multicycle pour ISA MIPS

Table 9. Table de vérité des signaux de contrôle pour une architecture multi-cycle

Ainsi la machine à état traditionnel sera donnée par la figure 68.

Figure 68. Machine à état de micro-séquenceur

55
Chapitre IV : Architecture multicycle pour ISA MIPS

Ainsi l’implémentation de la logique de contrôle pour une architecture multi-cycle peut


être améliorée par un micro-séquenceur en utilisant :
• Une mémoire morte ROM pour les différents signaux de contrôle
• Un compteur pour cadencer l’envoie des signaux de contrôle tout dépond des
états des variables Z, I, C et l’état présent de la machine envoyé par un
transcodeur de code opératoire.
L’implémentation matérielle de micro-séquenceur pour une architecture multi-cycle est
donnée par la figure 69.

Figure 69. Implémentation matérielle de unité de contrôle multi-cycle par micro-séquenceur

56