1 / 47

Processadores – Aula 02

Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: www.dcomp.ufs.br/index.php/docentes:Andre. Processadores – Aula 02. Agenda. Unidade de Controle O Controle da ALU Convertendo tabelas verdade em portas lógicas As demais unidades da unidade de controle.

avedis
Download Presentation

Processadores – Aula 02

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. Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: www.dcomp.ufs.br/index.php/docentes:Andre Processadores – Aula 02

  2. Agenda • Unidade de Controle • O Controle da ALU • Convertendo tabelas verdade em portas lógicas • As demais unidades da unidade de controle.

  3. Na aula passada • Na aula passada vimos os componentes que formam um projeto simples de um caminho de dados. • A aula de hoje será focada na unidade de controle.

  4. Aula de Hoje

  5. O controle da ALU • A ALU possui 4 bits de controle. A tabela a seguir ilustra os valores que devem ser transmitido para configurar o funcionamento da ALU.

  6. O Controle da ALU • O controle da ALU é feito baseado nos seguintes critérios: • Se a instrução em questão for uma instrução do tipo R (add, sub, and, or, slt, etc) o campo funct, ou seja, os 6 últimos bits da instrução são utilizados para configurar a ALU. • Se a instrução for de acesso a memória ou de desvio (condicional ou incondicional), não utilizamos os últimos 6 bits da instrução.

  7. O Controle da ALU • Na verdade a unidade de controle possui uma pequena unidade de controle de 2 bits, a AluOp. • A AluOp indica se a operação a ser realizada deve ser uma add (00) para lw e sw, subtract(01) para beq ou determinada pelo funct (10). • A saída da AluOp é um sinal de 4 bits que controla a ALU diretamente.

  8. O Controle da ALU

  9. O Controle da ALU • Observem que a unidade de controle foi subdividida em unidades de controle menores (opALU). • Subdividir o controle em unidades mais simples, é uma prática comum, e trás algumas vantagens. • Em geral, simplifica o projeto de controle. • Pode tornar a unidade de controle mais rápida.

  10. O Controle da ALU • Existem várias formas de se implementar esta unidade de controle para a ALU. • Observe que, no nosso exemplo, muito dos bits citados não são utilizados: • Embora, com o campo funct de 6 bits, possamos representar 64 diferentes valores, muito deles não são utilizados. • Em geral, utiliza-se uma tabela verdade para nos auxiliar na obtenção das portas lógicas que implementam o comportamento desejado.

  11. O Controle da ALU AluOp nunca contém o valor 11

  12. O Controle da ALU Don’tcare O sinal não possui influência no resultado obtido

  13. O Controle da ALU • Podemos simplificar ainda mais esta tabela verdade, se fizermos um estudo individual de cada um dos bits operation. • Basicamente, construímos 3 novas tabelas, observando apenas os 3 bits menos significativos de operation. • Utilizando don’t care podemos eliminar mais alguns elementos.

  14. Convertendo Tabela verdade em Portas Lógicas √ √ √ Quando entrada 1 X, Somente estas duas linhas aparecem com F1 = 1, logo os demais Fs são don’tcare

  15. Convertendo Tabela verdade em Portas Lógicas √ √ √ √ √ Quando entrada 1 X, Somente estas três linhas aparecem com F2 = 0, logo os demais Fs são don’tcare

  16. Convertendo Tabela verdade em Portas Lógicas √ √ Quando entrada 1 X, somente a linha 6 possui F0 = 1 Quando entrada 1 X, somente a linha 7 possui F3 = 1

  17. A Unidade de Controle Principal • Antes de começarmos o projeto da unidade de controle principal, algumas observações com relação às instruções do MIPS.

  18. A Unidade de Controle Principal • Resumindo: • O campo op, também chamado opcode, está sempre contido nos bits 31:26. OP[5:0]. • Os dois registradores a serem lidos sempre são especificados pelos campos rs e rt, nas posições 25:21 e 20:16. (tipo R, beq, sw) • O registrador de base para as instruções lw e sw está sempre nas posições 15:0. • O offset de 16 bits para branch, equal, load e store está sempre nas posições 15:0 • O registrador de destino está em um de dois lugares. Para um lw, ele está na posição 20:16 (rt). Para uma instrução do tipo R, ele está nas posições 15:11 (rd)

  19. AluOp e Instruções Instruções Controle da ALU

  20. A Unidade de Controle Principal

  21. A Unidade de Controle Principal • Quantas linhas temos para a unidade de controle principal? • A entrada de cada multiplexador/memória possuem apenas uma única linha de controle. • A entrada de OpAlu, como visto anteriormente, possui 2 bits. • Todos os sinais de controle apresentado anteriormente podem ser definidos, unicamente, a partir do opcode da instrução. • No entanto existe 1 que não pode? Qual?

  22. A Unidade de Controle Principal • Quantas linhas temos para a unidade de controle principal? • A entrada de cada multiplexador/memória possuem apenas uma única linha de controle. • A entrada de OpAlu, como visto anteriormente, possui 2 bits. • Todos os sinais de controle apresentado anteriormente podem ser definidos, unicamente, a partir do opcode da instrução. • No entanto existe 1 que não pode? Qual? • PCScr.

  23. A Unidade de Controle Principal • Valores dos Sinais de controle de acordo com a instrução passada.

  24. Operação do Caminho de Dados • Instruções do tipo R • Add $t1, $t2, $t3 • Passos • A instrução é buscada e o PC é incrementado • Dois registradores, $t1 e $t2, são lidos do banco de registradores e a unidade de controle principal calcula a definição das linhas de controle também durante esta etapa. • A ALU opera nos dados lidos do banco de registradores, usando o código de função (bits 5:0. que é o campo funct, da instrução) para gerar a função da ALU. • O resultado da ALU é escrito no banco de registradores usando os bits 15:11 da instrução para selecionar o registrador de destino (St1).

  25. 1. A instrução é buscada e o PC é incrementado

  26. 2. Dois registradores, $t1 e $t2, são lidos Unidade de controle principal calcula as linhas de controle.

  27. 3. ALU opera nos dados lidos do banco de registradores para gerar a função da ALU.

  28. 4. O resultado da ALU é escrito no banco de registradores usando os bits 15:11 da instrução para selecionar o registrador de destino (St1).

  29. Operação do Caminho de Dados • Lw $t1, offset($t2) • Passos • A instrução é buscada e o PC é incrementado • Um valor de registrador ($t2) é lido do banco de registradores. • A ALU calcula a soma do valor lido do banco de registradores com os 16 bits menos significativos com sinal estendido da instrução offset. • A Soma da ALU é usada como o endereço para a memória de dados. • Os dados da unidade de memória são escritos no banco de registradores; o registrador de destino é fornecido pelos bits 20:16 ($t1).

  30. 1. A instrução é buscada e o PC é incrementado

  31. 2. Um valor de registrador ($t2) é lido do banco de registradores.

  32. 3. A ALU calcula a soma do valor lido do banco de registradores com os 16 bits menos significativos com sinal estendido da instrução offset.

  33. 4. A Soma da ALU é usada como o endereço para a memória de dados.

  34. 5. Os dados da unidade de memória são escritos no banco de registradores; o registrador de destino é fornecido pelos bits 20:16 da instrução ($t1)

  35. Operação do Caminho de Dados • beq $t1, $t2, offset • Passos • A instrução é buscada e o PC é incrementado. • Dois registradores, $t1 e $t2, são lidos do banco de registradores. • A ALU realiza uma subtração dos valores de dados lidos do banco de registradores. O valor PC + 4 é somado aos 16 bits menos significativos com sinal estendido (offset) deslocados de dois para a esquerda; o resultado é o endereço de destino do desvio. • O resultado Zero da ALU é usado para decidir o resultado de que somador deve ser armazenado no PC.

  36. 1. A instrução é buscada e o PC é incrementado

  37. 2. Dois registradores, $t1 e $t2, são lidos.

  38. 3. A ALU realiza uma subtração dos registradores O endereço de desvio é obtido

  39. 4. O resultado Zero da ALU é usado para decidir o resultado de que somador deve ser armazenado no PC.

  40. Tabela Verdade Final

  41. Questão estilo as da prova. • Para próxima aula, tragam: • Utilizando portas lógicas, implemente a unidade de controle de acordo com a tabela verdade presente no slide anterior.

  42. Jump

  43. Referências • Hennessy e Patterson • Seções 5.4 e 5.5

More Related