260 likes | 364 Views
Módulo 01: Introdução. Claudionor N. Coelho Jr. 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 N D
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 e M • 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 Paralelismo Tecnologia (IC) Linguagens de Programação Aplicações Projeto da Interface Arquitetura de Computadores: • Projeto do conjunto de instruções • Organização • Hardware Sistemas Operacionais História Medidas e avaliação
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 RAID Tecnologia emergentes Interleaving Protocolos de barramento DRAM Coerência, Bandwidth, Latência Hierarquia de memória Cache L2 Cache L1 Endereçamento, Proteção, Tratamento de exceção VLSI Arquitetura a nível de instrução Pipelining and paralelismo a nível de instrução Pipelining, resolução de hazards, superscalar, reordenamento, predição, especulação
Tópicos a serem estudados Memória compartilhada, Troca de mensagens, P M P M P M P M ° ° ° Interfaces de redes S rede de interconexão switch entre processador e memória Topologias, roteamento, bandwith, latência, reliability Multiprocessadores, redes e interconexão
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çadosEmbedded Systems / Mobile Systems
Interconexão Tópicos avançadosArquiteturas 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 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 de gargalos Complexidade do sistema Benchmarks Implementação da próxima geração Avanços tecnológicos 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 Ano Componente Armazen. Linguagens O/S 54 Tubes core (8 ms) 58 Transistor (10µs) Fortran 60 Algol, Cobol Batch 64 Hybrid (1µs) thin films Lisp, APL, Basic 66 IC (100ns) (200ns) PL1, Simula,C 67 Multiprog. 71 LSI (10ns) 1k DRAM O.O. V.M. 73 (8-bit µP) 75 (16-bit µP) 4k DRAM 78 VLSI (10ns) 16k DRAM Redes 80 64k DRAM 84 (32-bit µP) 256k DRAM ADA 87 ULSI 1M DRAM 89 GAs 4M DRAM C++ 92 (64-bit µP) 16M DRAM Fortran90 Gerações Evoluções Paralelismo
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
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 ...