Prévia do material em texto
UNIVERSIDADE SENAI CIMATEC Disciplina: Arquitetura e Organização de Computadores REVISÃO – MÓDULO 1 Professor (a): Anna Lydia Durval 2025.2 EXERCÍCIOS INICIAIS Questão 1. Calcule a expressão booleana (𝐴 & 𝐵)|𝐶 para 𝐴 = 1101 0000 1010 0011 𝐵 = 1111 1111 0000 1111 𝐶 = 0000 0000 0010 0000 Questão 2. A tecnologia usada em processadores que permite a um único núcleo de processador físico simular a existência de mais de um processador lógico é denominada a) Multithreading. b) Hyperthreading. c) Multicore. d) Dualcore e) Symmetric MultiProcessing Questão 3. A técnica que melhora o desempenho dos processadores ao aumentar a vazão de instruções, permitindo a sobreposição da execução de diferentes estágios de múltiplas instruções, é: a) Memória virtual. b) DMA. c) Pipelining. d) Multiprogramação. e) Hot swap. Questão 4. O tratador de interrupções faz parte de qual dos seguintes componentes computacionais? a) CPU. b) Memória RAM. c) Driver de dispositivo. d) Unidade de aritmética e lógica. Questão 5. A organização de um computador simples envolve uma Unidade Central de Processamento, que é composta por várias partes. A parte dessa unidade que é responsável por buscar instruções na memória e determinar o seu tipo é denominada: a) Buscador de Instruções. b) Decodificador de Instruções. c) Unidade de Controle. d) Unidade de Gerenciamento de Processamento. UNIVERSIDADE SENAI CIMATEC PROGRAMAÇÃO EM ASSEMBLY Questão 6. Faça um programa no Simulador “The Knob & Switch Computer” que, utilizando menos recursos possíveis, resolva os itens a seguir. a) Faça multiplicação por somas sucessivas; b) Faça divisão por subtrações sucessivas; c) Dado um número qualquer a, o programa guarde os três sucessores de a em posições seguidas na memória; d) Some 5 números consecutivos; INSTRUÇÕES PARA MÁQUINAS COM DIFERENTES CONJUNTOS DE INSTRUÇÕES Questão 7. Considere quatro máquinas distintas. Cada uma delas é projetada em uma arquitetura cujo conjunto de instruções utiliza somente zero, um, dois ou três endereços. As instruções disponíveis para uso são as seguintes: Escreva um programa para cada uma dessas máquinas, que calcule o valor das seguintes expressões: a) 𝑋 = (𝐴 + 𝐵 × 𝐶)/(𝐷 − 𝐸 × 𝐹) b) 𝑌 = (𝐴 × 𝐵) + (𝐶 × 𝐷) + 𝐸 c) 𝑍 = (𝐴 − 𝐵) × (((𝐶 − 𝐷 × 𝐸)/𝐹)/𝐺) × 𝐻 Questão 8. Suponha um processador baseado em pilha que inclui as operações de pilha PUSH e POP. As operações aritméticas envolvem automaticamente um ou dois elementos do topo da pilha. Comece com uma pilha vazia. Quais elementos restam na pilha depois que as instruções a seguir são executadas? PUSH 4 PUSH 7 PUSH 8 ADD PUSH 10 SUB MUL Questão 9. Converta as seguintes fórmulas da notação polonesa invertida para infixo. a) 𝐴𝐵 + 𝐶 + 𝐷 × b) 𝐴𝐵/𝐶𝐷/+ UNIVERSIDADE SENAI CIMATEC c) 𝐴𝐵𝐶𝐷𝐸 +××/ d) 𝐴𝐵𝐶𝐷𝐸 + 𝐹/+𝐺 − 𝐻/× + Questão 10. Converta as seguintes fórmulas da notação infixo para polonesa invertida. a) 𝐴 + 𝐵 + 𝐶 + 𝐷 + 𝐸 b) (𝐴 + 𝐵) × (𝐶 + 𝐷) + 𝐸 c) (𝐴 × 𝐵) + (𝐶 × 𝐷) + 𝐸 d) (𝐴 − 𝐵) × (((𝐶 − 𝐷 × 𝐸)/𝐹)/𝐺) × 𝐻 Questão 11. Converta as expressões a seguir para a notação de pós-fixo e compare as expressões geradas. Elas são as iguais? 𝑖. 𝐴 + 𝐵 − 𝐶, 𝑖𝑖. (𝐴 + 𝐵) − 𝐶, 𝑖𝑖𝑖. 𝐴 + (𝐵 − 𝐶) Questão 12. Represente graficamente o uso de pilhas para calcular cada etapa do cálculo da expressão (𝐴 − 𝐵) × (((𝐶 − 𝐷 × 𝐸)/𝐹)/𝐺) × 𝐻 Questão 13. Quais dos seguintes pares de fórmulas em notação polonesa invertida são matematicamente equivalentes? a) 𝐴𝐵 + 𝐶 + e 𝐴𝐵𝐶 + + b) 𝐴𝐵 − 𝐶 − e 𝐴𝐵𝐶 − − c) 𝐴𝐵 × 𝐶 e 𝐴𝐵𝐶 +× ENDEREÇAMENTO EM INSTRUÇÕES Questão 14. Considere os seguintes valores de memória: * Linha de memória 20 contém 40. * Linha de memória 30 contém 50. * Linha de memória 40 contém 60. * Linha de memória 50 contém 70. Dada uma máquina de um endereço com um acumulador, para cada item a seguir, indique qual tipo de endereçamento usado e qual valor a instrução carrega no acumulador. a) LOAD 20 b) LOAD [20] c) LOAD ([20]) d) LOAD [30] e) LOAD ([30]) f) LOAD 10 + [20] g) LOAD [30] - 10 UNIVERSIDADE SENAI CIMATEC Questão 15. Suponha que uma instrução utilize o modo de endereçamento por deslocamento. Se o registrador base contém o valor 1000 e o deslocamento é 200, qual é o endereço efetivo acessado pela instrução? Questão 16. Considere um formato de instrução com um campo de endereço de 8 bits. a) Quantas posições de memória podem ser endereçadas usando o modo de endereçamento direto? b) Em uma máquina com 16 registradores de propósito geral, com capacidade de 1B (1 Byte) cada, se a instrução utilizar o modo de endereçamento por deslocamento de um registrador, quantas posições de memória podem ser endereçadas? Questão 17. Explique como o uso do endereçamento por deslocamento pode otimizar o acesso a elementos de um array em memória. Questão 18. Explique como o modo de endereçamento por deslocamento tomando o registrado PC como base (PC-relativo) pode ser utilizado para implementar desvios em programas. Questão 19. Considere que uma instrução utiliza o modo de endereçamento indireto. Se o campo de endereço da instrução é 1200 e a palavra na posição de memória 1200 contém o valor 1500, qual é o endereço efetivo acessado pela instrução? Questão 20. Uma instrução de desvio utiliza o endereçamento por deslocamento tomando o registrador PC como referência. O endereço da instrução em execução é 52810. Determine o endereço de destino do desvio se o deslocamento previsto na instrução for −31. Questão 21. Uma instrução de desvio incondicional BRANCH utilizará o endereçamento por deslocamento tomando o registrador PC como referência. O endereço da instrução em execução é 41910 e queremos que o desvio seja direcionado para a posição 47410. Qual é o valor binário de X, de forma tal que a instrução BRANCH X cumpra a função aqui especificada? PIPELINE DE INSTRUÇÕES Questão 22. Para cada sequência de código abaixo, faça o diagrama da sua execução ao longo dos ciclos de clock. Indique se há hazards de dados e corrija-os, se necessário. UNIVERSIDADE SENAI CIMATEC Questão 23. Descreva as etapas de um pipeline de instruções de 6 estágios e explique o que acontece em cada uma delas. Questão 24. Para cada sequência de código abaixo, faça o diagrama da sua execução ao longo dos ciclos de clock. Indique se há hazards de dados e corrija-os, se necessário. a) add $3, $4, $6 sub $5, $3, $2 lw $7, 100($5) add $8, $7, $2 b) lw $10, 20($1) sub $11, $2, $3 add $12, $3, $4 lw $13, 24($1) add $14, $5, $6 c) lw $t4, 100($t2) sub $t6, $t4, $t3 add $t2, $t3, $t5 Questão 25. Suponha a implementação de um pipeline com cinco estágios: busca da instrução (FI), decodificação de instrução (DI) e cálculo dos endereços (DE), busca dos operandos (FO) e executar (EX). Represente graficamente, no diagrama fornecido, a distribuição do pipeline para uma sequência de 7 instruções onde a terceira instrução é um desvio. Considere que: • Cada estágio do pipeline dura, exatamente, um ciclo de clock e que não há interrupções a serem implementadas; • Se fossem analisadas isoladamente, as instruções citadas executariam todos os cinco estágios; • O desvio que está sendo executado na terceira instrução é tomado para a instrução gravada na linha 15 da memória. Questão 26. Considere um processador com um pipeline de cinco estágios: 1. Buscar instrução na memória (IF) 2. Decodificar a instrução e ler registradores (ID) 3. Executar a operação ou calcular um endereço (EX) UNIVERSIDADE SENAI CIMATEC 4. Acessar um operando na memória (M) 5. Escrever o resultado em um registrador (WB)O processador executa o seguinte conjunto de instruções: lw $R1, 2($R2) add $R3, $R1, $R4 sub $R5, $R6, $R3 sw 8($R2), $R5 a) Tome a figura ao lado como estado inicial dos registradores e da memória principal. Sem considerar a implementação de pipeline, como ficaria esse mesmo cenário, após execução das instruções? b) Implemente a técnica de pipeline e distribua as instruções ao longo do tempo em ciclos de clock. Considere que cada estágio do pipeline dura, exatamente, um ciclo de clock, que não há interrupções a serem implementadas e que pode haver hazards de dados a serem solucionados. c) Quantos ciclos de clock foram otimizados com a utilização do pipeline? d) O que aconteceria se o processador tivesse somente uma porta de memória? Questão 27. Considere um processador com um pipeline de cinco estágios: 1. Buscar instrução na memória (IF) 2. Decodificar a instrução e ler registradores (ID) 3. Executar a operação ou calcular um endereço (EX) 4. Acessar um operando na memória (M) 5. Escrever o resultado em um registrador (WB) Implemente a técnica de pipeline e distribua as instruções ao longo do tempo em ciclos de clock, considerando que o processador utiliza a técnica de previsão de desvios nunca tomado, para cada trecho de código a seguir: a) main: li $t0, 15 li $t1, 14 sub $t2, $t0, $t1 bltz $t2, soma sw $t2, result soma: add $t2, $t0, $t1 sw $t2, result b) main: li $t0, 14 li $t1, 15 UNIVERSIDADE SENAI CIMATEC sub $t2, $t0, $t1 bltz $t2, soma sw $t2, result soma: add $t2, $t0, $t1 sw $t2, result