Buscar

Lista Prova2 Celso Saibel

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 4 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

(1) 
LISTA DE EXERCÍCIOS – CONSTRUÇÃO DA CPU 
1. Uma CPU pode ser modelada por meio de 2 partes básicas: caminho de dados e controle. Qual a 
função de cada uma das partes e como elas são usadas para executar as instruções de um programa. 
 
OBS.: O deslocamento de 2 bits permite que o campo de endereço de 26 bits acesse 228 posições de memória, os 6 bits 
restantes são provenientes do PC. Assim, o desvio incondicional é relativo ao PC. Caso o desvio deva ser de 32 bits é 
necessário realizar um desvio usando um registrador. 
2. Em geral, processadores monociclos possuem relógio (clock) fixo. Com isso o tempo de 
execução de qualquer instrução é dado pelo tempo da instrução mais lenta. Numa implementação 
com relógio variável, cada classe de instrução possui um tempo de execução diferente que depende 
apenas dos atrasos no caminho de dados. Compare as implementações usando argumentos ligados 
ao controle (relógio e sinais) e ao desempenho final. 
3. Implemente a instrução addi (soma imediata). Acrescente os caminhos de dados e sinais de 
controle que forem necessários para o funcionamento da instrução. Mostre as modificações na 
arquitetura monociclo da figura anterior (Figura 5.19 da 3ª Edição). 
addi rs, rt, operando rs ←←←← rt + operando 
4. Idem exercício 2, mas com a instrução a ser acrescentada sendo a bne (branch if not equal). 
bne rs, rt, label se(rs != rt) $pc ←←←← label + $pc + 4 
 senão $pc ←←←← $pc + 4 
5. Idem exercício 2, mas com a instrução a ser acrescentada sendo uma variante da lw (load word). 
lw rd, rs, rt rd ←←←← M[rs + rt] 
6. Explique porque não é possível implementar a instrução swap sem modificar o banco de 
registradores. 
swap rs, rt rs ←←←← rt 
 rt ←←←← rs 
Arquitetura de Computadores (2) 
7. Explique como seria possível implementar a instrução swap quebrando-a numa sequência de 
instruções executáveis nessa arquitetura. 
8. Seria possível eliminar o sinal de controle MemParaReg (MemtoReg) usando no seu lugar o 
sinal LerMem? 
9. Determine se algum dos sinais de controle, diferentes do MemParaReg (MemtoReg), da 
implementação monociclo podem ser substituídos por outros sinais já existentes. Por que? 
10. Modifique a organização do MIPS de forma a tirar a capacidade de especificar um 
deslocamento para instruções com acesso à memória. Especificamente, todas as instruções do tipo 
load-store com deslocamento diferente de 0 devem tornar-se pseudoinstruções e devem ser 
implementadas através de duas instruções. Exemplo: 
lw $t0, 104($t1) addi $at, $t1, 104 
lw $t0, $at 
 Que mudanças devem ser realizadas no caminho de dados e de controle para que esta modificação 
funcione? 
11. Considerando a execução completa numa CPU monociclo de uma instrução do tipo R add $r1, 
$r2, $r3, mostre o conteúdo as de cada um dos registradores e da ULA durante cada uma das 
etapas de execução da instrução? Suponha que a arquitetura disponível é a mesma da Figura 5.19 
mostrada anteriormente e que os tempos para propagação (veja na figura) dos sinais na ULA, 
somador, escrita e leitura em memória, escrita e leitura em registradores são, respectivamente, 2ns, 
1ns, 4ns e 1ns. Os demais componentes têm tempos associados desprezíveis. Considerando o 
intervalo de tempo de 1 ciclo de clock, monte um gráfico para ilustrar em qual a partir de qual 
instantes de tempo os sinais de controle associados à execução de R devem ser gerados. Qual o 
tempo mínimo para a geração do sinal de controle RegDest indicado na figura? 
12. Repita a questão para a execução de uma instrução do tipo memória lw $r1, 80($r2) 
13. Repita a questão para a execução de uma instrução do tipo memória sw $r2, 4($r5) 
14. O que diferencia uma CPU monociclo de uma CPU multiciclo? 
15. A arquitetura multiciclo (figura a seguir) utiliza 1 única memória para dados e instruções, além 
de registradores extras, porém, somos obrigados a trabalhar com 2 memórias separadas (instruções 
e dados) na CPU monociclo da Figura 5.19 (anterior). Explique. 
16. Qual a função dos registradores A, B e ALUOut na CPU multiciclo da Figura 5.26 a seguir. 
Qual a função de cada um dos multiplexadores nessa mesma arquitetura? 
Arquitetura de Computadores (3) 
 
