William Stallings Organização de computadores digitais Capítulo 11 Estrutura e função da CPU Encruzilhada na arquitetura de computadores 2004/2005 Antiga opinião Nova visão a energia é de graça, os transistores são caros a energia é cara (power wall), transistores são de graça (isto é, pode-se colocar mais deles em um chip do que é possível ligar) Aumento do paralelismo no nível da instrução: compiladores, inovações da Unidade de Controle (out-of-order, execução especulaticva, VLIW) “lei da diminuição” dos retornos sobre mais HW for ILP (ILP) wall Multiplicação é lenta, memória é rápida Multiplicação é rápida, a memória é lenta (memory wall) – 200 ciclos de clock para a memória DRAM e 4 para multiplicar A performance dos (uni) processadores 2x / 1.5 anos Power+ILP+Memory walls = brick wall -> (multi) processadores 2x CPU / 1,5 anos, pois CPUs simples são mais power efficient OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Transputer announcement RISC revolution OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Mudança de paradigma: processador é o novo transistor? o 1971 – Intel 4004: 4 bit processor, 2312 transistores, 0.4 MHz, 10 micron PMOS, 11 mm^2 chip o 1983 - RISC II: 32 bit, 5 stage pipeline, 40,760 transistors, 3 MHz, 3 micron NMOS, 60 mm^2 chip o 2004 – Intel: 2312 RISC II + FPU + Cache 0.065 micron CMOS, 125 mm^2 chip OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto History of general purpose CPUs http://en.wikipedia.org/wiki/History_of_general_purpose_CPUs CPU design http://en.wikipedia.org/wiki/CPU_design OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Estrutura da CPU o o o o Organização do processador Registradores Ciclo de instrução e pipeline Organização do Pentium II e PowerPC OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Estrutura da CPU o Ações que a CPU deve executar: o Busca de instrução o Interpretação de instrução o Busca de dados na memória ou I/O o Processamento de dados: operação aritmética ou lógica sobre os dados o Escrita de dados na memória ou I/O OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Registradores o CPU deve ter espaço de trabalho temporário o Este espaço é fornecido pelos Registradores o O número e funções dos registradores varia grandemente entre os processadores o Esta é uma das decisões determinantes de um projeto o Os registradores representam o topo da hierarquia de memória OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto CPU e o barramento do sistema Barramento do sistema ALU faz o processamento do dados CU controla não só a transferência de dados e instruções para dentro e fora da CPU, mas também a própria operação da ALU Registradores: memória de trabalho OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Estrutura interna da CPU o Barramento interno o CPU: unidade de controle, ULA e registradores o Computador: CPU, I/O e memória OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Organização dos registradores o Hierarquia de memória o Níveis altos: mais cara e rápida o Níveis inferiores: menos cara e lenta o Registradores: acima da memória principal e do cache o Registradores visíveis para o usuário o Registradores de controle e estado OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Registradores visíveis ao usuário o Permitem ao programador de linguagem de montagem (assembler) ou de máquina minimizar referências à memória, pela otimização do uso dos registradores o o o o Registradores de Propósito Geral Registradores de Dados Registradores de Endereços Registradores de Códigos de Condição OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Registradores de propósito geral o Podem ser verdadeiramente de propósito geral: o usados pelo programador; o ortogonais ao código de operação -- qualquer registrador pode conter um operando para qualquer código de operação. o Podem haver algumas restrições: o registradores dedicados para operações sobre ponto flutuante ou operações sobre a pilha. o Podem ser utilizados para dados ou cálculo de endereçamento: o registradores de segmento -- contém o endereço base de um segmento; o registradores de índice -- utilizados para endereçamento indexado; o apontador de topo de pilha -- aponta o topo da pilha. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Registradores de propósito geral: decisões de projeto o Fazendo eles de propósito geral: o aumenta o tamanho da instrução e sua complexidade; o aumenta a flexibilidade e as opções do programador. o Fazendo eles especializados: o permite referência implícita aos registradores; o instruções menores e mais rápidas; o menor flexibilidade na programação. o A tendência tem sido utilizar registradores especializados. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Registradores de propósito geral: quantos registradores? o O número de registradores afeta o projeto do conjunto de instruções: quanto maior, maior o número de bits para especificar os operandos. o O número aceito é entre 8 e 32. o Poucos registradores implica em mais referências à memória. o Mas muitos registradores não reduz necessariamente o número de referências à memória. o Algumas arquiteturas RISC podem ter centenas de registradores. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Registradores de propósito geral: qual o tamanho apropriado? o Grande o suficiente para conter o maior endereço do sistema. o Grande o suficiente para conter uma palavra. o É desejável que se possa combinar dois registradores de dados para conter valores de tamanho duplo: o em linguagem C o double int a; o long int a; OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Registradores de propósito geral: códigos de condição o Conjuntos de bits individuais (flags), atualizados pelo hardware da CPU como resultado de operações: o e.g. se o resultado da última operação aritmética é positivo, negativo, zero ou se ocorreu overflow. o Podem ser lidos (implicitamente) por programas e utilizados em operações de desvio. o Não podem (em geral) ser setados por programas. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Registradores de controle e estado o São utilizados pela CU para controlar a operação da CPU e por programas do SO para controlar a execução de programas. o Não são visíveis ao usuário na maioria das máquinas. o Program Counter (PC): o endereço da instrução a ser buscada. o Instruction Register (IR): a última instrução buscada. o Memory Address Register (MAR): o endereço de uma posição de memória. o Memory Buffer Register (MBR):um dado a ser escrito na memória ou lido recentemente. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Palavra de estado de programa (Program Status Word – PSW) o O PSW é um conjunto de bits que inclui os Códigos de Condição e outras informações de estado: o o o o o o o Sinal do último resultado; Zero; Carry (vai um); Igual; Overflow; Habilita ou desabilita Interrupções; Supervisor ou usuário. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Outros registradores o Dependendo da CPU, podem existir outros registradores de uso específico: o o o o Blocos de controle de processo (visto em SO); Vetores de interrupção (visto em SO); Topo de pilha; Controle de operações de I/O. o No projeto da organização dos registradores, as necessidades do SO são determinantes. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Exemplo da organização dos registradores em microprocessadores Processadores MC68000, 8086 (16 bits) e 80386 (32 bits) MC68000 (registradores separados, mas de uso misto: flexibilidade) endereços e dados separados dados (e índices) de 8, 16 ou 32 bits A7 é utilizado como apontador de pilha (para o sistema e para o usuário) OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Exemplo da organização dos registradores em microprocessadores Processadores MC68000, 8086 (16 bits) e 80386 (32 bits) 8086 (registradores de uso especial, poucas exceções: menor flexibilidade) dados de 16 ou 8 bits apontadores e índices de 16 bits 80386: usa registradores de 32 bits que retém a organização do 8086, para compatibilidade Não existe solução sempre ideal OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Numeração dos processadores: novas nomenclaturas Usar apenas o clock interno como indicativo de desempenho fornece uma idéia muito vaga da capacidade do processador. Modelos com o mesmo clock, só que com cache ou outros recursos são muito diferentes no desempenho, pois o que determina a eficiência de um chip é o conjunto de características e não apenas uma. AMD adotou a nomenclatura PR (Performance Reference) a partir do processador Athlon XP A Intel também adotou um modelo de nomenclatura diferente: http://www.intel.com/portugues/ OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Memórias cache o Cache L1 (Nível 1 ou cache interno): é a memória cache que vem dentro do processador. o Cache L2 (Nível 2 ou cache externo): para aumentar a eficiência do cache L1, surge uma memória cache fora do processador: o cache L2. o Atualmente, os processadores trazem o cache L2 embutido na CPU, fazendo com que as terminologias "interno" e "externo" percam o sentido. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Performance Reference: isso já aconteceu antes o Quando a Intel lançou o processador Pentium, a AMD e a Cyrix tentaram manter seus processadores 486 por mais tempo no mercado. o Para isso, acrescentaram recursos nesses processadores e os lançaram com o nome de 586, como se estes fossem equivalentes ao Pentium. No entanto, o Pentium era superior. o Os processadores atuais da AMD têm desempenho equivalente e, em alguns casos, superior aos modelos concorrentes da Intel. o Exemplo: o Athlon XP 2800+ tem clock interno de 2250 MHz, mas a AMD não usa o nome Athlon XP 2250 MHz, pois quer indicar que o processador tem desempenho equivalente a um Pentium 4 de 2800 MHz. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Exemplo Repare que os valores de clock interno são diferentes dos valores apontados nos nomes. Note que os últimos dois processadores possuem clock interno e externo iguais, mas a quantidade de cache L2 é diferente. Processador Clock interno Clock externo Sempron 2200+ 1,5 GHz 333 MHz Sempron 2500+ 1,58 GHz 333 MHz Sempron 2800+ 2 GHz 333 MHz 256 Kb Sempron 3000+ 2 GHz 333 MHz 512 Kb OCD – Organização de Computadores Digitais - 2009 Cache L2 Prof. Camilo Rodrigues Neto Ciclo de Instrução o Já o vimos no capítulo 3 do Stallings OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Ciclo Indireto o Pode ser necessário vários acessos à memória para buscar múltiplos operandos. o No endereçamento indireto também são necessários vários acessos à memória. o São como que sub ciclos de instrução. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Diagrama de estados para o ciclo de instrução OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Busca de instruções: fluxo dos dados o Depende do projeto da CPU o Em geral, a busca de uma instrução (fetch): o PC contem o endereço da próxima instrução; o o endereço é carregado no MAR; o o endereço é disponibilizado no barramento de endereços; o a unidade de controle solicita uma operação de leitura da memória; o o resultado é colocado no barramento de dados, copiado no MBR e então para o IR; o o PC é incrementado do tamanho da instrução executada. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Busca de instruções: fluxo dos dados o O IR é examinado o Se o endereçamento é indireto, o “ciclo indireto é realizado”: o os N bits mais significativos do MBR é transferido para o MAR; o a unidade de controle requisita uma operação de leitura na memória; o o resultado (isto é, o endereço do operando) é movido para o MBR. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Busca de instruções: fluxo dos dados OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Busca de instruções: fluxo indireto OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Busca de instruções: execução o As instruções podem assumir várias formas. o Depende da instrução em execução. o Podem incluir: o operação de leitura ou escrita na memória; o operação de Input/Output; o transferências entre registradores; o operações com a ALU. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Busca de instruções: interrupção o São simples e previsíveis: o o conteúdo do PC é salvo para permitir o retorno ao ponto anterior de execução; o o conteúdo do PC é copiado para MBR; o o ponto de salvamento é carregado no MAR (e.g. stack pointer); o MBR é escrito na memória; o o PC é carregado com o endereço da rotina de manipulação de interrupções; o a próxima instrução, a primeira do manipulador de interrupções, pode ser carregado. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Fluxo de dados: diagrama de interrupção OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Pré busca (prefetch) o A busca da próxima instrução acessa a memória principal. o A execução em geral não acessa a memória principal. o Portanto, pode-se buscar a próxima instrução durante a execução da instrução corrente. o Isto é chamado de “instruction prefetch”. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Aumento da performance? o Aumenta a performance, mas não a dobra: o A operação de busca (fetch) é em geral mais curta que a execução; o Em casos de “jump” ou “branch” as instruções pré buscadas (prefetched) não serão as instruções necessárias. o Pode-se adicionar mais melhorar a performance. OCD – Organização de Computadores Digitais - 2009 estágios para Prof. Camilo Rodrigues Neto Pipelining o o o o o o Fetch instruction Decode instruction Calculate operands Fetch operands Execute instructions Write result o Overlap these operations OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Timing of Pipeline OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Branch in a Pipeline OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Foreground Reading o Processor examples o Stallings Chapter 11 o Web pages etc. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto