Escolar Documentos
Profissional Documentos
Cultura Documentos
1 1 ALUResult ReadData
A RD 1
Instruction 20:16
A2 RD2 0 SrcB Data
Memory
A3 1 Memory
Register WriteData
WD3 WD
File 0
20:16
0
15:11
1
WriteReg4:0
+
SignImm
4 15:0 Sign Extend <<2
PCBranch
+
PCPlus4
Result
1
16/06/2021
ALU
1 1 ALUResult ReadData
A RD 1
Instruction 20:16
A2 RD2 0 SrcB Data
Memory
A3 1 Memory
Register WriteData
WD3 File WD
0
20:16
0
15:11
1
WriteReg4:0
+
SignImm
4 15:0 Sign Extend <<2
PCBranch
+
PCPlus4
Result
1 1 ALUResult ReadData
A RD 1
Instruction 20:16
A2 RD2 0 SrcB Data
Memory
A3 1 Memory
Register WriteData
WD3 WD
File 0
20:16
0
15:11
1
WriteReg4:0
+
SignImm
4 15:0 Sign Extend <<2
PCBranch
+
PCPlus4
Result
2
16/06/2021
ALU
1 1 ALUResult ReadData
A RD 1
Instruction 20:16
A2 RD2 0 SrcB Data
Memory
A3 1 Memory
Register WriteData
WD3 WD
File 0
20:16
0
15:11
1 TC, Min
WriteReg4:0
+
SignImm
4 15:0 Sign Extend <<2
PCBranch TC1
+
PCPlus4
TC2
Result
Clk-to-q
Antigo PC Novo PC
Antiga Instrução Nova Instrução = (Op, Rs, Rt, Rd, Funct, Imm)
Antigos Valores dos Sinais de Controlo Novos Valores dos Sinais de Controlo (ALUSrc, MemToReg ,ALUOp, …)
Atraso da ALU
Antigo Resultado da ALU Novo Resultado da ALU = Address
Instante
Atraso do Mux MemToReg + SetupRF time + Clock skew da Escrita
no RF
TC1 TC2
TC, Ciclo de Clock
3
16/06/2021
4
16/06/2021
CPI = 1
Tc = 925 ps
© A. Nunes da Cruz IAC - MIPS - Multicycle: Datapath 8/26
5
16/06/2021
Single-cycle
Multicycle
PC 0x400000
lw timing:
I. Mem
Instruction Memory Output
num CPU Singlecycle
data
Esta decomposição em ciclos mais curtos, vai permitir a execução mais rápida de instruções que
não exijam as 5 fases; Exemplos: beq só precisa de 3 ciclos e as instruções de tipo-R só de 4 ciclos.
© A. Nunes da Cruz IAC - MIPS - Multicycle: Datapath 11/26
6
16/06/2021
• Multicycle
+ frequência de clock mais elevada
+ as instruções mais simples executam mais rápido
+ reutilização de hardware (caro) em ciclos distintos:
usa uma única Memória e uma única ALU
- Unidade de Controlo mais complexa:
máquina de estados (FSM)
7
16/06/2021
CLK CLK
CLK CLK
WE Instr WE3
PC' PC A1 RD1
b A
RD
A2 RD2
EN
Instr / Data
Memory A3
Register
WD
File
WD3
8
16/06/2021
SignImm
15:0 Imm
Sign Extend
A A2 RD2 ALUResult
EN
Instr / Data SrcB
Memory A3 ALUOut
Register
WD
File
WD3
SignImm
15:0
Sign Extend
9
16/06/2021
ALU
A EN A2 RD2 ALUResult
1
Instr / Data SrcB
Memory CLK A3 ALUOut
Register
WD
Data File
WD3
Os multiplexers aparecem nos
diagramas, à maneira que vão
15:0
SignImm sendo necessários!
Sign Extend
SignImm
15:0
Sign Extend
10
16/06/2021
ALU
Adr ALUResult ALUOut
EN A EN A2 RD2 00
1 SrcB
Instr / Data 4 01
20:16
Memory CLK A3 10
Register
WD 11
Data File
WD3
ALUSrcB1:0: Seleciona 4 ou SignImm
como SrcB (As restantes entradas
SignImm serão usadas mais adiante).
15:0
Sign Extend
20:16
EN A EN A2 RD2 B 00 ALUResult
1
Instr / Data 4 01 SrcB
20:16
Memory CLK A3 10 ALUOut
Register
WD 11
Data File
WD3
SignImm
15:0
Sign Extend
11
16/06/2021
ALU
Adr 20:16 B ALUResult
EN A EN A2 RD2 00
1
Instr / Data 20:16 4 01 SrcB
0
Memory 15:11
A3 10 ALUOut
CLK 1 Register
WD 11
0 File
Data WD3
1
IorD MemWrite IRWrite RegDst MemToReg RegWrite ALUSrcA ALUSrcB1:0 ALUControl2:0 Branch PCWrite PCSrc
1 1
12
16/06/2021
CLK
PCWrite
Branch PCEn
IorD Control PCSrc
MemWrite Unit ALUControl2:0
IRWrite ALUSrcB1:0
31:26 ALUSrcA
Op
5:0 RegWrite
Funct
MemToReg
RegDst
CLK CLK CLK
CLK CLK
0
WE 25:21 WE3 A Zero CLK
PC' PC Instr A1 RD1 1 SrcA 0
0 RD
ALU
Adr 20:16 B ALUResult
EN A EN A2 RD2 00 1
1
Instr / Data 20:16 4 01 SrcB
0
Memory 15:11 A3 10 ALUOut
CLK 1 Register
WD 11
0 File
Data WD3
1
<<2
SignImm
15:0
Sign Extend
PC 0x400000 0x400004
IR Instruction in IR
Data writeback
13
16/06/2021
Control
MemToReg
Unit
RegDst
IorD Multiplexer
PCSrc Selects
Main ALUSrcB1:0
Controller
Opcode5:0 (FSM) ALUSrcA
IRWrite
MemWrite
PCWrite Enables
Branch
RegWrite
ALUOp1:0
ALU
Funct5:0 ALUControl2:0
Decoder
14