17. Um benchmark executado na arquitetura multiciclo anterior revelou o seguinte mix de 
instruções: 25% de loads, 10% stores, 11% de branches (beq), 2% de jumps e 52% de operações de 
ULA. Calcule o CPI médio, assumindo que cada etapa/estado de execução da CPU multiciclo é 
feita em 1 ciclo de clock? Em que situação encontraria o pior valor possível para o CPI? E o melhor 
valor? 
18. Se o mesmo benchmark fosse executado na arquitetura monociclo, qual seria o CPI médio? 
Analisando os valores encontrados nessa questão e na anterior, o que pode ser concluído com 
relação ao desempenho das implementações? Discuta essa questão. 
19. Suponha que o conjunto de instruções da arquitetura anterior passe a incluir operações de 
multiplicação e divisão de inteiros a serem executados num hardware especial associado à ULA. 
Qual o impacto disso na arquitetura da CPU (via de dados e controle). Você pode usar argumentos 
relacionados aos sinais de controle, inclusão de unidades, tempo de clock, etapas de execução. 
20. Suponha que será necessário modificar o hardware de controle para que seja possível executar a 
instrução bne (branch if not equal) pela CPU. Defina os novos estados de controle e os valores dos 
sinais associados a esses estados a partir da máquinas de estados da Figura 5.38. 
21. Suponha que será necessário agora acrescentar estados a mais na máquina de controle para o 
tratamento de instruções cuja execução ainda não está implementada na CPU. Essas instruções 
gerariam opcodes inválidos que se fossem detectados na etapa de decodificação, deveriam provocar 
o desvio do fluxo de programa para uma rotina de tratamento de erro. Em outras palavras, elas 
provocariam uma mudança no PC para uma rotina de tratamento de erro. Modifique a máquina de 
estados final da Figura 5.38 para incluir esse tratamento de erros (note que encontrar um opcode 
errado significa fazer um jump para um endereço fixo e pré-determinado). 
22. Discuta a afirmação: Já que a instrução jump não usa registradores, nem computa valores para 
definir o desvio, ela poderia, em tese, estar concluída já no segundo estágio da execução multiciclo. 
Isso poderia ser feito? Explique. 
23. Controladores por máquinas de estados são geralmente implementados usando lógica 
combinacional. Controladores implementados por microprogramas usam memórias. Arquiteturas 
modernas (a partir do 486, por exemplo) utilizam controles híbridos: parte hardwired para execução 
de instruções simples e parte microcódigo para instruções mais complexas. Explique a diferença 
entre as formas de controle e a vantagem de se usar uma abordagem “híbrida” como ocorre nas 
máquinas atuais. 
24. Repita a questão 15 considerando uma CPU multiciclo. 
Arquitetura de Computadores (4) 
25. Existem duas possibilidades de implementação do controle multiprogramado (ver figura a 
seguir): (a) sem nenhuma codificação, sendo que cada microinstrução corresponde a uma linha da 
memória armazena todos os bits para os sinais de controle da via de dados e (b) com codificação, 
sendo que cada microinstrução define um conjunto de sinais a ser enviado para uma lógica 
combinacional para gerar sinais de controle. 
- Considerando o esquema da figura a seguir para implementar o controle microprogramado, calcule 
o tamanho da memória de microcódigo supondo uma implementação de controle (a); 
- Compare as abordagens (a) e (b) em termos da complexidade e velocidade. 
PCWrite
PCWriteCond
IorD
MemtoReg
PCSource
ALUOp
ALUSrcB
ALUSrcA
RegWrite
AddrCtl
Outputs
Microcode memory
IRWrite
MemRead
MemWrite
RegDst
Control unitInput
Microprogram counter
Address select logic
O
p[5
–
0]
Adder
1
Datapath
Instruction register 
opcode field
BWrite

Continue navegando