Arquitetura de Computadores · Banco de Questões
Prof. Clayton J A Silva · Ibmec RJ · organizado por capítulo
00 / Introdução
Banco de exercícios extraído das avaliações aplicadas na disciplina, organizado pelos capítulos do programa.
Este documento reúne exercícios propostos na disciplina de Arquitetura de Computadores, extraídos das avaliações (AP1, AP2 e AS) aplicadas nas turmas de 2022.2, 2023.2 e 2024.1. As questões foram selecionadas entre as diferentes variantes usadas em cada turma — quando duas provas traziam a mesma questão apenas com valores numéricos distintos, manteve-se uma única versão representativa; quando as variantes eram qualitativamente diferentes (por exemplo, dois circuitos ou dois enunciados de programação distintos), ambas foram mantidas.
Os enunciados foram revisados e, quando necessário, pequenos equívocos de formulação ou de transcrição foram corrigidos — preservando integralmente a forma e o conteúdo de cada questão. As principais correções estão sinalizadas ao longo do texto em caixas de nota. Os circuitos lógicos e o diagrama de temporização que ilustravam algumas questões, originalmente capturas de tela de ferramentas de simulação, foram redesenhados como imagens vetoriais (SVG).
A organização segue os capítulos da disciplina (Arquitetura de Computadores — 2026.2), listados a seguir.
01 / Sumário
02 / Capítulo 1 — Máquina de von Neumann
Elementos e organização da arquitetura, endereçamento, representação de instruções e o conjunto de instruções da máquina IAS.
A máquina de von Neumann possui elementos com funções bem definidas. A arquitetura básica contempla processador, memória e dispositivos de entrada/saída, elementos que são interconectados possibilitando o resultado conjunto. A respeito da arquitetura, avaliar as afirmações:
Assinalar a alternativa correta: (a) I e II corretas; (b) I e III corretas; (c) II e III corretas; (d) todas corretas; (e) todas incorretas.
Fonte: AS — 2023.2, questão 2.Um programa armazenado em memória, em uma máquina de von Neumann, ocupa os endereços compreendidos entre as posições de memória 0x01A e 0x1B6. Quantas instruções são executadas, admitindo que o espaço de memória seja plenamente ocupado por instruções? Qual é o espaço em memória ocupado, em bytes?
Fonte: AP1 — 2022.2, questão 1d.Seja uma máquina computacional de arquitetura similar à máquina de von Neumann. A máquina possui instruções de modo direto com operandos de 10 bits. Quais são os limites inferior e superior de memória que podem ser usados pelas instruções, em hexadecimal? A máquina possui também instruções de modo imediato com 10 bits, cujo operando é dividido em dois campos. Admitindo binário puro, qual é o valor máximo dos dados operados por essas instruções, em decimal?
Fonte: AP1 — 2022.2, questão 1e.Um programa armazenado em uma máquina de von Neumann ocupa as linhas de endereço 0x1AA a 0x200 da memória. Admitindo que 65% das instruções requeiram um acesso para busca ou escrita de dados na memória, cujo tempo de resposta é de 2 nanossegundos, qual seria o tempo aproximado de execução do programa?
Fonte: AP1 — 2022.2, questão 1f.Assinalar verdadeiro (V) ou falso (F) nas proposições sobre o registrador de instrução (IR), o registrador temporário de instrução (IBR), o contador de programa (PC) e o endereçamento de memória:
Seja a sequência de instruções de um programa em linguagem de montagem para a máquina de von Neumann:
load m(x), 0x000 add m(x), 0x001 stor m(x), 0x003 sub m(x), 0x002 stor m(x), 0x003
Responder:
Em seguida, avaliar as afirmações a respeito do mesmo programa: (I) o programa soma dois dados, respectivamente das posições de memória 0x000 e 0x001, subtrai do dado armazenado no endereço 0x002 e armazena o resultado no endereço 0x003; (II) a primeira instrução stor m(x), 0x003 poderia ser excluída sem alterar o resultado final; (III) o programa ocupa no mínimo três linhas de endereço de memória. Assinalar a alternativa correta quanto à veracidade de I, II e III, e apresentar a representação em binário das instruções da primeira linha de endereço do código.
Elaborar um programa para ler e somar os dados armazenados nos endereços 0x00B a 0x010 da memória de uma máquina IAS. A primeira instrução do programa deve desviar a execução para o endereço 0x100. O programa deve subtrair o resultado encontrado do dado armazenado no endereço 0x011 e multiplicar por 2. O resultado final deve ser armazenado no endereço 0x012. Apresentar o código em assembly e o código convertido para a linguagem de máquina (em hexadecimal) — admitir que os endereços das posições acima de 0x012 podem ser usados para armazenar dados temporários. Usar a tabela de códigos da máquina IAS apresentada a seguir.
| Código | Instrução | Descrição |
|---|---|---|
| 0000 0001 | LOAD M(X) | Transfere o conteúdo da posição de memória X para o acumulador (ACC) |
| 0000 0010 | LOAD −M(X) | Transfere o negativo do conteúdo de M(X) para o ACC |
| 0000 0011 | LOAD |M(X)| | Transfere o valor absoluto de M(X) para o ACC |
| 0000 0100 | LOAD −|M(X)| | Transfere o negativo do valor absoluto de M(X) para o ACC |
| 0000 0101 | ADD M(X) | Soma M(X) ao ACC; armazena o resultado no ACC |
| 0000 0110 | SUB M(X) | Subtrai M(X) do ACC; armazena o resultado no ACC |
| 0000 0111 | ADD |M(X)| | Soma o módulo de M(X) ao ACC; armazena o resultado no ACC |
| 0000 1000 | SUB |M(X)| | Subtrai o módulo de M(X) do ACC; armazena o resultado no ACC |
| 0000 1001 | LOAD MQ,M(X) | Transfere o conteúdo de M(X) para o registrador MQ |
| 0000 1010 | LOAD MQ | Transfere o conteúdo do registrador MQ para o ACC |
| 0000 1011 | MUL M(X) | Multiplica M(X) por MQ; bits mais significativos em ACC, menos significativos em MQ |
| 0000 1100 | DIV M(X) | Divide ACC por M(X); quociente em MQ, resto em ACC |
| 0000 1101 | JUMP M(X,0:19) | A próxima instrução é buscada nos bits 0 a 19 de M(X) |
| 0000 1110 | JUMP M(X,20:39) | A próxima instrução é buscada nos bits 20 a 39 de M(X) |
| 0000 1111 | JUMP+ M(X,0:19) | Se ACC ≥ 0, a próxima instrução é buscada nos bits 0 a 19 de M(X) |
| 0001 0000 | JUMP+ M(X,20:39) | Se ACC ≥ 0, a próxima instrução é buscada nos bits 20 a 39 de M(X) |
| 0001 0001 | LSH | Multiplica o conteúdo do acumulador por 2 (deslocamento à esquerda) |
| 0001 0010 | RSH | Divide o conteúdo do acumulador por 2 (deslocamento à direita) |
| 0001 0011 | STOR M(X,8:19) | Transfere os 12 bits mais à direita do ACC para os bits 8:19 de M(X) |
| 0001 0100 | STOR M(X,28:39) | Transfere os 12 bits mais à direita do ACC para os bits 28:39 de M(X) |
| 0010 0001 | STOR M(X) | Transfere o conteúdo do ACC para a posição de memória X |
JUMP+ M(X,20:39) aparecia com o mesmo código de JUMP M(X,20:39) (0000 1110); SUB M(X) aparecia grafado como 0010 0110 (colidindo com o padrão de STOR M(X)); e, em uma das variantes, a última linha da tabela — que é uma instrução de alteração de endereço — estava rotulada como JUMP M(X,28:39) em vez de STOR M(X,28:39). A tabela acima apresenta os códigos corrigidos e consistentes.03 / Capítulo 2 — Organização e Modelo de Máquina de Níveis
Camadas do modelo de níveis, tradução versus interpretação, e os elementos que realizam a conversão entre camadas.
Explique sucintamente a distinção entre interpretação e tradução no processo de conversão de códigos de uma máquina computacional de um nível para a máquina do nível inferior, considerando o modelo de máquina de níveis ou camadas.
Fonte: AP1 — 2022.2, questão 1a.Citar três elementos do nível de microarquitetura na máquina de von Neumann, explicando o seu papel. Segundo o modelo de seis níveis, como se designa o nível imediatamente superior ao nível de microarquitetura e qual é o seu significado?
Fonte: AP1 — 2022.2, questão 1b.As portas lógicas executam operações sobre dados na forma elétrica, abstraídos como 0s e 1s. Considerando o modelo da máquina de seis níveis, a qual nível pertencem os circuitos combinacionais construídos com portas lógicas? Cite um exemplo desse tipo de circuito.
Fonte: AP1 — 2022.2, questão 1c.Estabelecer a relação entre as funções apresentadas na coluna da esquerda e os respectivos elementos da arquitetura dos sistemas computacionais, na coluna da direita:
| Função | Elemento |
|---|---|
| Realiza a conversão e execução das instruções de um código de uma camada, uma a uma, para instruções da linguagem da(s) camada(s) inferior(es) | Tradutor |
| Uma das seis camadas estudadas é chamada comumente de camada híbrida | Interpretador |
| Realiza a conversão de todas as instruções de um código de uma camada para instruções da linguagem da(s) camada(s) inferior(es) | Nível de lógica digital |
| Realiza especificamente a conversão das instruções em linguagem de montagem para instruções em linguagem de máquina | Sistema Operacional |
| Contém elementos chamados de portas lógicas; constitui a camada mais primitiva do modelo de níveis | Montador |
Preencher as lacunas das afirmações a seguir com o termo mais adequado:
Explique sucintamente o que caracteriza o processo de conversão de código de uma camada para sua camada subjacente inferior, distinguindo tradução e interpretação. Em seguida, selecionar, entre as seis camadas do modelo, qual delas recebe a designação de camada híbrida.
Fonte: AP2-teste — 2024.1, questões 3 e 4.Preencher as lacunas para construir proposições verdadeiras a respeito do nível ISA e do nível de linguagem de montagem:
LDI Rd, k carrega o valor k no registrador Rd. O operando é o próprio dado — nesse caso, a instrução é chamada de modo ____________ (imediato/direto).LDS Rd, k carrega o dado contido no endereço k no registrador. O operando indica o endereço do dado — nesse caso, a instrução é chamada de modo ____________ (imediato/direto).04 / Capítulo 3 — Nível de Lógica Digital
Circuitos combinacionais: projeto a partir de especificação, derivação da expressão lógica a partir de um circuito dado, e construção de tabelas-verdade.
Utilizando portas lógicas AND, OR e inversores, implementar um circuito que receba um número N de 3 bits e o multiplique por 2 (o que equivale a deslocar o número um bit à esquerda).
Fonte: AP1 — 2022.2, questão 4a.Utilizando portas lógicas AND, OR e inversores, propor um circuito para implementar a expressão lógica y(A,B,C) = A·B + A·C + A·B·C.
Fonte: AS — 2022.2, questão 10ii.Para cada circuito, apresentar a expressão lógica de S, indicando parcialmente a expressão na saída de cada porta.
Seja o circuito apresentado na figura abaixo.
Seja o circuito apresentado na figura abaixo.
Seja o circuito apresentado na figura abaixo.
Seja o circuito apresentado na figura abaixo.
Apresentar a tabela-verdade relativa à expressão lógica do circuito dada por:
S(A,B,C) = A·B·C + A·C + (A+B)·C
Fonte: AP2 — 2024.1 (turma 2A), questão de lógica digital.Seja a proposição X = p + q + (~p·r + s), onde a conjunção é representada por (.), a disjunção por (+) e a negação por (~).
05 / Capítulo 4 — Sistema de Memória
Capacidade, tempo de acesso, hierarquia de memória, cache e mapeamento direto.
Os dispositivos de memória possuem características que impactam o desempenho global do sistema computacional. Citar e explicar com suas palavras duas dessas características.
Fonte: AP2 — 2022.2, questão 1.Considere uma memória com 15 linhas de endereço, que armazena em cada linha uma palavra de 12 bits. Determinar a capacidade de armazenamento do dispositivo, em bits e em bytes.
Fonte: AS — 2022.2, questão 2.Admitindo que o processador realize 2000 operações de leitura/escrita em um barramento de dados de 16 bits de um dispositivo de memória, no intervalo de 10 milissegundos, qual é a largura de banda (taxa de transmissão) no barramento?
Fonte: AS — 2022.2, questão 3.Seja uma memória RAM cujo tempo de acesso é de 150 nseg. (i) Qual será o tempo médio de execução de um programa composto por 200 instruções com acesso à memória? (ii) Se o programa possuir mais 1000 instruções que não acessam à memória, cujo tempo de execução médio seja de 5 nseg por instrução, qual será o novo tempo de execução do programa? Presumir que o tempo de sistema é muito menor do que o tempo de acesso.
Fonte: AS — 2022.2, questão 4.A arquitetura dos sistemas computacionais organiza o sistema de memória alocando diversos e diferentes tipos de tecnologias. (i) Explicar com suas palavras o que significa uma memória volátil. (ii) Quais são as tecnologias típicas empregadas na organização da memória secundária?
Fonte: AP2 — 2022.2, questão 5.Explicar com suas palavras o conceito de programa armazenado na organização do sistema de memória das arquiteturas de computadores.
Fonte: AP2 — 2022.2, questão 6.Seja um programa armazenado em memória constituído por 500 instruções, executado por um determinado processador. As 100 instruções que não acessam memória são executadas, cada uma, em quatro ciclos de clock interno do processador, de 100 MHz. As demais instruções são executadas com acesso à memória, cuja latência é de 200 nseg — admitir a latência aproximadamente igual ao tempo de acesso. (i) Determinar o tempo de execução do programa nessa máquina. (ii) Admitir que o projeto da arquitetura evoluiu e que foi inserida uma cache com latência de 5 nseg. Considerando uma taxa de acerto de 75%, em quanto tempo o programa passará a ser executado?
Fonte: AS — 2022.2, questão 6.Seja um sistema de memória de uma arquitetura computacional que utilize mapeamento direto MP–cache. A memória primária possui 128 MB de capacidade de armazenamento; a cache possui 32 kB. Ambas utilizam palavras de 1 byte. (i) Admitindo que cada bloco da cache possua 8 kB, quantos blocos e quantas linhas de cache da MP o sistema possuirá? (ii) Quantas e quais linhas de cache na MP estarão mapeadas em cada bloco? (iii) Explicar, justificando, o que acontecerá se o processador requisitar o endereço 2456d, admitindo que estejam carregadas na cache, respectivamente, as linhas L0, L1, L2 e L3.
Fonte: AP2 — 2022.2, questão 8.Explicar, com suas palavras, a política de substituição de dados da cache utilizando a técnica LRU. Ilustrar com um exemplo com base nos dados do exercício anterior (mapeamento direto MP–cache).
Fonte: AP2 — 2022.2, questão 9.Assinalar verdadeiro (V) ou falso (F):
Completar as lacunas com as respostas corretas:
Explique sucintamente o que é o princípio de localidade. Qual é o elemento de memória cujo funcionamento se baseia nesse princípio?
Fonte: AS — 2024.1, 3ª parte.Quais são os três parâmetros típicos para avaliação do desempenho de elementos de memória?
Fonte: AS — 2024.1, 3ª parte.Como se designa a tecnologia de memória em que o armazenamento do dado depende da alimentação ou não de energia elétrica?
Fonte: AS — 2024.1, 3ª parte.06 / Capítulo 5 — Barramento
Sinais, temporização, classificação funcional e vazão.
Sejam os sinais elétricos apresentados na figura abaixo, trafegando em um barramento entre processador e memória. Admitindo um clock de 2,5 MHz:
Quanto à funcionalidade, como os barramentos podem ser classificados?
Fonte: AS — 2023.2, questão 12d.Seja uma memória endereçável por um barramento de 16 bits, com palavra de 1 byte. Qual é a capacidade de armazenamento da memória em kbits? Se o tempo de resposta da memória é de 5 milissegundos, qual será a taxa ou vazão em um barramento de 8 bits?
Fonte: AS — 2023.2, questão 4.07 / Capítulo 6 — Processadores
Unidades funcionais e desempenho.
Cite duas estratégias de aumento de performance dos processadores.
Fonte: AS — 2023.2, questão 12e.O processador possui tipicamente duas unidades funcionais. Quais são elas e qual é o papel de cada uma?
Fonte: AS — 2023.2, questão 2 (item I).A unidade de controle de um sistema computacional é alimentada por um sinal de clock de 8 GHz. O sistema executa 5 instruções sem acesso à memória em um ciclo de clock. Avaliar as afirmações: (I) o período de clock é de 0,125 nanossegundos; (II) o sistema executa as instruções a uma taxa de 40G instruções/seg; (III) um programa que contém 1000 instruções sem acesso à memória será executado em 25 nanossegundos. Assinalar a alternativa correta quanto à veracidade de I, II e III.
Fonte: AS — 2023.2, questão 10.08 / Capítulo 7 — Sistemas Operacionais
Tipos de instrução e elementos típicos.
Os sistemas operacionais utilizam instruções de dois tipos. (i) Quais são esses tipos? (ii) Apresentar dois elementos típicos dos sistemas operacionais, explicando a respectiva função.
Fonte: AP2 — 2022.2, questão 11.09 / Capítulo 8 — Microcontroladores — Atmel ATmega2560
Programação em linguagem de montagem (assembly) para o microcontrolador AVR ATmega2560.
Elaborar um código em linguagem de montagem para o assembler do Atmega2560 que armazene os números pares de 2 a 10 (inclusive) nos endereços de memória a partir de 0x200.
Fonte: AP2 — 2024.1 (turma 2A), 5ª parte, questão 1.Elaborar um código em linguagem de montagem para o assembler do Atmega2560 que: (i) armazene dois números em memória, nos endereços 0x200 e 0x201 (definidos arbitrariamente); (ii) armazene a soma dos números no endereço 0x202 se forem iguais, ou a diferença no endereço 0x203 se forem diferentes.
Fonte: AP2 — 2024.1 (turma 2A), 5ª parte, questão 2.Elaborar um código em linguagem de montagem para o assembler do Atmega2560 que implemente um loop para somar os números armazenados entre os endereços 0x200 e 0x2FF, armazenando o resultado no endereço 0x300.
Fonte: AP2 — 2024.1 (turma 2A), 5ª parte, questão 3.Elaborar um código em linguagem de montagem para o assembler do Atmega2560 que armazene os números de 1 a 5 (inclusive) nos endereços de memória a partir de 0x20F.
Fonte: AS — 2024.1, 5ª parte, questão 1.| Instrução | Sintaxe / operação |
|---|---|
| LDI | Carrega operando no registrador. LDI Rd,K, 16≤d≤31, 0≤K≤255; Rd ← K |
| INC | Incrementa registrador. INC Rd, 0≤d≤31; Rd ← Rd + 1 |
| ADD | Soma dois registradores (similar ao SUB). ADD Rd,Rr; Rd ← Rd + Rr |
| STS | Armazena registrador diretamente em memória. STS k,Rr, 0≤k≤65535; DS(k) ← Rr |
| LDS | Carrega dado da memória diretamente no registrador. LDS Rd,k; Rd ← DS(k) |
| EOR | Ou-exclusivo entre registradores. EOR Rd,Rr; Rd ← Rd ⊕ Rr |
| JMP | Desvio incondicional. JMP k, 0≤k<4M; PC ← k |
| CP | Compara dois registradores. CP Rd,Rr: Rd − Rr; se 0x00, seta o bit 1 do registrador de status |
| BREQ | Desvia se iguais. BREQ k, −64≤k≤+63 |
| BRNE | Desvia se diferentes. BRNE k, −64≤k≤+63 |
| ST | Armazena indiretamente em memória. ST X,Rr; grava Rr no endereço X (r27,r26) |
| LD | Carrega indiretamente registrador. LD Rr,Y; carrega de Y (r29,r28) em Rr |
| DEC | Decrementa registrador. DEC Rr; Rr ← Rr − 1 |
| BRLO | Desvia se menor. BRLO k, −64≤k≤+63 |
| BRMI | Desvia se negativo. BRMI k, −64≤k≤+63 |
Diretivas do assembler: comentários com ;; .def define um nome simbólico para um registrador (ex.: .def flag=r16); .set atribui um valor a um rótulo, usável em expressões posteriores (ex.: .set cont=1); constantes inteiras podem ser fornecidas em decimal (padrão) ou hexadecimal (ex.: 0xff).
10 / Anexo — Representação Numérica e Aritmética Binária
Bases numéricas, complemento, ponto flutuante e características fundamentais da máquina de von Neumann.
A máquina de von Neumann possui elementos com funções bem definidas — processador, memória e dispositivos de entrada/saída. Responder: (i) quais são os dois elementos internos ao processador? (ii) o que é um bit? (iii) uma palavra de memória de 4 bytes corresponde a quantos bits? (iv) o que representa a frequência de clock de um processador? (v) o que é o tempo de resposta de uma memória?
Fonte: Arquitetura Form 1 (questionário).Seja um barramento de dados que transmite 1000 bits em 2 microssegundos. Qual é a taxa de transmissão (bit-rate) desse barramento? Se o clock que rege essa transmissão tem período de 1 nanossegundo, quantos bits são transmitidos por ciclo?
Fonte: Arquitetura Form 1 (questionário).Quantas linhas de endereço são necessárias para endereçar uma memória de N bytes? E para endereçar uma memória organizada em palavras de N bits? Converter o número decimal indicado em cada caso para binário e determinar a quantidade de linhas necessárias.
Fonte: Arquitetura Form 1 (questionário).Converter o binário 100111 para a base 10. Converter o número 0x24A para a base 10.
Fonte: AS — 2024.1, 6ª parte, questão 1a–b.Apresentar as parcelas da operação binária 1010011 + 11101.
Fonte: AS — 2024.1, 6ª parte, questão 1c.Seja uma máquina cuja palavra é de 8 bits, com representação em binário puro. Dado o número A = 11001, qual seria o valor do número B que resultaria em overflow em uma operação de adição A + B?
Fonte: AS — 2024.1, 6ª parte, questão 1d.Uma máquina com barramento de endereços de 11 bits pode endereçar no máximo quantas posições de memória?
Fonte: AS — 2024.1, 6ª parte, questão 1e.Seja uma arquitetura que utiliza 7 bits para representar dados numéricos. Qual seria a faixa de representação (em hexadecimal) para números inteiros em excesso 64?
Fonte: AP1 — 2022.2, questão 3a.Seja uma arquitetura que utiliza 12 bits para representar dados numéricos. Dada a grandeza numérica, em hexadecimal, 0x37A, na representação em complemento de 2, qual seria o correspondente valor no sistema decimal? Qual seria o seu simétrico, em hexadecimal?
Fonte: AP1 — 2022.2, questão 3b.Seja uma arquitetura que utiliza 9 bits para representar dados numéricos, usando 4 bits para o expoente de ponto flutuante. Admitindo bit de sinal para a mantissa e excesso para o expoente, qual seria a faixa de representação numérica do sistema?
Fonte: AP1 — 2022.2, questão 3c.Seja uma máquina que utiliza 12 bits para representação de dados numéricos. Qual será o resultado, em binário e hexadecimal, da operação 374 − 277, em complemento de 2? Apresentar a operação passo a passo, de acordo com a notação usada.
Fonte: AP1 — 2022.2, questão 3d.Seja uma arquitetura que utiliza 11 bits para representar dados numéricos. (i) Qual é o valor do número decimal 456d, em binário, na representação em binário puro? (ii) Qual será a faixa de números inteiros, negativos e positivos, em hexadecimal, caso seja utilizada representação em sinal e magnitude? (iii) Qual será a representação em hexadecimal da grandeza numérica decimal −727d se o sistema utilizar notação em complemento de 1?
Fonte: AS — 2022.2, questão 7.Seja uma arquitetura que utiliza palavras de 8 bits. Admitindo que o processador realize a operação de adição dos números A = 0111 0011 e B = 0110 1000, apresentar o processo de soma, bit a bit, e o resultado em hexadecimal.
Fonte: AS — 2022.2, questão 8.Realizar as operações indicadas a seguir, apresentando o memorial descritivo de cada operação: