Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA ARQUITETURA DE COMPUTADORES Exercícios – Lista 1 1. Considere um computador no qual o interpretador do nível 0 (hardware interpretando o microcódigo) gasta 25 nanosegundos (25 x 10-9 segundos) por microinstrução, e o interpretador do nível 1 (microcódigo interpretando a linguagem de máquina convencional) necessita de 12 microinstruções para interpretar uma instrução de máquina convencional. Um programa teste, já em linguagem de máquina convencional, leva 30 segundos para executar. (a) Quanto tempo levará o programa teste para executar se o tempo para executar uma microinstrução for reduzido para 20 nanosegundos? (b) Quanto tempo levará o programa teste para executar se uma instrução de máquina convencional necessitar de somente 10 microinstruções para ser interpretada? Reposta: pode-se calcular o número de instruções do programa teste da seguinte maneira: 30 = x . 12 . 25.10-9 => x = 30 / (12 . 25.10-9) => x = 108 instruções (em linguagem de máquina, nível 2) (a) tempo = 108 . 12. 20.10-9 = 24 segundos (b) tempo = 108 . 10. 25.10-9 = 25 segundos 2. Considere um computador multinível em que todos os níveis diferem. Cada nível possui instruções m vezes mais poderosas do que aquelas do nível logo abaixo, ou seja, uma instrução do nível r pode fazer o trabalho de m instruções do nível r - 1. Se um programa de nível 1 requer k segundos de execução, quanto tempo programas equivalentes levariam nos níveis 2, 3 e 4, assumindo que n instruções de nivel r são necessárias para interpretar uma única instrução de r + 1? Resposta: Um total de n instruções do nível 1 são necessárias para interpretar uma instrução do nível 2, n2 instruções do nível 1 são necessárias para interpretar uma instrução do nível 3, e n3 instruções do nível 1 são necessárias para interpretar uma instrução do nível 4. Mas se x é o número de instruções do nível 1 que foram requeridas para a execução do programa em k segundos, então somente x/m instruções do nível 2 seriam necessárias, e somente x/m2 instruções do nível 3, e somente x/m3 instruções do nível 4. Se nos expressarmos isto em termos do número de instruções do nível 1 requeridas para interpretar cada camada e multiplicarmos por k/x segundos por instrução do nível 1, nós obteremos k*n/m segundos para o programa do nível 2, k*n2/m2 segundos para o programa do nível 3 e k*n3/m3 segundos para o programa do nível 4. 3. Converta para decimal, binário e hexadecimal os seguintes números em base três: 120, 21012, 1020102. Reposta: (a) decimal: 15, 194, 902, (b) binário: 1111, 11000010, 1110000110 e (c) hexadecima: F, C2, 386 4. Efetue as operações utilizando o complemento a 2: (a) 101101 - 100111, (b) 10000110 - 110011, (c) 111100 - 101011. Considere 8 bits na representação dos números. Reposta: (a) 000110, (b) 01010011, (c) 00010001 5. Desenhe o diagrama de uma memória 2 x 2 construída com flip-flops (sinais D, Q, CK)..