Académique Documents
Professionnel Documents
Culture Documents
MIPS monociclo
Caminho de dados monociclo
Todas as instrues so realizadas em um nico ciclo
MIPS monociclo
Implementao genrica:
Usa o registrador (PC) para enderear instrues Busca instrues na memria L registradores (Tipo R) Decodifica para saber que operao realizar Realiza a oprerao
Nossa implementao
Regime de temporizao (Relgio)
Cada registrador possui um sinal de carga particular que ativado com lgica direta Os registradores so disparados pela borda ascendente do relgio No desenho ao lado, quando CK=, se cargaR1=1, ento R1entradas
Nossa implementao
Regime de temporizao (Relgio)
Condio para o funcionamento do bloco combinacional
Nossa implementao
MIPS monociclo
Busca da Instruo - elementos necessrios:
a memria onde esto armazenadas as instrues o contador de programa (PC) para armazenar o endereo da instruo um somador para calcular o endereo da prxima instruo
Busca de Instrues
MIPS monociclo
Banco de Registradores - elementos necessrios:
Um conjunto de 32 registradores onde podem ser armazenados operandos
MIPS monociclo
Banco de registradores
Usam flip-flops tipo D
Read register number 1 Register 0 Register 1 Register n 1 Register n Read register number 2 M u x Read data 1
Read data 1
M u x
Read data 2
Write data
Banco de registradores
Um implementao, simples, mas antiga
Write 0 1 Register number n-to-1 decoder n 1 n C Register 0 D C Register 1 D
MIPS monociclo
Memria de dados - elementos necessrios
Uma memria onde so armazenados dados Tipicamente instrues lw e sw se referem a esta memria
MIPS monociclo
Agrupando elementos
Caso das instrues: add, sub, and, or e slt Instrues tipo R:
add $t1, $t2, $t3
O contedo de dois registradores so usados na operao (realizada na ula MIPS j vista) O resultado da operao armazenado em um terceiro registrador
ULA MIPS
MIPS monociclo
MIPS monociclo
Agrupando elementos necessrios
Caso de uma escrita na memria: sw
sw $so, 5($s1)
O endereo de escrita obtido pela soma de um registrador de base com um deslocamento de 16 bits estendido para 32 bits O contedo de um segundo registrador escrito na memria
MIPS monociclo
MIPS monociclo
Agrupando elementos necessrios
Caso de uma leitura da memria: lw
lw $so, 5($s1)
O endereo de escrita obtido pela soma de um registrador de base com um deslocamento de 16 bits estendido para 32 bits O dado vindo da memria e escrito em um segundo registrador
MIPS monociclo
MIPS monociclo
Agrupando elementos necessrios
Caso da instruo: beq
beq $so, $s1, 5
Comparar dois registradores usando a ULA para fazer uma subtrao Se ocorrer desvio, o endereo de desvio PC+4+deslocamento O deslocamento deve ser estendido para 32 bits (pois est em 16 bits)
MIPS monociclo
MIPS monociclo
Lembrar
...
MIPS monociclo
Na verso monociclo qualquer instruo executa em um ciclo de relgio O perodo do relgio deve ser longo o suficiente para acomodar a instruo mais demorada Cada unidade funcional s pode ser usada uma nica vez durante a execuo de uma instruo qualquer,
Por isso necessitamos de uma memria de instrues e outra de dados
MIPS monociclo
MIPS monociclo
PCSrc 1 M u x 0 Add 4 RegWrite Instruction [25 21] PC Read address Instruction [31 0] Instruction memory Instruction [20 16] 1 M u Instruction [15 11] x 0 RegDst Instruction [15 0] Read register 1 Read register 2 Shift left 2 ALU Add result
Read data 1
MemWrite ALUSrc 1 M u x 0 Zero ALU ALU result MemtoReg Address Read data 1 M u x 0
ALU control
Instruction [5 0] ALUOp
MIPS monociclo
add $s2, $s3, $s4; Instrues tipo R, mas no JR/JALR
MIPS monociclo
lw $s4, 1000($s5)
MIPS monociclo
beq $s4, $s5, LABEL
Instruction [25 21] PC Read address Instruction [31 0] Instruction memory Instruction [15 11] Instruction [20 16] 0 M u x 1
Read data 1 Read register 2 Registers Read Write data 2 register Write data
0 M u x 1
Address
1 M u x 0
Use rt not rd
Instruction [5 0]
Instruo sw
Instruo lw
MIPS monociclo
Incluso da Instruo Jump (j)
A instruo jump altera o valor de PC para:
Deslocamento imediato codificado na instruo deslocado de dois bits a esquerda (deslocamento em palavras) Concatenado com os 4 bits de mais significativos de PC+4
MIPS monociclo