1.27k likes | 1.56k Views
Arquitetura Avançada de Computadores. Prof. Felipe Ferreira de Oliveira ee.felipeoliveira@yahoo.com.br. PGD - EMENTA.
E N D
Arquitetura Avançada de Computadores • Prof. Felipe Ferreira de Oliveira • ee.felipeoliveira@yahoo.com.br
PGD - EMENTA • Introdução a arquitetura de Computadores; Pipelining; Paralelismo a nivel de instrução; Multiprocessadores; Paralelismo a nível de thread; Hierarquia de Memória; Sistemas de armazenamento; Tendências atuais; Hardware reconfigurável;
PGD - OBJETIVOS • Apresentar aos alunos conceitos avançados de arquitetura e organização de computadores de modo a aprofundar o conhecimento já estabelecido, principalmente nas tecnologias mais recentes.
PGD – CONTEÚDO PROGRAMÁTICO • Introdução a arquitetura de Computadores • Introdução • Tipos de Computadores • Tendências • Análises quantitativas • Pipelining • Introdução • Pipeline Hazards • Como o pipeline é implementado?
PGD – CONTEÚDO PROGRAMÁTICO • Paralelismo a nível de instrução • Conceitos • Técnicas de compilador • Redução de custos com predição • Agendamento dinâmico • Especulação baseada em Hardware • Limites de paralelismo a nivel de instrução • Introdução • Estudo das limitações • Especulação de hardware x software • Multithreading
PGD – CONTEÚDO PROGRAMÁTICO • Multiprocessadores e paralelismo a nível de threads • Introdução • Arquitetura de memória compartilhada • Memória compartilhada distribuída • Sincronização • Consistência de dados • Hierarquia de memória • Introdução • Otimização de memória cache • Proteção: Memória virtual e Máquinas virtuais
PGD – CONTEÚDO PROGRAMÁTICO • Sistemas de armazenamento • Introdução • Tópicos avançados em armazenamento em disco • Definições e exemplos de possíveis problemas • Estatísticas de perfomance de dispositivos de I/O • Tendências atuais e Hardware reconfiguráveis
PGD – Metodologia e Avaliações • Aulas Expositivas através de slides • Provas escritas • Trabalhos e Seminários
PGD - BIBLIOGRAFIA • Computer Architecture – a quatitative aproach. John L. Hennessy and David A. Patterson. 4ª ed. • Arquitetura e Organização de Computadores. William Stalling. 5ª ed. • Organização Estruturada de Computadores. Andrew S. Tanenbaum. 5ª ed. • Internet • Textos distribuídos pelo professor
Introdução • Aumentando-se a velocidade do clock, aumenta-se o desempenho do sistema • Einsten definiu o limite de velocidade (c=3x10^8 m/s). No fio de cobre o elétron viaja com velocidade igual a (2/3) * c • Velocidade do elétron em um fio de cobre é de aproximadamente 20 cm/ns
Introdução • Gargalo de von Neumann • A estrutura tradicional de um computador com uma única CPU que envia requisições sequenciais através de um barramento para uma memória que responde uma requisição por vez tornou-se conhecida como gargalo de von Neumann.
Introdução • Novas aplicações foram surgindo, exigindo cada vez mais desempenho dos sistemas de computadores. Como aumentar o desempenho, considerando que incremento via hardware já está saturado? • PARALELISMO !!!!!!
Introdução • Paralelismo • Processadores • Memória • Computadores • Instruções (pipeline) • Cache • ULAs
Introdução • Níveis de paralelismo • Paralelismo a nivel de instrução • Várias linhas de execução em um mesmo processador • Várias linhas de execução em diferentes processadores (dual, quad core) • Computadores paralelos interconectados com redes de alta velocidade • Cluster de Computadores • Computadores na internet
Conceitos • Granularidade • Alta granularidade: execução de grandes porções de software em paralelo com pouca ou nenhuma comunicação entre elas • Baixa granularidade: partes do computador trabalham juntas para resolver mesmo problema
Conceitos • Acoplamento • Fracamente acoplado: Sistemas com um número pequeno de CPUs grandes independentes que possuem conexões de baixa velocidade entre as CPUs • Fortemente acoplado: Componentes geralmente pequenos, muito próximos e frequentemente se interagem através de redes de comunicação de alta velocidade Geralmente um sistema fracamente acoplado (hardware) é de alta granularidade (software) e vice-versa
Conceitos • SISD (Single Instruction Single Data): Um único processador executa uma única sequencia de instruções, usando dados armazenados em uma única memória. Sistemas uniprocessadores. • SIMD (Single Instrucion Multiple Data): Uma única instrução de máquina controla a execução simultânea de um certo número de elementos de processamento em passo de execução. Cada instrução é executada sobre um conjunto de dados diferentes. Processadores matriciais e vetoriais.
Conceitos • MISD (Multiple Instruction Single Data): uma sequencia de dados é transmitida para um conjunto de processadores, cada um dos quais executa uma sequencia de instruções diferentes. Não existe. • MIMD (Multiple Instruction Multiple Data): um conjunto de processadores executa simultaneamente sequencias diferentes de instruções, sobre conjunto de dados distintos. Os SMPs, clusters e sistemas NUMA.
Fundamentos de Arquitetura de Computador • SUMÁRIO • Introdução • Tipos de computadores • Definindo uma arquitetura de computadores
Introdução • Incremento exponencial em desempenho de computadores • $500 hoje = $1.000.000 em 1985 • Primeiros 25 anos, crescimento de 25% ao ano • Anos 70, crescimento de 35% ao ano graças ao microprocessador / circuito integrado • Sucesso comercial dos computadores devido surgimento de linguagens de alto nível (até então era assembly) e introdução de sistemas operacionais independentes como o UNIX, diminuindo custo.
Introdução • O fato de UNIX ser independente do fabricante do hardware obrigou maior padronização por hardware. Propiciando o surgimento de máquinas RISC. Com isso foca-se em dois ítens críticos de desempenho. • Paralelismo a nível de instrução • Memórias cache
Introdução • Aumento significativo no desempenho dos computadores pessoais (52%) • Garantiu a supremacia dos microcomputadores baseados em um único processador (PCs). Minicomputadores foram substituidos por microcomputadores, Mainframes e até supercomputadores foram substituidos pela união de microcomputadores. • A arquitetura de computares, portanto precisa se adequar as novas tendências
Introdução • A partir de 2002, incremento foi de 20% ao ano devido: • Superaquecimento, necessidade de ventilação • Saturação do paralelismo a nivel de instrução • Saturação da velocidade da memória • Intel em 2004 anunciou que abandonou o projeto de novo processador mais veloz e passou a garantir maior perfomance através de múltiplos processadores por chip.
Introdução • Portanto, as novas arquiteturas deixaram de focar em paralelismo a nível de instrução (ILP) para focar em paralelismo a nível de thread (TLP) e paralelismo a nível de dados (DLP) • Atualmente o ILP é feito implicitamente, de modo transparente ao programador, diferentemente do TLP e DLP, onde o programador necessita explicitar.
Fundamentos de Arquitetura de Computador • SUMÁRIO • Introdução • Tipos de computadores • Definindo uma arquitetura de computadores
Tipos de Computadores • Nos anos 60, os mais populares eram mainframes enormes, custando milhões de dólares, armazenados em uma sala e administrado por operadores. Basicamente para dados de empresas financeiras e computação científica. • Nos anos 70 surge o minicomputador focado para aplicações científicas. Múltiplos usuários usavam-no através de terminais. Processamento compartilhado no tempo. Também surge os supercomputadores para aplicações científicas (mais raros, mas importantes).
Tipos de Computadores • Nos anos 80, surgiu o microcomputador servindo como computador pessoal e workstations. Começa a decair o uso de sistemas em tempo compartilhado que é substituído por servidores (maior estabilidade, maior poder de processamento, maior memória). • Nos anos 90 surge a internet e o worl wide web, os primeiros computadores pessoais de mão e consumidores de produtos eletrônicos de alto desempenho. A popularidade dos celulares permitiu o surgimento de computadores embarcados.
Tipos de Computadores • Estas alterações no uso do computador levaram a três diferentes mercados de computação, cada um caracterizado por diferentes aplicações, requisitos e tecnologias de computação. • No ano de 2005, venderam-se 3 bilhões de processadores embarcados, 200 milhões de desktops e 10 milhões de servidores.
Tipos de Computadores • Desktop • Servidores • Embarcados
Tipos de Computadores - DESKTOP • Ainda o mercado mais rentável da informática • O consumidor tende a “olhar” para o custo-benefício em termos de desempenho. • Os novos processadores de alto desempenho e baixo custo são lançados no modelo DESKTOP • A diversidade de programas tende a ser um paradigma na arquitetura. E o aumento de aplicações voltadas para a web tendem a se mudar os critérios de análise de desempenho.
Tipos de Computadores - SERVIDORES • Com a guinada para sistemas desktop, o papel de servidores cresceu para fornecer maior escalabilidade e mais confiabilidade aos arquivos e serviços de informática. • O WWW acelerou essa tendência • Tais servidores se tornaram a espinha dorsal da computação empresarial de grande escala, substituindo os tradicionais mainframes
Tipos de Computadores - SERVIDORES • CONFIABILIDADE !!!!!!!!
Tipos de Computadores - SERVIDORES • ESCALABILIDADE • Servidores, muitas vezes, precisam crescer em resposta uma demanda maior de seus serviços. Assim, a capacidade de escalabilidade de poder de processamento, de memória, armazenamento e de I/O é crucial
Tipos de Computadores - SERVIDORES • DESEMPENHO • Responder a um usuário é importante, mas mais importante é responder a diversos usuários simultaneamente de modo a manter boa qualidade. • Pode-se medir o desempenho através do número de requisições que consegue servir em um segundo.
Tipos de Computadores - SERVIDORES • Supercomputadores. Eles são os computadores mais caros, custando dezenas de milhões de dólares, e eles enfatizam desempenho de pontos flutuantes. • Clusters vêm crescendo imensamente. • O número de supercomputadores está diminuindo, assim como as empresas que o usam
Tipos de Computadores - EMBARCADOS • São os que crescem a taxas mais altas no mercado • Exemplos: geladeira, máquina de lavar, microondas, switches, carros, celulares, PDAs, video-games, DVD, TV, etc. • São processadores de 8 ou 16 bits que custam menos de $0,10, processadores de 32 bits que fazem 100 milhões de operações por segundo que custam menos de $5,00 e processadores de ponta que fazem 100 billhões de operações por segundo por $100
Tipos de Computadores - EMBARCADOS • A meta principal dos sistemas embarcados é o PREÇO MÍNIMO possível. O desempenho não é tão essencial. • Deve-se atentar para diversos sistemas onde o processamento deve ser em tempo real. O usuário não pode solicitar serviços que não possam ser fornecidos.
Tipos de Computadores - EMBARCADOS • MINIATURIZAÇÃO DE MEMÓRIA • Memória interna ao chip ou externa • EFICIÊNCIA ENERGÉTICA • Balanceamento • eficiência energética x tamanho de memória
Fundamentos de Arquitetura de Computador • SUMÁRIO • Introdução • Tipos de computadores • Definindo uma arquitetura de computadores
Definição da Arquitetura do Computador • A tarefa do designer de arquitetura de computador é complexo: determinar que atributos são importantes para um novo computador e projetá-lo de modo a maximizar desempenho considerando custos, poder e limitações de disponibilidade. • Precisa-se definir o conjunto de instruções, organização funcional, projeto lógico e implementação. Deve-se atentar ainda para design de circuito, invólucro, energia e refrigeração.
Definição da Arquitetura do Computador – Conjunto de Instruções • Instruction Set Architecture (ISA). ISA serve de fronteira entre hardware e software • Tipos de ISA: Alocados em registradores de uso geral e operandos em registradores ou memória externa. Acesso a memória através de load-store. Fig 1.4. • Endereçamento de memória: Todos os computadores, incluindo 80x86 e MIPS,usam endereçamento por byte. No MIPS necessita-se fornecer o alinhamento.
Definição da Arquitetura do Computador – Conjunto de Instruções