Você está na página 1de 3

CURSOS: ENGENHARIA DE COMPUTAÇÃO E ENGENHARIA ELÉTRICA

Disciplina: ENGC50 - Sistemas Microprocessados Turma: T02


Professor: Tiago Trindade Ribeiro Sala: 07.03.05
Semestre: 2019.2 Horário: Segundas e Quartas - 20:20h às 22:10h

Primeira Lista de Exercı́cios

1. Quais os nı́veis que constituem as máquinas de vários 14. Quais são as diferenças entre mapeamento direto, ma-
nı́veis modernas? Descreva as caracterı́sticas de cada peamento associativo, e mapeamento associativo por
nı́vel. conjuntos?

2. Qual é, em termos gerais, a distinção entre organização 15. Considere uma máquina com memória principal de 216
de computadores e arquitetura de computadores? bytes e tamanho de bloco de 8 bytes. Assuma que o
cache é baseado em mapeamento direto e tem 32 li-
3. Diferencie os conceitos de função e estrutura, no con- nhas.
texto computacional. (a) Como a palavra de endereço de 16 bits é dividida
em tag, line number e byte number ?
4. Quais são as 4 principais funções do computador? (b) Em qual linha os bytes com os seguintes endereços
seriam armazenados?
5. Enumere e defina brevemente os componentes estrutu-
∗ 0x111B
rais principais do computador e do processador.
∗ 0xC334
∗ 0xD01D
6. Quais são os estados tı́picos envolvidos na execução de
uma instrução? ∗ 0xAAAA
(c) Suponha que o byte com endereço 0x1A1A está
7. Quais são as abordagens usuais para tratar interrupções armazenado no cache. Quais são os endereços dos
múltiplas? outros bytes armazenados na mesma linha?
(d) Quantos bytes podem ser armazenados no cache?
8. O que diferencia as estratégias de projeto CISC e RISC (e) Qual a razão de armazenar a tag no cache?
?

16. Para um cache associativo, um endereço de memória


9. Caracterize a Arquitetura Harvard e a Arquitetura Von principal é visto como consistindo de dois campos. Lis-
Neumman. tar e definir os dois campos.

10. Descreva o procedimento para execução de instruções 17. Uma cache associativa em conjunto consiste em 64 li-
adotando as seguintes estratégias: nhas, ou slots, divididas em conjuntos de quatro linhas.
a) pipeline A memória principal contém 4 K blocos de 128 pala-
vras cada. Mostre o formato dos endereços da memória
b) arquiteturas superescalares principal.

11. Qual é a relação geral entre o tempo de acesso à 18. Uma cache associativa em conjunto com duas linhas
memória, custo e capacidade? por conjuntos possui linhas de 16 bytes e um tamanho
total de 8 KBytes. A memória principal de 64 MBytes é
12. Como o princı́pio de localidade está relacionado com a endereçável por byte. Mostre o formato dos endereços
utilização de múltiplos nı́veis de memória? da memória principal.

19. Considere uma cache de 64 Kbytes, 4 bytes por linha


13. Explique e exemplifique os termos Big Endian e Little
Endian. e uma memória principal de 16 MB. Para os endereços
hexadecimais da memória principal 111111, 666666,
BBBBBB, mostre, em formato hexadecimal, os valores c) Qual é o número máximo de erros simples que se
dos campos correspondentes a cada um dos métodos pode corrigir neste código?
de mapemento1 .
29. Seja a seguinte palávra de memória:
20. Enumere e comente os algoritmos de substituição de
cache mais comuns. 10100101
a) Obtenha a palavra codificada em código Hamming
21. Qual é a distinção entre localidade espacial e localidade b) Altere aleatoriamente um dos bits da palavra re-
temporal? sultante e aplique o algoritmo de correção.

22. Qual dos algoritmos de substituição de cache estudados


30. Quais os tipos de barramento? Descreva as carac-
faz melhor uso da localidade temporal?
terı́sticas de cada tipo.

23. Considere o trecho de código a seguir: 31. O que são os “flags” de uma ULA? Qual é a sua utili-
dade?
for(i=0; i<20; i++)
for(j=0; j<10; j++) 32. Um formato de microinstrução codificado é usado.
a[i]=a[i]*j Mostre como um campo de micro-operação de 9 bits
pode ser dividido em subcampos para especificar 46
(a) Dê um exemplo de localidade espacial no código.
ações diferentes.
(b) Dê um exemplo de localidade temporal no código.
33. Um processador tem 16 registradores, uma ALU com 16
funções lógicas e 16 aritméticas e um deslocador com
24. Diferencie as polı́ticas de escrita em memória write th-
8 operações, todos conectados por um barramento in-
rough e write back.
terno do processador. Projete um formato de microins-
trução para especificar as várias micro-operações para
25. Como é possı́vel verificar a existência de erros em pa- o processador.
lavras armazenadas em mémoria através da técnica de
CRC (cyclic redundancy check) ? OBS: Para as questões a seguir, considere o exemplo da Mi-
croarquitetura IJVM (Mic-1).
26. Considerando o polinômio gerador G(x) = x4 + x + 1
obtenha os bits de CRC para os seguintes dados a serem 34. Tabela de operações da ULA da Mic-1 mostra uma
armazenados em determinada memória: maneira de fazer com que “A” apareça na saı́da da
ULA. Sabendo que cada um dos 32 bit slices da ULA
(a) 10111011. são igualmente implementados, determine outra com-
(b) 10101010. binação binária que desempenhe a mesma função.
(b) 11110000.
35. Demonstre qual função a ULA deve desempenhar
quando:
27. Como é possı́vel verificar a existência de erros em pa-
lavras armazenadas em mémoria através da técnica de
CRC (cyclic redundance check) ?

