You are on page 1of 50

Evoluo e desempenho do

Computador
Dennis Svio Martins da Silva
dennissavio@hotmail.com
UFPI 2012
Evoluo e desempenho do
computador
A evoluo do computador tem sido
caracterizada por:
Aumento na velocidade do processador
Diminuio no tamanho dos componentes
Aumento no tamanho da memria
Aumento na capacidade e velocidade da E/S
Evoluo e desempenho do
computador
Um fator responsvel pelo grande aumento na
velocidade do processador o encolhimento no
tamanho dos componentes do microprocessador.
Reduo na distancia entre os componentes implica
aumento na velocidade
Contudo, os verdadeiros ganhos na velocidade
vem de melhorias na organizao do processador
Tcnicas de Pipeline e de execuo paralela
Tcnicas de execuo especulativas
Utilizadas para manter o processador ocupado a
maior parte do tempo
Evoluo e desempenho do
computador
Deve-se equilibrar o desempenho dos diversos
elementos de modo que os ganhos no
desempenho de uma rea no sejam
prejudicados por atraso em outras rea
Ex: A velocidade do processador aumentou em
proporo maior que a velocidade de acesso
memria
Um breve histrico dos computadores
Primeira Gerao: Vlvulas
Um breve histrico dos computadores
Primeira Gerao: Vlvulas
ENIAC (Electronic Numerical Integrator And
Computer)
Primeiro computador digital eletrnico de uso geral
do mundo
Elaborado para fornecer tabelas de faixa e trajetria para as
novas armas
Terminado tarde demais para a tarefa, mas aproveitado nos
calculos que determinaram a viabilidade da Bomba de
Hidrognio
Aritmtica decimal, ao invs de binria
Programao manual, por meio de chaves e cabos
Um breve histrico dos computadores
A mquina de Von Neumann
Visava facilitar a programao, tarefa enfadonha no
ENIAC, com o conceito de programa armazenado
Estrutura bsica do computador IAS, projetado por
Neumann:
Memria principal, para armazenar dados e instrues
Unidade Lgica e Aritmtica (ALU), capaz de operar sobre
dados binrios
Uma unidade de controle (UC), que interpreta as instrues
na memria e faz com que sejam executadas
Equipamento de E/S operado pela UC
Mquina de Von Neumann
Unidade Central de
Processamento
(CPU)

