Buscar

exercícios arquitetura de computadores 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INSTITUTO FEDERAL DE BRASÍLIA
Campus Taguatinga
Curso Ciência/Licenciatura em Computação
Disciplina Arquitetura de Computadores I
Professor Tiago Trindade da Silva
Exercícios
 1. Descreva os passos que transformam um programa escrito em linguagem de alto
nível tal como a linguagem C em uma representação do que é diretamente executado
por uma CPU.
O programa é compilado para um programa em linguagem assembly, o qual é então 
montado (assembled) em um programa em linguagem de máquina.
 2. Assuma que um display colorido use 8 bits para cada uma das cores (vermelho,
verde e azul), por pixel e um frame com tamanho de 1280 x 1024. Qual é o tamanho
mínimo, em bytes, para o frame buffer armazenar este frame?
número_pixels = 1280 x 1024 = 1.310.720 pixels
frame_buffer_sizemin = número_pixels x quantidade_matriz = 1.310.720 x 3 
frame_buffer_sizemin = 3.932.160 bytes/frame
 3. Considere três processadores diferentes P1, P2 e P3, que executam o mesmo
conjunto de instruções (ISA). P1 tem uma taxa de clock de 3 GHz e um CPI de 1,5.
P2 tem uma taxa de clock de 2,5 GHz e um CPI de 1,0. P3 tem uma taxa de clock de
4 GHz e um CPI de 2,2.
 a) Qual processador tem o maior desempenho expressado em instruções por
segundo?
Desempenho P1 (instruções/segundo) = 3 x 109 / 1,5 = 2 x 109.
Desempenho P2 (instruções/segundo) = 2,5 x 109 / 1,0 = 2,5 x 109.
Desempenho P3 (instruções/segundo) = 4 x 109 / 2,2 = 1,8 x 109.
P2 executa mais instruções por segundo.
 b) Se cada processador executar um programa diferente onde todos tenham o
mesmo tempo de execução igual a 10 segundos, qual o número de ciclos e o
número de instruções para cada programa?
1
ciclos P1 = 10 x 3 x 109 = 30 x 109
ciclos P2 = 10 x 2,5 x 109 = 25 x 109
ciclos P3 = 10 x 4 x 109 = 40 x 109
Número de Instruções P1 = 30 x 109 / 1,5 = 20 x 109.
Número de Instruções P2 = 25 x 109 / 1,0 = 25 x 109.
Número de Instruções P3 = 40 x 109 / 2,2 = 18,18 x 109.
 c) Estamos tentando reduzir o tempo de execução em 30%, mas isto leva a um
incremento de 20% no CPI. Qual a taxa de clock que teremos que obter para
reduzir este tempo? (Determine a taxa de clock de cada um dos processadores P1,
P2 e P3).
CPInovo = CPIvelho x 1,2 
CPI1 = 1,5 x 1,2 = 1,8 CPI2 = 1,0 x 1,2 = 1,2 CPI3 = 2,2 x 1,2 = 2,6
frequencia = Número de instruções x CPI / tempo
Temponovo = 0,7 x Tempovelho = 0,7 x 10 = 7 segundos
frequencia1 = 20 x 109 x 1,8 / 0,7 = 5,14 GHz
frequencia2 = 25 x 109 x 1,2 / 0,7 = 4,28 GHz
frequencia2 = 18,18 x 109 x 2,6 / 0,7 = 6,75 GHz
 4. Considere duas implementações diferentes do mesmo ISA. As instruções podem ser
divididas em quatro classes conforme o seu CPI (classes A, B, C e D). P1 com uma
taxa de clock de 2,5 GHz e CPIs de 1, 2, 3 e 3, respectivamente para as classes A, B,
C e D. P2 com uma taxa de clock de 3 GHz e CPIs de 2, 2, 2 e 2. Dado um programa
com uma contagem dinâmica de instruções de 1,0 x 106 instruções divididas nas três
classes da seguinte forma: 10% classe A, 20% classe B, 50% classe C e 20% classe
D. Qual implementação é mais rápida?
 a) Qual é o CPI global para cada implementação?
