Escolar Documentos
Profissional Documentos
Cultura Documentos
IAC Aula21 MIPS-SingleCycle1
IAC Aula21 MIPS-SingleCycle1
Processador
• Datapath: Blocos Funcionais
Memórias, registos, ALUs e multiplexers que operam
sobre dados (words de 32-bits)
• Unidade de Controlo:
Determina como a instrução deve ser executada no
Datapath, gerando sinais de seleção de multiplexers,
de enable de registos, de write de memórias, etc.
Datapath = Caminho de Dados.
Os Blocos Funcionais estão interligados por Buses controlados pela Unidade de Controlo.
© A. Nunes da Cruz IAC - MIPS - Single-cycle -I 1/29
1
02/06/2021
Só potencial!
várias instruções
no mesmo ciclo
Time Saved
Pipelined
Só potencial!
2
02/06/2021
2. CPU MIPS
O CPU é uma máquina de estados síncrona.
• As Memórias, os Registos e outros autóma-
tos definem o estado.
• A execução das instruções dum programa
altera o seu estado.
CPU
Estado
PC MemWrite
Addr
DataAddr
Memória CPU Memória
WriteData
Instruções MIPS Dados
Instruction ReadData
Data
3
02/06/2021
opcode, ALU_FN,
MemWrite
func, RegWrite,
flagZ … RegDst …
PC DataAddr
Memória Datapath WriteData Memória
Instruções MIPS Dados
Instruction ReadData
4
02/06/2021
*O projeto dum sistema complexo começa com o hardware dos elementos de estado.
© A. Nunes da Cruz IAC - MIPS - Single-cycle -I 9/29
5
02/06/2021
6
02/06/2021
3.2 Datapath - lw e sw
Operações
lw rt, imm(rs) sw rt, imm(rs)
• Usam os registos rs e rt como operandos
• Calculam (na ALU) o endereço de memória efetivo
usando (rs) e o imm.
MemWrite
ALUControl2:0 CLK
010
(add) WE
32 SrcA
16 Zero 32 32
Sign Extend 32 A RD
ALU
32
Memória
SrcB ALUResult Dados
32
32 WD
lw rt, imm(rs)
sw 43 rs rt immediate
31:26 25:21 20:16 15:0
sw rt, imm(rs)
7
02/06/2021
8
02/06/2021
15:0 SignImm
Sign Extend
ALUResult
A RD
Instruction SrcB
A2 RD2 Data
Memory
A3 Memory
Register
WD3 WD
File
9
02/06/2021
ALU
ALUResult ReadData
A RD
Instruction
A2 RD2 SrcB Data
Memory
20:16 A3 Memory
Register
WD3 WD
File
SignImm
15:0
Sign Extend
ALUResult ReadData
A RD
Instruction
A2 RD2 SrcB Data
Memory 20:16
A3 Memory
Register
WD3 WD
File
+
SignImm
4 15:0
Sign Extend
PCPlus4
Result
10
02/06/2021
ALUResult ReadData
20:16 A RD
Instruction
Memory A2 RD2 SrcB Data
20:16
A3 WriteData Memory
Register
WD3 WD
File
PCPlus4
+
SignImm
4 15:0
Sign Extend
Result
11
02/06/2021
12
02/06/2021
ALU
ALUResult ReadData
A RD 1
Instruction 20:16
Memory
A2 RD2 0 SrcB Data
A3 1 Memory
Register WriteData
WD3 WD
File
20:16 rt 0
15:11 rd
1 MemToReg: Igual a '0' seleciona
WriteReg4:0
PCPlus4 ALUResult como o valor a escre-
+
SignImm
4 15:0
Sign Extend
ver no RF (RegWrite=1).
13
02/06/2021
2. Determina se os valores de rs e
rt são iguais (Zero flag)
Os símbolos do sign-extend e shift-left2 são diferentes mas também se usam noutros livros.
© A. Nunes da Cruz IAC - MIPS - Single-cycle -I 26/29
14
02/06/2021
PCSrc: Activo se Zero=1 sele- RegWrite RegDst ALUSrc ALUControl2:0 Branch MemWrite MemtoReg
0 x 0 110 1 x
ciona BTA como o novo PC'. CLK (sub) CLK 0
CLK
PC' 25:21 WE3 SrcA Zero WE
0 PC Instr A1 RD1 0
A RD
ALU
1 ALUResult ReadData
A RD 1
Instruction 20:16
A2 RD2 0 SrcB Data
BTA Memory
A3 1 Memory
Register WriteData
WD3 WD
File
20:16
0
15:11
1
WriteReg4:0
+
SignImm
4 15:0 <<2
Sign Extend PCBranch
+
PCPlus4
Result
MemToReg
Control
MemWrite
Unit
Branch
ALUControl2:0 PCSrc
31:26
Op ALUSrc
5:0
Funct RegDst
RegWrite
CLK CLK
CLK
25:21 WE3 SrcA Zero WE
0 PC' PC Instr A1 RD1
A RD 0
ALU
1 ALUResult ReadData
A RD 1
Instruction 20:16
A2 RD2 0 SrcB Data
Memory
A3 1 Memory
Register WriteData
WD3 WD
File
20:16
0
15:11
1
WriteReg4:0
+
SignImm
4 15:0 Sign Extend <<2
PCBranch
+
PCPlus4
Result
15