2ª Lista de Exercícios de Arquitetura de Computadores
Questões
1. Um microprocessador realiza uma sondagem periódica (polling) junto a um módulo de E/S a cada 0,5 ms. Cada sondagem em si gasta 500 ciclos. Assuma que o microprocessador somente faz este polling durante as fatias de tempo em que os programas de usuário não estão sendo executados, de modo que não haja tempos de comutação de contexto envolvidos nas operações de E/S. Quantos ciclos por segundo o microprocessador gasta com a sondagem?
2. Um módulo de E/S efetua 150 solicitações de interrupção por segundo a um microprocessador. Cada interrupção demora 10.000 ciclos para ser efetivamente tratada. Considere que este microprocessador gasta 1.000 ciclos para efetuar uma mudança de contexto e iniciar o tratamento de interrupções, e outros 1.000 ciclos para fazer uma comutação de contexto de volta para o programa que estava sendo executado quando a interrupção ocorreu. Quantos ciclos por segundo o processador gasta ao todo com as solicitações do módulo de E/S?
3. Considere uma Arquitetura de Von Neumann formada por um microprocessador, uma Memória Principal e um Módulo de E/S conectado a um disco. Os três primeiros são interconectados por um barramento, e o disco é conectado ao Módulo de E/S. Suponha que um arquivo de 10 MB, formado por páginas de 4 KB, seja copiado integralmente do disco para a Memória Principal. Esse procedimento dura 1 segundo e custa ao microprocessador 20.000.000 de ciclos. Supondo que o processador opera a 200 MHz, calcule o percentual de tempo gasto com esta operação. Em seguida, insira no barramento um controlador de DMA que age copiando uma página do arquivo por vez para a Memória Principal. Considerando que o microprocessador gasta 1.000 ciclos para iniciar uma operação de DMA e 1.500 ciclos para responder a uma interrupção do controlador de DMA quando a transferência de uma página é completada, calcule para este caso qual o percentual de tempo gasto pelo microprocessador na transferência do arquivo.
4. Considere um disco que possua 96 setores de 512 B por trilha e que gire a 360 rpm. Um microprocessador lê um setor do disco usando E/S dirigida por interrupção, com uma interrupção a cada Byte transferido. Se o microprocessador gasta 2,5 microsegundo para processar cada interrupção, qual é a porcentagem do tempo gasto pelo microprocessador no tratamento de E/S, tomando como base o tempo gasto para ler um setor? Caso fosse inserido um controlador de DMA capaz de ler um setor inteiro do disco por vez, qual seria o novo valor do percentual de tempo gasto pelo microprocessador no tratamento de E/S, tomando como base a mesma referência?
5. Um controlador de DMA transfere 1 B por vez para a Memória Principal utilizando a técnica de roubo de ciclo, a partir de um Módulo de E/S que transfere dados à taxa de 1.200 B/s ininterruptamente. O microprocessador é capaz de buscar 1.000.000 de instruções por segundo na Memória Principal. Qual é o percentual de diminuição na velocidade do microprocessador em virtude da atividade do controlador de DMA?
6. Considere um sistema com 64 MB de Memória Principal. Supondo que a paginação em nível único é utilizada, que o tamanho da página é de 4 KB e que os endereços físicos e lógicos atribuídos a um processo são de 32 bits, calcule o percentual de memória
processo. Assuma que cada entrada na Tabela de Páginas consuma 3 B.
7. Suponha um espaço de endereçamento físico de 28 bits e um processo com espaço de endereçamento virtual de 32 bits. Calcule quantos bits são necessários para especificação do número de página do processo e do número de blocos da Memória Principal, considerando um tamanho de página de 2 KB.
8. Em um sistema com 128 MB de Memória Principal, o espaço de endereçamento físico é de 36 bits e processos possuem um espaço de endereçamento lógico de 48 bits. Se o sistema utiliza páginas de 4 KB, quantas páginas e blocos os espaços de endereçamento lógico e físico podem suportar? Quantos blocos existem realmente na Memória Principal?
9. Suponha que a tabela de páginas para um processo em execução atualmente pareça como a ilustrada abaixo. Número de página
0
4
1
7
2
—
Número de Bloco
3
2
4
—
5
0
A memória principal é endereçada no nível de Byte, tudo é numerado a partir do 0 (zero) e os números apresentados são expressos usando o sistema de numeração decimal. O tamanho da página é de 1024 B. A quais endereços físicos correspondem cada um dos seguintes endereços virtuais?
a. 1052
b. 2221
c. 5499
10. Dado o seguinte conjunto de mapeamentos de endereços para uma arquitetura na qual os endereços físicos e virtuais têm 32 bits de comprimento e páginas de 4 KB de tamanho, qual é o endereço físico que corresponde a cada um dos endereços virtuais?
Número de página
Número de bloco
0xabc89
0x97887
0x13385
0x99910
0x22433
0x00001
0x54483
0x1a8c2
a. 0x22433007
b. 0x13385abc
c. 0xabc89011
11. Um sistema tem endereços virtuais de 32 bits, endereços físicos de 24 bits e páginas de 2 KB
a. Qual é o tamanho de cada entrada na Tabela de Páginas, se for utilizada uma Tabela de Páginas de nível único? Arredonde para cima, para o Byte mais próximo.
b. Quantas entradas na Tabela de Páginas são necessárias para este sistema?
c. Quanta área de armazenamento é necessária para a Tabela de Páginas?
12. Assuma que um processo esteja dividido em quatro segmentos de tamanhos iguais e que, a cada segmento, seja atribuída uma tabela de oito páginas (temos, portanto, o emprego combinado da paginação e da segmentação). Assuma também que o tamanho da página seja de 2 KB.
a. Qual o tamanho máximo de cada segmento?
b. Qual é o máximo espaço de endereçamento lógico para o processo?
c. Assuma que um elemento na localização física 00021ABC seja acessado pelo processo. Qual é o formato do endereço lógico que o processo gera para ele? Qual o máximo espaço de endereçamento físico para o sistema?
13. Considere um espaço de endereçamento lógico paginado (composto por 32 páginas de 2 KB cada) mapeado em um espaço de memória física de 1 MB.
a. Qual é o formato do endereço lógico do processador?
b. Na estrutura da tabela de páginas, quantos bits são utilizados para identificar um bloco?
c. Repita o procedimento anterior supondo que o espaço físico de memória fosse reduzido pela metade.
14. Para um sistema com endereços físicos e virtuais de 32 bits e tamanho de página de 1 KB, quantos níveis seriam necessários em uma Tabela de Páginas multinível? Quanta área de armazenamento adicional seria necessária para a Tabela de Páginas multinível, quando comparada com uma Tabela de Páginas de nível único, para o mesmo sistema? Para simplificar os cálculos, suponha que, além do número de bloco, sejam necessários outros 10 bits em cada entrada da Tabela de Páginas.
15. Um sistema tem páginas de 4 KB e utiliza uma Tabela de Páginas multinível. Se o sistema exige uma Tabela de Páginas de quatro níveis, quais são os números máximo e mínimo de bits nos seus endereços virtuais? Para simplificar os seus cálculos, assuma que as entradas na Tabela de Páginas ocupam 8 B em todos os níveis da Tabela de Páginas, independentemente do número de bits dos endereços virtuais.
16. Considere um sistema no qual o espaço de endereçamento virtual é de 64 B, o tamanho da página é de 4 KB, e a quantidade de memória física é de 512 MB.
a. Qual o espaço requerido por uma Tabela de Páginas de nível único associada a um processo, assumindo que cada entrada nesta Tabela de Páginas consome 4 B?
b. Em quantos níveis a paginação pode ser feita de forma qua cada Tabela de Páginas caiba em uma única página?
c. Considere um projeto alternativo baseado em uma IPT Linear, na qual cada entrada tenha o tamanho de 10 B. Qual o espaço a ser consumido por essa tabela?
d. Considere agora um novo projeto alternativo, desta vez baseado em uma IPT com função Hash. Supondo que cada entrada na Tabela de Âncoras Hash
consuma 4 B e que cada entrada na IPT propriamente dita consuma 14 B, qual o espaço a ser consumido pelas duas tabelas deste projeto?
20. Considerando que os números abaixo se encontram na representação de Complemento de Dois, efetue as seguintes operações:
a. 111000 – 110011
b. 11001100 – 101110
c. 01101111 + 01100010
d. 111100001111 – 110011110011
e. 11000011 – 11101000
f. 11010010 – 01111101
21. Expresse os seguintes números na representação de Ponto Flutuante IEEE 754:
a. -5
b. -6
c. -1,5
d. 384
e. 1/16
f. -1/32
22. Mostre qual o modo de endereçamento utilizado em cada uma das instruções que compõem o segmento de código abaixo.
Número
Instrução
Significado
I1
MOVE R1, 5
Carregue o operando "5" no registrador R1
I2
LOAD R2, [0xA4B7]
Carregue o operando localizado no endereço 0xA4B7 da Memória Principal para o registrador R2
I3
ADD R3, R1, R2
Some os operandos localizados em R1 e R2 e armazene o resultado em R3
I4
STORE R3, [0x87FE]
Armazene o operando localizado em R3 no endereço [0x87FE] da Memória Principal
I5
LOAD R4, [0xBB89]
Carregue para R4 o operando localizado no endereço contido no endereço 0xBB89 da Memória Principal
I6
LOAD R5, [R6]
Carregue para R5 o operando localizado no endereço da Memória Principal contido em R6
I7
SUB R8, R4, R5
Subtraia os operandos localizados em R4 e R5 e armazene o resultado em R8
I8
STORE R8, [0xA451]
Armazene o operando localizado em R8 no endereço [0xA451] da Memória Principal
23. Mostre o modo de endereçamento utilizado em cada uma das instruções que compõem o segmento de código abaixo.
Número
Instrução
Significado
I1
MOVE R1, 0
Carregue o operando “0” no registrador R1
I2
MOVE R2, 0
Carregue o operando “0” no registrador R2
I3
LOAD R3, R1, [0xFA54]
Carregue para R3 o operando cujo endereço na MP é a
soma de 0xFA54 com o conteúdo de R1
I4
ADD R2, R2, R3
Some os operandos localizados em R2 e R3 e ponha o resultado em R2
I5
ADD R1, R1, 1
Some o operando localizado em R1 com o operando “1” e armazene o resultado em R1
I6
JNE R1, 5, -6
Se o valor do operando localizado em R1 for igual ao operando “5”, carregue a instrução cujo endereço na MP é o valor atual do PC diminuído de 4 (ou seja, I3)
24. Considere um processador onde haja um pipeline composto dois estágios, denominados BI (Busca de Instrução) e EI (Execução de Instrução). Determine quantas instruções são processadas por ciclo de relógio considerando um programa composto por três instruções genéricas (I1, I2 e I3), e supondo que os estágios de busca e de execução consomem dois ciclos de relógio, cada. Calcule qual é o acréscimo percentual no desempenho gerado pelo pipeline frente a um projeto que não utilize esta estratégia.
25. No pipeline da questão anterior, a duração do estágio de execução é igual a do estágio de busca. Determine quantas instruções são processadas por ciclo de relógio considerando que o estágio de busca consome dois ciclos de relógio e que o estágio de execução consome três ciclos de relógio. Calcule para este caso qual é o acréscimo percentual no desempenho gerado pelo pipeline frente a um projeto que não o utilize.
26. Considere um processador cujo pipeline seja composto por dois estágios genéricos, denominados E1 e E2. Considere que E1 e E2 consumam, cada um, seis ciclos de relógio. Determine quantas instruções são processadas ao longo de 24 ciclos de relógio. Em seguida, divida o estágio E1 em dois outros, denominados E1a e E1b, e suponha que cada um consuma três ciclos de relógio. Divida também o estágio E2 em outros dois, denominados E2a e E2b, e suponha também que cada um deles consuma três ciclos de relógio. Mais uma vez, determine quantas instruções são processadas ao longo de 24 ciclos de relógio.
27. Com relação a questão anterior, quantas instruções seriam processadas ao longo de 24 ciclos de relógio caso dividíssemos o estágio E1 em outros três (E1a, E1b e E1c), cada qual consumindo dois ciclos de relógio, e fizéssemos o mesmo com o estágio E2 – isto é, o dividíssemos em outros três (E2a, E2b e E2c), cada qual consumindo dois ciclos de relógio?
Respostas
2. 1.800.000 ciclos/s.
3. 10 % e 3,2 %, respectivamente.
4. 73,7 % e 0,14 %, respectivamente.
5. 0,12 %.
6. 4,7 %.
7. 21 bits e 17 bits, respectivamente.
8. 236 páginas e 224 blocos, respectivamente; 215 (ou 32.768) blocos.
9. (a) 7196; (b) interrupção por falta de página; (c) 379.
10. (a) 0x00001007; (b) 0x99910abc; (c) 0x97887011.
11. (a) 3 B; (b) 221 entradas; (c) 6 MB.
12. (a) 16 KB; (b) 64 KB; (c) 2 bits (segmento) + 3 bits (página) + 11 bits (deslocamento); 4 GB.
13. (a) 5 bits (página) + 11 bits (deslocamento); (b) 9 bits; (c) 8 bits.
14. 3 níveis (divisão do endereço virtual = 6 + 8 + 8 + 10 bits); 65 KB adicionais.
15. 48 bits (9 + 9 + 9 + 9 + 12) e 40 bits (1 + 9 + 9 + 9 + 12), respectivamente.
16. (a) 254 B, ou 16 PB ( 1 PB = 250 B); (b) 6 níveis: 2 + 10 + 10 + 10 + 10 + 10 + 12 bits; (c) 1,3 MB; (d) 2,3 MB.
17. (a) 000101; (b) 11011110; (c) overflow; (d) 001000011100; (e) 11011011; (f) overflow.
18. (a) 1 10000010 01000000000000000000000
(b) 1 10000010 10000000000000000000000
(c) 1 10000000 10000000000000000000000
(d) 0 10001000 10000000000000000000000
(e) 0 01111100 00000000000000000000000
(f) 1 01111011 00000000000000000000000
19. I1: imediato.
I2: direto.
I3: via registrador.
I4: via registrador.
I5: indireto.
I6: indireto via registrador.
I7: via registrador.
I8: via registrador.
23. I1: imediato.
I2: imediato.
I3: deslocamento (indexação).
I4: via registrador.
I5: via registrador + imediato.
I6: via registrador + imediato + deslocamento (relativo).
24. 0,375 instruções/ciclo; 50% a mais de desempenho.
25. 0,25 instruções/ciclo; 25% a mais de desempenho.
26. 3,5 instruções; 6,5 instruções.
27. 8,5 instruções.
Nenhum comentário:
Postar um comentário