28. Sejam as seguintes palavras de código armazenadas em


certa memória: 36. Descreva, resumidamente, de quais fatores depende o
projeto do Nı́vel da Microarquitetura.
10100110 - 11111111 - 01011001 - 10000101
37. Qual a composição básica e quais as funcionalidades
Responda: dos elementos que formam o Mic-1 ?
a) Qual é a distância de Hamming do Código?
38. Um registrador pode ser lido e escrito no mesmo ciclo
b) Qual é o número máximo de erros simples que se de clock sem produzir lixo?
pode detectar neste código?
1 Para o mapeamento associativo em conjunto, considerar duas vias.
39. Descreva o que ocorre durante cada subciclo em um 47. Determine o código em linguagem de montagem resul-
ciclo do caminho de dados. tante da compilação do código Java abaixo. Assuma
que que o compilador utilizado otimiza o código gerado.
40. Após implementar o MIC-1 em laboratório, você mede
i = j + k;
os tempos de propagação do circuito e averı́gua que o
if (i==3)
mesmo gasta 1ns para carregar o MIR, 1ns para habili-
i = 0;
tar um registrador para que este coloque seu conteúdo
k = 0;
no barramento B, 3ns aguardando a operação da ULA
else
e do deslocador, e 1ns para que os resultados se pro-
j = j - 1;
paguem de volta aos registradores. Se o intervalo alto
do clock não pode ser inferior a 2ns para que o se-
quenciador funcione corretamente, determine a máxima 48. Considere o seguinte comando Java:
frequência de clock com que seu microprocessador será
capaz de operar (despreze os tempos de transição de
borda). Justifique sua resposta através de um diagrama i = j + k + 4;
de tempo indicando cada intervalo da temporização. Encontre duas traduções diferentes desse comando para
a linguagem de montagem do IJVM.
41. Qual o objetivo de uma microinstrução? Descreva a
função dos sinais que compõem uma palavra de con- 49. Encontre o comando Java que produziu o seguinte
trole (microinstrução)? código IJVM:
ILOAD j
42. o campo da microinstrução que controla o acesso ao ILOAD k
barramento B está codificado em 4 bits. Mas o campo ISUB
do barramento C é controlado por um mapa de bits BIPUSH 6
(cada sinal de controle é representado por um bit da ISUB
microinstrução). Explique por quê. DUP
IADD
43. Na MIC-1 existe uma caixa identificada como “Bit ISTORE i
alto”. Mostre como seria o circuito eletrônico para a
implementação dessa função lógica. 50. Ao traduzir o comando MAL:

44. Quando o campo JMPC de uma microinstrução é if (Z) goto L1; else goto L2
habilitado. o conteúdo do MBR passa pela função
OR (caixa com um cı́rculo) junto com o campo seria possı́vel “L1” estar, no endereço 0x40 e “L2” em
NEXT ADDRESS. para formar o endereço da próxima 0x140? Justifique sua resposta.
instrução. Existe alguma circunstância na qual faz sen-
tido o campo NEXT ADDRESS ser igual a 0x1FF e 51. No microprograma para o MIC-1, na microinstrução
usar JMPC? if icmpeq3, o conteúdo do MDR é copiado para o re-
gistrador H e na linha seguinte o conteúdo de TOS é
45. Como a arquitetura IJVM divide a memória? Caracte- subtraı́do desse valor. Certamente seria melhor ter um
rize cada uma das partes. único comando como:
if_cmpeq3: Z = MDR - TOS; rd
46. Descreva o que faz cada instrução abaixo e quais os
passos necessários (microinstruções) para a execução Por que isso não é feito?
das mesmas (informe o conteúdo dos registradores en-
volvidos e da pilha a cada passo). 52. Quanto tempo demora para que uma implementação
do MIC-1 rodando a 200 MHz execute o seguinte co-
a) IAND (considere que as palavras do topo da pilha mando Java:
são 0x42 e 0x25).
b) IFEQ offset (considere o deslocamento = 0x0123 i = j + k;
e a palavra do topo da pilha igual a 0x00) A resposta deve ser dada em nanossegundos.
c) IFLT offset (considere o deslocamento = 0x0123
e a palavra do topo da pilha igual a 0x42) 53. Escreva um microcódigo para a Mic-I a fim de im-
d) SWAP (considere que as palavras do topo da pi- plementar a instrução JVM POPTWO. Essa instrução
lha são 0x42 e 0x25). duas palavras do topo da pilha.

Você também pode gostar