Módulo 01: Introdução
description
Transcript of Módulo 01: Introdução
ARQUITETURA DE COMPUTADORESDEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG
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.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)
MemóriaPrincipal
Unidade Lógica e Artimética
Unidade de Controlede Programa
Entrada/
Saída
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
Tecnologia(IC)
Linguagens de Programação
SistemasOperacionais História
AplicaçõesProjeto daInterface
Medidas e avaliação
Paralelismo
Arquitetura de Computadores:• Projeto do conjunto de instruções• Organização• Hardware
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
Arquitetura a nível de instrução
Pipelining, resolução de hazards,superscalar, reordenamento, predição, especulação
Endereçamento,Proteção,Tratamento de exceção
Cache L1
Cache L2
DRAM
Discos, WORM, Fitas
Coerência,Bandwidth,Latência
Tecnologia emergentesInterleavingProtocolos de barramento
RAID
VLSI
I/O e armazenamento
Hierarquiade memória
Pipelining and paralelismo a nível de instrução
Tópicos a serem estudados
M
rede de interconexãoS
PMPMPMP° ° °
Topologias,roteamento,bandwith,latência,reliability
Interfaces de redes
Memória compartilhada,Troca de mensagens,
switch entre processadore memória
Multiprocessadores,redes e interconexão
Tópicos avançadosEmbedded 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ç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)
Interconexão
Input/Output
Unidadesde processamento
Estado local
Arquitetura de Computadores
Desktop
Servidoras
Sistemas embutidos
Metodologia de projeto de arquiteturas de computadores
Avançostecnológicos
Metodologia de projeto de arquiteturas de computadores
Avaliação de sistemasAvaliação de sistemasexistentes em buscaexistentes em busca
de gargalosde gargalos
Benchmarks
Avançostecnológicos
Metodologia de projeto de arquiteturas de computadores
Simulação de novosSimulação de novosprojetos e organizaçõesprojetos e organizações
Workloads
Avançostecnológicos
Avaliação de sistemasAvaliação de sistemasexistentes em buscaexistentes em busca
de gargalosde gargalos
Benchmarks
Metodologia de projeto de arquiteturas de computadores
Complexidadedo sistema
Avaliação de sistemasAvaliação de sistemasexistentes em buscaexistentes em busca
de gargalosde gargalos
Avançostecnológicos
Implementação Implementação dada
próxima geraçãopróxima geração
Simulação de novosSimulação de novosprojetos e organizaçõesprojetos e organizações
Workloads
Benchmarks
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 Componente Armazen. Linguagens O/S54 Tubes core (8 ms)58 Transistor (10µs) Fortran60 Algol, Cobol Batch64 Hybrid (1µs) thin films Lisp, APL, Basic66 IC (100ns) (200ns) PL1, Simula,C67 Multiprog.71 LSI (10ns) 1k DRAM O.O. V.M.
73 (8-bit µP)75 (16-bit µP) 4k DRAM78 VLSI (10ns) 16k DRAM Redes80 64k DRAM84 (32-bit µP) 256k DRAM ADA87 ULSI 1M DRAM89 GAs 4M DRAM C++92 (64-bit µP) 16M DRAM 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ógicaPerspectiva da Intel
Ano Processador # Xtors1971 4004 23001972 8008 35001974 8080 60001978 8086/8088 290001982 80286 134K1985 80386 275K1989 80486 1.2M1993 Pentium 3.1M1995 Pentium Pro 5.5M1997 Pentium II 7.5M1999 Pentium III 9.5M2002 Pentium IV 55M
Evolução TecnológicaMoore 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 ...