1 / 121

Arquitetura Avançada de Computadores

Arquitetura Avançada de Computadores. Prof. Felipe Ferreira de Oliveira ee.felipeoliveira@yahoo.com.br. PGD - EMENTA.

Télécharger la présentation

Arquitetura Avançada de Computadores

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arquitetura Avançada de Computadores • Prof. Felipe Ferreira de Oliveira • ee.felipeoliveira@yahoo.com.br

  2. 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;

  3. 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.

  4. 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?

  5. 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

  6. 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

  7. 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

  8. PGD – Metodologia e Avaliações • Aulas Expositivas através de slides • Provas escritas • Trabalhos e Seminários

  9. 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

  10. 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

  11. 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.

  12. 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 !!!!!!

  13. Introdução • Paralelismo • Processadores • Memória • Computadores • Instruções (pipeline) • Cache • ULAs

  14. 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

  15. 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

  16. 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

  17. 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.

  18. 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.

  19. Exemplos: Computador Vetorial

  20. Exemplos: Cluster

  21. Exemplos: Server Farmer

  22. TOP 100 SUPERCOMPUTADORES

  23. Conceitos

  24. Fundamentos de Arquitetura de Computador • SUMÁRIO • Introdução • Tipos de computadores • Definindo uma arquitetura de computadores

  25. 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.

  26. 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

  27. Introdução

  28. 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

  29. 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.

  30. 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.

  31. Fundamentos de Arquitetura de Computador • SUMÁRIO • Introdução • Tipos de computadores • Definindo uma arquitetura de computadores

  32. 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).

  33. 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.

  34. 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.

  35. Tipos de Computadores • Desktop • Servidores • Embarcados

  36. 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.

  37. 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

  38. Tipos de Computadores - SERVIDORES • CONFIABILIDADE !!!!!!!!

  39. 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

  40. 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.

  41. 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

  42. 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

  43. 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.

  44. 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

  45. Fundamentos de Arquitetura de Computador • SUMÁRIO • Introdução • Tipos de computadores • Definindo uma arquitetura de computadores

  46. 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.

  47. 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.

  48. Definição da Arquitetura do Computador – Conjunto de Instruções

More Related