Arquitetura e Organização de Computadores Fernando Fonseca Ramos Faculdade de Ciência e Tecnologia de Montes Claros Fundação Educacional Montes Claros 1 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Índice • • • • • • 123456- Introdução Exemplo de Microarquitetura Exemplo de Nível ISA: O IJVM Exemplo de Implementação Melhora de Performance Exemplos de Níveis de Microarquitetura 2 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 1 - Introdução: • • • É o nível 1, que fica acima do nível da lógica digital. Sua principal função é implementar o nível ISA (Instruction Set Arquitecture). O projeto deste nível deve considerar os seguintes elementos: – arquitetura do conjunto de instruções a ser implementada (ISA). – objetivos de custos e desempenho do computador a ser projetado. 3 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 1 - Introdução: • A maioria das ISA’s modernas, em particular os projetos RISC, tem instruções simples que podem ser executadas em um único ciclo de clock. • As ISA’s mais complexas, como a do Pentium, precisam de mais ciclos para executar uma única instrução. E necessário ter metodologias de seqüenciamento de instruções mais otimizadas para melhorar o desempenho da maquina em termos de tempo. 4 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: • • • • • Não existem princípios gerais para projeto de microarquitetura, para estudo utiliza-se exemplos de microarquitetura. Exemplo de microarquitetura: IJVM. IJVM e a arquitetura de uma maquina virtual Java – JVM (Java Virtual Machine). Executa apenas um subconjunto de instruções com inteiros da JVM. Objetivos: – Descrição da microarquitetura sobre a qual será implementada a IJVM. – Descrição do controle e do seqüenciamento de execução das instruções. 5 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: • Requisitos: – Desenvolvimento de um microprograma (em ROM) cuja função e buscar, decodificar e executar as instruções IJVM. – O microprograma deve ser pequeno e deve alimentar diretamente as portas do hardware da maquina. – Considera-se que cada instrução do nível ISA e uma função a ser chamada pelo programa principal. 6 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Caminho de Dados • É a parte do processador que contém a UAL e todas as suas entradas e saídas. • Conteúdo do Caminho de Dados: – Conjunto de registradores de 32bits • (PC, SP, MDR, etc.) – UAL • Controle de Função: F0 e F1 • Controle de Habilitação: ENA, ENB • Complemento de A: INVA • Incremento: INC 7 – 3 Barramentos: A, B e C – Deslocadores Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Caminho de Dados • Funções da ULA: – Todas as funções executadas pela ULA são determinadas por 6 linhas de controle: • • • • F0 e F1 para determinação da operação. ENA e ENB para habilitar individualmente suas entradas A e B. INVA para inverter a entrada A. INC que forca um vai - um para o bit menos significativo, efetivamente adicionando 1 ao resultado (incremento de 1). 8 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Caminho de Dados • Combinações úteis de sinais de controle da ULA com as funções executadas por cada uma delas. 9 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: 10 Caminho de Dados • É possível escrever em um mesmo registrador no mesmo ciclo de clock: leitura e escrita são feitas em momentos diferentes em um mesmo ciclo. • A saída da UAL pode ser armazenada em mais de um registrador. Contudo, no barramento B apenas o conteúdo de um dos registradores pode ser transferido por vez. • O registrador H pode ser carregado com o valor presente no barramento B, realizando-se uma soma com o sinal ENA desabilitado (ENA=0). • Deslocamentos a direita e a esquerda podem ser comandados pelos sinais de controle do deslocador. – SLL8 (shift left logical) – desloca a saída da UAL 1 byte a esquerda, deixando 0s no byte da direita. – SRA (shift right arithmetic): desloca a saída da UAL 1 bit para Arq. e Org. de Comp.– Fernando Ram a direita, sem modificar o bit mais significativo. Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Temporização 11 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: 12 Temporização • O primeiro ciclo (explicito, do caminho de dados, apresentado na figura), pode ser visto como um conjunto de subciclos implícitos. • O inicio do primeiro subciclo e marcado pela transição negativa do clock. • Cada subciclo corresponde a execução de uma atividade em um determinado intervalo de tempo (Δw, Δx, Δy e Δz). • Atividades que ocorrem durante os subciclos – 1. Os sinais de controle são ativados (Δw). – 2. O barramento B e carregado a partir dos registradores ( Δx). – 3. A UAL e o deslocar operam (Δy). – 4. O resultado da operação da UAL e do deslocador se propaga através do barramento C em direção aos registradores (Δz). Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Temporização • O resultado e armazenado nos registradores na transição positiva do próximo clock. • E de responsabilidade dos engenheiros de projeto assegurar que essa transição positiva ocorra somente apos passado o tempo Δw+Δx+Δy+Δdz. • Caso contrario a carga dos registradores não é realizada. • Dessa forma, é possível ler e escrever num mesmo registrador, sem produzir “lixo” (ex.: incremento do registrador PC). 13 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Operações de Memória • A comunicação da máquina com a memória utiliza duas “portas”: – Porta de 32 bits (palavra): • MAR (memory address register) • MDR (memory data register) – Porta de 8 bits (byte): • PC (program counter) • MBR (memory buffer register) • Essa porta só pode ler dados da memória. • Par de registradores MAR/MDR: usado para ler/escrever endereço da palavra • Par de registradores PC/MBR: usado para ler instruções do programa executável 14 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Operações de Memória • MAR armazena o endereço de uma palavra, de maneira que os valores 0, 1, 2, etc. referenciam palavras consecutivas. – Ex.: MAR=2, na leitura da memória , serão lidos os bytes 8 a 11 (os bytes que compõem a palavra 2), sendo esses 32 bits guardados no MDR. • PC guarda o endereço de um byte, de modo que os valores 0, 1, 2, etc. referenciam bytes consecutivos. – Ex.: PC=2, na uma leitura da memória , o byte 2 será lido da memória e seus 8 bits serão guardados nos 8 bits menos significativos do MBR. 15 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Microinstruções • De acordo com a figura do caminho de dados, são necessários 29 sinais para controle: – 9 sinais para controlar escrita no barramento B – 9 sinais para controlar escrita nos registradores a partir do barramento C – 8 sinais para controlar UAL e deslocador – 2 sinais para leitura e escrita em memória (MAR /MDR) – 1 sinal para busca em memória via PC /MBR • Os valores dos 29 sinais definem as operações a serem executadas durante um ciclo do caminho de dados 16 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Microinstruções • De acordo com a figura do caminho de dados, são necessários 29 sinais para controle: – 9 sinais para controlar escrita no barramento B – 9 sinais para controlar escrita nos registradores a partir do barramento C – 8 sinais para controlar UAL e deslocador – 2 sinais para leitura e escrita em memória (MAR /MDR) – 1 sinal para busca em memória via PC /MBR • Os valores dos 29 sinais definem as operações a serem executadas durante um ciclo do caminho de dados 17 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Microinstruções • Observação quanto ao acesso à memória: – Uma solicitação de acesso ao conteúdo da memória é feita no ciclo 1 – a informação solicitada só estará disponível no ciclo 3 (pelo menos) • Redução do número de sinais de controle: – 9 sinais para controlar escrita em B → 4 sinais, usando decodificador (não faz sentido o acesso a B por mais de um registrador simultaneamente) 18 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Microinstruções • Estrutura e ordenação de uma possível microinstrução 19 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: Microinstruções • Endereço: contém o endereço da próxima microinstrução a ser potencialmente ativada • Desvio: determina a próxima microinstrução a ser executada • UAL: especifica as funções da UAL e do deslocador • Barramento C: seleciona qual dos registradores serão carregados com o valor que estiver no barramento C • Memória: especifica as funções da memória • Barramento B: seleciona a entrada do barramento B 20 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: O MIC-1: Elementos 21 Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: O MIC-1: Elementos • Seqüenciador – Realiza todos os passos necessários para execução de uma instrução ISA – A cada ciclo: estado de cada sinal de controle; e o endereço da próxima microinstrução • Memória de controle: armazena o microprograma completo • MPC (MicroProgram Counter): endereço da próxima microinstrução • MIR (Micro Instruction Register): armazena microinstrução corrente 22 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: O MIC-1: Elementos • • Campo JAM – 000: nada a fazer – JAMN == 1: O valor de N deve ser submetido a um OR com bit de maior ordem do MPC – JAMZ == 1: O valor de Z deve ser submetido a um OR com bit de maior ordem do MPC – F=(JAMN AND N) OR (JAMZ AND Z) OR NEXT_ADDRESS[8] Só há duas possibilidades para conteúdo de MPC: – NEXT_ADDRESS – NEXT_ADDRESS com bit de mais alta ordem submetido à operação OR com 1 23 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 2 – Exemplo de Microarquitetura: O MIC-1: Elementos • Campo JAM • JMPC: – 1: MPC=(8 bits de MBR) OR (8 bits menos significativos do NEXT_ADDRESS) – JMPC=1: NEXT_ADDRESS = 0x000 ou 0x100 – Em geral, MBR contém um código de operação (opcode) ISA 24 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 3 – Exemplo de Nível ISA: O IJVM Pilhas • Armazenamento de variáveis locais • Só há duas possibilidades para conteúdo de MPC: 25 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 3 – Exemplo de Nível ISA: O IJVM O Modelo de memória da IJVM • • • Duas opções de visualização: – Vetor de 232 bytes = 4 GB – Vetor de 230 palavras (cada palavra = 4 bytes) As instruções da IJVM só podem ter acesso à memória indexando-a com ponteiros Pool de Constantes – Programas IJVM não podem escrever nessa área que armazena constantes, strings e ponteiros para outras áreas da memória – CPP aponta para o endereço da primeira palavra 26 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 3 – Exemplo de Nível ISA: O IJVM O Modelo de memória da IJVM • • • 1. Quadro de Variáveis Locais – Armazena variáveis locais (procedimentos) – LV aponta para a base do quadro de variáveis locais corrente 2. Pilha de Operandos – Localiza-se imediatamente acima do quadro de variáveis locais – SP aponta para o endereço de mais alta ordem 3. Área de Procedimento – Armazena o programa – PC armazena o endereço da instrução a ser executada 27 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 3 – Exemplo de Nível ISA: O IJVM O Modelo de memória da IJVM • • • • Área de Procedimento: vetor de bytes Pool de Constantes: vetor de palavras Pilha de Operandos: vetor de palavras Quadro de Variáveis Locais: vetor de palavras 28 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 3 – Exemplo de Nível ISA: O IJVM Conjunto de instruções da IJVM • Manipulação de pilha – BIPUSH byte (0x10): coloca byte na pilha – DUP (0x59): copia topo e coloca no topo – ILOAD varnum (0x15): coloca uma variável local no topo da pilha – ISTORE varnum (0x36): retira palavra do topo e armazena numa variável local – LDC_W índice (0x13): coloca no topo uma constante vinda do Pool de Constantes – POP (0x57): retira da pilha a palavra do topo – SWAP (0x5F): troca de posição as duas palavras do topo da pilha 29 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 3 – Exemplo de Nível ISA: O IJVM Conjunto de instruções da IJVM • • Operações aritméticas – IADD (0x60): retira as duas palavras do topo, soma-as e armazena o resultado no topo – ISUB (0x64): retira as duas palavras do topo, subtrai-as e armazena o resultado no topo Operações lógicas – IAND (0x7E): retira as duas palavras do topo, realiza um AND e armazena o resultado no topo – IOR (0x80): retira as duas palavras do topo, realiza um OR e armazena o resultado no topo 30 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 3 – Exemplo de Nível ISA: O IJVM Conjunto de instruções da IJVM • Desvios – GOTO desl (0xA7): desvio incondicional – IFEQ desl (0x99): retira o topo e desvia se for igual a zero – IFLT desl (0x9B): retira o topo e desvia se for menor que zero – IF_ICMPEQ desl (0x9F): retira as duas palavras do topo e desvia se forem iguais • Chamadas de procedimentos – INVOKEVIRTUAL desl (0xB6): chama um procedimento – IRETURN (0xAC): retorna de um procedimento trazendo um inteiro 31 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 3 – Exemplo de Nível ISA: O IJVM Compilação de JAVA para IJVM 32 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 4 – Exemplo de Implementação Main 1 ) PC=PC+1; fetch; goto(MBR) nop1 ) goto Main 1 iadd1) MAR=SP=SP-1; rd iadd2) H=TOS iadd3) MDR=TOS=MDR+H; wr; goto Main 1 isub1 ) MAR=SP=SP-1; rd isub2 ) H=TOS isub3 ) MDR=TOS=MDR-H; wr; goto Main 1 dup1 ) MAR=SP=SP+1 dup2 ) MDR=TOS; wr; goto Main 1 33 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 4 – Exemplo de Implementação bipush1 ) SP=MAR=SP+1 bipush2 ) PC=PC+1; fetch bipush3 ) MDR=TOS=MBR; wr; goto Main 1 iload1 ) H=LV iload2 ) MAR=MBRU+H; rd iload3 ) MAR=SP=SP+1 iload4 ) PC=PC+1; fetch; wr iload5 ) TOS=MDR; goto Main 1 34 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 5 – Melhora da Performace Velocidade x Custo • Metodologias para aumentar a velocidade de execução – Reduzir o número de ciclos necessários à execução das instruções – Simplificar a organização da máquina, de modo a reduzir o período de clock – Sobrepor a execução de instruções Redução do caminho de execução 35 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 5 – Melhora da Performace Redução do caminho de execução • • • Arquitetura com três barramentos: inclusão de um barramento A para a entrada esquerda da UAL Unidade de busca de instruções: busca de instruções a cargo de uma unidade independente; UAL restrita à execução de instruções propriamente dita 36 Arq. e Org. de Comp.– Fernando Ram Arq. e Org. de Computadores Nível da Microarquitetura 5 – Melhora da Performace Redução do caminho de execução 37 Arq. e Org. de Comp.– Fernando Ram