1 / 35

MIPS

MIPS. Características do MIPS: 32 registradores de 32 bits de uso geral Quantidade suficiente para não aumentar o tamanho da instrução, pois endereçar 32 registradores requer apenas 5 bits na instrução

Download Presentation

MIPS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MIPS • Características do MIPS: • 32 registradores de 32 bits de uso geral • Quantidade suficiente para não aumentar o tamanho da instrução, pois endereçar 32 registradores requer apenas 5 bits na instrução • Facilita a decodificação e velocidade, pois um grande número de registradores torna lenta a decodificação • Usa instruções com 3 operandos • Número natural de operandos para uma operação matemática é 3 • Todos os operandos estão em registradores, evita acesso à memória para buscar dados em cada operação • Somente 2 instruções acessam a memória (load e store) • Uma palavra (word) do MIPS tem 32 bits • Todas as instruções têm o mesmo tamanho: 32 bits • Facilita a decodificação

  2. 31 26 21 16 11 6 0 op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 31 26 21 16 0 op rs rt immediate 6 bits 5 bits 5 bits 16 bits 31 26 21 16 0 op rs rt displacement 6 bits 5 bits 5 bits 16 bits Instruções do MIPS • Tipo-R (registrador) • add rd, rs, rt • sub, and, or, slt • Tipo-I (imediato) • lw rt, rs, imm • sw rt, rs, imm • Tipo-J (jump/desvio) • beq rs, rt, imm • Lê registradores rs e rt • Fornece dados para a ULA • Atualiza conjunto de registradores • Lê registrador rs (e rt para armazenar) • Fornece rs e imediato para a ULA • Move dado entre memória e registrador • Lê registradores rs e rt • Fornece-os para a ULA comparar • Soma PC ao deslocamento; atualiza PC

  3. Instruções do MIPS Exemplos MIPS g = (b + c)  (e + f) add $t8,$s2,$s3 # $t8  b + c add $t9,$s5,$s6 # $t9  e + f sub $s7,$t8,$t9 # $s7  ($t8)  ($t9) # g  ($t8)  ($t9) opcode operando destino, operando fonte 1, operando fonte 2

  4. Instruções do MIPS Exemplos MIPS: Inst. Aritméticas addi $s3,$s3,4 # $s3  $s3 + 4 sub $s7,$t8,$t9 # $s7  ($t8)  ($t9)

  5. Instruções do MIPS Exemplos MIPS: Inst. Transferência de Dados lw $t0,100($s3) # $t0  [($s3) + 100] sw $t0,100($t1) # [($t1)+100]  ($t0) lw: load word sw: store word • Somente estas duas instruções acessam a memória: • Facilita decodificação • Hardware mais simples para decodificar

  6. Instruções do MIPS Exemplos MIPS: Inst. OperaçõesLógicas and $s1,$s2,$s3 # $s1  $s2 & $s3 or $s1,$s2,$s3 # $s1  $s2 | $s3 nor $s1,$s2,$s3 # $s1  ~($s2 | $s3) andi $s1,$s2,100 # $s1  $s2 & 100 ori $s1,$s2,100 # $s1  $s2 | 100

  7. Instruções do MIPS Exemplos MIPS: Inst. de Desvios beq $s1,$s2,L # if ($s1==$s2) go to L bne $s1,$s2,L # if ($s1!=$s2) go to L slt $s1,$s2,$s3 # if ($s2<$s3) $s1  1; # else # $s1  0 slt $s1,$s2,100 # if ($s2<100) $s1  1; # else # $s1  0

  8. Instruções do MIPS • Endereçamento no MIPS • Endereçamentoemregistrador: o operando é um registrador • add $s1,$s2,$s3

  9. Instruções do MIPS • Endereçamento no MIPS • Endereçamento de base oudeslocamento: o operandoestá no local de memóriacujoendereço é a soma de um registrador e umaconstante • lw $t0,0,($t1)

  10. Instruções do MIPS • Endereçamento no MIPS • Endereçamentoimediato: o operando é umaconstantedentrodaprópriainstrução • addi $s1,$s2,100

  11. Instruções do MIPS • Endereçamento no MIPS • Endereçamentorelativoao PC: o endereçamento é a soma do PC e umaconstantenainstrução • beq $s1,$s2,L #if ($s1==$s2) go to [PC+4]+[L]

  12. Instruções do MIPS • Endereçamento no MIPS • Endereçamentoabsoluto: o endereço de jump faz parte dainstrução • j 10000 #go to 10000

  13. Datapath • Construção do Datapath • Para determinar o datapath devemos examinar cada um dos componentes necessários à execução de cada uma das classes de instruções do processador

  14. Datapath • Datapath • Exemplo de Estudo: Processador MIPS • Para o estudo: selecionamos um grupo básico de instruções que representa todas as demais instruções do processador • loadword (lw) • storeword (sw) • add, sub, and, or • beq Corresponde aos componentes e suas interligações que possibilitam a execução das instruções de um processador instruções de referência à memória instruções aritméticas e lógicas instrução de desvio

  15. Instruções do MIPS • Formatos das Instruções da Arquitetura MIPS • Instruções de Registradores: Tipo R • Instruções Imediatas: Tipo I • Instruções de Desvios: Tipo J

  16. 31 26 21 16 11 6 0 op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 31 26 21 16 0 op rs rt immediate 6 bits 5 bits 5 bits 16 bits 31 26 21 16 0 op rs rt displacement 6 bits 5 bits 5 bits 16 bits Instruções do MIPS • Tipo-R • add rd, rs, rt • sub, and, or, slt • Tipo-I • lw rt, rs, imm • sw rt, rs, imm • Tipo-J • beq rs, rt, imm • Lê registradores rs e rt • Fornece dados para a ULA • Atualiza conjunto de registradores • Lê registrador rs (e rt para armazenar) • Fornece rs e imediato para a ULA • Move dado entre memória e registrador • Lê registradores rs e rt • Fornece-os para a ULA comparar • Soma PC ao deslocamento; atualiza PC

  17. Endereço da Instrução Instrução Memória de Instruções Datapath • Simbologia usada no Datapath • Unidades funcionais necessárias para cada instrução: • Busca de Instruções (ação executada para todas as instruções) Memória para armazenar as instruções do programa

  18. PC Contador de Programa Datapath • Simbologia usada no Datapath • Unidades funcionais necessárias para cada instrução: • Busca de Instruções (ação executada para todas as instruções) PC - Program Counter mantém o endereço da próxima instrução

  19. Somador Datapath • Simbologia usada no Datapath • Unidades funcionais necessárias para cada instrução: • Busca de Instruções (ação executada para todas as instruções) Somador incrementa o valor do PC para compor o endereço da próxima instrução

  20. Memória no MIPS Palavras de 4 bytes Datapath • Visão Lógica da Memória no MIPS • Palavras de 4 bytes posicionadas seqüencialmente

  21. PC Clk Lógica do Próximo Endereço Endereços Palavra de Instrução Memória de Instruções 32 Datapath • Datapath • Parte do Datapath para Busca de Instruções

  22. Datapath • Datapath • Parte do Datapath para Busca de Instruções

  23. Datapath • Unidades funcionais necessárias para operação da ULA (instruções do tipo Registrador): • Banco de Registradores (Register File) e a própria ULA • Todas as instruções do Tipo-R precisam: • Ler 2 registradores • Realizar a operação na ULA • Escrever o resultado num registrador • Escrita precisa: • Especificar o número do registrador a ser escrito • Entrada do dado a ser escrito • Leitura precisa: • Especificar o número do registrador a ser lido • Saída para o registrador lido

  24. 5 Dado1 lido 32 Reg1 a ser lido 5 Números dos Registradores Reg2 a ser lido Registradores Dados 5 Reg a ser escrito 32 Dado2 lido 32 Dado Dado de escrita EscReg Datapath • Simbologia usada no Datapath • Unidades funcionais necessárias para operação da ULA (instruções do tipo Registrador): • Banco de Registradores (Register File) e a própria ULA

  25. Controle da ULA Zero ULA Resultado da ULA Datapath • Simbologia usada no Datapath • Unidades funcionais necessárias para operação da ULA (instruções do tipo Registrador): • Banco de Registradores (Register File) e a própria ULA

  26. Datapath • Estrutura do Banco de Registradores para Leitura

  27. Datapath • Estrutura do Banco de Registradores para Escrita

  28. 31 26 21 16 11 6 0 op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Datapath • Parte do Datapath para Instruções do Tipo Registrador • R[rd] <- R[rs] op R[rt] Exemplo: addrd, rs, rt • Ra, Rb, e Rw vem dos campos rs, rt e rd • Sinal de operação da ALU depende da operação

  29. Datapath • Unidades funcionais necessárias para as instruções de load e store: • Memória de Dados e Unidade de Extensão de Sinal • Todas as instruções do Tipo-I precisam: • Ler 1 registrador base para calcular o endereço do operando • Somar o conteúdo do registrador base ao endereço de 16 bits na instrução • Instrução de Store: • Especificar o número do registrador a ser lido • Escrever o conteúdo do registrador lido na posição de memória calculada • Instrução de Load: • Ler o conteúdo da posição de memória no endereço calculado • Escrever o conteúdo da posição de memória no registrador especificado • Elementos necessários: • Todas as instruções usam a ULA, o banco de registradores e a memória de dados

  30. EscMem Endereço Dado lido Dado a ser escrito Memória de Dados LerMem Datapath • Simbologia usada no Datapath • Unidades funcionais necessárias para as instruções de load e store: • Memória de Dados e Unidade de Extensão de Sinal A memória precisa ter sinais de controle para leitura e escrita, um endereço de entrada, além de uma entrada para dados e uma saída para dados

  31. 16 bits 32 bits ExtSin Extensão de Sinal Datapath • Simbologia usada no Datapath • Unidades funcionais necessárias para as instruções de load e store: • Memória de Dados e Unidade de Extensão de Sinal Unidade de Extensão de Sinal: Tem entrada de 16 bits e estende o sinal para 32 bits para calcular o endereço do operando

  32. 31 26 21 16 0 op rs rt immediate 6 bits 5 bits 5 bits 16 bits Datapath • Parte do Datapath para Instruções do Tipo Load e Store • R[rt] <- Mem[R[rs] + SignExt[imm16]] Exemplo: lw rt,rs,imm16

  33. 31 26 21 16 0 op rs rt immediate 6 bits 5 bits 5 bits 16 bits Datapath • Parte do Datapath para Instruções do Tipo Load • R[rt] <- Mem[R[rs] + SignExt[imm16]] Exemplo: lw rt, rs, imm16

  34. 31 26 21 16 0 op rs rt immediate 6 bits 5 bits 5 bits 16 bits Datapath • Parte do Datapath para Instruções do Tipo Store • Mem[R[rs] + SignExt[imm16]] <- R[rt] Exemplo: sw rt,rs,imm16

  35. Agradecimentos • Professor: • João Angelo Martini

More Related