1 / 18

MIPS MULTICICLO Fluxo de Dados e Controle

MIPS MULTICICLO Fluxo de Dados e Controle. Usa máquina de estado finito para controle. Máquinas de estado finito: Um conjunto de estados e Função próximo estado (determinado pelo estado atual e entrada)

Télécharger la présentation

MIPS MULTICICLO Fluxo de Dados e Controle

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 MULTICICLOFluxo de Dados e Controle

  2. Usa máquina de estado finito para controle • Máquinas de estado finito: • Um conjunto de estados e • Função próximo estado (determinado pelo estado atual e entrada) • Função de saída (determinada pelo estado atual e possivelmente entrada)Usaremos uma máquina Moore (saída baseada somente no estado atual)

  3. Técnica multiciclo • Quebrar as instruções em passos, cada passo leva um ciclo • Balancear a quantidade de trabalhos a realizar • Restringir cada ciclo para usar somente uma unidade funcional • No fim de um ciclo • Armazenar valores para serem usados nos ciclos posteriores • introduzir registradores internos adicionais

  4. Cinco passos de Execução • Busca da instrução (Instruction Fetch) • Decodificação da instrução e busca do registrador • Execução, Computação do endereço de memória, ou conclusão de uma instrução de branch • Acesso à memória ou conclusão de uma instrução R-type • Passo de Write-back INSTRUÇÕES LEVEM DE 3 - 5 CICLOS!

  5. 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. • Pode ser descrito sucintamente usando RTL "Register-Transfer Language" IR = Memory[PC]; PC = PC + 4;Podemos obter os valores dos sinais de controle?Quais as vantagens de atualizar o PC neste passo?

  6. 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 • RTL: A = Reg[IR[25-21]]; B = Reg[IR[20-16]]; ALUOut = PC + (sign-extend(IR[15-0]) << 2); • Estamos acionando as linhas de controle baseadas no tipo de instrução (a instrução está sendo "decodificada" na lógica de controle)

  7. 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;

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

  9. Passo Write-back • Reg[IR[20-16]]= MDR; E as outras instruções?

  10. Resumo:

  11. Implementando o Controle • Para os dois primeiros passos, os sinais de controle são iguais para todas as instruções. • A partir do passo 3, os sinais de controle são dependentes de: • Que instrução está sendo executada • Que passo está sendo realizada • Usar as informações acumuladas para especificar uma máquina de estado finito • Especificar uma máquina de estado finito: 1) para os dois primeiros passos correspondem dois estados da máquina 2) a partir do passo 3, cada combinação de instrução e passo resulta num estado diferente.

  12. Especificação da FSM • Quantos bits de estado são necessários?

  13. Máquina de estado finito para controle (controle hardwired, controle fixo) • Implementação:

  14. Implementação em PLA da lógica de controle

  15. Controle microprogramado – uso de memória de microprograma (microcódigo) • O que são “microinstruções” ?

  16. Microprogramação • Uma metodologia de especificação • Apropriado se centenas de opcodes, modos, ciclos, etc. • sinais especificados simbolicamente usando microinstruções • Duas implementações da mesma arquitetura tem o mesmo microcódigo? • O que faria um microassembler?

  17. Comparação: Controle fixo e Microprogramado • Controle fixo: - complexidade do circuito cresce linearmente com o número de instruções. - após a construção é difícil a alteração do conjunto de instruções implementado - apresenta melhor desempenho • Controle Microprogramado: • a complexidade do circuito não muda enquanto usar a mesma memória de microcódigo • é fácil mudar o conteúdo da memória de microprograma e portanto alterar o conjunto de instruções implementado • o desempenho é menor em relação ao controle fixo.

  18. Comparação: Controle fixo e Microprogramado

More Related