Módulo 01: Introdução Claudionor N. Coelho Jr. ARQUITETURA DE COMPUTADORES DEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG Arquitetura vs. Organização Arquitetura: atributos do computador visíveis ao programador Conjunto de instruções, número de bits utilizados para representação de dados, mecanismos de E/S, técnicas de endereçamento. e.g. Existe uma instrução de multiplicação? Organização: como atributos são implementados Sinais de controle, interfaces, tecnologia de memória. e.g., a instrução de multiplicação é implementada por um hardware dedicado ou por repetição de soma? Arquitetura vs. Organização Arquitetura básica do x86 da Intel compartilha mesma arquitetura básica Família IBM 370 compartilha mesma arquitetura básica Migração dos Mac’s de 680x0 para Power PC teve fase de transição de emulação de código 680x0 em hardware e software Arquitetura única provê compatibilidade de código Organização difere em cada implementação Máquina de von Neumann (1945) Unidade Lógica e Artimética Entrada / Saída Memória Principal Unidade de Controle de Programa Máquina de von Neumann (1945) Componentes especializados para executar operações aritméticas (A) Execução das operações na sequência apropriada por de um componente de controle central (C) Qualquer dispositivo destinado a execução de longas e complicadas sequências de operações deve ter uma memória considerável (M) O dispositivo deve possuir elementos para transferir informações de A para seus componentes específicos C eM O dispositivo deve possuir elementos para transferir de seus elementos específicos C e M para A O que é este curso? Entender as técnicas de projeto, arquitetura das máquinas correntes, fatores da tecnologia, métodos de avaliação que vão determinar a estrutura da próxima geração de computadores Tecnologia (IC) Aplicações Paralelismo Linguagens de Programação Arquitetura de Computadores: • Projeto do conjunto de instruções • Organização • Hardware Sistemas Operacionais Projeto da Interface História Medidas e avaliação Exemplo Material do curso Livro texto e papers Listas de exercícios Implementação de RTL a implementação lógica do uRISC Especificação a nível de RTL de um processador moderno Projeto de final de curso, envolvendo um tópico avançado Referência e Programação Hennessy and Patterson, Computer Architecture: A Quantitative Approach, 3rd Ed., Morgan Kaufman, 2003. Introdução à arquitetura de computadores (Capítulo 1) Conjunto de instruções (Capítulo 2) Pipelining e paralelismo de instruções (Apêndice A e Capítulo 3, 4) Hierarquia do sistema de memória (Capítulo 5) Multiprocessadores (Capítulo 6) Entrada/Saída (Capítulo 7) Tecnologia de interconexão e redes (Capítulo 8) Arquiteturas de processadores (Power PC, ARM, i64, Pentium, Sparc, MIPS, VAX, IBM 360/370, processadores vetoriais) Aritmética de computadores (Apêndice H) Tópicos avançados Livros de referência complementar Patterson and Hennessy, Computer Organization and Design: the Hardware/Software Interface, 2nd edition, Morgan Kaufmann, 1998. Flynn, Michael, Computer Architecture: Pipelined and Parallel Processor Design, Jones and Bartlett, 1995. Stallings, William, Arquitetura e Organização de Computadores, 5a. edição, 2002. Tópicos a serem estudados I/O e armazenamento Discos, WORM, Fitas DRAM Hierarquia de memória Cache L2 Cache L1 VLSI Arquitetura a nível de instrução RAID Tecnologia emergentes Interleaving Protocolos de barramento Coerência, Bandwidth, Latência Endereçamento, Proteção, Tratamento de exceção Pipelining, resolução de hazards, Pipelining and paralelismo superscalar, reordenamento, a nível de instrução predição, especulação Tópicos a serem estudados P M P M S °°° P M P M rede de interconexão switch entre processador e memória Multiprocessadores, redes e interconexão Memória compartilhada, Troca de mensagens, Interfaces de redes Topologias, roteamento, bandwith, latência, reliability Tópicos avançados Embedded Systems / Mobile Systems Computadores vs. comunicadores inteligentes Alta performance vs. baixa potência I/O de tempo real Dispositivos portáteis de armazenamento (PCMCIA) Baterias inteligentes Técnicas de SW e HW para conservação de energia Tópicos avançados Arquiteturas Reconfiguráveis Permitem customizar processador para aplicações dedicadas para maximizar performance Possível com uso de dispositivos reconfiguráveis (FPGAs) exemplos: processador de imagens, decodificador de mpeg, dma’s reconfiguráveis, ASIPs (Application Specific Instruction Processors) Unidades de processamento Estado local Interconexão Input/Output Arquitetura de Computadores Desktop Servidoras Sistemas embutidos Metodologia de projeto de arquiteturas de computadores Avanços tecnológicos Metodologia de projeto de arquiteturas de computadores Avaliação de sistemas existentes em busca de gargalos Benchmarks Avanços tecnológicos Metodologia de projeto de arquiteturas de computadores Avaliação de sistemas existentes em busca de gargalos Benchmarks Avanços tecnológicos Workloads Simulação de novos projetos e organizações Metodologia de projeto de arquiteturas de computadores Avaliação de sistemas existentes em busca Complexidade de gargalos do sistema Benchmarks Implementação Avanços da tecnológicos próxima geração Workloads Simulação de novos projetos e organizações Metodologia de projeto de arquiteturas de computadores (Idéia básica) Regra número 1: Nada vem de graça Regra número 2: Uma nova arquitetura ou uma nova idéia só é implementada após um estudo da sua viabilidade Regra número 3: Nem sempre o melhor e o mais bem desenvolvido vai ganhar o mercado Microsoft Windows vs. Mac OS + OS2 68000 vs. x86 Qualquer implementação nova tenta diminuir sua dependência com a sorte o máximo o possível (isso é um esforço multi-disciplinar) Evolução Tecnológica Gerações Evoluções Paralelismo Ano 54 58 60 64 66 67 71 Componente Armazen. Tubes core (8 ms) Transistor (10µs) 73 75 78 80 84 87 89 92 (8-bit µP) (16-bit µP) VLSI (10ns) Hybrid (1µs) IC (100ns) LSI (10ns) (32-bit µP) ULSI GAs (64-bit µP) thin films (200ns) 1k DRAM 4k DRAM 16k DRAM 64k DRAM 256k DRAM 1M DRAM 4M DRAM 16M DRAM Linguagens Algol, Cobol Lisp, APL, Basic PL1, Simula,C O.O. O/S Fortran Batch Multiprog. V.M. Redes ADA C++ Fortran90 Hoje Processadores com via de dados de 128 bits Espaço de endereçamento: <16 Gbytes Redes de 1Gigabit wired / 55 Mbps wireless Sistemas Operacionais: UNIX, PalmOS, Windows Linguagens de programação: C++, Java Evolução Tecnológica Perspectiva da Intel Ano Processador # Xtors 1971 4004 2300 1972 8008 3500 1974 8080 6000 1978 8086/8088 29000 1982 80286 134K 1985 80386 275K 1989 80486 1.2M 1993 Pentium 3.1M 1995 Pentium Pro 5.5M 1997 Pentium II 7.5M 1999 Pentium III 9.5M 2002 Pentium IV 55M Evolução Tecnológica Moore Law Projeto de Novas Arquiteturas Área de aplicação Propósito específico (e.g., DSP) / propósito genérico Científico (intenso em FP) / Comercial (Mainframe) Computação embutida Nível de compatibilidade de Software Compatibilidade de código objeto/binário (custo HW vs. SW, x86) Linguagem de máquina (modificações no código objeto/binário são possíveis no projeto da arquitetura) Linguagens de programação (por que não?) Projeto de Novas Arquiteturas Requisitos do sistema operacional Tamanho do espaço de endereçamento (Address Space) Gerenciamento de memória e proteção Trocas de contexto Interrupções e Traps Padrões: inovação vs. competição Ponto flutuante (IEEE 754) Barramentos de I/O (PCI, SCSI, PCMCIA) Sistemas operacionais (UNIX, PalmOS, Windows) Redes (Ethernet, Infiniband) Sistemas operacionais / Linguagens de programação ...