0% ont trouvé ce document utile (0 vote)
109 vues17 pages

Contrôle Mono-Cycle MIPS : Signaux et Logique

Le document décrit la conception d'une unité de contrôle pour une architecture MIPS à cycle unique. Il présente les signaux de contrôle pour différentes instructions MIPS et explique le décodage local et la codification des opérations de l'unité arithmétique et logique.

Transféré par

Sir
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
109 vues17 pages

Contrôle Mono-Cycle MIPS : Signaux et Logique

Le document décrit la conception d'une unité de contrôle pour une architecture MIPS à cycle unique. Il présente les signaux de contrôle pour différentes instructions MIPS et explique le décodage local et la codification des opérations de l'unité arithmétique et logique.

Transféré par

Sir
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Conception unité de contrôle Ch. D.

mono-cycle
Table des Signaux de Contrôle :
Mips ISA func 10 0000 10 0010 xxxxxxx
op 00 0000 00 0000 00 1101 10 0011 10 1011 00 0100 00 0010
add sub ori lw sw beq jump
RegDst x x x
ALUSrc x
MemtoReg x x x
RegWr
MemWr
nPCsel

ExtOp x x x x
ALUctr<2:0> Add Sub Or Add Add Sub xxx
31 26 21 16 11 6 0
R-type op rs rt rd decval funct add, sub

I-type op rs rt immediate ori, lw, sw, beq

J-type op Adresse destination jump

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 1


Conception unité de contrôle Ch. D. mono-cycle
Table des Signaux de Contrôle :
Mips ISA func 10 0000 10 0010 xxxxxxx
op 00 0000 00 0000 00 1101 10 0011 10 1011 00 0100 00 0010
add sub ori lw sw beq jump
RegDst 1 1 0 0 x x x
ALUSrc 0 0 1 1 1 0 x
MemtoReg 0 0 0 1 x x x
RegWr 1 1 1 1 0 0 0
MemWr 0 0 0 0 1 0 0
nPCsel 0 0 0 0 0 1 0
Jump 0 0 0 0 0 0 1
ExtOp x x 0 1 1 x x
ALUctr<2:0> Add Sub Or Add Add Sub xxx
31 26 21 16 11 6 0
R-type op rs rt rd decval funct add, sub

I-type op rs rt immediate ori, lw, sw, beq

J-type op Adresse destination jump

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 2


Décodage Local
op 00 0000 00 1101 10 0011 10 1011 00 0100 00 0010
R-type ori lw sw beq jump
RegDst 1 0 0 x x x
ALUSrc 0 1 1 1 0 x
MemtoReg 0 0 1 x x x
RegWr 1 1 1 0 0 0
MemWr 0 0 0 1 0 0
Branch 0 0 0 0 1 0
nPCsel 0 0 0 0 0 1
ExtOp x 0 1 1 x x
ALUop<N:0> “R-type” Or Add Add Sub xxx

func
ALU ALUctr
op Contrôle 6
ALUop Contrôle 3
6 Princip.
(Local)
N

ALU
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 3
Codification de ALUop
func
op 6 ALU ALUctr
Contrôle
ALUop Contrôle
6 Princip. 3
(Local)
N

° ALUop demande 2 bits pour représentation (4 codes):


• (1) “R-type” instructions (reste codifié par func)
• “I-type” instructions :
- (2) Or, (3) Add, (4) Sub

° Plus de bits pour le MIPS ISA complet (3 bits)


• (1) “R-type” instructions
• “I-type” instructions :
- (2) Or, (3) Add, (4) Subtract, et (5) And (Example: andi)

R-type ori lw sw beq jump


ALUop (Symbolique) “R-type” Or Add Add Sub xxx
ALUop<2:0> 1 00 0 10 0 00 0 00 0 01 xxx

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 4


Décodage du champ “func”
func
op 6 ALU ALUctr
Contrôle
ALUop Contrôle
6 Princip. 3
(Local)
N

R-type ori lw sw beq jump


ALUop (Symbol.) “R-type” Or Add Add Sub xxx
ALUop<2:0> 1 00 0 10 0 00 0 00 0 01 xxx

31 26 21 16 11 6 0
R-type op rs rt rd decval funct

