Académique Documents
Professionnel Documents
Culture Documents
Contrôle Entrées
Mémoire
Chapitre 3: CONCEPTION DE PROCESSEUR Chemin de Sorties
MIPS MONOCYCLE données
Page : 42
Page : 43 Page : 44
Composants du chemin de données
Etape 1
•1/2Adder A 32
Adder
Somme
32
• Choix d’un ensemble de composants B
32
nécessaires (UAL MUX, Banc de Registre…)
pour le chemin de données et établissement Select Éléments logique combinatoire
(blocks de base)
de la méthodologie horloge. •MUX A
32
MUX
Y
32
B
32
OP
A
32
•UAL
ALU
Résultat
32
B
32
Page : 46
–Write Enable (écriture validée) – L’adresse qui choisie la sortie sur Data Out.
• (0): La sortie (Data Out) ne peut être Clk – Write Enable = 1: adresse sélectionne le mot mémoire ou l’entrée
Data In sera écrite.
changée.
• Clock input (CLK)
• (1): La sortie peut devenir celle de
– CLK Entrée est un facteur utilisée seulement dans le cas d’écriture.
l’entrée (Data In).
RW RA RB
– Durant l’opération de lecture, La mémoire fonctionne comme un
Write Enable block logique combinatoire.
•Banc de registre 5 5 5
• Adresse valide => Data Out valide après « temps d’accès ».
busA
RA or RB valide => busA or busB busW 32
valide après « temps d’accès » 32 32-bit
32 Registres
Clk busB
Page : 47 32 Page : 48
Etape 2 Implémentation matérielle de la Phase de recherche d’instruction
(FETCH)
Mémoire d’instruction
Implémentation matérielle de la phase d’exécution d’instruction (EXECUTE)
Implémentation matérielle de la phase d’exécution d’instruction
(EXECUTE) Exécutions d’instructions de type I
Exécutions d’instructions de type I 2 éme exemple : pour l’instruction Lw rt, offset(rs), le niveau RTL est donné par :
1 er exemple : pour l’instruction ORi rt, rs, imm16, le niveau RTL est donné par : R[rt] <- Mem[R[rs] + SignExt[offset]]
R[rt] <- R[rs] OR ZeroExt[imm16]]
Ainsi, nous avons besoin de plusieurs éléments pour réaliser l’instruction ORI comme add sont : le banc
Ainsi, nous avons besoin de plusieurs éléments pour réaliser l’instruction ORI comme add sont : le de registres, L'UAL, mémoire de données, registre d’extension par bit de signe et des multiplexeurs :
banc de registres, L'UAL, registre d’extension par zéro et des multiplexeurs :
Implémentation matérielle de la phase d’exécution d’instruction Implémentation matérielle de la phase d’exécution d’instruction
(EXECUTE) (EXECUTE)
Exécutions d’instructions de type I Exécutions d’instructions de type I
4 éme exemple : pour l’instruction beq rs, rt, imm16, le niveau RTL est donné par :
3 éme exemple : pour l’instruction Sw rt, offset (rs), le niveau RTL est donné Equal <- R[rs] == R[rt] et if (Equal= 1) then PC <- PC + 4 + ( SX(Offset) x 4 )
par : Mem[ R[rs] + SignExt[offset16] <- R[rt]] else PC <- PC + 4
Saut conditionnel (Branch) : Mise à jour PC en cas de saut Implémentation matérielle de la phase d’exécution d’instruction (EXECUTE)
Page : 57
Op Regdst 1
jump 0
Branch 0
rs
MemRead 0
rt R[rs]
Aluop Add
R[rt]
rd MemWrite 0
AluSrc 0
RegWrite 0/1
memtoReg 0
Imm16/
offset
Implémentation des instructions Arith et logique Sur Implémentation des instructions Arith et logique Sur
SoC monocycle : F-D-Ex SoC monocycle : F-D-Ex
ORI rt,rs,imm16 RTL R[rt]<=R[rs] OR ZEX(imm16)
• Type I : LW rt,imm16(rs) RTL : R[rt] <=M[R[rs]+SignExt(imm16)
Regdst 0
jump 0 Regdst 0
Branch 0 jump 0
MemRead 0 Branch 0
Aluop OR MemRead 1
MemWrite 0 Aluop +
AluSrc 1 MemWrite 0
RegWrite 0/1 AluSrc 1
Memtoreg 0 RegWrite 0/1
Implémentation des instructions Arith et logique Sur Implémentation des instructions Arith et logique Sur
SoC monocycle : F-D-Ex SoC monocycle : F-D-Ex
• Type I :
• Type I : instruction SW : M[R[rs]+SignExt(imm16)<=R[rt] instruction Beq rs,rt,imm16 RTL :si R[rs]==R[rt] alors PC=PC+4+SX(imm16)<<2
Regdst 0 Regdst X
jump 0 jump 0
Branch 0 Branch 1
MemRead 0 MemRead 0
Aluop + Aluop sub
MemWrite 1 MemWrite 0
AluSrc 1 AluSrc 0
RegWrite 0 RegWrite 0
Implémentation des instructions Arith et logique Sur
SoC monocycle : F-D-Ex Latences et calcul de Période
• Type J :
j target RTL PC ← PC [31-28] II (IR[25-0]<<2).
• Mémoire : 300ns
• UAL/ADD : 50 ns
• Banc de registres 100 ns
Regdst X
jump 1
• Mux : 2 ns
Branch 0 • Autres blocs négligeables
MemRead 0
• Période minimale T = cumule des Latences de LW
Aluop xxx
MemWrite 0
• Temps d’exécution pour un Processeur MIPS
AluSrc x monocycle :
RegWrite x tex= CPI*T*Nb d’instructions avec CPI=1