Escolar Documentos
Profissional Documentos
Cultura Documentos
Pesquisa 2 - Edição Do Professor
Pesquisa 2 - Edição Do Professor
op rs rt offset I-Format
6 bits 26 bits
op address J-Format
Implementando MIPS: Ciclo
Busca/Execução
Visão alto nível da implementação do ciclo de busca/execução de uma
instrução
usa o registrador contador de instrução (PC) para fornecer o endereço da
instrução
busca a instrução na memória e incrementa PC
usa campos da instrução para selecionar os registradores a serem lidos
executa a instrução
repita …
Data
Register #
PC Address Instruction Registers ALU Address
Register #
Instruction
memory Data
Register # memory
Data
Estilos para implementação do
processador
Monociclo
Executa cada instrução em um ciclo de relógio
Multi-Ciclos
Quebra o ciclo de busca/execução em vários passos
Clock cycle
Elementos de Estado
Clock
Read register
5 bits number 1 Read
data 1 32 bits
5 bits Read register
number 2
Register file
5 bits Write
register
Read 32 bits
Write data 2
32 bits data Write
Sinal de controle
Write
Read register C
number 1 0
Register 0
Register 0 1 D
Register 1 M n-to-1 C
Register number
u Read data 1 decoder Register 1
Register n – 1 x D
n– 1
Register n n
Read register
number 2
C
Register n – 1
M D
u Read data 2 C
x Register n
Register data D
Instruction
address
Add
PC
Instruction Add Sum
4
Instruction
memory
Read
PC address
a. Instruction memory b. Program counter c. Adder
Instruction
Instruction
Três elementos usados para armazenar memory
e buscar instruções e
incrementar o PC
Caminho de dados
Caminho de dados: Instrução Armazena/Busca
& Incremento do PC
ADD
PC
ADDR
Memory
RD Instruction
Caminho de dados: Instrução do tipo R
RegWrite
a. Registers b. ALU
5 5 5 Operation
3
RN1 RN2 WN
RD1
Register File ALU Zero
WD
RD2
RegWrite
Caminho de dados: Instrução
Carrega/Armazena
3 ALU operation
Read
MemWrite register 1 MemWrite
Read
data 1
Read
Instruction register 2 Zero
Registers ALU ALU
Address Read Write Read
result Address
data 16 32 register data
Sign Read
Write data 2
extend Data
Write Data data
data memory memory
RegWrite Write
data
16 32
Sign MemRead
MemRead
extend
Shift
left 2
ALU operation
Read 3
Instruction register 1
Read
data 1
Read
register 2 To branch
Registers ALU Zero
Write control logic
register
Read
data 2
Write
data
RegWrite
16 32
Sign
extend
Caminho de dados
Caminho de dados: Instrução de desvio
PC +4 from
op rs rt offset/immediate instruction
16 datapath ADD
5 5 Operation
<<2
RN1 RN2 WN
RD1
Register File ALU Zero
WD
RD2
RegWrite
Instruction lw rt,offset(rs)
32 16 5 5 5 Operation
3
RN1 RN2 WN
RD1
Register File ALU Zero
WD
M MemWrite
RD2 U ADDR MemtoReg
RegWrite X
Data
E Memory RD M
X U
16 32 ALUSrc X
T WD
N MemRead
D
Instrução do tipo armazena
Instruction sw rt,offset(rs)
32 16 5 5 5 Operation
3
RN1 RN2 WN
RD1
Register File ALU Zero
WD
M MemWrite
RD2 U ADDR MemtoReg
RegWrite X
Data
E Memory RD M
X U
16 32 ALUSrc X
T WD
N MemRead
D
Caminho de dados para MIP II: Monociclo
Read Registers
ALU operation
register 1 3 MemWrite
PC Read
Read Read MemtoReg
address
register 2 data 1 ALUSrc Zero
Instruction ALU ALU
Write Read Address Read
register data 2 M result data
u M
Instruction Write x u
memory Data x
data memory
Write
RegWrite data
16 Sign 32 MemRead
extend
Memória de dados e instruções separadas
porque leitura de memória e instrução ocorrem no
mesmo ciclo de relógio
Busca da instrução add
Caminho de dados para MIP III: Monociclo
Novo
PCSrc multiplexador
M
Add u
x
4 Add ALU
result
Shift Precisa de um somador extra
left 2 porque os dois operam no
Registers mesmo ciclo
Read 3 ALU operation
MemWrite
Read register 1 ALUSrc
PC Read
address Read data 1 MemtoReg
register 2 Zero
Instruction ALU ALU
Write Read Address Read
register M result data
data 2 u M
Instruction u
memory Write x Data x
data memory
Write
RegWrite data
16 32
Sign
extend MemRead
Endereço da instrução é
PC+4 ou endereço do desvio
ADD
M
ADD
ADD U
4 X
PC <<2 PCSrc
Instruction
ADDR RD
32 16 5 5 5 Operation
Instruction 3
Memory RN1 RN2 WN
RD1
Register File ALU Zero
WD
M MemWrite
RD2 U ADDR MemtoReg
RegWrite X
Data
E Memory RD M
U
16 X 32 ALUSrc X
T WD
N MemRead
add rd, rs, rt D
Execução da instrução lw
ADD
M
ADD
ADD U
4 X
PC <<2 PCSrc
Instruction
ADDR RD
32 16 5 5 5 Operation
Instruction 3
Memory RN1 RN2 WN
RD1
Register File ALU Zero
WD
M MemWrite
RD2 U ADDR MemtoReg
RegWrite X
Data
E Memory RD M
U
16 X 32 ALUSrc X
T WD
N MemRead
lw rt,offset(rs) D
Execução da instrução sw
ADD
M
ADD
ADD U
4 X
PC <<2 PCSrc
Instruction
ADDR RD
32 16 5 5 5 Operation
Instruction 3
Memory RN1 RN2 WN
RD1
Register File ALU Zero
WD
M MemWrite
RD2 U ADDR MemtoReg
RegWrite X
Data
E Memory RD M
U
16 X 32 ALUSrc X
T WD
N MemRead
sw rt,offset(rs) D
Execução da instrução beq
ADD
M
ADD
ADD U
4 X
PC <<2 PCSrc
Instruction
ADDR RD
32 16 5 5 5 Operation
Instruction 3
Memory RN1 RN2 WN
RD1
Register File ALU Zero
WD
M MemWrite
RD2 U ADDR MemtoReg
RegWrite X
Data
E Memory RD M
U
16 X 32 ALUSrc X
T WD
N MemRead
beq r1,r2,offset D
Controle
Instruction
funct field
ALU deve executar
add para carregamentos/armazenamentos (ALUOp 00)
sub para desvios (ALUOp 01)
um entre and, or, add, sub, slt para instruções do tipo R, dependendo do campo da instrução
funct (ALUOp 10)
Gerenciando bits de controle da ALU
RegDst O identificador do registrador a ser escrito vem O identificador do registrador a ser escrito vem
dos bits 20-16 dos bits 15-11
RegWrite Nenhum O registrador identificado é escrito com os dados que
estão em Write data input
ALUSrc O segundo operando da ALU vem O segundo operando da ALU vem do valor com sinal estendido
do segundo registrador lido (Read data 2) dos 16 bits da instrução
PCSrc O conteúdo do PC é substituído pela saída do somador O conteúdo do PC é substituído pela saída do somador
que calcula o valor PC + 4 que calcula o endereço do desvio
MemRead Nenhum O conteúdo da memória que está no endereço
é colocado na saída Read data output
MemWrite Nenhum O conteúdo da memória endereçada é substituído
pelo conteúdo que está em Write data input
MemtoReg O valor de entrada de escrita do registrador O valor de entrada de escrita do registrador
Write data input vem da ALU Write data input vem da memória
Instruction [5 0]