Unidade
Lgica e
Aritmtica
Memria Equipamento
Principal de E/S
Unidade de
Controle
Um breve histrico dos computadores
Proposta de Von Neumann para o IAS
Unidades especializadas para operaes mais elementares e
frequentes (adio, subtrao, multiplicao e diviso)
Controle lgico do dispositivo realizado por um rgo de
controle central
Memria considervel para dispositivos que executem
sequncias de operaes longas e complicadas (especialmente
de clculos)
Dispositivo precisa possuir unidades para transferir informaes
de entrada para a unidade de controle e a memria (input)
Dispositivo precisa possuir unidades para transferir informaes
da unidade de controle e a memria para a sada (output)
Um breve histrico dos computadores
Univac (Universal Automatic Computer)
Primeira mquina de sucesso comercial
IBM 701 primeiro computador de programa
armazenado (cartes perfurados)
Um breve histrico dos computadores
Segunda Gerao: Transistores e sistemas
batch
Um breve histrico dos computadores
Segunda Gerao: Transistores
Transistores so menores, mais baratos e dissipam menos
calor que as vlvulas.
Introduo de unidades lgicas e aritmticas e unidades de
controle mais complexas.
Programao de alto nvel
Disponibilidade do software de sistema com o computador
Uso de canais de dados de processamento independente,
poupando o processador de instrues de E/S
Cada nova gerao se caracteriza por maior
desempenho de processamento, maior capacidade de
memria 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 clculo
Cada programa era escrito em cartes 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 histrico dos computadores
Terceira gerao: Circuitos Integrados
Avanos na Microeletrnica
Barateamento na produo dos componentes.
Anteriormente baseados em componentes discretos
(transistores, resistores, capacitores, etc.)
Passaram a ser baseados em circuitos integrados (chips)
Um breve histrico dos computadores
Circuitos Integrados
Circuitos inteiros fabricados em um nico pedao
de silcio, contendo uma enorme quantidade de
transistores
Lei de Moore Em 1956 previu que a quantidade
de transistores por chip dobraria a cada ano
(previso atualizada na dcada de 1970 para a
cada 18 meses, onde se manteve)
Um breve histrico dos computadores
Consequncias da lei de Moore
O custo de um chip permanece praticamente inalterado,
mesmo com o crescimento em densidade (diminuio do
custo da lgica do computador e do circuito de memria)
Elementos mais condensados implicam em reduo da
extenso do caminho eltrico, aumentando a velocidade
Diminuio no tamanho do computador
Reduo nos requisitos de potncia e resfriamento
As interconexes nos CIs so mais confiveis que as soldas
convencionais. Com mais circuitos por chip, diminuem as
conexes entre chips
Sistemas Multitarefa (Multithread)
Vrias tarefas (processos) podem ser
executadas aparentemente de forma
simultnea.
A iluso de simultaneidade deve-se rpida
alternncia entre as tarefas no processador
Melhor aproveitamento no tempo ocioso da
CPU
Um breve histrico dos computadores
Geraes Posteriores
Baseadas nas evolues nas tecnologias dos
circuitos integrados
LSI (Large-scale Integration)
VLSI (Very-large-scale Integration)
ULSI (Ultra-large-scale Integration)
Memrias semicondutoras
Microprocessadores
Geraes de Computador
Gerao Datas Tecnologia Velocidade tpica
Aproximadas (operaes por
segundo)
1 1946 1957 Vlvula 40.000
2 1958 1964 Transistor 200.000
3 1965 1971 Integrao em escala pequena e Mdia 1.000.000
4 1972 1977 Integrao em Grande Escala 10.000.000
5 1978 1991 Integrao em Escala Muito Grande 100.000.000
6 1991 - Integrao em Escala Ultragrande 1.000.000.000
Projeto visando desempenho
Revoluo tecnolgica
Poder computacional infinitamente mais barato que
anos atrs
Aplicaes desktop hoje permitem
Processamento de imagens
Reconhecimento de voz
Videoconferncia
Criao de multimdia
Anotao de arquivos de voz e vdeo
Modelagem de simulao
etc
Projeto visando desempenho
Os blocos bsicos de construo da estrutura
de computao continuam os mesmos. O que
se sofistica com o tempo so as tecnologias e
as tcnicas para aproveitamento mximo do
desempenho.
Projeto visando desempenho
Velocidade do Microprocessador
Melhoria no apenas na capacidade dos chips,
mas tambm no aproveitamento de seu tempo de
processamento.
Tcnicas utilizadas:
Previso de desvio
Anlise de fluxo de dados
Execuo especulativa
Projeto visando desempenho
Previso de desvio
O processador antecipa o cdigo de instruo apanhado
da memria e prev quais desvios, ou grupos de
instrues, provavelmente sero processados em seguida.
Se o processador acertar na maior parte do tempo, ele
poder buscar antecipadamente as instrues corretas e
mant-las em buffer, de modo que o processador continue
ocupado
Em casos mais sofisticados, o processador no prev
apenas o prximo desvio, mas mltiplos desvios adiante.
Aumento da quantidade de trabalho disponvel para o
processador executar.
Projeto visando desempenho
Balano do desempenho
Embora a potncia do processador tenha
aumentado bastante, outros componentes do
computador no a acompanharam. necessrio
procurar o equilbrio do desempenho.
Os projetistas devem equilibrar as demandas de
vazo e processamento dos componentes do
processador, memria principal, dispositivos de E/S
e estruturas de interconexo.
Projeto visando desempenho
Esse projeto precisa ser constantemente
repensado para lidar com dois fatores em
constante evoluo:
A taxa de evoluo de desempenho nas diversas reas da
tecnologia (processador, barramentos, memria,
perifricos) difere bastante de um elemento para outro.
Novas aplicaes e novos dispositivos perifricos
constantemente mudam a natureza da demanda sobre o
sistema em termos do perfil de instruo tpico e dos
padres de acesso aos dados
Projeto visando desempenho
Exemplos:
Processador X memria principal
Aumento na largura (nmero de bits que so
recuperados ao mesmo tempo) da DRAM
Aumento na eficincia interna da DRAM (via cache* ou
algum esquema de buffering)
Melhoria nas estruturas de cache entre o processador e
as memrias
Aumentar a largura de banda de interconexo entre o
processador e a memria.
Dispositivos de E/S
Projeto visando desempenho
Melhorias na organizao e arquitetura do
processador
Aumento na velocidade do hardware do
processador (encolher e condensar as portas
lgicas)
Incremento das caches entre o processador e a
MP, particularmente dedicando cuidado cache
interna ao processador
Tcnicas de paralelismo
Projeto visando desempenho
Obstculos ao ganho de desempenho:
Potncia: medida que a densidade da lgica e a
velocidade do clock de um chip aumentam, aumenta
tambm a densidade da potncia, gerando dificuldade
para dissipar o calor
Atrasos de RC (resistncia e capacitncia) limitaes
fsicas dos condutores internos ao processador, que
aumentam conforme os fios diminuem, bem como a
capacitncia (capacidade de reter energia) dos
transistores aumenta, dificultando mudanas de
estado e limitando a frequncia do processador
Latncia da memria
Projeto visando desempenho
Estratgias para melhoria de desempenho
Aumento na capacidade da cache, com incluso
de novos nveis.
Melhoria na lgica interna de execuo de
instrues pelo processador
Pipeline
Superscalar
Incluso de mltiplos processadores em um nico
chip (multicore)
Evoluo da arquitetura Intel x86
Intel 8080 (1974)
Primeiro microprocessador de uso geral
Caminho de dados de 8 bits
Usado no Altair (primeiro computador pessoal
Evoluo da arquitetura Intel x86
8086 (1978)
Usava 16 bits
Tinha cache de instrues
Marcou o aparecimento da arquitetura x86
Evoluo da arquitetura Intel x86
80286 (1982)
Aumento da capacidade da memria para 16 Mb
Evoluo da arquitetura Intel x86
80386 (1986)
Primeiro produto 32 bits da Intel
Permitia multitarefa
Evoluo da arquitetura Intel x86
80486 (ou i486) (1989)
Cache e Pipeline mais sofisticados
Coprocessador matemtico embutido
Evoluo da arquitetura Intel x86
Pentium (1993)
Tcnicas superescalares (paralelismo)
Evoluo da arquitetura Intel x86
Pentium II (1997)
Tecnologia MMX (voltada para processamento de
dados de vdeo)
Evoluo da arquitetura Intel x86
Pentium III (1997)
Instrues adicionais de ponto flutuante para dar
suporte aos grficos 3D
Evoluo da arquitetura Intel x86
Pentium 4 (2000)
Instrues adicionais de ponto flutuante para dar
suporte aos grficos 3D
Evoluo da arquitetura Intel x86
Dual Core (2006)
Dois processadores em um nico chip
Evoluo da arquitetura Intel x86
Core 2 (2006)
Estende a arquitetura para 64 bits
O Core 2 Quad oferece 4 processadores em um
nico chip
Evoluo da arquitetura Intel x86
A arquitetura x86 continua a dominar o
mercado aps 30 anos de sua introduo
Embora a arquitetura e a organizao tenham
mudado, os produtos mantm
compatibilidade com as verses anteriores
(conjunto de instrues aumenta, sem
subtraes)
Sistemas embarcados
Sistema Embarcado: Uma combinao de
hardware e software de computador, e talvez
partes adicionais mecnicas e outras,
projetada para realizar uma funo 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 Dispositivo Embutido
Automotivo Sistema de Ignio
Controle de motor
Sistema de Freio
Eletrnico (para consumo) Televisores digitais e analgicos
Caixas set-top (DVD, VCR, cabo)
Aparelhos de Cozinha (refrigeradores, micro-ondas)
Brinquedos/Jogos
Telefones/Celulares/Pagers
Cmeras
GPS
Controle Industrial Robtica e sistemas de controle de manufatura
Sensores
Mdico Bombas de infuso
Mquinas de dilise
Dispositivos protticos
Monitores cardiacos
Automao de Escritrio Fax
Fotocopiadoras
Impressoras
Scanners
Sistemas embarcado
Sistemas fortemente acoplados ao seu ambiente
Principais diferenas para o desktop/laptop
tpico:
Pode haver uma variedade de interfaces que
permitem que o sistema mea, manipule e interaja de
outras maneiras com o ambiente externo
A interface Humana pode ser to simples quanto uma
luz piscando, ou to complicada quanto a viso
robtica em tempo real
Software com funo fixa, especfico aplicao
ARM
Famlia de microprocessadores e
microcontroladores baseados em RISC,
utilizados em dispositivos embarcados
Possuem alta velocidade
Pequeno tamanho de die
Baixos requisitos de potncia
Arquitetura de processador embutido mais
utilizada do mundo (Ex: Iphone)
Avaliao de Desempenho
Difcil de ser realizada a comparao de
desempenho entre processadores.
Velocidade bruta
Conjunto de instrues
Linguagem de implementao
Eficincia do compilador
Habilidade de programao
Velocidade do clock e instrues por
segundo
Clock gera um pulso analgico de frequncia
medido em ciclos por segundo (Hz), que
convertido em um pulso digital e dita a
velocidade de operao do processador
Essa velocidade no arbitrria, precisa ser
apropriada para o layout fsico do
processador. As operaes entre todos os
componentes devem estar ritmadas.
Benchmarks
Execuo de um mesmo conjunto de rotinas
em mquinas de diferentes arquiteturas, com
intuito de comparao de desempenho.
Atividade
Quais as principais caractersticas de cada gerao de
computadores?
Quais as principais premissas da mquina projetada por
Von Neumann
Quais as principais estratgias para ganho de desempenho
do microprocessador?
Lembre de seu primeiro contato com um computador. O
quanto o desempenho dessa mquina melhorou em
comparao que voc utiliza hoje?
Para casa: Pesquise aplicaes que realizem benchmark,
faam testes em seus computadores pessoais, e
apresentem um relatrio das configuraes de sua
mquina.