Máquinas de multiníveis: 1 – Microarquitetura Universidade Tuiuti do Paraná – UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Organização de Computadores Prof. André Luiz 1 Máquinas de multiníveis: 1 – Microarquitetura Máquinas de multiníveis: 1 - Nível de Microarquitetura Sua função é implementar a arquitetura do conjunto de instruções - ISA (Instuction Set Architecture): - A base para o projeto da construção de uma UCP é escolher que instruções que essa UCP vai executar; - Todos os componentes do computador e organização destes componentes é baseado para executar esse conjunto de instruções que foi definido; - Não há princípios gerais para definição da ISA, porque cada micro arquitetura é um caso especial. 2 Máquinas de multiníveis: 1 – Microarquitetura • Cada microarquitetura contém um microprograma que define um caminho para os dados: BUSCAR, DECODIFICAR e EXECUTAR instruções; • O problema da microarquitetura é pensar em cada instrução chamada por um programa mestre; • O microprograma contém um conjunto de variáveis denominado Estado do computador, que pode ser acessado por todas as funções; • A microarquitetura também deve entender que cada instrução é composta de um, dois ou mais campos; O primeiro campo de cada instrução é o opcode; 3 Máquinas de multiníveis: 1 – Microarquitetura • Uma das funções da microarquitetura é definir a temporização do caminho dos dados, quantos ciclos, ou pulsos, de relógio são necessárias para cada operação; • Para controlar o caminho dos dados são definidas Microinstruções, que tem a finalidade de controlar a instrução em cada parte do ciclo de instrução que está percorrendo; • A microarquitetura ainda define uma pilha de operandos, ou seja, organiza das variáveis em uma PILHA e faz o controle através do deslocamento a partir da sua base; • Um documento chamado datasheet é escrito quando um chip, ou microprocessador é criado, nele é possível conhecer sua microarquitetura. 4 Máquinas de multiníveis: 1 – Microarquitetura Desafios do Projeto em nível de arquitetura PRINCIPAL DESAFIO: VELOCIDADE CONTRA CUSTO • Reduzir o número de ciclos de relógio necessários para executar uma instrução; • Simplificar a organização de modo que o ciclo de relógio possa ser mais curto; • Sobrepor a execução de instruções. 5 Máquinas de multiníveis: 1 – Microarquitetura Desafios do Projeto em nível de arquitetura Melhoria de desempenho “Alguns tipos de melhorias só podem ser feitos com alteração da arquitetura. Às vezes essas alterações são incrementais, como adicionar novas instruções ou registradores, de modo que programas antigos continuarão a ser executados com novos modelos. Neste caso, para conseguir desempenho completo, o software tem que ser alterado, ou ao menos recompilado com um novo compilador que aproveita as novas características.” 6 Máquinas de multiníveis: 1 – Microarquitetura Desafios do Projeto em nível de arquitetura Melhoria de desempenho Três técnicas utilizadas para melhorar o desempenho: • Memória cache • Previsão de desvio • Execução fora de ordem com renomeação de registrador / Execução especulativa 7 Máquinas de multiníveis: 1 – Microarquitetura Desafios do Projeto em nível de arquitetura Memória cache As técnicas de utilização de cache podem diminuir o problema de latência que a CPU tem ao solicitar a leitura de um operando na memória principal: - Caches de mapeamento direto - Caches associativas de conjunto (mapeamento indireto) Escritas dispõe de um problema especial, gera muito tráfego, e duas Técnicas podem ser utilizadas: escrita imediata (write through) e escrita retardada (write back) 8 Máquinas de multiníveis: 1 – Microarquitetura Desafios do Projeto em nível de arquitetura Previsão de desvio Os desvios condicionais, e incondicionais, podem atrasar a execução uma instrução num modelo paralelo. Um algoritmo de previsão pode ser implementado, ou mesmo, uma previsão estática de desvio. Esse sistema funciona bem na maioria dos sistemas, mas se um procedimento tiver seu comportamento alterado muitas vezes, podem ocorrer má previsões que tornarão a execução lenta da mesma forma que se houvesse atraso. 9 Máquinas de multiníveis: 1 – Microarquitetura Desafios do Projeto em nível de arquitetura Execução fora de ordem com renomeação de registrador Processos sendo executados em paralelo podem requerer recursos de forma concorrente, gerando dependências de RAW (Write Alter Read). muitas vezes essas podem ser evitadas forçando que a segunda instrução coloque seus resultados em outro lugar. Por outro lado, se uma instrução não requer nenhuma dependência pode ser concluída fora de ordem. 10 Máquinas de multiníveis: 1 – Microarquitetura Desafios do Projeto em nível de arquitetura Execução especulativa A execução especulativa deve ocorrer somente em blocos básicos do programa em execução, em uma sequência linear de código. Do contrário, o compilador deveria deixar de forma explicíta quais instruções poderiam ser executadas de forma especulativa. Neste caso estas instruções tem seu resultado armazenado em um espaço temporário de memória, e no tempo sua execução apenas o resultado é fornecido. 11 Máquinas de multiníveis: 1 – Microarquitetura 12 Máquinas de multiníveis: 2 – ISA Nível de arquitetura do Conjunto de Instruções “O nível ISA (Instruction Set Architecture) tem um significado especial que o torna importante para arquitetos de sistema: é a interface entre o software e o hardware” Essa camada permite responder a muitas perguntas quando uma nova máquina é projetada: 1) “Ela é compatível com a antecessora?” 2) “Ela pode executar meu sistema operacional antigo?” 3) “Ela executará todos os meus programas de aplicação existentes sem modificações?” 13 Máquinas de multiníveis: 2 – ISA Nível de arquitetura do Conjunto de Instruções “Neste nível é necessário definir um conjunto de instruções que pode ser implementado com eficiência em tecnologias atuais e futuras, resultando em projetos efetivos em custo por várias gerações.” Propriedades do Nível ISA: - Define o que é visível para o programa/compilador - Modelo de memória - Quais e quantos são os registradores - Quais os tipos de dados e instruções que estão disponíveis - Interface flexível para os compiladores 14 Máquinas de multiníveis: 2 – ISA Nível de arquitetura do Conjunto de Instruções 15 Máquinas de multiníveis: 2 – ISA Modelos de Memória Qual a unidade mínima endereçável? ° Quanto menor, mais linhas de endereço ° Quanto maior, mais desperdício potencial ° Comum : 8 bits Quais as restrições de alinhamento? ° Quanto menor, maior a flexibilidade ° Quanto maior, mais chances de otimização Acesso a palavras não alinhadas (compatibilidade) exige hardware extra (mais área no chip, maior preço) 16 Máquinas de multiníveis: 2 – ISA Registradores - Memórias internas do processador de acesso mais rápido; 1) Registradores de uso geral são acessíveis diretamente por instruções, podem conter variáveis ou dados intermediários. Exemplos: EAX, EBX, ECX, EDX, ESI, EDI, ESP e EBP. 2) Registradores dedicados (dependem da arquitetura), exemplos: PC – Program Counter PSW – Program Status Word SP – Stack Pointer etc... 17 Máquinas de multiníveis: 2 – ISA Tipos de dados - Dependentes da arquitetura - CPU e instruções determinam os tipos básicos reconhecidos pelo hardware: • Inteiros e ponto flutuante, tamanhos variados • Booleanos • Caracteres (ASCII, UNICODE) • Apontadores 18 Máquinas de multiníveis: 2 – ISA Formatos de instruções - Cada instrução deve definir o quê fazer: OPCODE com o quê: endereçamento de dados - A CPU deve ser capaz de identificar esses campos em cada instrução. - É preciso definir a relação entre tamanho de cada instrução e as palavras de memória. 19 Máquinas de multiníveis: 2 – ISA Tipos de instruções ➔ Movimentação de dados (mov); ➔ Operações diádicas (combinam dois operandos em um resultado) Lógicas/aritméticas (inteiros e ponto flutuante IEEE 754) ➔ Operações monádicas (um operando) Deslocamentos / rotações / aritméticas ➔ Testes/comparações / Desvios (condicionais/incondicionais - jmp) ➔ Chamadas de procedimento (int x80) ➔ Controle de laço (je, jea, ja) ➔ Entrada e saída ➔ Especiais (estado do processador) 20 Máquinas de multiníveis: 2 – ISA Endereçamento de memória Modos de endereçamento: como os bits de um campo de endereço devem ser interpretados para achar o operando. • Imediato: valor do dado na própria instrução • Direto: endereço do dado fixo na instrução • Registrador: identificado diretamente na instrução • Indireto: endereço do dado é obtido do conteúdo da posição identificada pela instrução (endereço na instrução = ponteiro) • Pilha: endereçamento implícito 21 Máquinas de multiníveis: 2 – ISA Endereçamento de memória: IMEDIATO O valor a ser manipulado faz parte dos bits da própria instrução, já estando disponível: MOV R1,#5 22 Máquinas de multiníveis: 2 – ISA Endereçamento de memória: DIRETO Endereço a ser utilizado faz parte do código da instrução: MOV R1, (0x1000) 23 Máquinas de multiníveis: 2 – ISA Endereçamento de memória: INDIRETO Endereço do dado é obtido do conteúdo da posição identificada pela instrução (endereço na instrução = ponteiro) MOV R2, #A ADD R1, (R2) 24 Máquinas de multiníveis: 2 – ISA Endereçamento de memória: PILHA • Nenhum endereço é fornecido na instrução (endereçamento implícito); • O processador tem a noção de manipulação de dados em uma pilha; • Operações sempre se referem ao topo da pilha em qualquer instante. 25 Máquinas de multiníveis: 2 – ISA Fluxo de controle de execução Fluxo de controle = sequência em que as instruções são executadas durante a execução do programa. ➔ Fluxo sequencial e desvios/saltos ➔ Procedimentos (recursividade) ➔ Co-rotinas ➔ Traps (interrupções de software/exceções) ➔ Interrupções (hardware) 26 Máquinas de multiníveis: 2 – ISA Pentium 4 4004 – 8008 – 8080 – 8086/8088 - 80286 – 80386 – 80486 ->Pentium->... ->Xeon - Mantém total suporte para execução de software construído para 8086/8088 (16 bits) - Ainda tem sobras do 8080 (8 bits , 1970) - Alterações após o 386: MMX, SSE, SSE2 27 Máquinas de multiníveis: 2 – ISA Pentium 4 28 Máquinas de multiníveis: 2 – ISA 29 Máquinas de multiníveis: 2 – ISA http://www.numaboa.com.br/informatica/tutos/assembly/1110-assembly-registradores Atribuição-Compartilhamento pela mesma licença 2.5 (http://creativecommons.org/licenses/by-sa/2.5/deed.pt) Você pode: ● copiar, distribuir, exibir e executar a obra ● criar obras derivadas ● fazer uso comercial da obra Sob as seguintes condições: Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. ● ● Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta obra. Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do autor. Qualquer direito de uso legítimo (ou "fair use") concedido por lei, ou qualquer outro direito protegido pela legislação local, não são em hipótese alguma afetados pelo disposto acima. Este é um sumário para leigos da Licença Jurídica (na íntegra: http://creativecommons.org/licenses/by-sa/2.5/br/legalcode). Termo de exoneração de responsabilidade: http://creativecommons.org/licenses/disclaimer-popup?lang=pt