1 / 42

Processadores – Aula 01

Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: www.dcomp.ufs.br/index.php/docentes:Andre. Processadores – Aula 01. Agenda. RISC vs CISC Processadores Execução de uma instrução Convenções Lógicas de Projeto Metodologia de Clocking

Download Presentation

Processadores – Aula 01

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 01

  2. Agenda • RISC vs CISC • Processadores • Execução de uma instrução • Convenções Lógicas de Projeto • Metodologia de Clocking • Construindo um caminho de dados.

  3. RISC vs CISC • Um pouco de história... • Durante o final da década de 70, houve experimentos com processadores que faziam uso de instruções muito complexas possibilitadas através de interpretador. • Os pesquisadores ainda tentavam fechar a lacuna entre o que as máquinas podiam fazer e o que as linguagens de programação de alto nível demandavam. • Por outro lado, a IBM trabalhou em um minicomputador de alto desempenho, denominado 801, que pregava o contrário, ou seja, instruções bastante simples, sem uso de interpretador.

  4. RISC vs CISC • Em 1980, David Patterson e Carlo Séquin começaram a projetar chips para CPU e cunharam o termo RISC para os chips que produziram. • Em 1984, Hennessy projetou e fabricou o MIPS. A partir daí começou a diferenciação e a guerra entre os defensores do CISC e RISC.

  5. RISC vs CISC • CISC (Complex Instruction Set Computer) • Se caracteriza por possuir um conjunto de instruções bastante complexo. • Possui uma quantidade muito maior de instruções. • Possui uma quantidade menor de registradores. • RISC (Reduced Instruction Set Computer) • Se caracteriza por possuir um conjunto de instruções bastante simples. • Possui uma quantidade pequena de instruções. • Possui muitos registradores • Mas afinal quem venceu a batalha?

  6. RISC vs CISC • Embora processadores RISC, na época, possuíssem desempenho muito superior aos do CISC, os CISC não foram derrotados. • Várias empresas já tinham desenvolvidos projetos de software completos para processadores CISC. • A Intel, grande fabricante de processadores CISC, adequou as idéias da arquitetura RISC em sua arquitetura CISC. • Desde os 486, os processadores Intel são híbridos, possuindo um núcleo RISC para instruções mais simples e um núcleo CISC para as instruções mais complexas.

  7. Processadores • CPU (Unidade Central de processamento) • “Cérebro” do computador • Executar programas armazenados na memória principal. • Os componentes de um sistema computacional são ligados através de um barramento. • Barramento é um conjunto de fios paralelos que transmitem endereços, dados e sinais de controle. • Barramentos podem ser: • Externos à CPU. • Internos à CPU.

  8. Processadores • Elementos de uma CPU • Unidade de controle • Responsável por buscar instruções na memória principal e determinar o seu tipo. • Caminho de Dados: • Elementos que manipulam ou armazenam dados. • Unidade Lógica e Aritmética (ALU) • Responsável por efetuar as operações de adição, subtração, and, or, etc. • Registradores • Memórias locais de alta velocidade. • Cache

  9. Organização de um computador: Visão Geral

  10. CPU

  11. CPU: Execução de Instrução • Passos: • Trazer a próxima instrução da memória até o registrador. • Alterar o contador do programa para indicar a próxima instrução. • Determinar o tipo de instrução trazido. • Se a instrução usar uma palavra na memória, determinar onde essa palavra está. • Trazer a palavra para dentro de um registrador da CPU, se necessário. • Executar a instrução • Voltar a etapa 1 para iniciar a execução da instrução seguinte.

  12. CPU 1. Trazer a próxima instrução da memória até o registrador.

  13. CPU 2. Alterar o contador do programa para indicar a próxima instrução.

  14. CPU 3. Determinar o tipo de instrução trazido.

  15. CPU 4. Se a instrução usar uma palavra na memória, determinar onde essa palavra está.

  16. CPU 5. Trazer a palavra para dentro de um registrador da CPU, se necessário.

  17. CPU 6. Executar a instrução 7. Repetir os passos apresentados

  18. CPU Alguma coisa está faltando neste hardware? Qual dos dois valores é usado para o PC, por exemplo? Quem é o responsável por controlar estes elementos de hardware?

  19. Multiplexador Multiplexador Unidade de Controle Multiplexador

  20. Qual o papel de cada MUX?

  21. Passar para PC o valor da próxima instrução (PC + 4) ou o valor do endereço do desvio

  22. Conduzir a saída da ALU, ou da memória de dados para o banco de registradores.

  23. Conduzir o valor do registrador ou do campo offset de uma instrução.

  24. Convenções lógicas de Projeto • Elementos funcionais de um processador: • Elementos que operam nos valores de dados • São os elementos combinacionais. • Suas saídas dependem apenas da entrada atual. • Dada a mesma entrada, estes elementos sempre produzem uma mesma saída. • Não possuem memória. • Elementos que contêm estados • São os elementos seqüenciais • Possuem um armazenamento interno • Possuem, no mínimo, duas entradas e uma saída. • Valores de entrada: clock e o dado a ser escrito. • Valor de saída: dado a ser lido. • Clock informa quando se deve escrever. Porém, a leitura pode ser feita a qualquer momento.

  25. Convenções lógicas de Projeto • Sinal Ativo • Quando o sinal de clock está logicamente alto • Sinal Inativo • Quando o sinal de clock está logicamente baixo

  26. Metodologia de clocking • Define quando os sinais podem ser lidos e quando podem ser escritos. • Importante para estabelecer a sincronização destas operações. • Sem uma metodologia de clocking, ou seja, sem a sincronização das leituras/escritas não teríamos garantia que o sinal lido corresponde ao valor antigo, ao valor recém-escrito ou ainda a uma mistura de ambos.

  27. Metodologia de clocking • Sincronização acionada por transição • Quaisquer valores armazenados em um elemento seqüencial é atualizado apenas em uma transição de clock (transição de subida ou descida).

  28. Construindo um caminho de Dados • Baseado no processador MIPS que vimos na disciplina, iremos listar progressivamente cada um dos elementos necessários para a construção do caminho de dados. • Cada elemento de um caminho de dados é uma unidade funcional usada para operar sobre os dados ou conter esses dados dentro de um processador.

  29. Construindo um caminho de Dados • Elementos de um caminho de dados • Para lidar com as instruções precisamos: • Memória de instruções • Armazena instruções de um programa • Fornece uma instrução de acordo com o endereço passado • Registrador PC (contador do programa) • Contém o endereço da instrução atual • Somador • Utilizado, neste caminho de dados, para incrementar o valor do PC.

  30. Construindo um caminho de dados Os três primeiros elementos do caminho de dados e suas interconexões.

  31. Construindo um caminho de Dados • Elementos do caminho de dados • Banco de registradores • Utilizado para execução de instruções que necessitam fazer acesso a registradores. • Exemplo: Instruções de formato R. • Revisando: No Mips, instruções de formato R são aquelas que lêem valores de 2 registradores, realizam uma operação na ALU com o conteúdo destes dois registradores e escrevem o resultado em um outro registrador.

  32. Construindo um caminho de Dados • Devido às instruções de formato R, o banco de registradores precisa: • Para a leitura: • Duas entradas para identificar o registrador que desejamos fazer a leitura. • Duas saídas para obter os valores destes registradores. • Para a escrita: • Duas entradas. Uma para identificar o valor a ser escrito e outra entrada para o registrador no qual desejamos realizar a escrita.

  33. Construindo um caminho de Dados • Banco de registradores

  34. Construindo um caminho de Dados • lw $t1, offset($t2) • As instruções lw e sw, calculam um endereço de memória somando o registrador de base com o campo offset de 16 bits. • No caso de sw, além desta operações, precisamos ler o valor de $t1 para podermos armazená-lo em memória. • No caso de lw, precisamos escrever o valor da memória em $t1. • Logo, além do registrador esta instrução também necessita de uma ALU para realização das operações aritméticas.

  35. Construindo um caminho de Dados • Banco de registradores + ALU

  36. Construindo um caminho de Dados • Adicionalmente, para lw e sw, também é necessário uma memória de dados. • A memória de dados também precisa dar suporte a leitura e escrita. • Além disso, é necessário um hardware adicional para transformar a constante offset de 16 bits em um número de 32 bits.

  37. Construindo um caminho de Dados

  38. Construindo um caminho de dados • Instruções de desvio • BEQ $t1, $t2, offset • Para termos o comportamento desta instrução precisamos calcular o desvio que é obtido estendo o sinal do campo offset de 16 bits para 32. • Em seguida, o campo offset é deslocado de 2 posições. • Porque? • Após isso o campo offset é somado ao valor de PC + 4 (o endereço da próxima instrução). • Também utilizamos a ALU para verificarmos se os valores de $t1, $t2 são iguais.

  39. Construindo um caminho de dados

  40. Construindo um caminho de dados • Esta mesma idéia é válida para as instruções de desvio incondicional. Sendo necessário fazer alguns pequenos ajustes. • Substituímos os 28 bits menos significativos de PC+4 pelos 26 bits significativos do offset deslocados de duas posições.

  41. Próxima Aula

  42. Referências • Organização e Projeto de Computadores • Seções 5.1 a 5.3

More Related