Baixe o app para aproveitar ainda mais
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
Compartilhar