capítulo 1 - ufam - universidade federal do...
TRANSCRIPT
Capítulo 1
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
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
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 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 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
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
The BIG Picture
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 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 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)
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
The BIG Picture
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)
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
Tendências da Tecnologia
Tecnologia eletrônica continua a evoluir
Melhorou capacidade e desempenho
Reduziu custo
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/SudConcorde
Boeing 747
Boeing 777
Passenger Capacity
0 2000 4000 6000 8000 10000
Douglas DC-
8-50
BAC/SudConcorde
Boeing 747
Boeing 777
Cruising Range (miles)
0 500 1000 1500
Douglas
DC-8-50
BAC/SudConcorde
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 alcance
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
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 sistemacomputacional aumenta vazão, diminui tempo de resposta, ou ambos?
1. Substituir o processador em um computador com umaversão mais rápida?
2. Adicionar processadores adicionais a um sistema queusa várias processadores para tarefas separadas – porexemplo, procurando na World Wide Web
Exercício
As seguintes mudanças para um sistemacomputacional aumenta vazão, diminui tempo de resposta, ou ambos?
1. Substituir o processador em um computador com umaversão mais rápida?
Diminuir 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áriosprocessadores 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 sistemapode forçar enfileiramento dos processos. Neste caso, ambos sãomelhorados
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?
O computador C executará em:Tempo de Execução B / 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
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 transf. de dados
atualiza estado
Período de relógio
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
Redução do número de ciclos de relógio
Aumento da taxa de relógio
Engenheiros eletrônicos devem sempre balancear taxa de relógio contra contagem de ciclo
Relógio de Taxa
Relógio de Ciclos
Ciclo de TempoRelógio de CiclosCPU de Tempo
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?
4GHz6s
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
BB
Contagem de Instrução e CPI
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
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
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?
1.2500psI
600psI
ACPU de Tempo
BCPU de Tempo
600psI500ps1.2I
BCiclo de Tempo
BCPIInst. de Contagem
BCPU de Tempo
500psI250ps2.0I
ACiclo de Tempo
ACPIInst. de Contagem
ACPU 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
1iii )Instrução Cont.(CPIRelógio de Ciclos
Média ponderada do CPI
n
1i
ii
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ênciasde 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
Algoritmo: afeta IC, possivelmente CPI
Linguagem de programação: afeta IC, CPI
Compilador: afeta IC, CPI
ISA: afeta IC, CPI, Tc
The BIG Picture
Relógio de Ciclo
Segundos
Instrução
Relógio de Ciclos
Programa
InstruçõesCPU de Tempo
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 usando este novo compilador?
Ciclo T.A
CPII
Ciclo T.A
1.1CPI0.6I
ATempo
BTempo
Ciclo T.A
1.1CPIInst. de m0.6ContageB
Tempo
Ciclo T.A
CPIInst. de ContagemA
Tempo
Exercício (2)
segundos
segundos
9.9B
Tempo
150.66B
Tempo
0.661.10.6
ATempo
BTempo
Tendências de Potência
Em tecnologia CMOS (complementary metal oxide semiconductor)
FrequencyVoltageload CapacitivePower 2
×1000×30 5V → 1V
Em 20 anos, tensão reduziu de 5V para 1V
Cada nova geração, 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.85FVC
0.85F0.85)(V0.85C
P
P 4
old
2
oldold
old2
oldold
old
new
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
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
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
1iiexecuçã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.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
0ii
10
0ii 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 246
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
2080
20
Timproved
n
n80100
80 Não pode ser feito!
afetado nãoafetado
melhorado Tmelhoria de fator
TT
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
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
66
6
10CPI
Relógio de Taxa
10Reló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
a) Qual computador tem a maior taxa de MIPS?
b) Qual computador é mais rápido?
Medida Computador A Computador B
Contagem de instrução
10 bilhões 8 bilhões
Taxa de relógio 4 GHz 4 GHz
CPI 1.0 1.1
Solução
a) Qual computador tem a maior taxa de MIPS?
a) Qual computador é mais rápido?
3
6
9
6B
BB
3
6
9
6A
AA
10636.3101.1
104
10 CPI
Relógio de TaxaMIPS
104101
104
10 CPI
Relógio de TaxaMIPS
s
s
2104
1.1108
Relógio de Taxa
CPIInstrução de ContagemCPU Tempo
5.2104
0.11010
Relógio de Taxa
CPIInstrução de ContagemCPU Tempo
9
9
B
BBB
9
9
A
AAA
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
A interface hardware/software
Tempo de execução: a melhor medida de desempenho
Potência é um fator limitante
Usar paralelismo para melhorar desempenho