Máquinas Multiníveis - Nível da Microarquitetura

10,999 views
10,824 views

Published on

Apresentação sobre Microarquitetura, desenvolvida por Lincoln, Lívia, Vinícius e Walter para a aula de Arquitetura e Organização de Computadores, Professor Bessa, Centro de Ensino Superior de Juiz de Fora.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,999
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
299
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

  • Lincoln apresenta
  • Lincoln apresenta
  • Vinícius apresenta
  • Lívia apresenta
  • Lívia apresenta
  • Walter apresenta - mostrar que é exemplo, sem explicar.
  • Walter apresenta - mostrar que é exemplo, explicar que são todas as operações permitidas.
  • Vinícius apresenta
  • Vinícius apresenta
  • Vinícius apresenta
  • Vinícius apresenta
  • Vinícius apresenta
  • Vinícius apresenta
  • Lívia apresenta - pode ler o slide, ta bem resumido!
  • Lívia apresenta - pode ler o slide, ta bem resumido!
  • Lívia apresenta - pode ler o slide, ta bem resumido!
  • Lívia apresenta - pode ler o slide, ta bem resumido!
  • Lívia apresenta - pode ler o slide, ta bem resumido!
  • Lívia apresenta - pode ler o slide, ta bem resumido!
  • Walter apresenta - leia o slide, são exemplos!
  • Walter apresenta - leia o slide, são exemplos!
  • Walter apresenta - leia o slide, são exemplos!
  • Walter apresenta - leia o slide, são exemplos!
  • Walter apresenta - leia o slide, são exemplos!
  • Andrew Stuart Tanenbaum
    Edson Sorato
    Victor Jachelli
  • Andrew Stuart Tanenbaum
    Edson Sorato
    Victor Jachelli

  • Máquinas Multiníveis - Nível da Microarquitetura

    1. 1. Máquinas Multiníveis Nível da microarquitetura
    2. 2. 1. Introdução É o nível da linguagem de máquina; Tem como função implementar o nível ISA; A função dos microprogramas é, por meio de suas microinstruções, interpretar e traduzir as instruções que lhe são submetidas pelo ISA; Deve acessar e controlar todos os recursos de hardware como registradores, barramentos, ULAs, memórias, clocks e outros.
    3. 3. 1. Introdução 8 a 32 registradores, formando uma memória local e um circuito ULA, que executa operações aritméticas simples; Consiste em selecionar um ou dois registradores, para que a ULA realize operações e armazene o resultado em algum registrador; Nem todas as máquinas possuem este nível, as instruções do nível imediatamente superior são diretamente executadas pelo hardware.
    4. 4. 2. Microprograma Função: buscar, examinar e executar instruções uma por uma, usando o caminho de dados para fazê-lo. No caso de uma função ADD (SOME), a instrução seria buscada, seus operandos localizados e trazidos para dentro do registrador, a soma seria calculada pela ALU e, por fim, o resultado seria enviado de volta ao lugar que pertence. Em máquinas com controle incorporado, ocorreriam etapas semelhantes, sem um programa explícito armazenado.
    5. 5. 3. Microinstruções Comando que controla o fluxo de dados e o sequenciamento de instruções de execução em um processador; Faz com que o hardware funcione corretamente; É único para cada computador; Compostas apenas por sinais de controle; Executado por um dispositivo chamado sequenciador;
    6. 6. 3. Microinstruções Juntamente com os demais circuitos de hardware, compõe a microarquitetura; É geralmente pequeno, em torno de duas a três dezenas, sendo que a maior parte está relacionada à movimentação de dados de uma parte da máquina para outra ou a realização de testes simples. Projetos do tipo horizontal fazem uso de um número relativamente pequeno de microinstruções largas; Já os projetos do tipo vertical, muitas microinstruções estreitas.
    7. 7. 4. Notação MAL (Micro Assembly Language): SP = SP+1; rd MDR = SP MD = H + SP MDR = SP + MDR H = H − MDR SP = SP+1; rw SP = SP+1; fetch goto label Z = TOS N = TOS if (Z) goto L1; else goto L2 Z=TOS; if (Z) goto L1; else goto L2 goto (MBR or value) => goto (MBR)
    8. 8. 4. Notação
    9. 9. 5. Projetos do nível da microarquitetura 5.1 Características conflitantes: Velocidade; Custo; Facilidade de uso; Confiabilidade; Consumo de energia; Tamanho físico.
    10. 10. 5. Projetos do nível da microarquitetura 5.2 Velocidade X Custo: Três metodologias básicas para melhorar a velocidade de execução de instruções: 1. Reduzir o número de ciclos de clock; 2. Simplificar a organização da máquina; 3. Sobrepor à execução das instruções.
    11. 11. 5. Projetos do nível da microarquitetura 5.2 Velocidade X Custo: O número de ciclos de clock gastos na execução de um conjunto de operações é conhecido como comprimento do caminho; A velocidade é a metade do problema, o custo é a outra metade; Um dos fatores fundamentais para a determinação da velocidade do clock é a quantidade de trabalho a ser executado em cada ciclo de clock.
    12. 12. 5. Projetos do nível da microarquitetura 5.3 Redução do comprimento do caminho de execução: 5.3.1 União do loop de interrupção com o microcódigo: A ideia de sobrepor o início da execução de uma instrução com a execução de outra pode ser melhorada; A microinstrução correspondente ao loop principal pode ser deslocado para o final da sequência de microinstruções corrente, com o desvio correspondente a decodificação da instrução replicado por diversos lugares.
    13. 13. 5. Projetos do nível da microarquitetura 5.3 Redução do comprimento do caminho de execução: 5.3.2 Unidade para busca de instruções: Se determinada instrução tiver outros campos além do código de operação, cada um dos campos precisa ser explicitamente buscado na memória, 1 byte de cada vez. A busca e montagem do operando ocupam a UAL por, no mínimo, um ciclo de clock por byte, pois há necessidade de incrementar o PC a cada novo byte buscado da memória.
    14. 14. 5. Projetos do nível da microarquitetura 5.3 Redução do comprimento do caminho de execução: 5.3.2 Pipeline: Três registradores adicionais (latches), um para cada barramento; São escritos a cada novo ciclo; Eles dividem o caminho de dados em partes distintas e agora podem operar independentemente uma das outras. Objetivos: 1. Aumentar a velocidade do clock; 2. Usar todas as partes do caminho de dados durante cada ciclo.
    15. 15. 6. Estudos de performance Quatro estudiosos americanos propuseram uma interface altamente portável para aplicações embarcadas. Uma das principais dificuldades encontradas em um sistema deste tipo é o fato de que a plataforma de hardware é bastante específica e voltada para a aplicação em questão. Uma das estratégias para resolver este problema é o uso de interfaces chamadas de sistema como: POSIX, WIN32 e MOSI. Outras duas são: máquinas virtuais e abstração de hardware.
    16. 16. 6. Estudos de performance Máquinas virtuais: oferecem um bom nível de portabilidade mas acarretam um grande overhead de processamento e memória, o que restringe o uso em sistemas embarcados. Abstração de hardware (ECOS, LINUX, WINDOWS): apresentam a tendencia de incorporar características arquiteturais da plataforma na qual foram concebidas, o que limita a portabilidade.
    17. 17. 6. Estudos de performance Para obterem o desempenho desejado, utilizaram a programação orientada a aspectos da metaprogramação estática, em um ambiente orientado a objeto. Também foram utilizados mediadores de hardware, o que permitiu que o mesmo sistema executasse em plataformas distintas.
    18. 18. 6. Estudos de performance A análise de domínio utilizada pelo grupo permitiu atingir o nível de portabilidade desejado. Diversas variações e semelhanças foram identificadas no domínio de sistemas operacionais para sistemas embarcados. Para garantir a portabilidade, é desejável que essas características sejam configuráveis no sistema operacional, o que faz com que este seja adaptável ao hardware e à aplicação.
    19. 19. 6. Estudos de performance A metodologia de AOSD foi utilizado para realizar análise de domínio. O AOSD propõe o uso de diversas técnicas de modelagem e programação para atingir um alto nível de configurabilidade com overhead de processamento e memória mínimo. O resultado desta análise foi um sistema operacional orientado a aplicação chamado EPOS.
    20. 20. 6. Estudos de performance Na estrutura apresentada, todas as unidades de hardware dependentes da arquitetura foram abstraídas através de artefatos denominados de mediadores de hardware. Estes mediadores exportam toda a funcionalidade necessária para um n;ivel mais alto do sistema operacional. Essas abstrações correspondem a serviços tradicionais como gerenciamento de memória e processos, comunicação entre processos, etc.
    21. 21. 7. Exemplos Subconjunto da JVM: iJVM, apenas instruções com inteiros O microprograma (ROM) busca, decodifica e executa as instruções da IJVM. Cada instrução é uma função a ser chamada pelo programa principal. O programa principal é um loop simples, onde este determina a próxima função chamada, executa a função, determina a próxima função, executa a função, e assim infinitamente. As instruções IJVM são curtas, normalmente de um ou dois campos. O primeiro campo sempre é o OPCODE. O microprograma possui um conjunto de variáveis, acessadas por todas as funções (estados do computador):
    22. 22. 7. Exemplos Subconjunto da JVM: iJVM, apenas instruções com inteiros REM (Registrador de Endereços da Memória): porta de endereçamento de memória (32 bits); RDM (Registrador de Dados da Memória): porta de dados da memória (32 bits), faz leitura e escrita na memória; PC (Program Counter): indica a posição de memória (endereço) que contém a próxima instrução a ser executada;
    23. 23. 7. Exemplos Subconjunto da JVM: iJVM, apenas instruções com inteiros MBR (Memory Byte Register): porta de dados da memória (8 bits), apenas leitura da memória; SP (Stack Pointer): aponta para o topo da pilha; LV (Local Variable): aponta para a base das variáveis locais dentro da pilha;
    24. 24. 7. Exemplos Subconjunto da JVM: iJVM, apenas instruções com inteiros CPP (Constant Pool Pointer): aponta para a base da área de constantes; TOS; OPC; H (Holding Register)
    25. 25. 7. Exemplos Diagrama de blocos completos do MIC-1, microarquitetura da máquina utilizada como exemplo.
    26. 26. 8. Bibliografia TANENBAUM, Andrew S.. Organização Estruturada de Computadores. 5 ed. São Paulo: Prentice Hall, 2007. SORATO, Edson. Sistemas Operacionais. Disponível em: <http://www.lisha.ufsc.br/teaching/os/ine651600-2008-2/ work/sorato.pdf>. Acesso em: 17 abr. 2010. JACHELLI, Victor. Organização de Computadores. Disponível em: <http://www.info.cefetcampos.br/Members/ victorjachelli/organizacao-de-computadores>. Acesso em: 22 abr. 2010.
    27. 27. Perguntas?
    28. 28. OBRIGADO!

    ×