D ’après conception de L ’ALU:


funct<5:0> Op. Instruction ALUctr ALUctr<2:0> Operation ALU
10 0000 addition 010 Add
10 0010 soustraction 110 Sub
ALU

10 0100 and 000 And


10 0101 or 001 Or
10 1010 slt 111 SLT
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 5
Table de Vérité de ALUctr

funct<3:0> Op. Instruction


0000 addition
ALUop R-type ori lw sw beq 0010 soustraction
(Symbolique) “R-type” Or Add Add Sub 0100 and
ALUop<2:0> 1 00 0 10 0 00 0 00 0 01 0101 or
1010 slt

ALUop func Operation ALUctr


bit<2> bit<1> bit<0> bit<3> bit<2> bit<1> bit<0> ALU bit<2> bit<1> bit<0>
0 0 0 x x x x Add 0 1 0
0 x 1 x x x x Sub 1 1 0
0 1 x x x x x Or 0 0 1
1 x x 0 0 0 0 Add 0 1 0
1 x x 0 0 1 0 Sub 1 1 0
1 x x 0 1 0 0 And 0 0 0
1 x x 0 1 0 1 Or 0 0 1
1 x x 1 0 1 0 SLT 1 1 1

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 6


Equation Logique pour ALUctr<2>

ALUop func
bit<2> bit<1> bit<0> bit<3> bit<2> bit<1> bit<0> ALUctr<2>
0 x 1 x x x x 1
1 x x 0 0 1 0 1
1 x x 1 0 1 0 1

func<3> pas important

° ALUctr<2> = !ALUop<2> & ALUop<0> +


ALUop<2> & !func<2> & func<1> & !func<0>

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 7


Equation Logique pour ALUctr<1>

ALUop func
bit<2> bit<1> bit<0> bit<3> bit<2> bit<1> bit<0> ALUctr<1>
0 0 0 x x x x 1
0 x 1 x x x x 1
1 x x 0 0 0 0 1
1 x x 0 0 1 0 1
1 x x 1 0 1 0 1

° ALUctr<1> = !ALUop<2> & !ALUop<0> +


ALUop<2> & !func<2> & !func<0>

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 8


Equation Logique pour ALUctr<0>

ALUop func
bit<2> bit<1> bit<0> bit<3> bit<2> bit<1> bit<0> ALUctr<0>
0 1 x x x x x 1
1 x x 0 1 0 1 1
1 x x 1 0 1 0 1

° ALUctr<0> = !ALUop<2> & ALUop<0>


+ ALUop<2> & !func<3> & func<2> & !func<1> & func<0>
+ ALUop<2> & func<3> & !func<2> & func<1> & !func<0>

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 9


Bloc de Contrôle de l ’ALU

func
6 ALU ALUctr
ALUop Contrôle
3
(Local)
3

° ALUctr<2> = !ALUop<2> & ALUop<0> +


ALUop<2> & !func<2> & func<1> & !func<0>

° ALUctr<1> = !ALUop<2> & !ALUop<0> +


ALUop<2> & !func<2> & !func<0>

° ALUctr<0> = !ALUop<2> & ALUop<0>


+ ALUop<2> & !func<3> & func<2> & !func<1> & func<0>
+ ALUop<2> & func<3> & !func<2> & func<1> & !func<0>

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 10


Table de Vérité pour le Contrôle Principal
RegDst
func
ALUSrc Contrôle ALUctr
op Contrôle 6
6 Principal
: ALU 3
ALUop (Local)
3
op 00 0000 00 1101 10 0011 10 1011 00 0100 00 0010
R-type ori lw sw beq jump
RegDst 1 0 0 x x x
ALUSrc 0 1 1 1 0 x
MemtoReg 0 0 1 x x x
RegWr 1 1 1 0 0 0
MemWr 0 0 0 1 0 0
nPCsel 0 0 0 0 1 0
Jump 0 0 0 0 0 1
ExtOp x 0 1 1 x x
ALUop (Symbolic) “R-type” Or Add Add Sub xxx
ALUop <2> 1 0 0 0 0 x
ALUop <1> 0 1 0 0 0 x
ALUop <0> 0 0 0 0 1 x

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 11


Table de vérité pour RegWr

