Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG 1o. Semestre / 2005 Fundamentos Roteiro Fundamentos Princípios de funcionamento de computadores Perspectiva histórica Tendências tecnológicas Panorama das tecnologias atuais Princípios de projeto de computadores Análise do desempenho de computadores Princípios do funcionamento de computadores Estrutura e função de um sistema de computação Estrutura: quais os componentes e como eles estão relacionados Função: operação de componentes individuais como parte da estrutura Função Processamento de dados Armazenamento de dados Movimentação de dados Controle Visão funcional Movimentação de dados Armazenamento Processamento / Armazenamento Processamento/ Armazenamento / E/S Estrutura – visão de alto nível Peripherals Computer Central Processing Unit Computer Systems Interconnection Input Output Communication lines Main Memory Estrutura – CPU CPU Computer Arithmetic and Login Unit Registers I/O System Bus Memory CPU Internal CPU Interconnection Control Unit Estrutura – Unidade de Controle Control Unit CPU Sequencing Login AL U Internal Bus Registers Control Unit Control Unit Registers and Decoders Control Memory Perspectiva Histórica Gerações de Computadores Geração Zero (1642-1945): computadores mecânicos e eletromecânicos Pascal, Babage, Zuse, Atanasoff, Stibbitz, Aiken Primeira Geração (1945-1955): eletrônica baseada em válvulas Colossus, ENIAC, EDVAC, IAS, EDSAC, IBM 70x Turing, Mauchly & Eckert, Wilkes, von Neuman memórias de ferrite (núcleo magnético) design típico: máquina de von Neuman programa armazenado na memória junto com os dados ENIAC decimal (não binary) 20 acumuladores de 10 dígitos programado manualmente por chaves 18.000 válvulas peso: 30 toneladas ocupava uma área de aprox. 1200m2 consumo de energia: 140 kW desempenho: 5000 adições por segundo A arquitetura de von Neumann • Programa armazenado juntamente com os dados Exemplo concreto: IAS 1000 palavras de 40 bits Representação binária para os dados 2 instruções de 20 bits por palavra Conjunto de registradores (armaz. na CPU) Memory Buffer Register Memory Address Register Instruction Register Instruction Buffer Register Program Counter Accumulator Multiplier Quotient IAS (Princeton, 1952) Estrutura do IAS A segunda geração (1955-65) transistor mainframes: IBM 7090, 7094, Burroughs B5000 minicomputadores: DEC PDP-1, PDP-8 primeiro supercomputador: CDC 6600 – paralelismo Seymour Cray design típico: arquiteturas de barramento Arquiteturas com barramento compartilhado Terceira Geração (1965-80): circuitos integrados famílias de computadores com uma arquitetura comum (em nível ISA) e ≠s implementações IBM System/360 compatibilidade entre máquinas diferentes multiprogramação emulação de outras máquinas através de microprogramas distintos para cada arquitetura DEC PDP-11 Quarta (...) Geração (1980-????) VLSI (Very Large Scale Integration) primeiro microchip: Intel 4004 (1971) – LSI sucessores Intel: 8080, 8086, 8088, 80x86, Pentiums não-Intel: Z80, Z8000, 68000, SPARC, PowerPC,... micro-computadores: Apple II, IBM PC, ... estações de trabalho: Sun, DEC Alpha, ... evolução em supercomputadores, paralelismo interconexão em redes, clusters, grid, … dispositivos computacionais embarcados, etc., etc.... Em resumo: Vacuum tube - 1946-1957 Transistor - 1958-1964 Small scale integration - 1965 on Up to 100 devices on a chip Medium scale integration - to 1971 100-3,000 devices on a chip Large scale integration - 1971-1977 3,000 - 100,000 devices on a chip Very large scale integration - 1978 to date 100,000 - 100,000,000 devices on a chip Ultra large scale integration Over 100,000,000 devices on a chip Espectro da computação Tendências Tecnológicas Influências Tecnologia Linguagens de Programação Aplicações Computer Architecture Sistemas Operacionais História Lei de Moore Aumento da densidade de componentes em chips Gordon Moore – co-fundador da Intel O número de transistores em um chip dobra a cada ano Desde os anos 1970 houve uma desaceleração O número de transistores dobra a cada 18 meses O custo de um chip permanece inalterado Densidade mais alta representa circuitos de interconexao mais curtos: melhor desempenho Tamanho menor: maior flexibilidade Menor consumo e necessidade de resfriamento Menos interconexoes: aumenta a confiabilidade Contagem de transistores em CPUs Contagem de transistores Fonte: Intel Corp. A Lei de Moore na Intel Processador Ano Núm. de Transistores ---------------------------------------------------------------------------------------------4004 1971 2,250 8008 1972 2,500 8080 1974 5,000 8086 1978 29,000 286 1982 120,000 Intel386 processor 1985 275,000 Intel486 processor 1989 1,180,000 Intel® Pentium® processor 1993 3,100,000 Intel® Pentium® II processor 1997 7,500,000 Intel® Pentium® III processor 1999 24,000,000 Intel® Pentium® 4 processor 2000 42,000,000 Intel® Itanium® processor 2002 220,000,000 Intel® Itanium® 2 processor 2003 410,000,000 Contagem de transistores Atualmente: Tecnologia de 65nm: 0,5 bilhão de transistores em um chip Fonte: Intel Mais informações e demo sobre a lei de Moore (Intel): http://www.intel.com/technology/silicon/mooreslaw/index.htm Outros fatores que afetam o desempenho: novas técnicas Pipelining Cache dentro do processador Caches de nível 1 e 2 Previsão de desvios Análise de fluxo de dados Execução especulativa Desempenho: Processador X Memória Grande aumento da velocidade dos processadores Grande aumento na capacidade de armazenamento das memórias Mas: A velocidade de acesso à memória não acompanhou o desenvolvimento da tecnologia de processadores Características de DRAMs e Processadores Soluções Aumentar o numero de bits lidos/escritos de uma vez i.e., aumentar “largura” da memória Melhorar a interface com a memória: caches Reduzir a freqüência dos acessos caches mais complexas, dentro do chip da CPU Aumentar a largura de banda da interconexão Barramentos de alta velocidade e hierárquicos Tendências: Aumento relativo de desempenho Log of Performance Supercomputers Mainframes Minicomputers Microprocessors Year 1970 1975 1980 1985 1990 1995 Melhorias de Desempenho: Freqüência (clock) X Arquitetura Fonte: Intel Explorando o paralelismo em um chip Fonte: Intel Exemplo: Evolução do Pentium 8080 primeiro microprocessador de propósito geral via de dados (barramento interno) de 8 bits Usado no primeiro computador pessoal – Altair 8086 bem mais poderoso 16 bits cache de instruções, pré-busca de algumas instruções 8088: (barramento externo de 8 bits) usado no primeiro IBM PC 80286 16 Mbytes de memória endereçável 80386 32 bits Suporte para multi-tarefa Exemplo: Evolução do Pentium 80486 esquema de caches sofisticado pipeline de instruções co-processador matemático embutido no chip Pentium super-escalar múltiplas instruções executadas em paralelo Pentium Pro organização super-escalar aprimorada técnica agressiva de renomeação de registradores (…) previsão de desvios, análise de fluxo de dados, execução especulativa Exemplo: Evolução do Pentium Pentium II tecnologia MMX (MultiMedia eXtensions) processamento gráfico e de áudio & vídeo Pentium III instruções de ponto flutuante adicionais para gráficos 3D Pentium 4 mais melhorias de ponto flutuante e multimídia mais paralelismo (2005: “dual core” - dois procs. em um) Itanium 64 bits (IA-64) Exercício: Veja as páginas Web da Intel para mais detalhes http://www.intel.com/intel/intelis/museum/online/hist_micro/hof/index.htm Panorama das Tecnologias Atuais de Processadores Pentium 4 Clock: 2 a 3,8GHz Tecnologia de integração: 0,90µm (2Q05: 65nm) Barramento do sistema: até 1066MHz (real: 266MHz) Hyper-pipelining & Hyper-Threading Unidade de ponto flutuante de 128bits Cache nível 2 de até 2MB, integrada SIMD2 (1 fluxo de instruções, vários fluxos de dados) P4 Extreme Edition (3,8 GHz) otimizado para jogos, aplicações gráficas e multimídia de alto desempenho 2005: Extensão de 64bits para acesso a memória Celeron D Clock: 2,26MHz a 3,06GHz Barramento do sistema: 533MHz Cache nível 2: 256KB SIMD, execução especulativa, análise de fluxo de dados Barramento interno dual (via da cache separada da via principal de dados) Segmento de baixo custo Pentium M® Clock: 1,5MHz a 2,13GHz Projetado para vários níveis de operação em baixo consumo de energia (com taxas de clock reduzidas) – SpeedStep Até 2MB de cache de nível 2, integrada no chip Barramento do sistema: 533MHz Tamanho reduzido Otimizado para computação móvel Tecnologia Centrino: Pentium M + Chipset 855/915 + suporte wireless (802.11b/g) Itanium2 Arquitetura de 64bits (IA-64) Voltado para o mercado de servidores Clock: 1,0 a 1,6GHz Caches integradas no chip L1: 32KB L2: 256KB L3: até 9MB Paralelismo interno explícito (EPIC) Barramento do sistema: até 533MHz, 128bits Xeon MP Também voltado para o mercado de servidores Clock: 1,4 a 3,6GHz Arquitetura NetBurst (mesma do P4) SIMD2, Hyper Threading 3 níveis de caches integradas L2: até 2MB; L3: até 4MB Barramento dual de memória Barramento do sistema: até 800MHz AMD UltraSPARC IV Sun Microsystems Multi-threading com 2 pipelines UltraSPARC III no mesmo chip Super-escalar 64 bits 66M transitores Clock: 1,05 a 1,2GHz Caches nível 1: uma por pipeline (64KB dados, 32KB instruções nível 2: 16MB externa ao chip PowerPC (IBM) DSPs – Digital Signal Processors Conversão entre sinais analógicos em sinais digitais Processamento dos sinais em tempo real Algumas aplicações: sensores em automóveis, eletrodomésticos, ferramentas, etc. processamento de voz em telefones celulares video e imagem (câmeras digitais) aviônica biométrica Requisitos e arquiteturas diferentes dos processadores de propósito geral Mais Informações: Texas Instruments http://dspvillage.ti.com/ http://www.go-dsp.com/fet/essentialguide-fet.html DSPs – Digital Signal Processors Fonte: Texas Instruments Leitura Recomendada STALLINGS, W. Arquitetura e Organização de Computadores, Tradução da 5ª Edição, PrenticeHall, 2002. Cap. 1 e 2 PATTERSON, D.A.; HENNESSY, J.L. Projeto e Organização de Computadores: A Interface Hardware / Software, Tradução da 2a Edição, LTC, 2000. Cap. 1 TANENBAUM, A.S. Organização Estruturada de Computadores, Tradução da 4a Edição, LTC, 2001. Cap. 2 Recursos na Internet Intel: http://www.intel.com/ Intel Museum: http://www.intel.com/intel/intelis/museum/index.htm IBM: http://www.ibm.com PowerPC http://www-03.ibm.com/chips/products/powerpc/ The History of Computing Project http://www.thocp.net/index.htm