Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória, ES Brazil 1
Máquinas Multiníveis Revisão Aula Passada Máquinas Multiníveis Parte 1: História; Dois Níveis; Vários Níveis. 2
Máquinas Multiníveis Máquinas Modernas Máquinas Multiníveis Modernas: 3
Máquinas Multiníveis Nível de Dispositivos Transistores e Circuitos Integrados: CPU de 45 nanômetros, refere-se à média do tamanho de uma célula de memória. 4
Máquinas Multiníveis Nível de Dispositivos Visão da CPU - 4 núcleos - 900 milhões de transistores: 5
Máquinas Multiníveis Nível de Dispositivos Evolução: 1971 10 µm; 1974 6 µm; 1977 3 µm; 1982 1,5 µm; 1985 1 µm; 1989 800 nm; 1994 600 nm; 1995 350 nm; 1997 250 nm; 1999 180 nm; 2001 130 nm; 2004 90 nm; 2006 65 nm; 2008 45 nm; 2010 32 nm; 2012 22 nm; 2014 14 nm; 2016 10 nm (previsto); 2018 7 nm (previsto); 2020 5 nm (provável). 6
Máquinas Multiníveis Nível de Dispositivos Situado abaixo do nível 0; Não é representado na arquitetura multinível; Seus elementos pertencem ao campo da microeletrônica, engenharia elétrica e da física do estado sólido: Transistores individuais, cristal semicondutor (substrato dos circuitos integrados), malha de transistores. 7
Máquinas Multiníveis Nível de Dispositivos Tecnologias de fabricação de circuitos integrados: Bipolar: TTL (Transistor-Transistor Logic); ECL (Emitter-Coupled Logic); MOS - Metal Oxide Semi-conductor: Portas mais lentas, gastam menos energia e ocupam espaço bem menor; CMOS - transistores MOSFET: baixíssimo consumo, altíssima densidade de integração. 8
Máquinas Multiníveis Nível 0 Nível de Lógica Digital: Composto por circuitos lógicos digitais; Os objetos de interesse são as portas lógicas; As portas lógicas são dispositivos digitais construídas a partir de componentes analógicos; Formam os elementos primários dos circuitos lógicos do computador; Portas básicas: NAND, NOR (portas completas); NOT, AND, OR e XOR. 9
Máquinas Multiníveis Nível 0 Nível de Lógica Digital: As portas são usadas para criar componentes digitais simples ou complexos, como somadores, deslocadores, decodificadores, memórias (registradores), ULA s e circuitos integrados para execução de funções específicas; Um único conjunto de portas NAND ou NOR, é suficiente para construir qualquer circuito lógico. 10
Máquinas Multiníveis Nível 0 Nível de Lógica Digital: Os circuitos lógicos são construídos de acordo com a Álgebra Booleana; A partir da combinação das portas lógicas básicas e suas variações, que são integrados em pastilhas (chips ou CIs) de silício; De acordo com a densidade de componentes, os chips são classificados em: Integração em Pequena Escala (SSI): de 1 a 10 portas lógicas; Integração em Média Escala (MSI): de 10 a 100 portas lógicas; Integração em Grande Escala (LSI): de 100 a 100.000 portas lógicas; Integração em Escala Muito Grande (VLSI): acima de 100.000 portas lógicas. 11
Máquinas Multiníveis Nível 0 Nível de Lógica Digital: Comparador de 4 bits: 12
Máquinas Multiníveis Nível 0 Nível de Lógica Digital: Unidade Lógica de 1 bit, para realizar operações lógicas NOT, AND, OR e soma aritmética: 13
Máquinas Multiníveis Nível 0 Nível de Lógica Digital: Deslocador de bits para a esquerda ou para a direita com alcance de 8 bits: 14
Máquinas Multiníveis Nível 0 Nível de Lógica Digital: Memória de 1 bit capaz de lembrar os valores anteriores (Latches): 15
Máquinas Multiníveis Nível 0 Nível de Lógica Digital: O nível 0 é responsável pela interpretação de instruções do nível superior, ou seja, seus circuitos executam os programas em linguagem de máquina do nível 1: Macroinstruções (nível ISA Instruction Set Architecture); Microinstruções (nível de microprogramação). 16
Máquinas Multiníveis Nível 0 Nível de Lógica Digital: A arquitetura da máquina pode ser entendida como um conjunto de registradores, associados a outros módulos lógicos adicionais para processamento de informação, interconectados de maneira apropriada; O sequenciamento adequado dos sinais de controle destes módulos e registradores produz o fluxo ordenado de informação entre os mesmos, necessário à interpretação de instruções do nível superior; Equivalência entre hardware e software, ou seja, funções desempenhadas pelo software podem migrar para o hardware e vice-versa. 17
Máquinas Multiníveis Nível 1 Nível de Microarquitetura: É nesse nível que se inicia o conceito de programa como uma sequência de instruções a serem executadas diretamente pelos circuitos eletrônicos; Enxerga-se um conjunto de 8 a 32 registradores (PC, MAR, MDR, SP, etc.) que formam uma memória local e uma ULA (Unidade Lógica e Aritmética), capaz de realizar operações aritméticas simples; Os registradores e a ULA são conectados para formar o caminho de dados (Data Path), estrutura sobre a qual os dados fluem; As operações são controladas por um microprograma (software) ou diretamente por hardware. 18
Máquinas Multiníveis Nível 1 Nível de Microarquitetura: Controle por software: Microprograma = Interpretador; O microprograma busca, decodifica e executa as instruções vindas do nível 2, uma a uma, usando o caminho de dados para a realização da tarefa; Ex. 1: execução da instrução ADD (soma): A instrução é obtida na memória; Seus operandos (parcelas da soma) são localizados e trazidos para os registradores; A soma é realizada na ULA; E o resultado é encaminhado para o lugar apropriado. 19
Máquinas Multiníveis Nível 1 Nível de Microarquitetura: Controle por hardware: São executados os mesmos passos do slide anterior, mas sem que haja um programa armazenado para controlar a interpretação das instruções; A execução é feita por meio do nível de dispositivos. 20
Máquinas Multiníveis Nível 1 Nível de Microarquitetura: Principais Arquiteturas: CISC (Complex Instruction Set Computer); RISC (Reduced Instruction Set Computer); Arquiteturas híbridas (mais usadas atualmente). 21
Máquinas Multiníveis Nível 1 Nível de Microarquitetura: CISC: Uso de microcódigo; Conjunto de instruções completas; Tempos de processamento diferentes a cada instrução; Instruções de máquina de alto nível, ou seja, com funções mais complexas; Código mais denso (poucos registradores); RISC: Não usa microprogramação, ou seja, as instruções são executadas pelo hardware; Conjunto simples e pequeno de instruções; Instruções executadas no mesmo tempo; Código menos denso (muitos registradores). 22
Máquinas Multiníveis Nível 1 Nível de Microarquitetura: Vantagens da microprogramação Facilita o projeto e a construção dos circuitos digitais (implementação de parte da lógica digital dentro do firmware); Possibilita o desenvolvimento de instruções mais potentes no nível de máquina convencional; Permite alterar o ISA escrevendo outro microprograma; Facilita a concepção de famílias de microprocessadores. Característica principal: A infraestrutura do nível 1 interfere diretamente na execução dos programas na máquina, e no comportamento dos níveis superiores. 23
Máquinas Multiníveis Nível 2 Nível de ISA (ou nível convencional de máquina): Define a interface entre o hardware e o software; 24
Máquinas Multiníveis Nível 2 Nível de ISA: O nível ISA é interpretado para o nível de microprogramação (máquinas CISC) ou é executado diretamente pelo hardware (máquinas RISC); Manuais descrevem como as instruções são executadas interpretativamente pelo microprograma (software) ou como elas são executadas diretamente pelo hardware. 25
Máquinas Multiníveis Nível 2 Nível ISA: Há uma relação direta entre a linguagem do nível 1 e a linguagem de convencional de máquina do nível 2 (ISA), porque há uma relação um para um entre as instruções de ambas; Para cada instrução da linguagem no nível ISA existe uma instrução do nível 1 correspondente; A diferença resulta de sua representação, a primeira é numérica e a segunda é textual; As arquiteturas CISC e RISC interferem diretamente na linguagem utilizada pelo nível ISA. 26
Máquinas Multiníveis Nível 2 Nível de ISA: As características mais importantes do nível ISA, são: A arquitetura varia conforme a tecnologia usada pelo fabricante do chip; Deve ser o mais simples possível, para facilitar projeto do hardware; Deve facilitar a geração de código por parte do compilador; Projeto do nível de linguagem de máquina deve dar suporte aos níveis superiores, possibilitando o uso de estruturas de dados tais como procedimentos, variáveis locais, variáveis globais, constantes, etc., utilizados pelas linguagens de alto nível. 27
Máquinas Multiníveis Nível 2 Nível de ISA: São aspectos importantes do nível ISA: Modelo de memória; Conjunto de registradores; Formato das instruções; Modos de endereçamento; Tipos de instruções; Fluxo de controle. 28
Máquinas Multiníveis Nível 2 Nível de ISA: Modelos de memória: Antes de ser executado o programa em linguagem de máquina é armazenado na memória principal; Memória dividida em células referenciadas por endereços consecutivos; Célula pode ter qualquer tamanho, mas um byte é padrão atualmente; Os bytes são agrupados em palavras (words); Registradores: O nível ISA disponibiliza um conjunto de registradores visíveis ao programador: registradores de uso geral e de propósito específico; 29
Máquinas Multiníveis Nível 2 Nível de ISA: Formato das instruções: São campos essenciais de uma instrução: Código de operação (OP CODE): identifica a operação a ser realizada pelo processador; Endereço: indica a localização do dado (operando) a ser manipulado pela instrução. 30
Máquinas Multiníveis Nível 2 Nível de ISA: Formato das instruções: O comprimento das instruções também pode ser variável, geralmente sendo um múltiplo ou submúltiplo da palavra; Há diferentes critérios para o projeto de formatos de instrução, e são regidos por algumas características: Quanto maior o tamanho da instrução, maior é o espaço ocupado por um programa na memória; Velocidade que o processador pode executar as instruções é limitada pelo tamanho das instruções; Quanto menor o tamanho das instruções mais rápido serão buscadas pelo processador; Instruções curtas são mais difíceis de decodificar; Instruções menores podem não completar uma operação integralmente. 31
Máquinas Multiníveis Nível 2 Nível de ISA: Modos de Endereçamento: Existem diversos métodos de codificar o campo de endereços. Estes podem utilizar mais ou menos bits e o endereço pode ser determinado estaticamente, em tempo de compilação, ou dinamicamente, em tempo de execução; Podem ser de acesso direto ou indexado; Podem usar registradores, pilhas e outros métodos recursos. 32
Máquinas Multiníveis Nível 2 Nível de ISA: Tipos de instrução: Instruções de movimento de dados; Operações diáticas (com dois operandos); Operações monádicas (com um operando); Instruções de comparação e desvio condicional; Instruções de chamada de procedimento; Instruções de entrada e saída de dados (I/O); 33
Máquinas Multiníveis Nível 2 Nível de ISA: Fluxo de controle: O fluxo de controle é sequência na qual as instruções são executadas; A execução da maioria das instruções não altera o fluxo de controle; Em um fluxo de controle normal as instruções são buscadas em palavras consecutivas da memória. Após a execução de uma instrução, a próxima instrução é buscada na memória incrementando o PC do tamanho da instrução que acaba de ser executada; O fluxo de controle normal é alterado por desvios, chamadas de procedimentos, co-rotinas, armadilhas (traps) e interrupções. 34
Máquinas Multiníveis Próxima Aula Máquinas Multiníveis: Para a próxima aula: Níveis 3, 4 e 5. Continua na próxima aula! Até breve. 35
http://nemo.inf.ufes.br/ 36