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 words têm endereços de bytes 0, 4, 8, op rs rt rdfunct op rs rt 16 bit address op 26 bit address RIJRIJ

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

4 Instruções típicas InstruçãoSignificado 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,LPróx. instr. é no Label se $s4 $s5 beq $s4,$s5,LPróx. instr. é no Label se $s4 = $s5 j LabelPróx. instr. é no Label Formatos: op rs rt rdfunct op rs rt 16 bit address op 26 bit address RIJRIJ R I I J

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

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

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

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

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

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

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

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

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

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

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

16 Fluxo para a instrução beq

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

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

19 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? Passo 1: Busca da instrução (Instruction Fetch)

20 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) Passo 2: Decod. da Instrução e Busca de Registradores

21 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; Passo 3 (dependente da instrução)

22 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 Passo 4 (R-type ou acesso à memória)

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


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

Apresentações semelhantes


Anúncios Google