Buscar

Abstrações Computador e Tecnologia - Aula 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Capítulo 1
Abstrações do Abstrações do 
Computador e 
Tecnologia
A Revolução do Computador
� Progresso na tecnologia do computador
� Sustentado pela Moore’s Law onde a capacidade do 
transistor dobra a cada18-24 meses
� Faz novas aplicações viáveis
� Computadores em automóveis
� Telefones celulares
� Projeto genoma humano
� sequenciar um a um os genes que codificam as proteínas do 
corpo humano
� World Wide Web
� Máquinas de Busca
� Computadores são pervasivos
Classes de Computadores
� Computadores Desktop
� Propósito geral, variedade de software
� Sujeito ao balanceamento de custo/desempenho
� Computadores servidores
� Baseado em rede� Baseado em rede
� Alta capacidade, desempenho e confiabilidade
� Vão desde pequenos até mega servidores
� Computadores embarcados
� Escondidos como componentes do sistema
� Severas restrições de energia/desempenho/custo
O Mercado de Processador
O que você aprenderá
� Como programas são traduzidos para linguagem 
de máquina
� E como o hardware executam tais programas
� A interface de hardware/softwae
O que determina o desempenho do programa� O que determina o desempenho do programa
� E como isto pode ser melhorado
� Como projetista de hardware melhoram 
desempenho
� O que é o processamento paralelo
Entendendo Desempenho
� Algoritmo
� Determina o número de operações executadas
� Linguagem de programação, compilador, 
arquitetura
� Determina o número de instruções de máquinas � Determina o número de instruções de máquinas 
executadas por operação
� Sistema de memória e processador
� Determina quão rápida as intruções são executadas
� Sistema de E/S (incluindo SO)
� Determina quão rápida operações de E/S são 
executadas
Abaixo do seu Programa
� Software de aplicação
� Escrito em linguagens de alto nível
� Software do sistema
� Compilador: traduz código em alto 
nível para código de máquina
� Sistema operacional:
� Tratar entrada/saída
� Gerenciar armazenamento e memória
� Escalonamento de tarefas & 
compartilhamento de recursos
� Hardware
� Processador, memória, 
controladores de E/S
Níveis de Código de Programa
� Linguagem alto nível
� Nível de abstração mais 
próximo do domínio do 
problema
� Fornece produtividade e 
portabilidade
Linguagem Assembly� Linguagem Assembly
� Representação textual das 
instruções
� Representação do 
hardware
� Dígitos binários (bits)
� Instruções e dados 
codificados
Componentes de um computador
� Mesmo componentes 
para todos os tipos de 
computador
� Desktop, servidor, 
embarcado
Entrada/Saída inclui
The BIG Picture
� Entrada/Saída inclui
� Dispositivo de interface 
com o usuário
� Display, teclado, mouse
� Disp. de armazenagem
� Hard disk, CD/DVD, flash
� Adaptadores de rede
� Comunicação com outros 
computadores
Anatomia de Computador
Disp. 
de saída
Disp. de 
entrada
Disp. De 
entrada
Cabo de 
rede
Anatomia de um Mouse
� Mouse ótico
� LED ilumina a área de 
trabalho
� Pequena câmera de 
baixa resolução
Processador de imagem � Processador de imagem 
básico
� Checa por movimentos x, y
� Botões & roda
� Substituição do mouse 
mecânico (protótipo em 
1967)
Através do Espelho
� Tela LCD: elementos de imagem (pixels)
� A imagem é armazenada no frame buffer (armazena 
o mapa de bit)
� Matriz de exibição: varia de 640x480 à 2560x1600
� Número de colunas x número de linhas = número de pixels
Frame 
buffer com 
4 bits per 
pixel
Tonalidade 
mais clara
Cathode ray tube
Abrindo a Caixa
dual in-line memory model
Dentro do Processador (CPU)
� Caminho de dados (músculo): executa 
operações em dados
� Controle (cérebro): conta ao caminho de dados, 
memória, e dispostivos E/S o que fazer de 
acordo com as instruções do programaacordo com as instruções do programa
� Memória cache
� Pequena memória SRAM (static random access 
memory) rápida (que não precisa ser atualizada 
periodicamente) para acesso imediato aos dados
Dentro do Processador
� AMD Barcelona: 4 núcleos de processador
Abstrações
� Abstração nos ajuda a lidar com a complexidade
� Esconde detalhes de baixo nível
� Arquitetura de conjunto de instruções (ISA -
Instruction set architecture)
The BIG Picture
Instruction set architecture)
� A interface do hardware/software
� Application binary interface
� O ISA mais a interface de software do sistema
� Implementação
� Os detalhes subjacentes e a interface
Um Lugar Seguro para os Dados
� Memória principal volátil
� Perde instrúções e dados quando desligado
� Memória secundária não volátil
� Disco magnético
� Memória flash
� Disco óptico (CDROM, DVD)Disco óptico (CDROM, DVD)
Redes
� Comunicação e compartilhamento de recursos
� Local area network (LAN): Ethernet
� Dentro de um prédio
� Wide area network (WAN): Internet
� Wireless network: WiFi, Bluetooth� Wireless network: WiFi, Bluetooth
Tendências da Tecnologia
� Tecnologia eletrônica 
continua a evoluir
� Melhorou capacidade 
e desempenho
� Reduziu custo
capacidade da DRAM 
Ano Tecnologia Desempenho/custo relativo
1951 Vacuum tube 1
1965 Transistor 35
1975 Integrated circuit (IC) 900
1995 Very large scale IC (VLSI) 2,400,000
2005 Ultra large scale IC 6,200,000,000
capacidade da DRAM 
quadruplicou a cada três anos
Definindo Desempenho
� Qual avião tem o melhor desempenho?
0 100 200 300 400 500
Douglas
DC-8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
0 2000 4000 6000 8000 10000
Douglas DC-
8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
maior 
alcance
maior 0 100 200 300 400 500
Passenger Capacity
0 2000 4000 6000 8000 10000
Cruising Range (miles)
0 500 1000 1500
Douglas
DC-8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
Cruising Speed (mph)
0 100000 200000 300000 400000
Douglas DC-
8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
Passengers x mph
maior 
velocidade
maior 
capacidade
Tempo de Resposta e Vazão
� Tempo de resposta
� Quanto tempo leva para realizar uma tarefa
� Computadores desktop e embarcados
� Vazão (servidores)
� Trabalho total realizado por unidade de tempo
e.g., tarefas/transações/… por hora� e.g., tarefas/transações/… por hora
� Como o tempo de resposta e vazão são 
afetados por
� Substituir o processador com uma versão mais 
rápida?
� Adicionar mais processadores?
� Focaremos no tempo de resposta por agora…
Exercício
� As seguintes mudanças para um sistema
computacional aumenta vazão, diminui tempo 
de resposta, ou ambos?
1. Substituir o processador em um computador com uma
versão mais rápida?
Adicionar processadores adicionais a um sistema que2. Adicionar processadores adicionais a um sistema que
usa várias processadores para tarefas separadas – por
exemplo, procurando na World Wide Web
Exercício
� As seguintes mudanças para um sistema
computacional aumenta vazão, diminui tempo 
de resposta, ou ambos?
1. Substituir o processador em um computador com uma
versão mais rápida?
Diminuir tempo de resposta quase sempre melhora vazão. NesteDiminuir tempo de resposta quase sempre melhora vazão. Neste
caso, ambos tempo de resposta e vazão são melhorados
2. Adicionar processadores a um sistema que usa vários
processadores para tarefas separadas – por exemplo, 
procurando na World Wide Web
3. nenhuma tarefa é executada mais rápida, assim somente vazão é 
aumentada. Se a demanda por processamento for alta, o sistema
pode forçar enfileiramento dos processos. Neste caso, ambos são
melhorados
Desempenho Relativo
� Define Desempenho = 1/Tempo de execução
� “X é n vezes mais rápido do que Y”
n== XY
YX
execucao de Tempoexecucao de Tempo
DesempenhoDesempenho
� Exemplo: tempo necessário para executar um 
programa
� 10s em A, 15s em B
� Tempo de execuçãoB / Tempo de ExecuçãoA
= 15s / 10s = 1.5
� Assim A é 1.5 vezes mais rápido do que B
Exercício
� O desempenho do computador C é quatro vezes 
mais rápido do que o desempenho do 
computador B, o qual executa uma dada 
aplicação em 28 segundos. Quanto tempo o 
computador C levará para executar aquela 
aplicação?aplicação?
O computador C executará em:
Tempo de ExecuçãoB / Tempo de Execução do C = n 
Tempo de Execução do C = 28/4=7s
Medindo Tempo de Execução
� Tempo decorrido
� Tempo de resposta total, incluindo todos os aspectos
� Processamento, E/S, sobrecarga do SO, tempo ocioso
� Determina desempenho do sistema
� Tempo de CPU
Tempo gasta no processamento de uma determinada � Tempo gasta no processamento de uma determinada 
tarefa
� Disconta tempo de E/S, outras tarefas compartilhadas
� Compreende o tempo de CPU do usuário e o tempo 
de CPU do sistema
� Diferentes programas são afetados diferentemente 
pela CPU e desempenho do sistema
Relógio da CPU
� Operação de hardware digital é governado por 
um relógio de taxa constante
relógio (ciclos)
computação e 
Período de relógio
computação e 
transf. de dados
atualiza estado
� Período do relógio: duração de um ciclo de clock
� e.g., 0.25ns = 250ps = 250×10–12s
� Frquência do relógio (taxa): ciclos por segundo
� e.g., 4.0GHz = 4000MHz = 4.0×109Hz
Tempo de CPU
� Desempenho melhorado por
Relógio de Taxa
Relógio de Ciclos
Ciclo de TempoRelógio de CiclosCPU de Tempo
=
×=
Desempenho melhorado por
� Redução do número de ciclos de relógio
� Aumento da taxa de relógio
� Engenheiros de hardware devem sempre balancear 
taxa de relógio contra contagem de ciclo
Exemplo de Tempo da CPU
� Computador A: relógio 2GHz, tempo de CPU 10s
� Projetando computador B
� Objetivo: tempo de CPU de 6s
� Pode ter relógio mais rápido, mas causa 1.2×ciclos de relógio de A
� Quão rápido deve ser o relógio do computador B?
×
4GHz
6s
1024
6s
10201.2Relógio de Taxa
10202GHz10s
Relógio de TaxaCPU de TempoRelógio de Ciclos
6s
Relógio de Ciclos1.2
CPU de Tempo
Relógio de CiclosRelógio de Taxa
99
B
9
AAA
A
B
B
B
=
×
=
××
=
×=×=
×=
×
==
Contagem de Instrução e CPI
Relógio de Taxa
CPIInstrução Cont.
Ciclo de TempoCPIInstrução Cont.CPU de T.
Instrução por CiclosInstrução Cont.Relógio de Ciclos
×
=
××=
×=
� Contagem de instrução para um programa
� Determinado pelo programa, ISA e compilador
� Ciclos médios por instrução
� Determinado pelo hardware da CPU
� Se diferentes instruções têm diferentes CPI (clock 
cycles per instruction)
� CPI médio afetado pela mistura de instruções
Exemplo de CPI
� Computador A: T. ciclo = 250ps, CPI = 2.0
� Computador B: T. ciclo = 500ps, CPI = 1.2
� Mesmo ISA
� Qual é mais rápido, e por quanto?
ACiclo de TempoACPIInst. de ContagemACPU de Tempo ××=
1.2
500psI
600psI
ACPU de Tempo
BCPU de Tempo
600psI500ps1.2I
BCiclo de TempoBCPIInst. de ContagemBCPU de Tempo
500psI250ps2.0I
ACiclo de TempoACPIInst. de ContagemACPU de Tempo
=
×
×
=
×=××=
××=
×=××=
××=
A é mais rápido
por esta quant.
CPI em Mais Detalhes
� Se diferentes classes de instrução levam 
diferentes números de ciclos
∑
=
×=
n
1i
ii )Instrução Cont.(CPIRelógio de Ciclos
� Média ponderada do CPI
∑
=






×==
n
1i
i
i Instrução Cont.
Instrução Cont.CPI
Instrução Cont.
relógio de CiclosCPI
Frequência relativa
Exemplo de CPI (1)
� Um projetista de compilador está decidindo entre 
dois segmentos de código para um computador
CPI para cada classe de instrução
Classe A B C
CPI para classe 1 2 3
Instruction 
count
Classe A B C
IC na sequência 1 2 1 2
IC na sequência 2 4 1 1
� O projetista está considerando duas sequências
de código que requerem as seguintes ICs
Exemplo de CPI (2)
� Sequências de códigos alternativos compilados 
usando instruções em classes A, B e C
Classe A B C
CPI para classe 1 2 3
IC na sequência 1 2 1 2
IC na sequência 2 4 1 1
� Sequência 1: IC = 5
� Ciclos de Relógio
= 2×1 + 1×2 + 2×3
= 10
� Avg. CPI = 10/5 = 2.0
� Sequência 2: IC = 6
� Ciclos de Relógio
= 4×1 + 1×2 + 1×3
= 9
� Avg. CPI = 9/6 = 1.5
Instruction 
count
Seq. 2 é mais rápido (mesmo tendo uma instrução a mais)
Resumo de Desempenho
Desempenho depende
The BIG Picture
Relógio de Ciclo
Segundos
Instrução
Relógio de Ciclos
Programa
InstruçõesCPU de Tempo ××=
� Desempenho depende
� Algoritmo: afeta IC, possivelmente CPI
� Linguagem de programação: afeta IC, CPI
� Compilador: afeta IC, CPI
� ISA: afeta IC, CPI, Tc
Exercício (1)
� Uma dada aplicação escrita em Java executa 
em 15 segundos em um processador desktop. 
Um novo compilador Java solicita somente 0.6 
instruções referente ao antigo compilador, 
porém aumenta o CPI por 1.1. Quão rápido nós 
podemos esperar que a aplicação execute podemos esperar que a aplicação execute 
usando este novo compilador?
Ciclo T.ACPII
Ciclo T.A1.1CPI0.6I
ATempo
BTempo
Ciclo T.A1.1CPIInst. de m0.6ContageBTempo
Ciclo T.ACPIInst. de ContagemATempo
××
××
=
××=
××=
Exercício (2)
segundos
segundos 
 9.9BTempo
150.66BTempo
0.661.10.6
ATempo
BTempo
=
×=
=×=
segundos 9.9BTempo =
Tendências de Potência
Em 20 anos, 
tensão reduziu 
de 5V para 1V
Cada nova 
geração, 
reduziu cerca 
� Em tecnologia CMOS (complementary metal 
oxide semiconductor)
FrequencyVoltageload CapacitivePower 2 ××=
×1000×30 5V → 1V
reduziu cerca 
de 15%
Redução da Potência
� Suponha que uma nova CPU tem
� 85% da carga capacitiva da CPU antiga
� 15% de redução da tensão e 15% da frequência
0.520.850.85F0.85)(V0.85C
P
P 4
2
old
2
oldoldnew
==
××
×××××
= 0.520.85
FVCP old
2
oldoldold
==
××
=
� O limite da potência
� Não podemos mais reduzir a tensão
� Não podemos remover mais calor
� Como podemos melhorar o desempenho?
Novo processador usa 
metade da potência do 
antigo processador
Desempenho uniprocessador
Restringido pela potência, paralelismo a nível de 
instrução e latência de memória
Multiprocessadores
� Microprocessadores de vários núcleos
� Mais do que um processador por chip
� Requer programação paralela explicitamente
� Compare com paralelismo a nível de instrução
Hardware executa múltiplias instruções ao mesmo tempo� Hardware executa múltiplias instruções ao mesmo tempo
� Escondido do programador
� Difícil de fazer
� Programação para desempenho
� Balanceamento de carga
� Otimizando comunicação e sincronização
SPEC CPU Benchmark
� Programas usados para medir desempenho
� Supostamente típico da carga de trabalho real
� Standard Performance Evaluation Corp (SPEC)
� Desenvolve benchmarks para CPU, I/O, Web, …
� SPEC CPU2006
� Tempo decorrido para executar uma seleção de � Tempo decorrido para executar uma seleção de 
programas
� Desprezível E/S, foco no desempenho da CPU
� Normaliza em relação a máquina de referência: divide 
o T. execução da referência pelo medido (SPECratio)
� Resume como média geométrica das taxas de 
desempenho
n
n
1i
iexecução de tempo do Taxa∏
=
CINT2006 for Opteron X4 2356
Name Description IC×109 CPI Tc (ns) Exec time Ref time SPECratio
perl Interpreted string processing 2,118 0.75 0.40 637 9,777 15.3
bzip2 Block-sorting compression 2,389 0.85 0.40 817 9,650 11.8
gcc GNU C Compiler 1,050 1.72 0.47 24 8,050 11.1
mcf Combinatorial optimization 336 10.00 0.40 1,345 9,120 6.8
go Go game (AI) 1,658 1.09 0.40 721 10,490 14.6
hmmer Search gene sequence 2,783 0.80 0.40 890 9,330 10.5
sjeng Chess game (AI) 2,176 0.96 0.48 37 12,100 14.5sjeng Chess game (AI) 2,176 0.96 0.48 37 12,100 14.5
libquantum Quantum computer simulation 1,623 1.61 0.40 1,047 20,720 19.8
h264avc Video compression 3,102 0.80 0.40 993 22,130 22.3
omnetpp Discrete event simulation 587 2.94 0.40 690 6,250 9.1
astar Games/path finding 1,082 1.79 0.40 773 7,020 9.1
xalancbmk XML parsing 1,058 2.70 0.40 1,143 6,900 6.0
Geometric mean 11.7
Altas taxas de falta de cache: indica que o dado solicitado não 
está disponível na memória física
SPEC Power Benchmark
� Consumo de potência do servidor em diferentes 
níveis de carga de trabalho
� Desempenho: ssj_ops/sec
� Potência: Watts (Joules/sec)












= ∑∑
==
10
0i
i
10
0i
i powerssj_ops Wattper ssj_ops Overall
Considera a carga alvo de 0% à 100%
SPECpower_ssj2008 para X4
Carga alvo % Desempenho (ssj_ops/sec) Potência Média (Watts)
100% 231,867 295
90% 211,282 286
80% 185,803 275
70% 163,427 265
60% 140,160 256
50% 118,324 24650% 118,324246
40% 920,35 233
30% 70,500 222
20% 47,126 206
10% 23,066 180
0% 0 141
Montante global 1,283,590 2,605
∑ssj_ops/ ∑power 493
2.3 GHz AMD Opteron X4 com 16GB RAM e 500GB de disco
Armadilha: Lei de Amdahl
� Melhorando o aspecto de um computador e 
esperando uma melhoria proporcional no 
desempenho global
afetado não
afetado
melhorado Tmelhoria de fator
TT +=
( )
208020
Timproved
+=
−+=
n
n
8010080
� Não pode ser feito!
� Ex.: multiplicação leva 80s de um total de 100s
� Quanto de melhoria no desempenho da multiplicação 
para conseguir 5× no global?
Corolário: torma o caso comum rápido
5x mais rápido
Falácia: Baixa Potência em Ocioso
� Olhar de volta para o benchmark de potência X4
� Em 100% de carga: 295W
� Em 50% de carga: 246W (83%)
� Em 10% de carga: 180W (61%)
Centro de dados do Google� Centro de dados do Google
� Principalmente opera em 10% – 50% de carga
� Em 100% de carga menos do que 1% do tempo
� Considerar projeto de processadores para 
considerar a potência proporcional a carga
Armadilha: MIPS Como uma Métrica de 
Desempenho
� MIPS: Millions of Instructions Per Second
� Computadores mais rápidos têm maior taxa de MIPS
� Não leva em consideração
� Diferença nos ISAs entre computadores
� Diferenças em complexidades entre instruções
Instrução de Contagem
6
6
6
10CPI
Relógio de Taxa
10
Relógio de Taxa
CPIInstrução de Contagem
Instrução de Contagem
10Execução de Tempo
Instrução de ContagemMIPS
×
=
×
×
=
×
=
� CPI varia entre programas em uma dada CPU
Exercício
� Considere as seguintes medidas de 
desempenho para um programa
Medida Computador A Computador B
Contagem de 
instrução
10 bilhões 8 bilhões
a) Qual computador tem a maior taxa de MIPS?
b) Qual computador é mais rápido?
Taxa de relógio 4 GHz 4 GHz
CPI 1.0 1.1
Solução
a) Qual computador tem a maior taxa de MIPS?
3
6
9
6
B
B
B
3
6
9
6
A
A
A
10636.3
101.1
104
10 CPI
Relógio de TaxaMIPS
104
101
104
10 CPI
Relógio de TaxaMIPS
×=
×
×
=
×
=
×=
×
×
=
×
=
a) Qual computador é mais rápido?
B 101.110 CPI ××
s
s
2
104
1.1108
Relógio de Taxa
CPIInstrução de ContagemCPU Tempo
5.2
104
0.11010
Relógio de Taxa
CPIInstrução de ContagemCPU Tempo
9
9
B
BB
B
9
9
A
AA
A
=
×
××
=
×
=
=
×
××
=
×
=
Observações finais
� Custo/desempenho está melhorando
� Devido ao desenvolvimento da tecnologia subjacente
� Camadas hierárquicas de abstração
� Em hardware e software
� Arquitetura do conjunto de instruções� Arquitetura do conjunto de instruções
� A interface hardware/software
� Tempo de execução: a melhor medida de 
desempenho
� Potência é um fator limitante
� Usar paralelismo para melhorar desempenho

Outros materiais