Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Introdução à Arquitetura de Computadores Anderson Oliveira da Silva Ph. D. Ciências em Informática Engenheiro de Computação anderson@inf.puc-rio.br Departamento de Informática PUC-Rio 2 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte I – Introdução Questões de Desempenho – Projeto com foco no desempenho » Técnicas para Aumentar a Velocidade do microprocessador » Técnicas para Melhorar a Interligação com a memória » Técnicas para Melhorar o Tratamento dos Dispositivos de E/S » Mudanças na Organização e Arquitetura do Processador – Desempenho dos sistemas paralelos e multicore » Multicore, MICs e GPGPUs » Lei de Amdhal » Lei de Little – Medidas básicas de desempenho do computador » Velocidade de clock » Taxa de execução de instrução (MIPS e MFLOPS) » Benchmarks da SPEC 3 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Questões de Desempenho 4 Projeto com foco no Desempenho A história da evolução dos processadores mostra uma busca constante e implacável dos fabricantes de chips por velocidade e melhor desempenho. Desde de que a Intel lançou sua família x86 em 1978, o desempenho dos microprocessadores melhorou de 4 a 5 vezes a cada 3 anos ou mais por causa da adição de novos circuitos e o aumento da velocidade, em função da redução da distância entre eles. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 5 Projeto com foco no Desempenho Dentre as técnicas usadas pelos projetistas para aumentar a velocidade de processamento do microprocessador, temos: – Realização de pipeline – Predição de desvio – Execução superescalar – Análise de fluxo de dados – Execução especulativa Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 6 Projeto com foco no Desempenho Realização de pipeline – A execução de uma instrução envolve vários estágios, como: » Busca da instrução na memória; » Decodificação das diversas partes do código de operação (opcode); » Busca de operandos na memória; » Realização de cálculos pertinentes à instrução; » Entre outros. – O pipeline visa a possibilitar que um processador trabalhe simultaneamente em diversas instruções ao executar um estágio diferente de cada instrução ao mesmo tempo. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 7 Projeto com foco no Desempenho Realização de pipeline – Ex: Pipeline com 5 estágios Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 1. Buscar Instrução (FI – Fetch Instruction) 2. Decodificar Instrução (DI – Decode Instruction) 3. Calcular Operandos (CO – Calculate Operands) 4. Buscar Operandos (FO – Fetch Operands) 5. Executar Instrução (EI – Execute Instruction) 6. Escrever Operando (WO – Write Operand) Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 8 Projeto com foco no Desempenho Realização de pipeline – Ex: Pipeline com 5 estágios Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 1. Buscar Instrução (FI – Fetch Instruction) 2. Decodificar Instrução (DI – Decode Instruction) 3. Calcular Operandos (CO – Calculate Operands) 4. Buscar Operandos (FO – Fetch Operands) 5. Executar Instrução (EI – Execute Instruction) 6. Escrever Operando (WO – Write Operand) Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 Se as nove instruções fossem executadas em sequência sem o pipeline, a execução terminaria em t=54 (6 ciclos x 9 instruções), ou seja, a execução seria 3,8 vezes mais lenta! 9 Projeto com foco no Desempenho Predição de desvio – O processador antecipa o código de instrução buscado a partir da memória e prediz quais desvios ou grupos de instruções provavelmente serão processadas em seguida. – Se o processador prediz certo a maior parte do tempo, ele pode pré-buscar as instruções corretas e agrupá-las, de modo que seja mantido ocupado. – A predição dos desvios potencialmente aumenta a quantidade de trabalho disponível para o processador executar. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 10 Projeto com foco no Desempenho Predição de desvio – Exemplo: Pipeline tradicional, sem predição de desvio. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br FI DI CO FO EI WO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 FI DI CO FO EI FI DI CO FO FI DI CO FI DI FI DI CO FO EI WO 100 CMP Ra,Rb 101 JCC 105 102 ADD Ra, Rc 103 ADD Rc, Addr 104 SUB Ra, Rc 105 STORE Ra Linha do Tempo No pipeline tradicional, as instruções que estão após a instrução de desvio (JCC 105) são carregadas e processadas no pipeline mesmo se o desvio acontecer. Nos casos em que o desvio não acontece, o pipeline precisa ser descarregado antes que a instrução alvo do desvio (STORE Ra) seja carregada e processada no pipeline. A tarefa de descarregar o pipeline gera atraso no fluxo de instruções! 11 Projeto com foco no Desempenho Execução superescalar – Capacidade de enviar mais de uma instrução em todos os ciclos de clock de processador, o que requer o uso de pipelines paralelos. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 12 Projeto com foco no Desempenho Análise de fluxo de dados – O processador analisa quais instruções são dependentes dos resultados ou dados, uma das outras, a fim de criar uma lista otimizada de instruções. – As instruções são listadas para serem executadas quando prontas, independente do pedido do programa original, para prevenir atrasos desnecessários. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Neste exemplo, quando o JUMP acontecer, a instrução ADD rA,rB deverá ser descarregada do pipeline... 13 Projeto com foco no Desempenho Análise de fluxo de dados – O processador analisa quais instruções são dependentes dos resultados ou dados, uma das outras, a fim de criar uma lista otimizada de instruções. – As instruções são listadas para serem executadas quando prontas, independente do pedido do programa original, para prevenir atrasos desnecessários. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Neste exemplo, com a análise de fluxo, a instrução ADD rA,rB não entra no pipeline e a instrução JUMP 105 é invertida com a instrução ADD 1,rA para que o pipeline não precise ser descarregado. 14 Projeto com foco no Desempenho Execução especulativa – Usando a predição de desvio e a análise de fluxo de dados, alguns processadores especulativamente executam instruções antes de seu surgimento real na execução do programa, mantendo os resultados em locais separados. – O objetivo é manter os mecanismos de execução do processador ocupados o máximo possível a partir da execução de instruções que provavelmente serão executadas. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fluxo A Fluxo B TRUE FALSE Neste exemplo, com a execução especulativa, ambos os fluxos de instruções do bloco TRUE e do bloco FALSE serão executados antes do término da execução da instrução de condição e desvio, e os respectivos resultados serão guardados em locais separados... 15 Projeto com foco no Desempenho Execução especulativa – Usando a predição de desvio e a análise de fluxo de dados, alguns processadores especulativamente executam instruções antes de seu surgimento real na execução do programa, mantendo os resultados em locais separados. – O objetivo é manter os mecanismos de execução do processador ocupados o máximo possível a partir da execução de instruções que provavelmente serão executadas. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fluxo A Fluxo B TRUE FALSE Quando o fluxo de instruções for finalmente determinado, os resultados do fluxo de instruções indevidamente executado devem ser destruídos... X 16 Projetocom foco no Desempenho Execução especulativa – Usando a predição de desvio e a análise de fluxo de dados, alguns processadores especulativamente executam instruções antes de seu surgimento real na execução do programa, mantendo os resultados em locais separados. – O objetivo é manter os mecanismos de execução do processador ocupados o máximo possível a partir da execução de instruções que provavelmente serão executadas. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fluxo A Fluxo B TRUE FALSE O Spectre explora uma falha de segurança na execução especulativa de vários processadores (ex: Intel, AMD e ARM) e possibilita vazar os dados armazenados na cache L2 pelos fluxos de instruções. Sua publicação foi realizada por pesquisadores em 2018. X Imagem: Spectre – Wikipedia URL: https://upload.wikimedia.org/ wikipedia/commons/thumb/e/e0/Spe ctre_logo_without_text.svg/220px- Spectre_logo_without_text.svg.png 17 Balanço do desempenho Apesar da capacidade de processamento do processador ter crescido em uma velocidade espantosa, outros componentes críticos do computador não tiveram esse mesmo crescimento... Como resultado, é necessário fazer o balanço do desempenho. – Deve-se fazer o ajuste da organização e da arquitetura para compensar a diferença entre as capacidades dos diversos componentes. – O problema criado por essas diferenças é particularmente importante na interface entre o processador e a memória principal. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 18 Balanço do desempenho Dentre as técnicas para melhorar a interligação com a memória principal, temos: – Aumento do número de bits que são recuperados ao mesmo tempo, tornando a DRAM (Dynamic Random Access Memory) mais larga ao invés de mais profunda, usando caminhos de dados largos no barramento. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 19 Balanço do desempenho Dentre as técnicas para melhorar a interligação com a memória principal, temos: – Alteração da interface da DRAM para torná-la mais eficiente, incluindo tecnologia de bufferização (cache) ou outra forma de organização das células de memória e outra forma de acesso mais eficiente no chip de DRAM. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Imagem: Parallel Cell – Viking Technology URL: https://twitter.com/vikinology/status/ 1245060152023117825/photo/1 A tecnologia Parallel Cell da Viking Technology possibilita economia de 85% de espaço e evita o uso de conectores do padrão DIMM. 20 Balanço do desempenho Dentre as técnicas para melhorar a interligação com a memória principal, temos: – Redução da frequência de acesso à memória incorporando estruturas de cache cada vez mais complexas (hierarquia de caches) e eficientes entre o processador e a memória principal. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 21 Balanço do desempenho Dentre as técnicas para melhorar a interligação com a memória principal, temos: – Aumento da largura de banda de interconexão entre o processador e a memória usando barramento de velocidade mais alta e usando uma hierarquia de barramentos para armazenar e estruturar o fluxo de dados. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Corsair Vengeance LPX, 16GB (2x8GB), 4400MHz, DDR4 Corsair ValueSelect, 16GB (2x8GB), 2400MHz, DDR4 22 Balanço do desempenho Dentre as técnicas para melhorar o tratamento com dispositivos de E/S, temos: – DMA (Direct Memory Access): que possibilita programar a controladora do dispositivo de E/S para escrever ou ler os dados diretamente nos buffers de E/S da memória principal sem intervenção do processador, sinalizando quando a operação for completada. – DCA (Direct Cache Access): que possibilita o acesso direto aos dados mantidos em cache pelos controladores dos dispositivos de E/S, o que agiliza significativamente o acesso aos dados que serão usados nas operações de E/S. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 23 Melhorias na Organização e na Arquitetura do Processador Para aumentar a velocidade do processador, são usadas basicamente três técnicas: 1. Aumentar a velocidade de hardware do processador. 2. Aumentar o tamanho e a velocidade das caches interpostas entre o processador e a memória principal. 3. Fazer mudanças na organização e na arquitetura do processador, que aumentam a velocidade efetiva da execução da instrução. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 24 Melhorias na Organização e na Arquitetura do Processador Com o aumento da velocidade do clock e da densidade lógica, os obstáculos tornam-se mais significativos: – Potência: à medida que a densidade da lógica e a velocidade do clock em um chip aumentam, também aumenta a densidade de potência (Watts/cm2) – problema de dissipação de calor. – Atraso de RC: a diminuição de tamanho dos componentes do chip torna a interconexão dos fios mais finas, o que aumenta a resistência; e, a proximidade dos componentes aumenta o efeito da capacitância parasita. – Latência e taxa de transferência da memória: a velocidade de acesso à memória (latência) e a taxa de transferência limitam as velocidades do processador. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 25 Melhorias na Organização e na Arquitetura do Processador Tendência dos processadores: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 26 Multicore, MICs e GPGPUs O processador chamado de múltiplos cores ou multicore, que tem diversos processadores em um único chip, proporciona o potencial para aumentar o desempenho sem aumentar a frequência do clock. A estratégia é usar processadores simplificados no mesmo chip ao invés de um processador mais complexo. Os chips de dois cores que apareceram em 2003/2004 foram seguidos por chips de quatro cores, oito, dezesseis e assim por diante. Os fabricantes de chip estão agora no processo de dar um enorme salto, com mais de 50 cores por cada um. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 27 Multicore, MICs e GPGPUs O salto no desempenho têm levado ao surgimento de um novo termo: muitos cores integrados (MIC – Many Integrated Cores). A estratégia do multicore e do MIC visava a uma coleção homogênea de processadores de uso geral em um único chip. Os fabricantes de chip estão agora produzindo opções híbridas que usam um chip com múltiplos processadores de uso geral mais unidades de processamento gráfico (GPUs – Graphics Processing Units). Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 28 Multicore, MICs e GPGPUs Em termos gerais, uma GPU é um core desenvolvido para desempenhar operações paralelas em dados gráficos. A GPU é tradicionalmente encontrada em uma placa plug-in (adaptador de vídeo) usada para codificar e renderizar gráficos 2D e 3D, bem como para processar vídeos. Quando uma grande gama de aplicações é suportada por um processador desse tipo, o termo usado é GPUs de computação de Uso Geral (GPGPUs – General-Purpose computing on GPUs). Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 29 Multicore, MICs e GPGPUs Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Será que uma grande quantidade de núcleos de processamento é capaz de efetivamente acelerar o processamento dos programas? 30 Multicore, MICs e GPGPUs Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Qual é o impacto real de muitos núcleos de processamento no desempenho (aceleração) dos programas? 31 Lei de Amdahl Proposta primeiro por Gene Amdahl em 1967 para determinar o potencial de speedup (aceleração) de um programa usando múltiplosprocessadores em comparação com um único processador. Para demonstrar a proposta, vamos considerar um programa sendo executado em um único processador de modo que: – A fração (1 - f) corresponde ao tempo de execução do código que é inerentemente sequencial; – A fração f corresponde ao tempo de execução do código que é infinitamente paralelizável (sem sobrecarga no escalonamento); e – O valor T é o tempo de execução total do programa que usa um único processador. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 32 Lei de Amdahl Então, o cálculo do speedup, mediante o uso de um processador paralelo com N processadores que exploram completamente a parte paralela do programa, tem a seguinte forma: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 33 Lei de Amdahl Ilustração da lei de Amdahl: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br A redução do tempo é um efeito do processamento paralelo executado pelos N processadores. Tempo de execução do programa em um único processador Tempo de execução do programa com N processadores Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 34 Lei de Amdahl Lei de Amdahl para multiprocessadores: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 35 Lei de Amdahl A lei de Amdahl pode ser generalizada para avaliar um desenvolvimento ou uma melhoria de técnica em um sistema computacional. Para entendermos essa generalização, vamos considerar qualquer aumento em uma característica de um sistema que resulta em um speedup. O speedup pode ser expresso como: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 36 Lei de Little Desenvolvida por John Little no início dos anos 60, a Lei de Little é aplicada em teoria da filas e relaciona o número de clientes no sistema com o tempo médio despendido no sistema. Para entendermos a Lei de Little, vamos considerar os seguintes argumentos, que focam na experiência de um único item: – Quando o item chega na fila, ele encontra uma média de L itens à frente dele, um sendo servido e o restante em uma fila. – Quando o item deixar o sistema antes de ser servido, ele deixará para trás em média o mesmo número de itens no sistema, ou seja L, porque L é definido como número médio de itens em espera. – Além disso, o tempo médio que o item esteve no sistema foi W. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 37 Lei de Little Se os itens chegarem a uma taxa de l, podemos dizer que no tempo W um total de lW itens deve ter chegado. Assim, L = lW. Para resumir, sob condições estáveis, o número médio de itens em um sistema de enfileiramento é igual à taxa média em que os itens chegam multiplicados pelo tempo médio que um item gasta no sistema. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br l L t=W t=0 38 Lei de Little Se os itens chegarem a uma taxa de l, podemos dizer que no tempo W um total de lW itens deve ter chegado. Assim, L = lW. Sendo assim, por mais que existam núcleos de processamento disponíveis, a aceleração do processamento tende a aumentar a espera por recursos no sistema (enfileiramento), que, por sua vez, reduz o ganho de speedup se o desempenho no atendimento das solicitações não for eficiente o suficiente. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br l L t=W t=0 39 Medidas básicas de desempenho do computador – Velocidade do clock A velocidade de um processador é ditada pela frequência de pulso produzida pelo clock, medida em ciclos por segundo, ou Hertz (Hz). A taxa de pulsos é conhecida como frequência do clock ou velocidade de clock. Um incremento (ou pulso) do clock é conhecido como um ciclo de clock ou um período do clock. O tempo entre os pulsos é o tempo de ciclo. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 40 Medidas básicas de desempenho do computador – Velocidade do clock Clock de sistema: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 41 Medidas básicas de desempenho do computador – Taxa de execução de instrução Um parâmetro importante é a média de ciclos por instrução (CPI – Cycles Per Instruction) para um programa. Podemos calcular um CPI geral como a seguir: onde, Ic é o número de instruções de máquina executadas para um programa, Ii é o número de instruções executadas do tipo i e CPIi é o número de ciclos exigidos para execução da instrução do tipo i. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 42 Medidas básicas de desempenho do computador – Taxa de execução de instrução O tempo T do processador necessário para executar determinado programa pode ser expresso como: onde, Ic é o número de instruções de máquina executadas para um programa, CPI é o CPI geral calculado para o programa e Ƭ = 1/f , onde f é a frequência de clock do processador (ciclos por segundo = Hz). Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 43 Medidas básicas de desempenho do computador – Taxa de execução de instrução Podemos refinar essa formulação reconhecendo que, durante a execução de uma instrução, parte do trabalho é feito pelo processador, e em parte do tempo uma palavra está sendo transferida de ou para a memória. Sendo assim, o tempo T do processador necessário para executar determinado programa pode ser expresso como T = Ic X [p + (m X k)] X Ƭ onde, Ic é o número de instruções de máquina executadas para um programa, p é o número de ciclos de processador necessários para decodificar e executar a instrução, m é o número de referências de memória necessárias, k é a razão entre o tempo de ciclo da memória e o tempo de ciclo do processador e Ƭ = 1/f , onde f é a frequência de clock do processador. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 44 Medidas básicas de desempenho do computador – Taxa de execução de instrução Fatores de desempenho e atributos de sistema: T = Ic X [p + (m X k)] X Ƭ onde, Ic é o número de instruções de máquina executadas para um programa, p é o número de ciclos de processador necessários para decodificar e executar a instrução, m é o número de referências de memória necessárias, k é a razão entre o tempo de ciclo da memória e o tempo de ciclo do processador e Ƭ = 1/f , onde f é a frequência de clock do processador. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 45 Medidas básicas de desempenho do computador – Taxa de execução de instrução Uma medida comum do desempenho do processador é a taxa em que as instruções são executadas, expressa em MIPS (Millions of Instructions per Second). Podemos expressar a taxa MIPS em termos da frequência do clock e do CPI da seguinte maneira: lembrando que, e Ƭ = 1/f , onde f é a frequência de clock do processador. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 46 Medidas básicas de desempenho do computador – Taxa de execução de instrução Considere um programa que executa 4 milhões de instruções em um processador de 2 GHz. O programa consiste em quatro tipos principais de instruções. Os tipos de instruções e o CPI para cada tipo de instrução são mostrados na tabela. Calcule o CPI médio quando o programa é executado em um único processador ea respectiva taxa MIPS, com base nos dados da tabela. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Tipo de Instrução CPI Número de Instruções (%) Aritmética e Lógica 1 50 Load/Store com acerto (hit) 2 25 Desvio 4 20 Referência de memória cache com miss de cache 8 5 Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 47 Medidas básicas de desempenho do computador – Taxa de execução de instrução CPI = (1 x 0,5) + (2 x 0,25) + (4 x 0,20) + (8 x 0,05) = 2,20 pois Ii/Ic corresponde à porcentagem de um certo tipo de instrução. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 Tipo de Instrução CPI Número de Instruções (%) Aritmética e Lógica 1 50 Load/Store com acerto (hit) 2 25 Desvio 4 20 Referência de memória cache com miss de cache 8 5 48 Medidas básicas de desempenho do computador – Taxa de execução de instrução Considere um programa que executa 4 milhões de instruções em um processador de 2 GHz. O programa consiste em quatro tipos principais de instruções. Os tipos de instruções e o CPI para cada tipo de instrução são mostrados na tabela. Calcule o CPI médio quando o programa é executado em um único processador e a respectiva taxa MIPS, com base nos dados da tabela. CPI = 0,5 + (2 x 0,25) + (4 x 0,20) + (8 x 0,05) = 2,20 Taxa MIPS = (2 x 109) / (2,20 x 106) = 909,09 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 49 Medidas básicas de desempenho do computador – Taxa de execução de instrução Outra medida de desempenho comum lida apenas com instruções de ponto flutuante, que são comuns em muitas aplicações científicas e jogos. O desempenho do ponto flutuante é expresso em MFLOPS (Millions of Floating-point Operations Per Second), da seguinte forma: Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 50 Medidas básicas de desempenho do computador – Taxa de execução de instrução Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Será que as taxas MIPS e MFLOPS podem ser usadas para comparar processadores com conjuntos de instruções distintos e CPIs diferentes? 51 Medidas básicas de desempenho do computador – Taxa de execução de instrução Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Os compiladores constroem programas em linguagem de máquina muito diferentes entre as diferentes arquiteturas de processadores pois tendem a aproveitar os diversos recursos disponíveis... 52 Medidas básicas de desempenho do computador – Taxa de execução de instrução Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Um programa pode acabar tendo mais desempenho em uma máquina com menos MIPS e MFLOPS do que outra por causa dos recursos da arquitetura do processador e do computador... 53 Medidas básicas de desempenho do computador – Taxa de execução de instrução Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br As taxas MIPS e MFLOPS servem como uma referência de poder de processamento mas não com uma referência de desempenho de programas e aplicações específicas... 54 Medidas básicas de desempenho do computador – Taxa de execução de instrução Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Precisamos de técnicas mais elaboradas para produzir informações sobre os processadores e computadores que possam ser efetivamente passíveis de comparação... 55 Medidas básicas de desempenho do computador – Taxa de execução de instrução Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br O caminho é o Benchmark... 56 Benchmarks e SPEC Os benchmarks proporcionam orientações para os clientes que tentam decidir qual sistema comprar. Pode ser útil para vendedores e desenvolvedores na determinação de como desenvolver sistemas para atingir as metas de benchmark. Medidas como MIPS e MFLOPS são inadequadas para avaliar o desempenho entre diferentes processadores de diferentes arquiteturas por causa de diferenças nos conjuntos de instruções. Outro ponto é que o desempenho de certo processador em determinado programa pode não ser útil para determinar como esse processador funcionará em um tipo de aplicação muito diferente. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 57 Benchmarks e SPEC De acordo com o Stallings (2018), Weicker (1990) lista as características desejadas para um programa de benchmark: – É escrito em uma linguagem de alto nível, o que o torna portável entre diferentes máquinas. – Representa um tipo particular de estilo de programação, como programação de sistemas, programação numérica ou programação comercial. – Pode ser medido com facilidade. – Tem ampla distribuição. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 58 Benchmarks e SPEC Um pacote de benchmark é uma coleção de programas, definidos em uma linguagem de alto nível, que, juntos, tentam oferecer um teste representativo de um computador em determinada área de aplicação ou de programação de sistema. O mais conhecido conjunto de pacotes de benchmark é definido e mantido pela Standard Performance Evaluation Corporation (SPEC), um consórcio da indústria. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 59 Benchmarks e SPEC O pacote de benchmark mais conhecido da SPEC é o SPEC CPU2006. Trata-se do pacote padrão da indústria para aplicações com uso intensivo do processador. Ou seja, o SPEC CPU2006 é apropriado para medir o desempenho de aplicações que gastam a maior parte de seu tempo realizando cálculos, em vez de E/S. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 60 Benchmarks e SPEC Outros pacotes SPEC são os seguintes: – SPECviewperf: mede o desempenho de gráficos 3D. – SPECwpc: mede os aspectos chave de desempenho da máquina com base em diversas aplicações comerciais, incluindo mídia e entretenimento, desenvolvimento de produtos, serviços financeiros e energia. – SPECjvm2008: avalia o desempenho do hardware combinado e os aspectos de software da plataforma cliente JVM (Java Virtual Machine). Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 61 Benchmarks e SPEC Outros pacotes SPEC são os seguintes: – SPECjbb2013 (Java Business Benchmark): avalia as aplicações de e-commerce de servidor baseadas em Java. – SPECsfs2008: avalia a velocidade e as capacidades de solicitações de manuseio dos servidores de arquivo. – SPECvirt_sc2013: avalia o desempenho de servidores de Datacenters usados na consolidação de virtualização de servidores. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 62 Benchmarks e SPEC Para entender melhor os resultados publicados de um sistema usando CPU2006, é importante entender os seguintes termos usados na documentação da SPEC: Benchmark: um programa escrito em uma linguagem de alto nível que pode ser compilado e executado em qualquer computador que implemente o compilador. Sistema em teste: é o sistema a ser avaliado. Máquina de referência: cada benchmark é executado e medido em sua máquina para estabelecer o tempo de referência para tal benchmark. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 63 Benchmarks e SPEC Métrica de base: o compilador padrão com mais ou menos configurações padrão deve ser usado em cada sistema em teste para atingir resultados comparativos. Métrica de pico: possibilitaaos usuários tentar otimizar o desempenho do sistema ao otimizar a saída do compilador. Métrica de velocidade: é simplesmente uma medida do tempo que leva para a execução de um benchmark compilado. Métrica de taxa: é uma medida de quantas tarefas um computador pode cumprir em certa quantidade de tempo. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 64 Benchmarks e SPEC Fluxograma da avaliação SPEC Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Fonte: Arquitetura e Organização de Computadores, Willian Stallings 10a edição - Editora Pearson - 2018 65 Benchmarks e SPEC O pacote de benchmark SPEC CPU2006 foi atualizado em Junho/2017 para o SPEC CPU2017. O SPEC CPU2017, atualmente na versão 1.1, é a principal atualização dos softwares de avaliação de desempenho de CPU em mais de 10 anos. Esse novo pacote da SPEC inclui: – Cargas de trabalho atualizadas e melhoradas com aumento de tamanho e complexidade; – Uso do OpenMP para permitir medidas de desempenho em sistemas paralelizados com múltiplos cores e threads; e – Uma métrica opcional para medida de consumo de energia. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br 66 Benchmarks e SPEC O SPEC CPU2017 foi criado para fornecer uma medida comparativa de desempenho de computação intensiva para um abrangente conjunto de hardware usando cargas de trabalho de aplicações reais de usuários. O pacote contém 43 benchmarks, organizados em 4 suítes: – SPECspeed® 2017 Integer and SPECspeed® 2017 Floating Point suites: » Usados para comparar o tempo que um computador completa tarefas únicas. – The SPECrate® 2017 Integer and SPECrate® 2017 Floating Point suites: » Medem a vazão ou o trabalho por unidade de tempo. O SPEC CPU2017 é comercializado hoje por US$ 1.000. Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br
Compartilhar