Classe A = 0,1 x 1,0 x 106 = 1 x 105 instruções
Classe B = 0,2 x 1,0 x 106 = 2 x 105 instruções
Classe C = 0,5 x 1,0 x 106 = 5 x 105 instruções
Classe D = 0,2 x 1,0 x 106 = 2 x 105 instruções
Temp CPU P1 = (1 x 105 x 1 + 2 x 105 x 2 + 5 x 105 x 3 + 2 x 105 x 3)/(2,5 x 109)
Temp CPU P1 = 10,4 x 10-4 s
Temp CPU P2 = (1 x 105 x 2 + 2 x 105 x 2 + 5 x 105 x 2 + 2 x 105 x 2)/(3,0 x 109)
Temp CPU P2 = 6,66 x 10-4 s
P2 é mais rápida
2
CPI = tempo CPU x clock / quantidade de instruções
CPI(P1) = 10,4 x 10-4 x 2,5 x 109 / 106 = 2,6
CPI(P2) = 6,66 x 10-4 x 3 x 109 / 106 = 2,0
 b) Encontre os ciclos de clock necessários todos os casos.
Ciclos clock(P1) = 1 x 105 x 1 + 2 x 105 x 2 + 5 x 105 x 3 + 2 x 105 x 3 
Ciclos clock(P1) = 26 x 105.
Ciclos clock(P2) = 1 x 105 x 2 + 2 x 105 x 2 + 5 x 105 x 2 + 2 x 105 x 2
Ciclos clock(P2) = 20 x 105
 5. Compiladores podem ter um profundo impacto no desempenho de uma aplicação.
Assume que um programa, compilador A resulta em uma contagem dinâmica de
instruções de 1,0 x 109 e tem um tempo de execução de 1,1 segundo, enquanto o
compilador B resulta em uma contagem dinâmica de instruções de 1,2 x 109 e um
tempo de execução de 1,5 segundos.
 a) Encontre o CPI médio para cada programa dado que o processador tem um ciclo
de clock de 1 ns.
frequencia = 1 / tempo de um ciclo de clock = 1 / 1 x 10-9 = 1 x 109 Hz ou 1 GHz
CPI = TCPU x frequencia / Número de Instruções
CPIComp_A = 1,1 x 1 x 109 / 1,0 x 109 = 1,1
CPIComp_A = 1,5 x 1,0 x 109 / 1,2 x 109 = 1,25
 b) Assuma que os programas compilados rodam em dois processadores diferentes.
Se os tempos de execução são os mesmos, o quanto mais rápido é o clock do
processador rodando o código gerado pelo compilador A do que o processador
rodando o código gerado pelo compilador B?
freq.(B)/freq.(A) = (Núm. de Instr.(B) x CPI(B))/(Núm. de Instr.(A) x CPI(A))
freq.(B)/freq.(A) = (1,2 x 109 x 1,25) / ( 1,0 x 109 x 1,1) = 1,37 vezes.
 c) Um novo compilador foi desenvolvido e usa somente 6,0 x 108 instruções e tem
um CPI médio de 1,1. Qual é o speedup (“ganho de velocidade”) deste novo
compilador em relação aos compiladores A e B no processador original?
T= CPI x Número de instruções / clock
T = Tnovo = (CPI x Núm. de Inst. / Clock) / (CPInovo x Núm. Instr.novo / Clock)
T = Tnovo = (CPI x Núm. de Inst.) / (CPInovo x Núm. Instr.novo)
T(A) = T(A)novo = (1,1 x 1,0 x 109)/(1,1 x 6 x 108) = 1,67
T(B) = T(B)novo = (1,25 x 1,2 x 109)/(1,1 x 6 x 108) = 2,27 
3
 6. O Pentium 4 Prescott, lançado em 2004, tem um taxa de clock de 3,6 GHz e uma
tensão de operação de 1,25V. Assuma que, na média, ele consome 10 W de potência
estática e 90 W de potência dinâmica.
O Core i5 Ivy Bridge, lançado em 2012, tem uma taxa de clock de 3,4 GHz e uma
tensão de 0,9 V. Assuma que, na média, ele consome 30 W de potência estática e 40
W de potência dinâmica.
 a) Encontre para cada processador a carga capacitiva média.
