Processador mips - parte operativa e parte de controle

1,905 views
1,756 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,905
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Processador mips - parte operativa e parte de controle

  1. 1. PROCESSADOR MIPSParte Operativa e Parte de Controle
  2. 2. IntroduçãoO desempenho de uma máquina pode ser determinadopor três fatores: Número de instruções executadas; Período de clock (ou frequência); Número de ciclos por instrução (CPI).O compilador e a ISA determinam a quantidade deinstruções a serem executadas a serem executadas porcerto programa. Este trabalho aborda aimplementação é exemplificado em dois projetosalternativos da parte operativa do processador: PO uniciclo; PO multiciclo.
  3. 3. Unidade operativaTambém chamada de “Parte Operativa”, “Via de Dados” ou, eminglês, “Datapath”. É construída a partir dos seguintescomponentes: Elementos de armazenamento (registradores, ffs); Operadores lógico-aritméticos; Recursos de interconexão (barramento, mux).Será projetada para implementar o seguinte subconjunto deinstruções do MIPS: Instruções de referência a memória: load word (lw) e store word (sw) Instruções aritméticas e lógicas: add, sub, and, or e slt Instruções de desvio de fluxo: equal (beq), jump (j)
  4. 4. Componentes Componentes computacionais – definem ovalor de suas saídas apenas em função dosvalores presentes nas suas entradas. Componentes sequencias – tem um estadoque define seu valor em um dado instante detempo.
  5. 5. Registrador Um conjunto de flip-flops tipo D (registrador) Com n bits de entrada e saída; Entrada de habilitação de escrita (write enable). Habilitação de escrita (write enable) Falso (0): o dado de saída não muda; Verdade (1): o dado de entrada será carregado(saída = entrada).
  6. 6. Memória Memória (idealizada): Um barramento de entrada: Data in; Um barramento de saída: Data out. Uma palavra é selecionada por: Um endereço seleciona a palavra para ser colocada na saída (Dataout); Write enable = 1 permite que a palavra selecionada seja escritacom a informação na entrada (Data in). Entrada de clock (CLK): Sincroniza os processos de acesso à memória; Geralmente, os processos são sincronizados pela borda de subidaou de descida do clock.
  7. 7. Estratégia de temporizaçãoUma metodologia de temporização define quando os sinais podemser lidos e quando eles podem ser escritos.É necessário evitar situações de conflito, por exemplo, querer leruma palavra e escrevê-la simultaneamente.Será adotada uma metodologia de temporização sensível ástransições do sinal do clock. Nesta metodologia, qualquer valorarmazenado nos elementos de estado só pode ser atualizadodurante a transição do sinal de relógio (CLK).A lógica combinacional usualmente tem entradas e saídasconectadas a elementos de estado (sequenciais). O elemento deestado 2 somente pode ser escrito depois de os dados estaremestáveis: Atraso de propagação no elemento do estado 1; Atraso da lógica combinacional; Tempo de recarga (setup) no elemento de estado 2.
  8. 8. Criando a Unidade OperativaUma maneira de se começar o projeto de umaunidade operativa é examinar cada um doscomponentes necessários para a execução de cadauma das classes de instruções de MIPS. Elementosnecessários: Um lugar para armazenar as instruções (memória deinstruções); Um registrador para armazenar o endereço deinstrução (Program Counter – PC); Um contador para incrementar o PC, para compor oendereço da próxima instrução (soma 4 paraendereçar a próxima instrução).
  9. 9. Projeto ULA Dupla porta: leiturade dois registradoresao mesmo tempo; Sinal de controle paraescrita: a leitura nãonecessita controle. 3 bits de controleindicam a operação aser realizada.Banco deregistradores
  10. 10. Extensão de sinal do deslocamentoDeslocamento na instrução deve ser estendidode 16 para 32 bits, mantendo-se o sinal. Se for negativo, 16 bits superiores = 1; Se for positivo, 16 bits superiores = 0.
  11. 11. Acesso a memória lw lê um dado da memória e escreve em umregistrador: Conexão entre a saída da memória e a entrada dobanco de registradores. sw lê um dado de um registrador e escreve namemória: Ligação entre saída do banco de registradores eentrada de dados da memória. Endereço calculado através da ULA: Saída da ULA ligada ao barramento de endereços dememória.
  12. 12. Instruções de desvioA comparação entre os registradores é feitasubtraindo-os na ULA e verificando se oresultado é zero.O PC deve ser carregado com PC + 4 ou PC + 4 +desloc * 4, de acordo com o resultado do teste.A multiplicação de desloc por 4 é feitadeslocando-se de 2 bits o seu valor.
  13. 13. MIPS unicicloForam desenvolvidas, na verdade, três tipos deunidades operativas: Uma para instruções no formato R (add, sub, etc.); Uma para instruções no formato I (load e store); Uma para instruções condicionais (formato I).Na fase de projetos às vezes precisamos replicarrecursos. A via de dados mais simples deve-sepropor executar as instruções num único períododo clock. Isto quer dizer que nenhum dos recursospode ser usado mais de uma vez por instrução.
  14. 14. Controle do MIPSCada operação requer a utilização adequada dosrecursos do MIPS. Ex.: add $t2, $s1, $s2. É necessário que os endereços dos operandos $s1 e$s2 sejam enviados ao banco de registradores; Da mesma maneira, o endereço do registrador destino($t2) deverá ser informado ao banco de registradores; Uma vez que o banco de registradores disponibilize osvalores de $s1 e $s2, estes deverão ser encaminhadosà ULA; Posteriormente, o resultado deverá ser escrito nobanco de registradores (registrador $t1).
  15. 15. Controle da ULAAs operações da ULA são controladas por umcódigo de 3 bits: As instruções lw e sw utilizam a operação de somada ULA; As instruções do tipo R utilizam uma das 5operações.
  16. 16. Controle do addA execução da instrução add $t1, $s0, $s2requer as seguintes tarefas: Encaminhar para a ULA o conteúdo dosregistradores $s0 e $s2; Indicar para a ULA que vai ser realizada umaoperação da adição; Encaminhar o resultado para o registrador $t1.
  17. 17. Sinais de controle LerMEM: dado da memória no endereço especificado é lido e colocadona saída. EscMEM: conteúdo da memória endereçado recebe o dado. SelULA: 0 – operando é a segunda saída do banco de registradores 1 – operando é o deslocamento entendido RegDST: 0 – índice do registrador destino é o campo rt da instrução 1 – índice do registrador destino é o campo rd da instrução EscREG: escreve dado no registrador indexado. SelPC: 0 – PC recebe próximo endereço (PC + 4) 1 – PC recebe endereço de desvio SelREG: 0 – registrador recebe saída da ULA 1 – registrador recebe saída da memória
  18. 18. Problemas com MIPS unicicloO período do relógio é determinado pelocaminho mais longo.Instrução lw: Leitura de instrução; Leitura do registrador de base, extensão de sinal; Cálculo do endereço; Leitura do dado da memória; Escrita em registrador.Todas as instruções levam o mesmo tempo paraexecutar.
  19. 19. Exemplo 1:Considerando a distribuição de instruções dobenchmark GCC, a diferença de velocidadeentre as implementações seria: GCC: 22% lw, 11% sw, 49% tipo-R, 16% beq, 2%jump Período uniciclo: 40 ns Período ciclo varíavel: 40*0.22+35*0.11+30*0.49+25*0.16+10*0.2=31.6 ns Ganho: 40/31.6=1,27
  20. 20. Exemplo 2:Considerando o exemplo do GCC, como fica oCPI do MIPS multiciclo? lw: 22% (5 ciclos) sw: 11% (4 ciclos) logarit: 49% (4 ciclos) ramificações: 16% (3 ciclos) saltos: 2% (3 ciclos) CPI = 0.22*5+0.11*4+0.49*4+0.16*3+0.02*3 CPI = 1.1+0.44+1.96+0.48+0.06 = 4.04
  21. 21. MicroprogramaçãoO projeto da parte de controle através dediagramas de transição de estados poderapidamente se tornar inviável se o número deestados for muito grande.MEF’s de processadores complexos podem termilhares de estados.Uma alternativa para o projeto é seguir umprocesso semelhante à programação.
  22. 22. MicroinstruçõesUma microinstrução é definida pelos valoresdos sinais de controle que atuam na unidadeoperativa durante um estado da MEF.A execução de uma instrução do processadorpode então ser realizada através de umasequência de microinstruções.O conjunto de microinstruções queimplementam o controle de um processador échamado de microprograma.
  23. 23. MicroprogramaO sequenciamento das microinstruções érealizado de forma similar a de um programanormal. As microinstruções são usualmente executadasem sequência -> correspondem a caminhos nodiagrama de estados. Em alguns casos, a sequência a ser seguidadepende das informações externas (código dainstrução, por exemplo)Nestes casos, são necessários mecanismos dedesvios.
  24. 24. Formato da microinstruçãoA microinstrução é dividida em campos queatuam sobre conjuntos de elementos daunidade operativa.Os campos são escolhidos de acordo com a suafinalidade. O controle da ULA, por exemplo,seria associado a um campo.O microprograma é usualmenteimplementando em ROM ou PLA, onde cadamicroinstrução tem seu próprio endereço.
  25. 25. Microinstrução do MIPS ctrlULA: especifica a operação realizada pela ULA no ciclode relógio atual ula1: define o primeiro operando da ULA ula2: define o segundo operando da ULA dstULA: especifica o registrador a receber o resultado daULA mem: indica se acesso é de leitura ou escrita e a origem doendereço memReg: especifica o registrador envolvido no acesso escPC: controla a escrita do PC proxMI: especifica como escolher a próxima microinstrução
  26. 26. Sequenciamento das microinstruçõesTrês alternativas: Incrementar o endereço da microinstrução atual Valor seq no campo proxMI Saltar para o início do microprograma (inicia aexecução de uma nova instrução do MIPS) Valor fetch no campo proxMI Desviar de acordo com a informação de controle Valor despacha i no campo proxMI O despacho de microinstruções é realizado com oauxilio de tabelas, implementadas com PLAs/ROMs

×