revisão da prova - usp · revisão da prova 3 questão 18: em um computador, todas as atividades...
TRANSCRIPT
Í
Revisão da prova
2
Questão 20: A exploração do paralelismo em nível de instruções em uma arquitetura superescalar é realizada identificando no fluxo de instruções aquelas que são independentes a fim de que sejam processadas simultaneamente....
Revisão da prova
3
Questão 18: Em um computador, todas as atividades necessitam de sincronização. O clock serve justamente a este fim, ou seja, basicamente, atua como um sinal para sincronismo. A medição do clock é feita em hertz (Hz), a unidade padrão de medidas de frequência, que indica o número de oscilações ou ciclos que ocorre dentro de uma determinada medida de tempo, no caso, segundos. Por exemplo, o processador Intel® Core™2 Duo, com clock de 2,4 GHz executa:
a. 2 bilhões de tarefas por segundo
b. 4,8 bilhões de tarefas por segundo
c. 4 bilhões de tarefas por segundo
d. 2,4 bilhões de tarefas por segundo ?
ExemploAmdahl
4
• Considere uma melhoria em uma CPU que resultou emuma computação dez vezes mais rápida em relação a CPUoriginal. Esta CPU é ocupada com computação apenas40% de todo tempo. Qual é o speedup total obtido pelaintrodução da melhoria?
• Solução:– Caso comum: 40%– FraçãoX = 0.4– SpeedupX = 10
– O speedup total é dado por:
𝑆𝑝𝑒𝑒𝑑𝑢𝑝𝑡𝑜𝑡𝑎𝑙 =1
1 − 𝐹𝑟𝑎𝑐𝑡𝑖𝑜𝑛𝑋 +𝐹𝑟𝑎𝑐𝑡𝑖𝑜𝑛𝑋𝑆𝑝𝑒𝑒𝑑𝑢𝑝𝑋
ExemploAmdahl
5
• Considere uma melhoria em uma CPU que resultou emuma computação dez vezes mais rápida em relação a CPUoriginal. Esta CPU é ocupada com computação apenas40% de todo tempo. Qual é o speedup total obtido pelaintrodução da melhoria?
• Solução:– Caso comum: 40%
– FraçãoX = 0.4
– SpeedupX = 10
– O speedup total é dado por:
𝑆𝑝𝑒𝑒𝑑𝑢𝑝𝑡𝑜𝑡𝑎𝑙 =1
1 −0.4 +0.4
10
= 𝟏. 𝟓𝟔
Exercício 1
6
• Suponha que um programa seja executado em 100segundos em um computador. Considere que amultiplicação é responsável por 80 segundos do tempo deexecução. O quanto precisamos melhorar (speedupX) sequisermos que o programa seja executado 4 vezes maisrápido?– Dica:
• Speedup total = 4
𝑆𝑝𝑒𝑒𝑑𝑢𝑝𝑡𝑜𝑡𝑎𝑙 =1
1 − 𝐹𝑟𝑎𝑐𝑡𝑖𝑜𝑛𝑋 +𝐹𝑟𝑎𝑐𝑡𝑖𝑜𝑛𝑋𝑆𝑝𝑒𝑒𝑑𝑢𝑝𝑋
Exercício 1Resolução
7
• Suponha que um programa seja executado em 100segundos em um computador. Considere que amultiplicação é responsável por 80 segundos do tempo deexecução. O quanto precisamos melhorar (speedupX) sequisermos que o programa seja executado 4 vezes maisrápido?– Solução:
• Speedup total = 4• Caso comum: 80% do tempo da computação = 0.8
𝑆𝑝𝑒𝑒𝑑𝑢𝑝𝑡𝑜𝑡𝑎𝑙 =1
1 − 𝐹𝑟𝑎𝑐𝑡𝑖𝑜𝑛𝑋 +𝐹𝑟𝑎𝑐𝑡𝑖𝑜𝑛𝑋𝑆𝑝𝑒𝑒𝑑𝑢𝑝𝑋
⇒ 4 =1
1 −0.8 +0.8
𝑆𝑝𝑒𝑒𝑑𝑢𝑝𝑋
= ... ⇒ SpeedupX = 16
Exercício 2
8
• Um programa é executado por 1 segundo em umprocessador com tempo de ciclo de clock de 50 nsege vazão de 15 MIPS.
1. Quantos CPI tem esse programa?
fCLOCK = 1/ TCLOCK
CPI = fCLOCK / MIPS*106
Exercício 2Resolução
9
• Um programa é executado por 1 segundo em umprocessador com tempo de ciclo de clock de 50 nsege vazão de 15 MIPS.
1. Quantos CPI tem esse programa?
TCLOCK = 50 nseg ⇒ fCLOCK = 1/ TCLOCK = 20 MHz
CPI = fCLOCK / MIPS*106 = 20* 106 / 15* 106 = 1,33
Exercício 3
10
• Um programa é executado por 1 segundo em um processador com tempo de ciclo de clock de 50 nsege vazão de 15 MIPS.
2. Vamos assumir que, dada alguma técnica de otimização, a vazão do programa é otimizada. Neste novo cenário, 40% das instruções do programa são executadas com CPI = 1, enquanto a fração remanescente de instruções (60%) é executada com a mesma CPI calculada no exercício anterior (1,33).
• Qual é o speedup do cenário 2 para o cenário 1?
• Qual é a vazão expressa em MIPS?
Speedup2 = CPI1 / CPI2 Speedup = 1 / [(1-FE)+FE/SpeedupE]
Speedup2 = MIPS2 / MIPS1
Exercício 3Resolução
11
• Um programa é executado por 1 segundo em um processador com tempo de ciclo de clockde 50 nseg e vazão de 15 MIPS.2. Vamos assumir que, dada alguma técnica de otimização, a vazão do programa é otimizada. Neste
novo cenário, 40% das instruções do programa são executadas com CPI = 1, enquanto a fração remanescente de instruções (60%) é executada com a mesma CPI calculada no exercício anterior (1,33).
• Qual é o speedup do cenário 2 para o cenário 1?Solução:FE = 0,40SpeedUpE = CPI1 / CPIE = 1,33 / 1 = 1,33
• Qual é a vazão expressa em MIPS?Solução:Speedup = 1 / [(1-FE)+FE/SpeedupE] = 1 / (0,6 + 0,4 / 1,33) = 1,11
Speedup = MIPS2 / MIPS1
⇒ MIPS2 = Speedup * MIPS1 = 1,11 * 15 = 16,65
Exercício 4
12
• Um programa é executado por 1 segundo em um processador com tempo de ciclo de clock de 100 nseg e CPI = 1,5.
– Qual é a vazão expressa em MIPS?
fCLOCK = 1/ TCLOCK
CPI = fCLOCK / MIPS*106
Exercício 4
13
• Um programa é executado por 1 segundo em um processador com tempo de ciclo de clock de 100 nseg e CPI = 1,5.
– Qual é a vazão expressa em MIPS?
TCLOCK = 100 nseg ⇒ fCLOCK = 1/ TCLOCK = 10 MHz
MIPS = fCLOCK / CPI *106 = 10* 106 / 1,5* 106 = 6,66
Exercício 5
14
• Um programa é executado por 1 segundo em um processador com tempo de ciclo de clock de 100 nseg e CPI = 1,5.
– Vamos assumir que dada alguma técnica de otimização, 30% das instruções do programa são executadas com CPI=1, enquanto a fração remanescente é executada com a mesma CPI.
– Qual é o speedup do cenário 2 em relação ao 1?
– Qual é a vazão expressa em MIPS?
SpeedupE = CPI1 / CPIE Speedup = 1 / [(1-FE)+FE/SpeedupE]
Speedup2 = MIPS2 / MIPS1
Exercício 5
15
• Vamos assumir que dada alguma técnica de otimização, 30% das instruções do programa são executadas com CPI=1, enquanto a fração remanescente é executada com a mesma CPI.
– Qual é o speedup do cenário 2 em relação ao 1?Solução:
FE = 0,30SpeedUpE = CPI1 / CPIE = 1,5 / 1 = 1,5
Speedup = 1 / [(1-FE)+FE/SpeedupE] = 1 / (0,7 + 0,3 / 1,5) = 1,11
– Qual é a vazão expressa em MIPS?Solução:
Speedup = MIPS2 / MIPS1
⇒ MIPS2 = Speedup * MIPS1 = 1,11 * 6,66 = 7,4
Exercício 6
16
• Vamos considerar um computador executando o seguinte conjunto de instruções:
1. Qual é o CPI médio assumindo que o período de clock é de 5 ns?
2. De quanto é o speedup assumindo que, introduzindo uma cache de dados otimizada, instruções de LOAD levarão 2 ciclos de clock?
3. Qual é o speedup assumindo que, introduzindo uma unidade de desvio otimizada, instruções de desvio levarão 1 ciclo de clock?
4. Qual é o speedup assumindo a introdução de 2 ALUs trabalhando em paralelo?
5. Qual é o speedup assumindo a introdução de todas as otimizações feitas acima?
Exercício 6
17
• Vamos considerar um computador executando o seguinte conjunto de instruções:
1. Qual é o CPI médio assumindo que o período de clock é de 5 ns?Solução:
CPI1 = CPIm = 0,5 * 1 + 0,2 * 5 + 0,1 * 3 + 0,2 * 2 = 2,2
Qual é a taxa de vazão expressa em MIPS, no caso 1?
MIPS = fCLOCK / (CPI *106) = 200 * 106 / 2,2 * 106 = 90,9
CPIm = 𝒊=𝟏
𝒏(𝑪𝑷𝑰𝒊 × 𝑭𝒊) Onde Fi =
𝐼𝑖𝐼𝐶
, “frequência da instrução”
Exercício 6
18
• Vamos considerar um computador executando o seguinte conjunto de instruções:
2. Quanto é o Speedup assumindo que, introduzindo uma cache de dados otimizada, instruções de LOAD levarão 2 ciclos de clock?Solução:CPI2 = CPIm = 0,5 * 1 + 0,2 * 2 + 0,1 * 3 + 0,2 * 2 = 1,6
Speedup = CPI1 / CPI2 = 2,2 / 1,6 = 1,375
Exercício 6
19
• Vamos considerar um computador executando o seguinte conjunto de instruções:
3. Qual é o Speedup assumindo que, introduzindo uma unidade de desvio otimizada, instruções de desvio levarão 1 ciclo de clock?Solução:CPI3 = CPIm = 0,5 * 1 + 0,2 * 5 + 0,1 * 3 + 0,2 * 1 = 2
Speedup = CPI1 / CPI3 = 2,2 / 1,6 = 1,1
Exercício 6
20
• Vamos considerar um computador executando o seguinte conjunto de instruções:
4. Qual é o Speedup assumindo a introdução de 2 ALUstrabalhando em paralelo?Solução:
CPI4 = CPIm = 0,5 * 0,5 + 0,2 * 5 + 0,1 * 3 + 0,2 * 1 = 1,95
Speedup = CPI1 / CPI4 = 2,2 / 1,95 = 1,13
Exercício 6
21
• Vamos considerar um computador executando o seguinte mix de instruções:
5. Qual é o Speedup assumindo a introdição de todas as otimizações feitas acima?Solução:CPI5 = CPIm = 0,5 * 0,5 + 0,2 * 2 + 0,1 * 3 + 0,2 * 1 = 1,15
Speedup = CPI1 / CPI5 = 2,2 / 1,15 = 1,91