C = 2 x DP/(V2 * F)
C: Carga capacitiva, DP: Potência Dinâmica, V : tensão de operação,
Frequência de Operação
C(Pentium4) = 2 x 90 /1,252 x 3,6 x 109 = 3,2 x 10-8 Faraday
C(Ivy Bridge) = 2 x 40 / 0,92 x 3,4 x 109 = 2,9 x 10-8 Fraday
 b) Encontre o percentual da potência total dissipada composta pela potência estática
e a taxa da potência dinâmica para cada tecnologia.
%Pdissipada = 100 x Potência Estática / (Potência Dinâmica + Potência Estática)
%Pdissipada(Pentium 4) = 100 x 10 / ( 90 + 10 ) = 100 x 10 / 100 = 10%
%Pdissipada(Ivy Bridge) = 100 x 30 / ( 30 + 40 ) = 100 x 30 / 70 = 42,9%
 c) Se a potência total é reduzida por 10%, qual deverá ser a tensão de operação para
manter a mesma corrente de leakage (“vazamento”). Obs: Potência é o produto
da corrente pela tensão.
(PEstáticanova + PDinâmicaNova ) / (PEstáticavelha / PDinâmicaVelha) = 0,9
Pdinâmicanova = C x Vnova2 x F
PEstáticavelha = Vvelha x I
PEstáticanova = Vnovo x I
Desta forma:
Vnovo = [PDinâmicaNova / (C x F)]1/2
Pdinâmicanova = 0,90 x (PEstáticavelha + PDinâmicaVelha) – Pestáticanova
Pestáticanova = Vnovo x (PEstáticavelha / Vvelha)
Pentium 4
Pestáticanova = Vnovo x (10 / 1,25) = Vnovo x 8
PDinâmicanova = 0,90 x 100 – Vnovo x 8 = 90 – Vnovo x 8
Vnovo = [90 – Vnovo x 8) / (3,2 x 108 x 3,6 x 109)]1/2 = 0,85 V.
Core I5 Ivy Bridge
Pestáticanova = Vnovo x (30 / 0,9) = Vnovo x 33,3
4
PDinâmicanova = 0,90 x 70 – Vnovo x 33,3 = 63 – Vnovo x 33,3
Vnovo = [63 – Vnovo x 33,3) / (2,9 x 108 x 3,4 x 109)]1/2 = 0,64 V.
 7. Assuma que um processador tem os seguintes CPIs: instruções aritméticas 1,
instruçõesde load/store (carga/armazenamento) 12 e instruções de branch (salto) 5.
Também assuma que rodando em um único processador um programa executa 2,56 x
109 instruções aritméticas, 1,28 x 109 instruções de load/store e 256 x 106 instruções
de branch. Considere que cada processador tem uma taxa de clock de 2 GHz.
Considere que o programa é paralelizado para rodar sobre múltiplos cores, a
quantidade de instruções aritméticas e de load/store por processador é dividida por
0,7 x p (onde p é a quantidade de processadores), mas o número de instruções de
branch por processador continua o mesmo.
 a) Encontre o tempo total de execução para este programa quando são utilizados 1,
2, 4 e 8 processadores. Também mostre o speedup relativo para 2, 4 e 8
processadores com relação ao resultado de 1 processador.
 b) Se o CPI das instruções aritméticas foi dobrado, qual o impacto no tempo de
execução do programa com 1, 2, 4 e 8 processadores?
 c) Para quanto o CPI de load/store deve ser reduzido para que um único
processador tenha o mesmo desempenho que 4 processadores que utilizam os
valores de CPI originais?
 8. Assuma que um wafer com 15 cm de diâmetro tenha um custo de 12, contém 84 dies
e tem uma taxa de defeitos de 0,020 defeitos/cm2. Assuma que um wafer com
diâmetro de 20 cm tenha um custo de 15, contenha 100 dies e uma taxa de defeito de
0,031 defeitos/cm2.
 a) Qual o yield de cada wafer?
área do wafer = 3,1416 x r2 (área do círculo)
area die15 = área wafer / dies por wafer = 3,1416 x 7,52 / 84 = 2,10 cm2
area die20 = 3,1416 x 102 / 100 = 3,14 cm2
Yield15 = 1 / (1 + (0,020 * 2,10/2))2 = 0,9593
Yield20 = 1 / (1 + (0,031 * 3,14/2))2 = 0,9093
 b) Determine o custo por die para cada wafer.
