Buscar

Cap02 - Evolução e desempenho do Computador

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.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais