Buscar

IAC-INF1029-Vol2-Questões de Desempenho

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

Continue navegando