A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Exemplo de arquitetura registrador-registrador- MIPS

Apresentações semelhantes


Apresentação em tema: "Exemplo de arquitetura registrador-registrador- MIPS"— Transcrição da apresentação:

1 Exemplo de arquitetura registrador-registrador- MIPS

2 MIPS ISA – todas as instruções de 32 bits, em 3 formatos:
Máquina RISC – aritmética registrador-registrador 32 registradores de 32 bits Memória endereçada por 32 bits, organizada em bytes – ou seja, a diferença de endereçamento de uma palavra (32 bits) e outra, da memória, é múltipla de 4. 230 words têm endereços de bytes 0, 4, 8, R I J op rs rt rd funct op rs rt 16 bit address op bit address

3 Banco de 32 Registradores do MIPS
Notação: sempre usa $ como prefixo $0 . $31

4 Instruções típicas R I I J
Instrução Significado add $s1,$s2,$s3 $s1 = $s2 + $s3 sub $s1,$s2,$s3 $s1 = $s2 – $s3 slt $s1,$s2,$s3 se $s2 < $s3 então $s1=1 senão $s1=0 lw $s1,100($s2) $s1 = Memory[$s2+100] sw $s1,100($s2) Memory[$s2+100] = $s1 bne $s4,$s5,L Próx. instr. é no Label se $s4< >$s5 beq $s4,$s5,L Próx. instr. é no Label se $s4 = $s5 j Label Próx. instr. é no Label Formatos: R I I J 6 5 5 5 5 6 R I J op rs rt rd funct op rs rt 16 bit address op bit address

5 Instruções aritméticas usando operandos imediatos (constantes)
instrução significado addi $29, $29, 4 I andi $29, $29, 6 ori $29, $29, slti $t1, $s1, 2 $29 = $29+ 4 $29 = $29 and 6 $29 = $29 or 4 Se $s1 < 2 então $t1=1 senão $t1=0 Formato: I op rs rd 16 bits imediato

6 Modos de Endereçamento imediato registrador memória (dados) memória
(instrução) memória (instrução)

7 HARDWARE: Unidades funcionais necessárias
Mem.dados Mem. instrução Somador PC Extensão de sinal Banco de registradores ALU

8 Implementação de MIPS em um único ciclo
controle PC regs Mem. instrução Mem. dados

9 Controle: - decodificação do opcode e geração dos sinais de controle
ALU-control opcode sinais de controle

10 Fluxo numa instrução aritmética (R-format)
RegDst ALUOp Memto Reg ALUSrc

11 Circuito de Controle (decodificação do opcode e geração dos sinais de controle)
opcode 1 1 sinais de controle 1

12 Fluxo para a instrução lw
LMD (Load Mem. Data)

13 Circuito de Controle (para lw)
1 opcode 1 1 1 1 1 sinais de controle 1

14 Fluxo para a instrução sw
SMD – Store Mem. Data

15 Circuito de Controle (para sw)
1 1 opcode 1 1 1 sinais de controle 1

16 Fluxo para a instrução beq

17 Circuito de Controle (para beq)
opcode 1 sinais de controle 1 1

18 Fluxo de dados multiciclo – usando uma única memória para instruções e dados
ALUSrcA IorD RegDst MemtoReg ALUSrcB

19 Passo 1: Busca da instrução (Instruction Fetch)
Usar o PC para a leitura da instrução e carga da mesma no registrador de instrução (Instruction Register). Incrementar o valor do PC por 4 e carregar o resultado no PC. IR = Memory[PC]; PC = PC + 4; Podemos obter os valores dos sinais de controle?

20 Passo 2: Decod. da Instrução e Busca de Registradores
Leitura dos registradores rs e rt Computar o endereço de branch no caso da instrução de branch A = Reg[IR[25-21]]; B = Reg[IR[20-16]]; ALUOut = PC + (sign-extend(IR[15-0]) << 2); Preparando para acionar as linhas de controle baseadas no tipo de instrução (a instrução está sendo "decodificada" na lógica de controle)

21 Passo 3 (dependente da instrução)
ALU está realizando uma das três funções, baseadas no tipo de instrução Referência à memória: ALUOut = A + sign-extend(IR[15-0]); R-type: ALUOut = A op B; Branch: if (A==B) PC = ALUOut;

22 Passo 4 (R-type ou acesso à memória)
Acesso à memória através de loads e stores MDR = Memory[ALUOut]; ou Memory[ALUOut] = B; Fim das instruções R-type Reg[IR[15-11]] = ALUOut; A escrita é realizada no fim do ciclo, na borda

23 Passo 5 (Write-back, para instrução load)
Reg[IR[20-16]]= MDR; Fim da instrução load!


Carregar ppt "Exemplo de arquitetura registrador-registrador- MIPS"

Apresentações semelhantes


Anúncios Google