custo por die = custo do wafer / dies * yield
custo por die15 = 12 / (84 * 0,9593) = 0,1489
custo por die20 = 15 / (100 * 0,9093) = 0,1650
5
 c) Se o número de dies por wafer for incrementado por 10% e os defeitos por
unidade de área aumentar 15%, determine a área do die e o yield para cada wafer.
área do wafer = 3,1416 x r2 (área do círculo)
area die15 = área wafer / dies por wafer = 3,1416 x 7,52 / ( 84 x 1,1) = 1,91 cm2
area die20 = 3,1416 x 102 / (100 x 1,1) = 2,86 cm2
Yield15 = 1 / (1 + (0,020 * 1,15 * 1,91/2))2 = 0,9575
Yield20 = 1 / (1 + (0,031 * 1,15 * 2,86/2))2 = 0,9082
 d) Se o processo de fabricação melhorar o yield de 0,92 para 0,95 qual será a taxa
de defeitos por área para cada versão da tecnologia dada a área do die de 200
mm2.
defeitos_area = (1 – yield1/2) / (yield1/2 * área_die/2)
defeitos_area0,92 = (1 – 0,921/2) / (0,921/2 * 2/2) = 0,043 defeitos/cm2
defeitos_area0,95 = (1 – 0,951/2) / (0,951/2 * 2/2) = 0,026 defeitos/cm2
 9. O resultado do benchmark bzip2 do SPEC CPU2006 rodando em um AMD
Barcelona tem uma quantidade de instruções de 2,389 x 1012, com um tempo de
execução de 750 segundos. O tempo da máquina de referência é 9650 segundos.
 a) Qual o CPI para um tempo de ciclo de clock de 0,333 ns?
CPI = taxa de clock x TempoCPU / quantidade de instruções
taxa de clock = 1 / perídos = 1 / 0,333 x 10-9 = 3 GHz
CPI(bzip2) = 3 x 109 x 750 / (2389 x 109) = 0,94.
 b) Qual o valor do SPECratio?
SPECratio = tempo ref. / tempo CPU
SPECratio(bzip2) = 9650 / 750 = 12.86
 c) Qual o aumento no tempo da CPU se a quantidade de instruções do benchmark
aumentar 10% e o CPI continuar o mesmo?
CPI = taxa de clock x TempoCPU / quantidade de instruções
Se o CPI e a taxa de clock não aumentam o aumento no tempo de CPU é igual ao
aumento no número de instruções, o qual é 10%.
 d) Qual o aumento no tempo da CPU se a quantidade de instruções do benchmark
aumentar 10% e o CPI aumentar 15%?
TempoCPUvelho = Quantidade de instruções x CPI / Taxa de clock
TempoCPUnovo = 1,1 x Quantidade de instruções x 1,15 CPI / Taxa de clock
TempoCPUnovo / TempoCPUvelho =(1,1 x Quantidade de instruções x 1,15 x CPI /
6
Taxa de clock) / (Quantidade de instruções x CPI / Taxa de clock) 
TempoCPUnovo / TempoCPUvelho = 1,1 x 1,15 = 1,265
O tempoCPU é aumentado em 26,5%
 e) Qual o valor do SPECratio para o resultado encontrado no item “d” (anterior)?
SPECratio = tempo referencia / TempoCPU
SPECrationovo / SPECratiovelho = TempoCPUVelho / TempoCPUnovo = 1 / 1,265 =
0,7905. A SPECratio diminui em 21%
 f) Suponha que estamos desenvolvendo uma nova versão do processador AMD
Barcelona com taxa de clock de 4 GHz. Nesta nova versão adicionamos algumas
instruções novas ao ISA de forma que a quantidade de instruções para o bzip2 foi
reduzida em 15%. O tempo de execução foi reduzido para 700 segundos e o novo
SPECratio é de 13,7. Qual o valor do novo CPI?
CPI = Tempo CPU x taxa de clock / Quantidade de Instruções
CPU = 700 x 4 x 109 /( 0,85 x 2389 x 109) = 1,37
 g) O valor do CPI encontrado no item “f” é maior que o encontrado no item “a” tal