op 00 0000 00 1101 10 0011 10 1011 00 0100 00 0010


R-type ori lw sw beq jump
RegWr 1 1 1 0 0 0

° RegWr = R-type + ori + lw


= !op<5> & !op<4> & !op<3> & !op<2> & !op<1> & !op<0> (R-type)
+ !op<5> & !op<4> & op<3> & op<2> & !op<1> & op<0> (ori)
+ op<5> & !op<4> & !op<3> & !op<2> & op<1> & op<0> (lw)
op<5> .. op<5> .. op<5> .. op<5> .. op<5> .. op<5>..
<0> <0> <0> <0> <0> op<0>

R-type ori lw sw beq jump


RegWr

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 12


Implémentation RLP
op<5> .. op<5> .. op<5> .. op<5> .. op<5> .. op<5>..
<0> <0> <0> <0> <0> op<0>

R-type ori lw sw beq jump


RegWr

ALUSrc
RegDst
MemtoReg
MemWr
nPCsel
Jump
ExtOp
ALUop<2>
ALUop<1>
ALUop<0>

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 13


Assemblage général (mettre tout ensemble)
ALUop
ALU ALUctr
RegDst 3 func Contrôle
op Contrôle 3
ALUSrc Instr<5:0> 6
6 principal
Instr<31:26> : Instruction<31:0>
nPC_sel

<21:25>

<16:20>

<11:15>
Instruction

<0:15>
Rd Rt Fetch Unit
RegDst Clk
1 Mux 0
Rs Rt Rt Rs Rd Imm16
RegWr 5 5 5 ALUctr
busA Zero MemWr MemtoReg
Rw Ra Rb
busW 32

ALU
32 32-bits
32 0
Registres busB 0 32

Mux
Clk
Mux

32
32
WrEn Adr 1
Extender

1 Data In 32
imm16 Mémoire
32
Instr<15:0> 16 données
Clk
ALUSrc

ExtOp
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 14
Temps Op. Chargement (Le pire cas)
Clk
Temps Propagation PC
PC Valeur Anc. Nouv.
Valeur Accés mémoire pour Instruction
Rs, Rt, Rd, Valeur Anc. Nouv. Valeur
Op, Func
Délai Logique de Contrôle
ALUctr Valeur Anc. Nouv. Valeur

ExtOp Valeur Anc. Nouv. Valeur

ALUSrc Valeur Anc. Nouv. Valeur

MemtoReg Valeur Anc. Nouv. Valeur Ecriture registres

RegWr Valeur Anc. Nouv. Valeur


Temps Accès Registres
busA Valeur Anc. Nouv. Valeur
Délai Ext & Mux
busB Valeur Anc. Nouv. Valeur
Délai ALU
Address Valeur Anc. Nouv. Valeur
Temps Accés mémoire
busW Valeur Anc. Nouv. Valeur
NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 15
Inconvénients du processeur mono-cycle
° Cycle horloge Long:
• Cycle doit être suffisant pour Instruction de chargement :
Temps propagation PC +
Temps Accès Mémoire +
Temps Accès Banc registres +
Délai ALU (calcul adresse données) +
Temps accès mémoire (chargement données) +
Temps établissement Banc registres (écriture données)

° Longueur cycle horloge pour chargement DEPASSE DE


LOINS les nécessités des autres instructions

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 16


Conclusions
° Chemin données mono-cycle => CPI=1, CCT => long

° 5 étapes pour conception de processeur


• 1. Analyse jeux instructions => Exigences chemin données
• 2. Sélection des composants & établissement méthodologie horloge
• 3. Assemblage du chemin données pour réalisation des exigences
• 4. Analyse de l implémentation de chaque instruction pour déterminer les
valeurs nécessaires des contrôles
• 5. Assemblage du logique de contrôle Processeur
Entrées
° Contrôle est le plus difficile Contrôle
Mémoire

° MIPS facilite logique de contrôle Chem. D. Sorties


• Instructions même taille
• Source registres toujours même place dans instruction
• Immédiate toujours mémé place et taille
• Opérations toujours sur registres/immédiate

NHA/MMY Contrôle Mono-Cycle Based on UCB Page : 17

Vous aimerez peut-être aussi