Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Evolução e desempenho do Computador Dennis Sávio Martins da Silva dennissavio@hotmail.com UFPI – 2012 Evolução e desempenho do computador A evolução do computador tem sido caracterizada por: Aumento na velocidade do processador Diminuição no tamanho dos componentes Aumento no tamanho da memória Aumento na capacidade e velocidade da E/S Evolução e desempenho do computador Um fator responsável pelo grande aumento na velocidade do processador é o encolhimento no tamanho dos componentes do microprocessador. Redução na distancia entre os componentes implica aumento na velocidade Contudo, os verdadeiros ganhos na velocidade vem de melhorias na organização do processador Técnicas de Pipeline e de execução paralela Técnicas de execução especulativas Utilizadas para manter o processador ocupado a maior parte do tempo Evolução e desempenho do computador Deve-se equilibrar o desempenho dos diversos elementos de modo que os ganhos no desempenho de uma área não sejam prejudicados por atraso em outras área Ex: A velocidade do processador aumentou em proporção maior que a velocidade de acesso à memória Um breve histórico dos computadores Primeira Geração: Válvulas Um breve histórico dos computadores Primeira Geração: Válvulas ENIAC (Electronic Numerical Integrator And Computer) Primeiro computador digital eletrônico de uso geral do mundo Elaborado para fornecer tabelas de faixa e trajetória para as novas armas Terminado tarde demais para a tarefa, mas aproveitado nos calculos que determinaram a viabilidade da Bomba de Hidrogênio Aritmética decimal, ao invés de binária Programação manual, por meio de chaves e cabos Um breve histórico dos computadores A máquina de Von Neumann Visava facilitar a programação, tarefa enfadonha no ENIAC, com o conceito de programa armazenado Estrutura básica do computador IAS, projetado por Neumann: Memória principal, para armazenar dados e instruções Unidade Lógica e Aritmética (ALU), capaz de operar sobre dados binários Uma unidade de controle (UC), que interpreta as instruções na memória e faz com que sejam executadas Equipamento de E/S operado pela UC Máquina de Von Neumann Memória Principal Unidade Lógica e Aritmética Unidade de Controle Equipamento de E/S Unidade Central de Processamento (CPU) Um breve histórico dos computadores Proposta de Von Neumann para o IAS Unidades especializadas para operações mais elementares e frequentes (adição, subtração, multiplicação e divisão) Controle lógico do dispositivo realizado por um órgão de controle central Memória considerável para dispositivos que executem sequências de operações longas e complicadas (especialmente de cálculos) Dispositivo precisa possuir unidades para transferir informações de entrada para a unidade de controle e a memória (input) Dispositivo precisa possuir unidades para transferir informações da unidade de controle e a memória para a saída (output) Um breve histórico dos computadores Univac (Universal Automatic Computer) – Primeira máquina de sucesso comercial IBM 701 – primeiro computador de programa armazenado (cartões perfurados) Um breve histórico dos computadores Segunda Geração: Transistores e sistemas batch Um breve histórico dos computadores Segunda Geração: Transistores Transistores são menores, mais baratos e dissipam menos calor que as válvulas. Introdução de unidades lógicas e aritméticas e unidades de controle mais complexas. Programação de alto nível Disponibilidade do software de sistema com o computador Uso de canais de dados de processamento independente, poupando o processador de instruções de E/S Cada nova geração se caracteriza por maior desempenho de processamento, maior capacidade de memória e tamanho menor que a anterior Sistemas Batch (processamento em lotes) Possibilitaram um melhor uso dos recursos computacionais. Havia um programa monitor, usado para "enfileirar" as tarefas, geralmente executado em um computador mais barato e com menor capacidade para cálculo Cada programa era escrito em cartões ou fita de papel perfurados, que eram carregados por um operador, juntamente com seu compilador. O operador em geral utilizava uma linguagem de controle chamada JCL (job control language). Melhor aproveitamento do tempo de processamento Um breve histórico dos computadores Terceira geração: Circuitos Integrados Avanços na Microeletrônica Barateamento na produção dos componentes. Anteriormente baseados em componentes discretos (transistores, resistores, capacitores, etc.) Passaram a ser baseados em circuitos integrados (chips) Um breve histórico dos computadores Circuitos Integrados Circuitos inteiros fabricados em um único pedaço de silício, contendo uma enorme quantidade de transistores Lei de Moore – Em 1956 previu que a quantidade de transistores por chip dobraria a cada ano (previsão atualizada na década de 1970 para a cada 18 meses, onde se manteve) Um breve histórico dos computadores Consequências da lei de Moore O custo de um chip permanece praticamente inalterado, mesmo com o crescimento em densidade (diminuição do custo da lógica do computador e do circuito de memória) Elementos mais condensados implicam em redução da extensão do caminho elétrico, aumentando a velocidade Diminuição no tamanho do computador Redução nos requisitos de potência e resfriamento As interconexões nos CIs são mais confiáveis que as soldas convencionais. Com mais circuitos por chip, diminuem as conexões entre chips Sistemas Multitarefa (Multithread) Várias tarefas (processos) podem ser executadas aparentemente de forma simultânea. A ilusão de simultaneidade deve-se à rápida alternância entre as tarefas no processador Melhor aproveitamento no tempo ocioso da CPU Um breve histórico dos computadores Gerações Posteriores Baseadas nas evoluções nas tecnologias dos circuitos integrados LSI (Large-scale Integration) VLSI (Very-large-scale Integration) ULSI (Ultra-large-scale Integration) Memórias semicondutoras Microprocessadores Gerações de Computador Geração Datas Aproximadas Tecnologia Velocidadetípica (operações por segundo) 1 1946 – 1957 Válvula 40.000 2 1958 – 1964 Transistor 200.000 3 1965 – 1971 Integração em escalapequena e Média 1.000.000 4 1972 – 1977 Integração em GrandeEscala 10.000.000 5 1978 – 1991 Integração em EscalaMuito Grande 100.000.000 6 1991 - Integraçãoem EscalaUltragrande 1.000.000.000 Projeto visando desempenho Revolução tecnológica Poder computacional infinitamente mais barato que anos atrás Aplicações desktop hoje permitem Processamento de imagens Reconhecimento de voz Videoconferência Criação de multimídia Anotação de arquivos de voz e vídeo Modelagem de simulação etc Projeto visando desempenho Os blocos básicos de construção da estrutura de computação continuam os mesmos. O que se sofistica com o tempo são as tecnologias e as técnicas para aproveitamento máximo do desempenho. Projeto visando desempenho Velocidade do Microprocessador Melhoria não apenas na capacidade dos chips, mas também no aproveitamento de seu tempo de processamento. Técnicas utilizadas: Previsão de desvio Análise de fluxo de dados Execução especulativa Projeto visando desempenho Previsão de desvio O processador antecipa o código de instrução apanhado da memória e prevê quais desvios, ou grupos de instruções, provavelmente serão processados em seguida. Se o processador acertar na maior parte do tempo, ele poderá buscar antecipadamente as instruções corretas e mantê-las em buffer, de modo que o processador continue ocupado Em casos mais sofisticados, o processador não prevê apenas o próximo desvio, mas múltiplos desvios adiante. Aumento da quantidade de trabalho disponível para o processador executar. Projeto visando desempenho Balanço do desempenho Embora a potência do processador tenha aumentado bastante, outros componentes do computador não a acompanharam. É necessário procurar o equilíbrio do desempenho. Os projetistas devem equilibrar as demandas de vazão e processamento dos componentes do processador, memória principal, dispositivos de E/S e estruturas de interconexão. Projeto visando desempenho Esse projeto precisa ser constantemente repensado para lidar com dois fatores em constante evolução: A taxa de evolução de desempenho nas diversas áreas da tecnologia (processador, barramentos, memória, periféricos) difere bastante de um elemento para outro. Novas aplicações e novos dispositivos periféricos constantemente mudam a natureza da demanda sobre o sistema em termos do perfil de instrução típico e dos padrões de acesso aos dados Projeto visando desempenho Exemplos: Processador X memória principal Aumento na largura (número de bits que são recuperados ao mesmo tempo) da DRAM Aumento na eficiência interna da DRAM (via cache* ou algum esquema de buffering) Melhoria nas estruturas de cache entre o processador e as memórias Aumentar a largura de banda de interconexão entre o processador e a memória. Dispositivos de E/S Projeto visando desempenho Melhorias na organização e arquitetura do processador Aumento na velocidade do hardware do processador (encolher e condensar as portas lógicas) Incremento das caches entre o processador e a MP, particularmente dedicando cuidado à cache interna ao processador Técnicas de paralelismo Projeto visando desempenho Obstáculos ao ganho de desempenho: Potência: à medida que a densidade da lógica e a velocidade do clock de um chip aumentam, aumenta também a densidade da potência, gerando dificuldade para dissipar o calor Atrasos de RC (resistência e capacitância) – limitações físicas dos condutores internos ao processador, que aumentam conforme os fios diminuem, bem como a capacitância (capacidade de reter energia) dos transistores aumenta, dificultando mudanças de estado e limitando a frequência do processador Latência da memória Projeto visando desempenho Estratégias para melhoria de desempenho Aumento na capacidade da cache, com inclusão de novos níveis. Melhoria na lógica interna de execução de instruções pelo processador Pipeline Superscalar Inclusão de múltiplos processadores em um único chip (multicore) Evolução da arquitetura Intel x86 Intel 8080 – (1974) Primeiro microprocessador de uso geral Caminho de dados de 8 bits Usado no Altair (primeiro computador pessoal Evolução da arquitetura Intel x86 8086 – (1978) Usava 16 bits Tinha cache de instruções Marcou o aparecimento da arquitetura x86 Evolução da arquitetura Intel x86 80286 (1982) Aumento da capacidade da memória para 16 Mb Evolução da arquitetura Intel x86 80386 (1986) Primeiro produto 32 bits da Intel Permitia multitarefa Evolução da arquitetura Intel x86 80486 (ou i486) (1989) Cache e Pipeline mais sofisticados Coprocessador matemático embutido Evolução da arquitetura Intel x86 Pentium (1993) Técnicas superescalares (paralelismo) Evolução da arquitetura Intel x86 Pentium II (1997) Tecnologia MMX (voltada para processamento de dados de vídeo) Evolução da arquitetura Intel x86 Pentium III (1997) Instruções adicionais de ponto flutuante para dar suporte aos gráficos 3D Evolução da arquitetura Intel x86 Pentium 4 (2000) Instruções adicionais de ponto flutuante para dar suporte aos gráficos 3D Evolução da arquitetura Intel x86 Dual Core (2006) Dois processadores em um único chip Evolução da arquitetura Intel x86 Core 2 (2006) Estende a arquitetura para 64 bits O Core 2 Quad oferece 4 processadores em um único chip Evolução da arquitetura Intel x86 A arquitetura x86 continua a dominar o mercado após 30 anos de sua introdução Embora a arquitetura e a organização tenham mudado, os produtos mantém compatibilidade com as versões anteriores (conjunto de instruções aumenta, sem subtrações) Sistemas embarcados Sistema Embarcado: “Uma combinação de hardware e software de computador, e talvez partes adicionais mecânicas e outras, projetada para realizar uma função dedicada.” [Barr] Em muitos casos, os sistemas embarcados fazem parte de um sistema ou produto maior, assim como no caso de um sistema de freios ABS em um carro. Sistemas embarcados Mercado DispositivoEmbutido Automotivo Sistema de Ignição Controle de motor Sistemade Freio Eletrônico(para consumo) Televisores digitais e analógicos Caixas set-top (DVD, VCR,cabo) Aparelhos de Cozinha (refrigeradores, micro-ondas) Brinquedos/Jogos Telefones/Celulares/Pagers Câmeras GPS Controle Industrial Robótica e sistemas de controle de manufatura Sensores Médico Bombas de infusão Máquinas de diálise Dispositivos protéticos Monitorescardiacos Automação de Escritório Fax Fotocopiadoras Impressoras Scanners Sistemas embarcado Sistemas fortemente acoplados ao seu ambiente Principais diferenças para o desktop/laptop típico: Pode haver uma variedade de interfaces que permitem que o sistema meça, manipule e interaja de outras maneiras com o ambiente externo A interface Humana pode ser tão simples quanto uma luz piscando, ou tão complicada quanto a visão robótica em tempo real Software com função fixa, específico à aplicação ARM Família de microprocessadores e microcontroladores baseados em RISC, utilizados em dispositivos embarcados Possuem alta velocidade Pequeno tamanho de die Baixos requisitos de potência Arquitetura de processador embutido mais utilizada do mundo (Ex: Iphone) Avaliação de Desempenho Difícil de ser realizada a comparação de desempenho entre processadores. Velocidade bruta Conjunto de instruções Linguagem de implementação Eficiência do compilador Habilidade de programação Velocidade do clock e instruções por segundo Clock – gera um pulso analógico de frequência medido em ciclos por segundo (Hz), que é convertido em um pulso digital e dita a velocidade de operação do processador Essa velocidade não é arbitrária, precisa ser apropriada para o layout físico do processador. As operações entre todos os componentes devem estar ritmadas. Benchmarks Execução de um mesmo conjunto de rotinas em máquinas de diferentes arquiteturas, com intuito de comparação de desempenho. Atividade Quais as principais características de cada geração de computadores? Quais as principais premissas da máquina projetada por Von Neumann Quais as principais estratégias para ganho de desempenho do microprocessador? Lembre de seu primeiro contato com um computador. O quanto o desempenho dessa máquina melhorou em comparação à que você utiliza hoje? Para casa: Pesquise aplicações que realizem benchmark, façam testes em seus computadores pessoais, e apresentem um relatório das configurações de sua máquina.
Compartilhar