Aspectos gerais de arquitectura de computadores João Canas Ferreira 2007-09-12 Tópicos de Arquitectura de Computadores Assuntos Tópicos 1 Evolução dos computadores 2 O mercado de computadores 3 Arquitectura de computadores 4 Tecnologia de base Contém figuras de: Computer Organization and Design (cap. 1), D. Patterson & J. Hennessey, 3ª e 4ª ed., Elsevier. João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 2 / 22 Evolução dos computadores 1 Evolução dos computadores 2 O mercado de computadores 3 Arquitectura de computadores 4 Tecnologia de base João Canas Ferreira (FEUP/DEEC) Aspectos gerais Notas: 3 2007-09-12 3 / 22 Evolução dos computadores O primeiro computador electrónico: ENIAC Data de desenvolvimento: 1943-46. Local: Universidade da Pensilvânia. Autores principais: John W. Mauchly, J. Presper Eckert Jr. Tecnologia: válvulas (tubos de vácuo, 18000), resistências (70000), condensadores (10000) e relés (6000). Frequência de operação: 100 kHz. Potência consumida: 150-190 kW. Problema de fiabilidade: 90% do tempo de paragem deveu-se à necessidade de substituir tubos de vácuo (19000/ano, 52/dia). João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 Notas: 4.1. ENIAC: Electronic Numerical Integrator And Computer. 4.2. A partir da página WWW da disciplina é possível aceder a alguns artigos históricos sobre o ENIAC e a um sumário da história dos computadores. 4.3. Informação sobre válvulas na Wikipedia: http://en.wikipedia.org/wiki/Vacuum_tube. A figura apresentada provém de uma versão anterior deste artigo. Actualmente, as válvulas são usadas sobretudo em aparelhagem áudio. 4 4 / 22 Evolução dos computadores Planta do ENIAC A sala tinha cerca de 93 m2 . O ENIAC tinha 3 m de altura e pesava 30 t. João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 5 / 22 Notas: 5.1. Os seguintes artigos contêm mais informações sobre o ENIAC: H.H. Goldstine e Adele Goldstine, “The Electronic Numerical Integrator and Computer (ENIAC)”, em IEEE Annals of the History of Computing, Vol. 18, No. 1, 1996. A figura foi retirada deste artigo. W. Barkley Fritz, “ENIAC—A Problem Solver”, em IEEE Annals of the History of Computing, Vol. 16, No. 1, 1994. Wikipedia: http://en.wikipedia.org/wiki/ENIAC History of Computing Information http://ftp.arl.mil/~mike/comphist/ 5.2. O seguinte artigo contém uma biografia de J. Presper Eckert: Peter Eckstein, “J. Presper Eckert”, em IEEE Annals of the History of Computing, Vol. 18, No. 1, 1996. 5.3. Unidades aritméticas: 20 acumuladores (somas e subtracções), um multiplicador e uma unidade combinada divisor/raiz quadrada. Memória para programas está distribuída pelo computador. O ENIAC era capaz de executar 5000 somas por segundo. 5.4. O sucessor de ENIAC foi o EDVAC (Electronic Discrete Variable Automatic Computer), também projectado por Mauchly e Eckert. 5 Evolução dos computadores Mainframes: IBM System/360 Model 91 Até ao fim dos anos 70, os grandes computadores centralizados dominaram a indústria. O modelo 91 da “arquitectura” System/360 é um caso típico (1966). João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 6 / 22 Notas: 6.1. Abreviaturas: MSCE PSCE PDU SDE SPF Main Storage Control Element (memória principal) Peripheral Storage Control Element Power Distribution Unit Storage Distribution Element Storage Protect Feature (controlo de acessos) 6.2. Até ao fim dos anos 60, a evolução dos computadores foi determinada pelo contributo conjunto dos avanços tecnológicos e arquitecturais. Nos anos 70, os avanços foram essencialmente tecnológicos. Também surgiram nesta altura os primeiros microprocessadores (Intel 4004, 1971). A partir dos anos 80 voltou a registar-se um avanço combinado da tecnologia de base e da arquitectura. 6.3. O termo “arquitectura” usado na transparência refere-se à “arquitectura do conjunto de instruções”, i.e., ao modelo que o programador manipula. Hoje em dia, considera-se que a arquitectura de computadores abarca também os aspectos da organização interna e de implementação, porque estes têm influência sobre o modelo “externo” do computador. 6 Evolução dos computadores System/360 Model 91 em operação Fonte: Arquivo fotográfico da IBM. João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 7 / 22 Notas: 7.1. Origem da foto: Arquivo fotográfico da IBM (http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_2423PH2091.html). 7.2. O sistema apresentado esteve em operação no centro de controlo de voo Goddard da NASA. Em 1968, era o segundo mais potente computador em operação, capaz de executar 16,6 milhões de adições por segundo. 7.3. O período de relógio do CPU era de 60 ns. O tempo de acesso a memória (8 bytes de dados) era de 780 ns. O modelo da fotogrfia tinha uma memória principal de 2 MB, com 16 canais. (A capacidade máxima era de 6 MB). 7.4. Outra fotografia (http://www.columbia.edu/acis/history/36091.html): 7 Evolução dos computadores A hegemonia do microprocessador Em meado dos anos 80, deu-se uma reapreciação dos aspectos arquitecturais: ressurgimento e domínio das arquitecturas RISC. A partir do início dos anos 90, o microprocessador passou a dominar a indústria de computadores. Hoje os microprocessadores estão presentes em quase todas as áreas. Intel 4004 João Canas Ferreira (FEUP/DEEC) PowerPC 750 Aspectos gerais 2007-09-12 8 / 22 Notas: 8.1. A fotografia da esquerda mostra o 4004, o primeiro microprocessador da Intel (fonte original: http://people.smu.edu/rmonagha/4004.html). 8.2. A fotografia da direita mostra uma versão (para o espaço) do processador PowerPC 750 (fonte original: http://www.iews.na.baesystems.com/space/images/rad750_die_floorplan1.jpg). Características: 6,5 milhões de transístores, área 67 mm2 , tecnologia CMOS 0,18 µm, frequência 300 MHz. 8.3. Existem várias possibilidades de evolução para os computadores. Uma delas é descrita por N. Tredennick e B. Shimamoto num artigo de divulgação da revista ACM Queue: “The Inevitability of Reconfigurability”, Vol. 1, No. 7, 2003 (disponível a partir da Digital Library http://www.acm.org/dl). 8.4. A companhia Xilinx vende circuitos reconfiguráveis que incluem 1 ou 2 núcleos de microprocessador (PowerPC 405): os circuitos Virtex-II Pro, Virtex-4 e Virtex-5. Pode encontrar mais detalhes em http://www.xilinx.com/xlnx/xil_prodcat_product.jsp?title=v2p_x. 8 Evolução dos computadores Evolução do desempenho dos CPUs Linha clara: desempenho da tecnologia de base (circuitos integrados). Linha escura: desempenho global. No ano 2000, o desempenho global é 7 vezes superior ao que se obteria apenas com o avanço tecnológico. Nos anos 90, o crescimento médio anual foi de 52%; depois, ficou reduzido a 20%. João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 9 / 22 Notas: 9.1. Os avanços arquitecturais são baseados numa abordagem quantitativa baseada em observações empíricas do comportamento dinâmico dos computadores, experiências e inúmeras simulações. Trata-se de uma abordagem que constituiu uma novidade radical quando começou a ser usada, em meados dos anos 80. O seu primeiro resultado foi o ressurgimento da arquitecturas RISC (Reduced Instruction Set Computer). 9.2. O artigo seguinte apresenta de maneira simples os resultados das primeiras aplicações da abordagem quantitativa sistemática: à D.A. Patterson e D. R. Ditzel, “The Case for the Reduced Instruction Set Computer”, ACM Sigarch Computer Architecture News, Vol. 8, No. 6, Outubro 1980. A história das arquitecturas RISC na IBM é descrita em: à J. Cocke e V. Markstein, “The evolution of RISC technology at IBM”, em IBM Journal of Research and Development, Vol. 34, No. 1, Janeiro de 1990. O primeiro microprocessador RISC da Universidade de Berkeley é descrito em: à D.A. Patterson e C.H. Sequin, “RISC I: A reduced instruction set VLSI computer”, em Proceedings 8th Annual Symposium on Computer Architecture, 1981. Todos os artigos podem ser acedidos a partir da rede da FEUP. 9 O mercado de computadores 1 Evolução dos computadores 2 O mercado de computadores 3 Arquitectura de computadores 4 Tecnologia de base João Canas Ferreira (FEUP/DEEC) Aspectos gerais Notas: 10 2007-09-12 10 / 22 O mercado de computadores Tendências de mercado Actualmente, o mercado de microprocessadores tem três grandes componentes claramente diferenciadas: Desktop computing Gama 500–5000 Euros. Optimizar a razão desempenho/custo. Servidores Substituem mainframes. Atributos: disponibilidade, escalabilidade, débito. Computadores “embutidos” Incluídos em outros produtos: fornos micro-ondas, telemóveis, etc. Atributos: preço, execução em tempo-real, memória, potência. Grande gama de preços. Grande gama de implementações: microcontroladores de 4 a 64 bits. Os processadores podem ser embutidos em CIs mais complexos. João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 11 / 22 Notas: 11.1. O número de componentes (microprocessadores ou microcontroladores) vendidos no mercado “embutido” (embedded) é, de longe, o maior de todos. Muitos componentes são extremamente baratos. 11.2. Um microcontrolador é um microprocessador optimizado para uso no controlo de equipamento electrónico. Inclui geralmente vários dispositivos de E/S e memória interna (muitas vezes não-volátil). 11.3. O mercado dos sistemas embedded também inclui núcleos de processadores usados nos interior de circuitos integrados do tipo SoC (System-on-Chip). Por exemplo, a companhia ARM (http://www.arm.com/products/CPUs/) dedica-se ao fornecimento deste tipo de circuitos, muito usados em circuitos integrados para telemóveis (e não só). 11.4. Em 2006, segundo o World Semiconductor Trade Statistics (http://www.wsts.org), foram vendidos 53939 milhões de dólares de microprocessadores e microcontroladores, o que representa cerca de 21,8% do mercado de semicondutores mundial (247 mil milhões de $). Para 2007 prevê-se um aumento de vendas de 2,3% e para 2008 um aumento de 10,2%. 11 O mercado de computadores Caracterização dos três sectores As principais características dos três sectores do mercado de microprocessadores são: Atributo Desktop Servidores Embutidos Preço sistema ($) Preço CPU ($) CPUs/ano [2000] 500 – 5000 50 – 500 15 × 107 5 × 103 – 5 × 106 200 – 10000 4 × 106 10 – 1 × 105 0,01 – 100 3 × 108 (*) Aspectos críticos custo/desempenho, desempenho gráfico débito, disponibilidade, escalabilidade preço, consumo de energia (*) Apenas inclui microprocessadores de 16 e 32 bits. à Os microcontroladores de 8 bits são os mais vendidos em número,embora não sejam os que dão mais lucro. Em 1997, por exemplo, foram vendidos mais de 2 mil milhões de microcontroladores de 8 bits. João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 12 / 22 Notas: 12.1. Os microcontroladores PIC10 de empresa Microchip (http://www.microchip.com) usam um conjunto de 33 instruções (ao estilo RISC) , cada uma das quais executa num ciclo de relógio (1 MHz), excepto as instruções de salto, que usam dois ciclos. O modelo PIC10F200 tem 6 pinos (incluindo alimentação) e custa $ 0.55 (em 2004). 12.2. Mercado de microcontroladores (segundo Databeans, julho 2007): Vendas (milhões $) Nº unidades (milhões) Custo médio ($) 2004 2005 2006 2007 (est.) 12449 6930 1,80 12082 7081 1,71 12446 8464 1,47 13716 10233 1,34 12 O mercado de computadores Prejuízos anuais por quebra de serviço O mercado dos servidores dá grande importância à disponibilidade, medida pela capacidade de manter os serviços activos. Perdas anuais (milhões $) com downtime de Aplicação Corretagem Autoriz. Cartões Crédito Envio de encomendas Home shopping Vendas por catálogo Reservas de avião Caixas automáticas Prejuízo por hora (milhares $) 6450 2600 150 113 90 89 14 1% 0,5% 0,1% 565 228,0 13,0 9,9 7,9 7,9 1,2 283,0 114 6,6 4,9 3,9 3,9 0,6 56,5 22,8 1,3 1,0 0,8 0,8 0,1 [Valores de 2000] à Em 2005, a empresa Amazon teve uma média de 1,35 milhões de dólares de encomendas por hora. João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 13 / 22 Notas: 13.1. Servidores também dão muita importância à facilidade em ampliar as váris partes do sistema: computação, memória, armazenamento e largura de banda. 13.2. Servidores são projectados para maximizar o débito, ou seja, o número de operações realizadas por unidade de tempo. O tempo de resposta não tem a mesma importância que nos outros mercados. 13 Arquitectura de computadores 1 Evolução dos computadores 2 O mercado de computadores 3 Arquitectura de computadores 4 Tecnologia de base João Canas Ferreira (FEUP/DEEC) Aspectos gerais Notas: 14 2007-09-12 14 / 22 Arquitectura de computadores Áreas da arquitectura de computadores De um modo geral, a arquitectura de computadores é actualmente dividida em três áreas: Arquitectura do conjunto de instruções (definição clássica de AC) Modelo do sistema conforme visto pelo programador: instruções, registos, modelo de E/S, interrupções. Organização: Aspectos de alto nível da implementação sistema de memória, incluindo memórias cache, barramentos, estrutura funcional do CPU. Implementação em hardware uma realização específica (Pentium II vs. Centrino), projecto lógico detalhado, tecnologia de empacotamento. João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 15 / 22 Notas: 15.1. Na maior parte das publicações anteriores a 1985/90, a expressão “arquitectura de computadores” refere-se apenas ao primeiro dos itens mencionados. Organização e implementação são muitas vezes consideradas separadamente. 15.2. A abordagem quantitativa à arquitectura de computadores veio salientar a importância dos dois últimos níveis, já que o que pode ser considerado um bom conjunto de instruções depende de aspectos organizativos e de implementação. Exemplo: como actualmente os acessos a memória são relativamente muito demorados, um conjunto de instruções que minimize os acessos a memória é mais favorável à obtenção de elevados desempenhos. 15 Arquitectura de computadores Requisitos funcionais Computadores são projectados para satisfazer requisitos funcionais, para além de objectivos de desempenho, custo e consumo de potência. Da perspectiva do cliente, é necessário determinar se os requisitos funcionais são relevantes para a utilização a fazer do computador e em que medida são atingidos. Exemplos (conjunto muito pequeno e pouco representantivo): Categoria Área:Desktop Compatibilidade Memória Protecção Normas: VF Requisitos típicos Desempenho equilibrado para tarefas variadas, desempenho interactivo, gráficos, vídeo, áudio. Compatibilidade de código objecto. Gestão de memória paginada/segmentada. Gestão de direitos de acesso. Implementação da norma IEEE 754. à Notar a grande variadade de requisitos. João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 16 / 22 Notas: 16.1. Determinar quais os requisitos funcionais relevantes não é uma tarefa trivial, porque é necessário equilibrar muitos interesses diferentes, desde aspectos tecnológicos até aspectos de “tradição” (i.e., o que é que os clientes esperam que o computador seja capaz de fazer). 16.2. O trabalho de determinação dos requisitos envolve também ter uma perspectiva global da evolução da área. O projecto de um computador (incluindo microprocessador) pode levar vários anos (2-5). Por isso, é necessário estabelecer os requisitos não para o presente, mas para a data da entrada em produção (e para os três anos seguintes). 16.3. Os requisitos funcionais dependem fortemente da área de aplicação. 16 Tecnologia de base 1 Evolução dos computadores 2 O mercado de computadores 3 Arquitectura de computadores 4 Tecnologia de base João Canas Ferreira (FEUP/DEEC) Aspectos gerais Notas: 17 2007-09-12 17 / 22 Tecnologia de base Tendências tecnológicas A evolução da tecnologia constitui o principal elemento do pano de fundo para a inovação e avaliação das arquitecturas de computadores. Circuitos integrados densidade de transístores: ↑ 35% ao ano (4× em 4 anos) dimensão da pastilha: ↑ 10%-20% ao ano resultado: nº de transístores ↑ 55% ao ano (2× em 18 meses) Memória DRAM densidade ↑ 40%–60% ao ano (4× em 3-4 anos) tempo de leitura ↓ 30% em 10 anos largura de banda ↑ 33% em 5 anos Discos magnéticos densidade ↑ 100% ao ano (4× em 2 anos); 30% actualmente tempo de acesso ↓ 33% em 10 anos Redes de comunicações Ethernet: 10 Mb → 100 Mb em 10 anos; 100 Mb → 1 Gb em 5 anos João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 18 / 22 Notas: 18.1. Os circuitos integrados são fabricados sobre discos finos de silício (designados por “bolachas” – wafers). Cada pastilha (chip) rectangular é cortada da bolacha e encapsulada. Todas as pastilhas de uma mesma bolacha são iguais. 18.2. Durante o processo de fabrico podem ocorrer defeitos que inutilizam as pastilhas. Basta um defeito para inutilizar uma pastilha. A percentagem de pastilhas (de uma bolacha) sem defeito designa-se por “rendimento” (die yield). 18.3. O custo dos circuitos integrados depende crucialmente do rendimento global do processo de fabrico. A complexidade do circuito implementado é praticamente irrelevante. 18.4. O rendimento de um processo de fabrico varia ao longo da sua existência, sendo muito baixo de início para processos sofisticados e bastante alto para processos maduros (> 95%). 18.5. Em 2007, os processos industriais mais avançados são de 45 nm. Isto quer dizer que a largura mínima de uma pista de interligação ou de um transístor é de 45 × 10−9 m. 18 Tecnologia de base Latência vs. débito à Regra prática: melhorias de débito aumentam com o quadrado das melhorias de latência. João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 19 / 22 Notas: 19.1. Débito (ou “largura de banda”) é uma medida do trabalho realizado por unidade de tempo. 19.2. Latência (ou tempo de resposta) é o intervalo de tempo entre o início e o fim de um evento (por exemplo, um acesso a disco). 19.3. D.A. Patterson, Latency lags bandwidth, Communications of the ACM, vol. 47, n. 10, Out. 2004. Disponível em http://doi.acm.org/10.1145/1022594.1022596 19 Tecnologia de base Consumo de energia O consumo de energia constitui uma limitação importante para os processadores actuais; pode ser mesmo mais importante que a área. A energia é dissipada sob a forma de calor. (Potência=Energia/Tempo) Factor dominante tradicional: potência dinâmica. Pdin = 1 × V 2 × F × carga capacitiva 2 No caso de dispositivos móveis, interessa mais a energia (a capacidade da bateria é dada em 1 A h = 3600 C). Edin = V 2 × carga capacitiva Actualmente: potência (estática) da corrente de fugas é importante. Pest = Iest × V Em 2006: tentar limitar Pest a menos de 25% da potência total, o que não é sempre conseguido. João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 20 / 22 Notas: 20.1. V: tensão de alimentação (em volt); F: frequncia de operação (em Hz). 20.2. Tensões de alimentação baixaram de 5 V para 1 V. 20.3. Os primeiros microprocessadores consumiam décimos de watt, o Pentium 4 Extreme Edition consome 135 W a 3.2 GHz. 20.4. Para uma tarefa fixa, baixar a frequência reduz a potência, mas não a energia. 20.5. A carga capacitiva depende das características da tecnologia de semicondutores e do número de transístores ligados à saída de cada porta lógica. 20.6. Limite: capacidade de dissipar a potência calorífica produzida. Esta capacidade depende da superfície da área através da qual se processa a dissipação. O projectista do CPU precisa de evitar “pontos quentes”. 20.7. Técnica de redução do consumo de energia (exemplo): desligar partes do CPU que não estão a ser usadas num dado instante (p.ex. unidade de VF). 20.8. Existe a necessidade de alimentar todo o circuito: os CPUs actuais (desktop) têm centenas de pinos de alimentação. 20.9. Em contrapartida, existem microcontroladores de muitíssimo baixo consumo. A família de microcontroladores Motorola MSP430 atinge 250 µA/MIPS (CPU de 16 bits). 20 Tecnologia de base Bolacha com circuitos integrados 117 circuitos AMD Opteron, processo de 90 nm João Canas Ferreira (FEUP/DEEC) Aspectos gerais 2007-09-12 21 / 22 Notas: 21.1. Cada bolacha (wafer) contém várias pastilhas (dies) idênticas. 21.2. O custo de um circuito integrado pode ser calculado com base na soma dos seguintes termos: • custo da pastilha; • custo de testar a pastilha; • custo de encapsulamento e teste final. Para determinar o custo de um circuito é preciso ainda dividir pelo rendimento do teste final. Por exemplo, se 5 circuitos em 100 falharem o teste final, é necessário dividir a soma obtida anteriormente por 0,95. 21.3. O custo de uma pastilha é dado por custo da pastilha = custo da bolacha nº de pastilhas × rendimento das pastilhas O “rendimento das pastilhas” (die yield) é a percentagem de pastilhas sem defeito. 21 Tecnologia de base Exemplo: Densidade de defeitos e dimensão da pastilha A figura mostra como a mesma densidade de defeitos afecta o rendimento de maneira diferente consoante a dimensão da pastilha. 4 pastilhas com defeito 8 pastilhas sem defeito rendimento: 66,6% 4 pastilhas com defeito 60 pastilhas sem defeito rendimento: 93,75% ` Y = 1+ Y: rendimento A: área da pastilha João Canas Ferreira (FEUP/DEEC) ´ D×A −α α D: defeitos por unidade de área α: parâmetro de calibração Aspectos gerais 2007-09-12 22 / 22 Notas: 22.1. O parâmetro α diminui com a complexidade do processo de fabrico. Um valor actual típico é α = 4. 22.2. A densidade de defeitos depende da maturidade do processo. Valores típicos: 0.4 ≤ D ≤ 0.8 (por cm2 ). 22.3. Para os maiores circuitos, A é da ordem das poucas dezenas de cm2 . 22.4. Supondo D = 0.6, α = 4 e A = 1 = 1 × 1, o rendimento é Y = 0.57. 22.5. Nas mesmas condições, obtém-se, para A = 0.49 = 0.7 × 0.7, um rendimento de Y = 0.75, o que constitui uma melhoria importante. 22.6. Actualmente as bolachas têm um diâmetro d de 300 mm. O número N de pastilhas de área A que cabem numa bolacha pode ser estimado pela fórmula $ % π × (d/2)2 π×d N= − √ A 2×A Para A = 70 × 70 mm2 e d = 300 mm, obtém-se N = 1397. 22.7. Para obter o rendimento global é ainda necessário multiplicar o resultado obtido por um termo que representa a percentagem de bolachas aproveitadas, porque bolachas com muitos defeitos nem sequer são submetidas ao processmento descrito anteriormente. 22