como a taxa de clock aumento de 3 GHz para 4 GHz. Determine se o aumento do
CPI é similar ao aumento da taxa de clock. Se sim, por que?
Aumento Clock = Taxa clocknova / Taxa clockvelha = 4 x 109 / 3 x 109 = 1,33
CPI4GHz/CPI3GHz = 1,37 / 0,94 = 1,45.
São diferentes porque embora a quantidade de instruções tenha sido reduzida em
15%, o tempo de CPU foi reduzido por uma porcentagem menor.
 h) Para outro benchmark, libquantum, assuma um tempo de execução de 960 ns, um
CPI de 1,61 e uma taxa de clock de 3 GHz. Determine a quantidade de instruções
se o tempo de execução for reduzido em 10% sem afetar o CPI e com uma taxa
de clock de 4 GHz.
Quantidade de instruções = TempoCPU x Taxa de Clock / CPI
Quantidade de Instruções = 960 x 0,9 x 4 x 109/ 1,61 = 2146 x 109.
 i) Determine a taxa de clock necessária para termos uma redução de 10% no tempo
de CPU enquanto mantemos o número de instruções e o CPI inalterados.
Taxa de clock = Quantidade de Instruções x CPI / TempoCPU
Taxa de clocknova = Quantidade de Instruções x CPI / 0,9 x TempoCPU
7
TempoCPU = Quantidade de instruções x CPI / Taxa de clock
Taxa de clocknova = (1 / 0,9) x 3 x 109 = 3,33 GHz
 j) Determine a taxa de clock se o CPI for reduzido em 15% e o tempo de CPU for
reduzido em 20%, com a mesma quantidade de instruções.
Taxa de clock = Quantidade de Instruções x CPI / TempoCPU
Taxa de clocknova = Quantidade de Instruções x 0,85 x CPI / 0,8 x TempoCPU
Taxa de clocknova = 0,85 / 0,8 x taxa de clockvelha = 1,0625 x 3 GHz = 3,18 GHz
 10. Quando um programa é adaptado para rodar em um multiprocessadores o
tempo de execução em cada processador é composto pelo tempo de computação e o
tempo de overhead necessário para bloqueio de seções críticas e/ou o envio de
mensagens entre os processadores.
 a) Assuma que um programa tenha um tempo de execução de 100 segundos em um
processador. Quando executado em p processadores, cada processador necessita
de t/p segundo para execução do programa acrescido de 4 segundos de overhead
independente do número de processadores. Determine o tempo de execução por
processador para 2, 4, 8, 16, 32, 64 e 128 processadores. Para cada caso, liste o
speedup relativo a execução em um único processador e a taxa entre o speedup
atual e o speedup ideal (se não existisse o overhead).
Lista de Equações
Custo por die= Custo por wafer
(Dies por Wafer )×(Yield )
Correção na equação abaixo:
Yield= 1
(1+(Defeitos por Área×Die por Área2 ))
2
Equação corrigida, trocar Die por área para Área do Die
Yield= 1
(1+(Defeitos por Área× Area do Die2 ))
2
8
Desempenho= 1
Tempo deexecução 
DesempenhoX
DesempenhoY
=
Tempode ExecuçãoY
Tempo de ExecuçãoX
=n
TempodeCPU=Ciclos deClock daCPU×TempodoCiclo daCPU
TaxadeClock= 1
TempodociclodaCPU
TempodeCPU=Ciclos deClock daCPU
TaxadeClock
Ciclos deClockdaCPU=Quantidade de Instruções×CPI
TempodeCPU=Ciclos deClock daCPU×TempodoCiclo daCPU
TempodeCPU=Quantidade de Instruções×CPI×Tempo doCiclodeClock
TempodeCPU=Quantidade de Instruções×CPI
Taxa deClock
Ciclos deClock=∑
i=1
n
(CPI i×Quantidadede Instruçõesi)
CPIMédio=
Ciclos deClock
Quantidade de Instruções
=∑
i=1
n
(CPI i×Quantidade de InstruçõesiQuantidadede Instruções )
PowerDin∝
1
2
CargaCapacitiva×Tensão2×Frequênciade Chaveamento
SPECrate=Tempode Referência
Tempode Execução
MédiaGeométrica=
n√∏i=1
n
TaxadoTempode Execução i
9
10

Continue navegando