Universidade Federal de Minas Gerais Campus Pampulha Ciência da Comp utação DCC / ICEX Lista de Exercícios 4 Trabalho apresentado à disciplina Organização de Computadores I Leonel Fonseca Ivo - 20070414118 Abril / 2 0 08
Exercício s referente s ao Capítulo 4 4.1. Para P1, M2 é 4 / 3 (2 / 1.5 segun dos) vezes m ais rápido que M1. Para P2, M1 é 2 d uas vezes m ais rápido que M2 (10 / 5 segun dos). 4.2. A taxa de execução para cada m á quina é a ra zão entre o nú mero de instruções e o te m po total para executar o progra ma. Sendo assim, o n ú mero de instruções por segundo para P1 e m M1 é de 2.5 * 109 IPS (5 * 109 / 2). Já o nú mero de instruções por segundo para P1 em M2 é de 4 * 109 IPS (6 * 109 / 1.5). 4.3. M2 é 1.33 (4 /3) vezes m ais rápido que M1, m a s custa 1.6 vezes m ais (8 /5). Como 1.6 é m aior que 1.33, M1 te m melhor valor. 4.6. Para executar P1 1600 vezes em M1 e M2 são necessários 3200 e 2400 segundos res pectiva mente. Ou seja, sobra m 400 segun dos para M1 e 1200 segundos para M2. Nesse te m po, M1 po de rodar 80 iterações de P2 (400 segun dos / [5 segundos / iteração]) enquanto M2 pode rodar 120 iterações (1200 segun dos / [10 segundos / iteração]). Logo, M2 te m m elhor perfor mance para essa carga de trabalho. Quanto ao custo efetivo, o custo é de $6.25 ($500 /[80 iterações / hora]) por iteração para M1, enquanto p ara M2 o custo é de $6.67 ($800 /[120 iterações / h ora]). M1 te m, portanto, o m elhor custo efetivo. 4.7. a. Tempo = (Segundos por ciclo) * (Ciclos por instrução) * (Número de instruções). Dessa for ma, o te m po de CPU esperado é de: Tempo = [1 s / (5*109 ciclos)] * (0.8 ciclos /instrução) * (7.5 * 109 instruções) Tempo = 1.2 segun dos b. P recebeu 1.2 / 3 segundos, ou seja, 40% do te m po total de CPU. 4.8. A seqüência ideal p ara P1 é u ma composta totalmente de instruções da classe A, a qual poss ui CPI de 1. Logo, o pico de perfor mance de M1 é de (4 * 109 ciclos por segundo) / (1 ciclo por instrução) 4000 MIPS. Analoga mente, a seqüência de instruções ideal para M2 é com posta so mente de instuções de A, B e C, os quais tê m todos CPI de 2. Assim, o pico de perfor ma nce de M2 é de (6 * 109 ciclos por segundo) / (2 ciclos por instrução) 3000 MIPS. 4.9. O CPI m é dio de P1 é (1*2 + 2 + 3 + 4 + 3) / 6 7 / 3 O CPI m é dio de P2 é (2*2 + 2 + 2 + 4 + 4) / 6 8 / 3 [(6 * 109 ciclos por segun do) / (8 / 3 ciclos por instrução)] / [(4 * 109 ciclos por segundo) / (7 /3 ciclos por instrução)] = 21 / 16 Logo, P2 é 21 / 16 vezes m ais rápido que P1.
4.10. Usando C1, O CPI médio p ara I1 é de (0.4*2 + 0.4*3 + 0.2*5) = 3. Já para I2, o CPI m é dio usando C1 é de (0.4*1 + 0.2*2 + 0.4*2) = 1.6. Logo, com C1, I1 é (6 109 / 3))/(3 109 / 1.6) = 16 / 15 m ais rápido que I2. Usando C2, o CPI m é dio para I2 é (.4 * 2 +.2 * 3 +.4 * 5) = 3.4, e o CPI médio para I2 é (.4 * 1 +.4 * 2 +.2 * 2) = 1.6. Logo, usando C2, I2 é m ais rápido que I1 17 / 16 vezes. ((3 109) / 1.6) / (6 109) / (3.4) = 17 / 16. Quanto ao resto das questões, será necessário ter o IPC de I1 e I2 sobre progra mas compilados pelo C3. Para I1, C3 pro du z progra mas com CPI (.6 * 2 +.15 * 3 +.25 * 5) = 2,9. I2 te m CPI (.6 * 1 +.15 * 2 +.25 * 2) = 1,4. O melhor com pilador para cada m á quina é o que pro du z progra mas com a m e nor CPI média. Assim, que m com prou ou I1 ou I2, usaria C3. Em seguida, o dese m penho dos I1 em comparação com I2 usando seu com pilador ótimo (C3) é ((6 10^9 ciclos / segun do) / (2,9 ciclos / instrução ))/(( 3 10^9 ciclos / segundo) / (1,4 Ciclos / instrução)) = 28 / 29. Assim, I2 te m melhor dese m penho e é o que se deve comprar. 4.11. O progra ma P rodando na m áquina M de mora ( 10^9 ciclos por segun do) * 10 segundo = 1010 ciclos. P de mora ( 10^9 ciclos por segun do) * 9 segundo = 9 10^9 ciclos. Isso deixa 10^9 ciclos a menos, após a otimização. Sempre que se substitui u m m ult por dois ad d, leva - se 4-2 * 1 = 2 ciclos a m e nos por substituição. Assim, não deve ter sido 10^9 ciclos / (2 ciclos / substituição) = 5 10^8 s ubstituições para transfor mar P em P '. 4.12. A primeira opção redu z o n ú mero de instruções e m 80%, m a s au menta o te m po em 120%. Assim, ele terá: 0,8 * 1,2 = 0,96 vezes o te m po do pri meiro caso. A segunda opção re move 20% / 2 = 10% das instruções e au me nta o te m po necessário para 110%. Por isso, terá 0,9 * 1,1 = 0,99 vezes m ais te m po que o primeiro caso. Portanto, a p rimeira opção é o m ais rápido dos dois, e é m ais rápido do que o orginial. Assim deve - se ter u m hardware q faça coleta de lixo auto maticamente. 4.14. O te m po total de execução para as m áquinas são as seguintes: Computa dor A = 2 + 20 + 200 = 222 segundos Computer B = 5 + 20 + 50 = 75 segundos Computa dor C = 10 + 20 + 15 = 45 segundos
Assim o computador C é o m ais rápido. É 75 / 45 = 5 / 3 vezes m ais rápido do que o computa dor B e 222 / 45 = 74 / 15 vezes m ais rápido do que o computa dor A. 4.15. Com a nova ponderação, o te m po total de execução para o grupo de progra mas é: Computa dor A = 8 * 2 + 2 * 20 + 1 * 200 = 256 segundos Computer B = 8 * 5 + 2 * 20 + 1 * 50 = 130 segundos Computa dor C = 8 * 10 + 2 * 20 + 1 * 15 = 135 segundos Assim, com este trabalho, o com p utador B é m ais rápido em u m fator de 135 / 130 = 1,04 com res peito ao computa dor C e u m fator de 256 / 130 = 1,97 com relação ao com p utador A. Esta nova ponderação reflete u m bias dos resultados anteriores por u m bias em direção aos p rogra mas 1 e 2, o que resultou em computadores A e B com parativamente melhor do que antes. 4.16. Comparando - se os te m pos de execução do progra ma no computador A, te mos que para obter a m es ma quantidade de te m po de execução, vamos ter de executar o progra ma 1 100 vezes, o p rogra ma 2 10 vezes, e o progra ma 3 1 vez. Isso resulta nos seguintes te m pos de execução: Um computador = 100 * 2 + 10 * 20 + 1 * 200 = 600 segun doa Com putador B = 100 * 5 + 10 * 20 + 1 * 50 = 750 segun dos Com putador C = 100 * 10 + 10 * 20 + 1 * 15 = 1215 segun dos Portanto, u m com p utador é m ais rápido para este trabalho. Usando os te m pos de execução do progra ma no computador B para deter minar a ponderação, te mos a ra zão de 20:5:2 para os progra mas 1, 2 e 3, res pectivamente. Isto resulta nos seguintes te m pos de execução: Com putador A = 20 * 2 + 5 * 20 + 2 * 200 = 540 segun dos Com putador B = 20 * 5 + 5 * 20 + 2 * 50 = 300 segun dos Com putador C = 20 * 10 + 5 * 20 + 2 * 15 = 330 segun dos Logo, neste caso, B é o computa dor m ais rápido. Usando os te m pos de execução do progra ma no computador C, obte mos u m a ra zão de 6:3:4, resultan do nos seguintes te m pos de execução total: Com putador A = 6 * 2 + 3 * 20 + 4 * 200 = 872 segun dos Com putador B = 6 * 5 + 3 * 20 + 4 * 50 = 290 segun dos Com putador C = 6 * 10 + 3 * 20 + 4 * 15 = 180 segun dos Portanto, neste caso, o computador C é m ais rápido. Tendo feito a po n deração para unifor mizar os te m pos em u m a deter minada m á quina, acabou - se por rodar progra mas que esse com putador poderia fazer o m ais rápido na m aioria das vezes e os progra mas em que ele era m ais lento m e nos frequente mente. Isso ten de a ser u ma com parativa melhoria no te m po de execução da m áquina cujo te m po está sen do nor malizando (não há garantias quanto aos viés
das ponderações para os progra mas em que outras m áquinas são melhores). Neste exe m plo, este tipo de po n deração foi suficiente para fazer com que o com p uta dor parecesse m ais rápido. 4.17. CPI = (Ciclos / segundo) / (Instruções / segundo) Portanto, a CPI de P1 em M1 é (4 109 ciclos / segun do) / (2,5 109 instruções / segun do) = 1,6 CPI. E a CPI de P1 em M2 é (6 109 ciclos / segun do) / (4 109 instruções / segun do) = 1,5 CPI. 4.18. Sabendo a CPI, a taxa de clock, be m como o te m po total de execução, e quere mos encontrar o n ú mero total de instruções. Para isso, pode mos utilizar a seguinte equação: (Ciclos / instrução) / (Cycles / segun do) * Instruções = (Tempo de Execução) Temos (5 segun dos) * (4 10^9 ciclos / segun do) / (0,8 cicles /instrução) = 12,5 * 10^9 instruções de P2 e m M1, e (10 segun dos) * (6 10^9 ciclos / segun do) / (1,5 CPI) = 40 10^9 instruções de P2 e m M2. 4.29. O CPI m é dio é (0.15 * 12 ciclos /instrução) + (0.85 * 4 ciclos /instrução) = 5.2 ciclos /instrução dos quais 0.15 * 12 = 1.8 ciclos /instrução, que é devido às instruções de m ultiplicação. Isso significa que as m ultiplicações to ma m 1.8 / 5.2 = 34.6% do te m po de CPU. 4.30. Progra ma Computa dor A Com putador B Computa dor C 1 10 1 0.5 2 0.1 1 5