Buscar

Lista Av2

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

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 6, do total de 15 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

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 9, do total de 15 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
Universidade Estácio de Sá 
Cursos Superiores – Engenharia e Informática – 1.o período 
Arquitetura e Organização de Computadores – Prof: Affonso de Cusatis Junior 
 
Lista de exercícios preparatória para a 2ª prova (AV2) – SOLUÇÕES 
 
1) Resp: são os níveis mostrados na imagem abaixo, mais o nível de aplicações de usuário (nível 6), 
que compreende os programas de usuário já prontos. 
 
 
 
2) 
Resp: UC (Unidade de Controle), ULA, clock, barramento(s) interno(s), registradores....... 
 
3) Fios (ou barramento) de dados, fios (ou barramento) de endereços, e de controle. 
 
4) RAM estática (SRAM) e RAM dinâmica (DRAM). Mas complete com as principais 
características de cada uma. 
 
5) São exemplos de padrões comerciais de barramentos de computadores, nas últimas 4 décadas: 
 a) ISA, PCI, MBR, MAR, AGP 
 b) ISA, VLB, PCI, AGP, USB 
 c) PCI, FireWire, AGP, XTG, BUSPlus 
 d) PCI, USB, IDE, TX11, ACC 
 e) USB, ULA, DCC, MAR, MBR 
 
 
6) Cite 3 ou 4 formas pelas quais barramentos podem ser classificados (ex: “barramentos de 
computador podem ser: pretos x brancos; tricolores, flamenguistas ou vascaínos; etc ”): 
Resp: 
serial x paralelo; 
síncrono x assíncrono; 
 
2
dedicado x multiplexado. 
E ainda há uma outra classificação (não muito precisa), que divide barramentos em: local (ou ‘de 
memória’), de sistema e de expansão. 
 
7) A transmissão de dados, em barramentos e de um modo geral, pode ser serial ou paralela. 
Explique a diferença. 
Resposta textual e individual. 
 
 
8) Tema: BITS DE BARRAMENTO 
Barramentos de dados de barramentos de computadores modernos (dos anos 80 até hoje), em geral, 
possuem quantos bits? 
 a) 128 ou 512 bits 
 b) 8, 64, 128 ou 512 bits 
 c) 8, 16, 32 ou 64 bits 
 d) 16, 32 ou 128 bits 
 e) 6, 12, 18 ou 28 bits 
 
9) O conjunto de instruções definido para uma determinada Unidade Central de Processamento 
(UCP) é constituído basicamente de uma mistura de formatos de instruções e modos de 
endereçamento. Sobre este assunto, qual das afirmações abaixo é incorreta? 
 
a) O modo de endereçamento por registrador é bem rápido, pois não exige acesso à memória 
b) O modo de endereçamento direto apresenta como desvantagem a limitação do espaço de 
endereçamento ao tamanho do campo de operando. 
c) Considerando o modo de endereçamento indireto, palavra de 16 bits, instrução de um 
operando e campo de operação de 8 bits, a memória endereçável é de 32 MB. 
d) O modo de endereçamento imediato tem a menor relação de tempo de acesso ao dado. 
e) O modo de endereçamento indexado (base + índice) é usado diretamente na tradução de 
trechos de programas que manipulam a estrutura de dados conhecida como vetor. 
 
10) Qual é o objetivo de se utilizar a memória cache nos computadores modernos? E a tecnologia 
de memória RAM utilizada? Por que não usar toda a memória principal nesta tecnologia? 
Resp: acelerar, na média, a busca de informações na memória, baseando-se no princípio da 
localidade. SRAM (memória RAM estática). Por questão de custo!! (além disso, o espaço ocupado 
pela memória SRAM também é maior). 
 
11) Quais são os níveis de memória cache presentes na maioria dos processadores do ‘mundo PC’ 
atualmente? 
Resp: durante muito tempo os níveis L1 (level 1) e L2. Atualmente é comum: L1, L2 e L3. 
 
12) Quais são as formas se organizar uma memória cache? 
Resp: capítulo subsitemas de memória, do MMonteiro. 
Mas há várias decisões a serem tomadas, como o tamanho da cache, se será ou não dividida em 
dados x instruções, o tamannho e quantidade dos ‘slots’/páginas, e a estratégia de substituição de 
páginas (FIFO, LRU, LFU...). 
 
13) Descreva o funcionamento da memória cache para uma típica operação de leitura. 
Resp: capítulo subsitemas de memória, do MMonteiro 
 
14) Que tipos de classificação são possíveis quando falamos de barramentos? 
Resp: *** questão repetida. 
 
 
3
15) Qual será a taxa de transferência de dados em um barramento XPTO, com 16 bits de linhas de 
dados, um ‘clock’ de 66 MHz, e que efetua 2 transferências de dados completas por ciclo de clock? 
Resp: 16 bits = 2 bytes. Taxa = 2B * 66M/seg * 2 (transferências/ciclo) = 264 MB/seg 
 
16) Releia o material (slides de resumo) sobre barramentos e faça uma tabela contendo: ano de 
lançamento, bits de dados, clock, para os principais padrões de barramentos surgidos (no mundo 
PC) dos anos 80 até hoje (ISA, EISA,..., PCI, AGP, PCI express). 
Resp: é particular. Mas tanto o livro Mário Monteiro, quanto o livro Stallings têm tabelas assim. 
 
17) Cite os registradores de propósito específico normalmente encontrados em uma CPU. 
Resp: CI (ou PC), REM (ou MAR), RDM (ou MBR), RI (ou IR), ACC (acumulador), PSW....... 
(início capítulo 6, Mário Monteiro, ed.4, e/ou resumo do professor, em .doc). 
 
18) O que vem a ser o chamado PSW, na CPU (cite inclusive alguns informações que ele 
normalmente armazena, ou representa)? 
Livro MM-5, cap 6; Slides sobre CPU. 
 
19) Qual é a função do circuito decodificador de instruções, dentro da CPU? 
Resp: decodificar as instruções buscadas na memória, ou seja: informar a Unidade de Controle qual 
é a instrução sendo executada, a partir de seu código de operação (opcode). 
 
20) Quais são os 3 insumos (entradas) nos quais a Unidade de Controle se baseia para poder gerar, a 
cada intervalo de tempo, os sinais de controle necessários para coordenar todo o trabalho da CPU 
(busca e execução de cada diferente tipo de instrução)? 
Resp: a saída do decodificador (que instrução é aquela), o sinal de clock (que pode ser subdividido 
em intervalos ou subciclos menores), e o registrador de status (PSW). 
 
21) O que ocorreria se não houvesse o passo de incremento automático do PC, no ciclo de instrução 
de uma CPU? 
Resp: a execução de qualquer programa ficaria em ‘loop’ eterno, buscando sempre a mesma 
instrução. 
 
22) Quais são as principais categorias de instruções que encontramos no chamado nível ISA 
(instruction set architecture), ou nível de instruções, ou CIM (conjunto de instruções de máquina) 
dos computadores? 
• Instruções Aritméticas: adição, subtração, e eventualmente, outras. 
• Instruções lógicas: AND, OR, NOT (complemento), deslocamentos, etc. 
• Instruções de movimentação de dados 
CPU � CPU ex: “move” 
Da CPU � memória ex: “load” 
Da memória � CPU ex: “store” 
• instruções de desvio (desvio incondicional, condicionais e “CALLs” (chamada a subrotina)), 
• instruções de entrada e saída (atualmente, poucas CPUs incluem este tipo de instrução) 
• instruções especiais de controle (ex: HALT, WAIT ou NOOP, etc). 
 
23) Quais são os micro-passos (ou seja, as etapas em termos de micro-arquitetura) que compõem a 
busca da próxima instrução? E como pode ser resumida esta seqüência de passos? 
 
24) De acordo com a discussão sobre formatos de instruções (slides de resumo e cap.6 do livro 
Mário Monteiro), responda: que formatos de instrução são possíveis para uma instrução de 
multiplicação (que logicamente exige a especificação de 3 informações: os 2 valores a serem 
multiplicados, e o local para o resultado). Exemplifique. 
Resp: instruções com os 3 operandos explícitos (fonte 1, fonte 2 e destino), com apenas 2 operandos 
(destino implícito), com apenas 1 operando (um dos fontes e destino implícitos, baseada em 
 
4
registrador ‘acumulador’), e com 0 operandos (tanto fontes como destino estarão no topo da pilha). 
Obs: ver ‘desenhos’ e exemplos, nos slides e/ou no livro Mário Monteiro (capítulo “Representação 
de instruções”). 
 
25) Em que consiste, em termos práticos (ou seja, em termos de ações a serem tomadas no nível de 
micro-arquitetura da CPU) a execução de uma instrução de desvio incondicional 
(ex: JUMP <endereço> )? 
Resp: na prática, consiste basicamente em fazer: CI  <endereço> 
 
26)Diga quais são os principais modos de endereçamento utilizados em instruções básicas, no nível 
de instruções de um computador. 
Veja resumo do professor (em .doc) e/ou capítulo 6 do livro do Mário Monteiro (ed.4). 
Resp: modo imediato, em registrador (direto em registrador), direto (em memória), indireto em 
memória, indireto em registrador, modo indexado e base + deslocamento. Veja resumo do 
professor (em .doc) e/ou capítulo 6 do livro do Mário Monteiro (ed.4). 
 
27) Explique (de preferência, através de um exemplo), como funciona o modo de endereçamento 
‘base + índice’, ou indexado. 
Resp: é o modo de endereçamento criado para que os programas possam trabalhar com ‘vetores’ ou 
‘arrays’, que são as variáveis compostas indexadas (diversos valores do mesmo tipo de dados com 
um único nome inicial e uma posição ou índice, guardados de forma contígua ou adjacente na 
memória). O endereço de um elemento do vetor é sempre indicado por um par: endereço base + 
índice (do elemento dentro do vetor). 
Exemplo: (na linguagem Pascal) 
 
VAR 
 valores : array[1..5] of integer; {declara um vetor chamado valores, com 5 elementos inteiros} 
 
BEGIN 
 . . . . . 
 valores[1] := 5; { atribui (guarda) o valor 5 no 1.o elemento (o de índice 1) do vetor } 
 valores[2] := 2; 
 . . . . . 
 valores[5] := 0; { preenche com valor 0 o 5.o e último elemento do vetor valores } 
 
Sabendo-se que cada valor do tipo integer ocupa 2 bytes, e supondo, em nosso exemplo que, em 
dada execução do programa, o vetor valores seja carregado a partir do endereço 100 da memória; 
e supondo que o enderço inicial do vetor valores (que é 100) foi colocado em um registrador R7: 
 LDX R7, 1 (load indexed) 
Carrega acumulador com conteúdo da posição de memória dada por: 
 (R7) + (1-1)x(2) = 100 + 0 = 100 
Já para LDX R7, 5 (load indexed) (R7) + (5-1)x(2) = 100 + 8 = 108 
...... e assim por diante. Assim é acessado cada elemento do vetor (tanto para leitura quanto escrita). 
 
 
28) Cite um exemplo de uso (no processo de tradução) das instruções de desvio condicional (como 
JPZ – “Jump if zero”, ou BNE – “Branch if note qual”). 
 
29) Descreva sucintamente a diferença entre transmissão serial e paralela. 
Resp: consulte slides sobre barramentos e transmissão, ou livro (Stallings). 
 
 
30) Quais são as funções básicas de um módulo de entrada e saída, e os elementos principais que 
normalmente são encontrados dentro destes módulos? 
 
5
Sugestão de fonte: livro do Stallings, 5.a edição, seção 6.2 (pág. 198) (na 8.a edição, não mapeei o 
local exato do assunto ainda). 
Resp: consulte a seção do livro indicada. 
 
31) Quais são as 3 grandes técnicas para a implementação de entrada e saída em computadores 
(capítulo 6, “Entrada e Saída”, do livro Stallings)? 
Resp: E/S programada, E/S por interrupção e E/S com DMA (acesso direto à memória) 
*** dê uma lida rápida no capítulo do livro do Stallings (E/S), da 192 à 220, exceto 196-197, e 209-
214. 
 
32) No conjunto de instruções apresentado como exemplo em nosso material, quais são as 
instruções que se referem a E/S? 
Resp: são as instruções de GET e PUT, as quais, em nosso exemplo fictício de ISA – conjunto de 
instruções – poderiam ser usadas para fazer a leitura e a escrita de valores especificando uma ‘porta’ 
(um endereço específico de memória no qual é ‘mapeado’ um dispositivo de E/S), e um id de 
dispositivo. 
 
33) Um processador possui um RDM com capacidade de armazenar 32 bits e um REM com 
capacidade de armazenar 24 bits. Sabendo-se que em cada acesso são lidas 2 células da memória 
RAM (MP) e que o barramento de dados (BD) tem tamanho igual ao da palavra, pergunta-se: 
 a) Qual é o tamanho da palavra e de cada célula da memória? 
Célula de memória: 16 bits (pois RDM = 32 = 2 x a palavra de memória). Da palavra = 32 (pois barramento 
de dados deve ter o mesmo tamanho do RDM = 32, e neste caso, tem o mesmo tamanho da palavra). 
 b) Qual é a capacidade máxima de endereçamento do computador em questão? 
2 elevado a 24 (=tamanho do REM, ou MAR) = 2**20 * 2**4 = 1M * 16 = 16M endereços (ou células). 
 c) Qual é o total máximo de bits que podem ser armazenados na memória RAM (MP)? 
= 16M células x 16 bits (tamanho de cada célula) = 256Mbits (ou 32MB). 
 
34) Descreva (nome e descrição sucinta) os tipos de controle em processadores (ou seja, as duas 
formas básicas de projeto e implementação de Unidades de Controle, em CPUs). (fonte: livro Mário 
Monteiro, 5.a edição, pág.555) 
Para detalhes: veja final do capítulo 6, livro MMonteiro. 
Resp (parcial): controle microprogramado (ou por micro-programação / micro-código), e controle 
“direto em hardware”, ou “hardwired”. Para detalhes: veja final do capítulo 6, livro MMonteiro. 
 
35) Cite os principais marcos da evolução histórica da arquitetura ‘x86’, da empresa Intel e 
concorrentes (de preferência, monte uma tabela). 
Fonte: livro do Stallings, 5.a edição, seção 2.3 (pág. 46). 
Resp: consulte a seção do livro indicado. 
 
36) O que vem a ser a técnica de Pipeline? Que tipo de instrução mais atrapalha a melhoria de 
desempenho desta técnica? 
Resp: veja informações sobre pipeline na seção específica nos livros Mário Monteiro, ou Stallings. 
 
37) Quais são os dois grandes paradigmas (filosofias) para o projeto e construção de CPUs e de 
conjuntos de instruções (cite as siglas e seus significados)? 
Resp: CISC (Complex Instruction Set Computer) – “computadores com conjunto de instruções 
complexas”; e RISC (Reduced Instruction Set Computer) – “computadores com conjunto de 
instruções reduzido” (na verdade, o termo simples seria melhor do que reduzido). 
 
 
 
 
*** para maiores detalhes, veja questões específicas na parte 2 da lista de exercícios da AV2! 
 
6
 
 
38) Com relação ao capítulo “Nível do Sistema Operacional”, responda: 
 
 a) quais são as duas funções básicas de um Sistema Operacional? 
 b) quais os conjuntos de informação que compõem o contexto de um processo? 
Resp: Contexto de hardware, contexto de software e espaço de endereçamento. 
 c) e o nome normalmente dado à estrutura de dados usada para implementar este contexto? 
Resp: normalmente é chamada de PCB (process control block). 
 d) quais são os estados pelos quais pode passar um processo? 
Resp: executando (running), pronto (ready) e bloqueado, ou em espera (wait). Além dos estados 
especiais ‘criado’ e ‘terminado’, que são mais raros e ocorrem apenas uma vez, por pouco tempo. 
 e) o que é um código “relocável”? 
Resp: é aquele código (ou seja, o conjunto de instruções que compõem um programa) que foi 
traduzido, montado e ‘ligado’ de forma a poder ser carregado em qualquer ponto da memória para 
funcionar. 
 f) o que é a técnica conhecida como swap? 
 g) qual é o objetivo principal do uso da memória virtual? 
 h) quais são as formas básicas de ‘mapeamento’ da memória virtual? E a diferença entre eles? 
 i) qualquer instrução pode ser executada por qualquer programa, num dado momento? 
 j) o que é fragmentação de memória? 
 
 
Sugestão de fonte: slides do professor sobre Sistemas Operacionais; livro ST-8, cap.8; livro ST-5, 
cap.7. 
 
 
 
7
PARTE II 
 
1) Considerando o que você aprendeu durante o curso, tente responder, resumidamente: como podemos 
dividir/classificar os tipos de informação que são armazenados e manipulados pelos computadores digitais? 
Resp: toda informação manipulada e armazenada por computadores digitais encontra-se no formato binário 
(sequencias de bits). Mas ela pode ter diferentes significados, dependendo do local, do momento e do 
contexto. Basicamente, pode ser: instruções, dados e endereços (alguns consideram endereço como um tipo 
de dado, também). Instruções dependem muito do tipo de processador. 
Dados podem ser, resumidamente: numéricos enão-numéricos. Dados numéricos podem ser divididos 
basicamente em: números inteiros e números não-inteiros (em geral, representados no formato “ponto-
flutuante”). Dados não-numéricos podem ser: alfa-numéricos (caracteres e strings) e lógicos (V ou F). E, 
eventualmente, endereços de outros dados (usados em algumas situações, na programação). 
De modo esquemático, temos: 
 
Informações digitais binárias: 
 - Instruções 
 - Dados (incluindo endereços) 
 - Dados Numéricos 
 Inteiros 
 Decimais/reais (“ponto-flutuante”) 
 - Dados não-numéricos 
 Caracteres e cadeias de caracteres (“strings”) 
 Lógico (ou “booleano”) 
Endereços de Memória 
 
Obs: Outra classificação possível seria: 
 
Informações digitais binárias (manipuladas pela CPU): 
 - Endereços de memória 
 - Palavras (conteúdo) de memória 
- Instruções 
- Dados 
 - Numéricos 
 - Inteiros 
 - Decimais/reais (“ponto-flutuante”) 
 - Não-numéricos 
 Caracteres e cadeias de caracteres (“strings”) 
 Lógico (ou “booleano”) 
 Endereços de outros dados (** são os “ponteiros”, em programação) 
 
 
2) Qual é a função básica do carregador (ou loader), parte do Sistema Operacional, e que tarefas são 
envolvidas na execução desta função? 
 
Resp: A função do loader é carregar os programas na memória principal e iniciar sua execução. Este 
trabalho envolve ao menos 3 tarefas: 
 
8
a – copiar o conteúdo do programa de um local fonte para a memória (os bytes que compõem instruções e 
dados); 
b – alocar (reservar) espaço em memória para os dados (a maioria das variáveis ainda não possui um valor 
neste momento); 
c – recalcular os endereços (referências) de memória (de variáveis e instruções de desvio, etc), que em 
geral são endereços relativos; 
d – por fim, colocar o endereço da 1.a instrução do programa no PC (Programa Counter, ou CI). 
 
3) Considere a fórmula básica para estimativa do tempo de CPU de um programa (vista em nossos slides 
sobre CPU), abaixo. 
 
Responda: 
Um programa com processamento altamente determinístico está prestes a ser executado. O compilador 
varreu o programa e detectou: 200 instruções simples (de um ciclo – consomem apenas um ciclo em sua 
execução); 200 instruções médias (dois ciclos); 100 instruções longas (quatro ciclos). Sabendo-se que este 
programa será executado em uma máquina com clock de 100 MHz, quanto tempo deverá levar a execução 
deste programa? 
Calcule o termpo de um ciclo de clock para esta máquina (T = 1/freqüência), como em exercício na lista 
para a AV1. Some as instruções multiplicadas pelos ciclos de clock de cada tipo (ex: 200 x 1 + 200 x 2 + ...) 
para obter o total de ciclos de clock, e por fim, multiplique o n.o de ciclos pelo tempo de um ciclo. 
 
 
4) Barramentos paralelos (que transmitem simultaneamente com 8, 16, 32, 64 bits...) são obrigatoriamente 
mais rápidos do que barramentos seriais? Ilustre sua resposta com um exemplo. 
Não. A princípio, pode parecer que um barramento com 8 a 128 fios ou trilhas paralelas sempre será mais 
rápido do que um serial. Se compararmos ambos como mesmo clock, sim. Entretanto, problemas e 
limitações de engenharia na transmissão paralela (como, por exemplo, o atraso ou delay, na velocidade de 
diferentes fios paralelos, que por geralmente serem obrigados a fazer ‘curvas’ nas placas, acabam por ter 
comprimentos diferentes) impedem que sejam adotados ‘clocks’ (freqüências) muito altos. Já as conexões 
seriais têm conseguido adotar clocks cada vez mais altos, já superando, em vários casos, as taxas de 
transferência dos barramentos paralelos. O grande exemplo atualmente é o da moderna conexão PCIe (PCI 
Express – nome comercial adotado para uma conexão serial ponto a ponto, que pouco tem a ver com o 
barramento PCI, e nem é considerado exatamente um barramento), que veio para substituir barramentos e 
slots PCI e AGP, já evoluiu e está na versão 3.0 e chega a funcionar em até 8GHz. 
(Conexões PCIe 3.0, em 16X e a 8GHz transmitem até 16.000 MB/s !!!). 
** Para saber mais, leia: http://www.clubedohardware.com.br/artigos/Tudo-o-que-Voce-Precisa-Saber-
sobre-a-Conexao-PCI-Express/1060 
 
 
5) Um arquivo com exatamente 2 GB dever ser transmitido da CPU para um módulo de E/S, através de um 
barramento paralelo, síncrono, com largura 32, clock de 200MHz, e que realiza apenas uma transferência 
por ciclo de clock. Ignorando-se possíveis atrasos, quanto tempo levará a transferência deste arquivo? 
 
 
6) Assinale cada uma das características de arquitetura (CPU / conjunto de instruções) abaixo com um ‘C’ 
(caso seja mais comum em projetos de máquinas CISC), ou com um ‘R’ (caso seja mais comum em projetos 
de máquinas RISC). 
[C] Conjunto grande de instruções 
[C] Instruções executadas por microcódigo 
[R] Instruções com formato fixo 
[C] Diversos formatos de instrução 
[R] Apenas um, ou poucos ciclos de máquina p/ instrução 
[R] Uso intensivo de pipeline 
[R] Instruções executadas diretamente pelo HW (hardwired) 
[C] Instruções pederosas, de ‘alto nível’ (mais próximas aos comandos de linguagens alto nível) 
[C] Uso pouco efetivo de pipeline 
[C] Vários ciclos de máquina p/ instrução 
[R] Conjunto reduzido de intruções básicas 
[R] Poucos modos de endereçamento 
 
9
[R] Muitos registradores 
[C] Diversos modos de endereçamento 
 
7) Assinale cada uma das ‘famílias’, ou linhas de processadores abaixo com um ‘C’ (caso sejam mais 
influenciadas pela filosofia CISC), ou com um ‘R’(caso sejam mais influenciadas pela filosofia RISC). 
[C] família ‘x86’ / Pentium (Intel e concorrentes) 
[C] DEC VAX 
[R] MIPS 
[C] Motorola 68xxx 
[R] PA-RISC 
[R] Arquitetura Power (incluindo PowerPC) 
[R] SPARC (SUN) 
[R] IBM RS-6000 
[R] DEC Alpha (DEC) 
[R] ARM 
 
 
8) Diga quais são os modos de endereçamento usados em cada uma das instruções abaixo: 
 
Sintaxe (formato) Efeitos (em termos de micro-arquitetura) Resposta 
a) LDAI oper ; acc  oper modo imediato 
b) LDAM oper ; acc  (oper) modo (direto em) memória 
c) ADD op1, op2 ; regs[op1]  regs[op1] + regs[op2] (direto em) registrador, em ambos 
d) SUB oper ; acc  acc + mp[ oper ] (direto em) memória 
e) LDIM oper ; acc  ( (oper) ) indireto em memória 
f) ADD r, op2 ; regs[r]  regs[r] + (op2) (direto) em registrador e em memória 
g) LDAX rx, ender ; acc  mp[ ender + regs[ rx ] ] indexado (ou base + índice) 
h) JMP oper ; (“jump”) pc  oper direto em memória, ou imediato 
i) BRZ oper ; (“branch if zero”) if acc = 0, pc  oper direto em memória, ou imediato 
j) CPYR op1, op2 ; regs[ op1 ]  mp[ op2 ] (direto) em registrador e em memória 
k) ADD ; acc  mp[tos]; acc  acc + mp[tos+1]; 
tos  tos-2; mp[tos]  acc; 
tos  tos – 1 
(** onde tos é o “top of stack”) endereçamento “em pilha” 
 
 
9) O que é a pilha de memória (por vezes chamada pilha de hardware) utilizada na execução de programas? 
Quais sãos as principais operações que podem ser efetuadas sobre a pilha, em qualquer arquitetura? 
Resp: a pilha é uma área de memória onde os dados são inseridos e retirados segundo o critério de entrada 
e saída LIFO (last in, first out – o úlimo a entrar será o primeiro a sair). Geralmente a base da pilha está em 
um endereço ‘alto’ e ela vai crescendo em direção ao início da memória. 
As principais operações são: 
push, ou ‘empilha’ (insere um novo dado no topo da pilha); 
e pop, ou ‘desempilha’ (retira o dado do topo da pilha). 
 
10) Considere um computador com uma CPU baseada em acumulador, em que a pilha de memória (stack) 
associada a um programa está no estado inicial mostrado abaixo: a base da pilha (registrador BOS – base of 
stack) é o endereço FF08, e o topo da pilha (registrador TOS – top of stack) é o endereço FF06. Desenhe a 
configuração da pilha após a execução de cada uma das instruções abaixo: 
 
endereç
o 
valo
r 
FF00FF01 
FF02 
FF03 
FF03 
FF04 
FF05 
FF06 30 
FF07 42 
 
10
FF08 45 
FF09 
FF0A 
POP ACC (ACC  mp(TOS) ) 
PUSH 25 (modo imediato) 
PUSH 20 
POP ACC 
ADDS (instrução “Add in stack” – adição em pilha) 
MULS (instrução “Multiply in stack” – multiplicação em pilha) 
 
endereç
os 
valores valores valores valores valores valores valores 
FF00 
FF01 
FF02 
FF03 
FF03 
FF04 
FF05 � 20 
FF06 � 25 25 � 25 
FF07 � 42 42 42 42 � 67 
FF08 45 45 45 45 45 � (67*45) 
FF09 
FF0A 
 
** a seta (�), a cada passo, indica o topo da pilha. 
 
11) Qual o tipo de memória usado nas caches (ROM, RAM, DRAM, PROM, ou alguma outra)? 
A memória SRAM (Static RAM – RAM estática), um tipo de RAM mais rápida, mais cara e menos densa que a 
DRAM. 
 
12) Quantos e quais são os níveis de cache encontrados atualmente, na maioria dos sistemas micro-
computadores? A memória cache é sempre única, ou pode ser dividida em mais de um tipo de informação? 
Hoje em dia boa parte dos computadores tem 3 níveis de cache: L1, L2 e L3. E é comum a divisão da cache 
(L1 e, por vezes, a L2) em cache de instruções e cache de dados, para aumentar a eficiência pela redução 
do número de ‘cache faults’. 
 
13) Além da questão do custo, há algum outro motivo para que não se aumente indefinidamente a 
quantidade de memória cache em um sistema? 
Há sim. Por uma série de motivos (estatísticos, inclusive), há um ponto em que o aumento da quantidade de 
cache, apesar de aumentar o custo, traduz-se cada vez menos em ganho de performance. 
 
14) Observe as ações listadas abaixo: 
 1 - trazer a próxima instrução da memória até o registrador 
 2 - alterar o contador de programa para iniciar a próxima instrução 
 3 - determinar o tipo de instrução trazida 
 4 - se a instrução usar uma palavra na memória, determinar onde esta palavra está 
 5 - trazer uma palavra para dentro de um registrador da CPU se for necessário 
 6 - executar a instrução 
 7 - voltar a etapa 1 para iniciar a execução da instrução seguinte 
 
 As ações acima são levadas a cabo pelo(a): 
a) MEMÓRIA RAM 
b) ULA 
c) CPU 
d) MÁQUINA VIRTUAL 
e) CICLO DE INSTRUÇÕES 
 
15) Com relação a compiladores, ligadores (link-editores) e interpretadores, é CORRETO afirmar que: 
a) uma função importante do tradutor é a realocação de código; 
b) o link-editor é o utilitário responsável por carregar, na memória principal, um programa para ser 
 
11
executado 
c) o depurador é o utilitário responsável por gerar, a partir de um ou mais módulos-objeto, um único 
programa executável 
d) o link-editor é o utilitário responsável por gerar, a partir de um ou mais módulos-objeto, 
um único programa executável 
e) a grande vantagem do uso de interpretadores é o tempo gasto na tradução de suas instruções 
sempre que é executado 
 
16) São exemplos de políticas de substituição de páginas na memória cache: 
a) FIFO, LRU, JTU, Random 
b) aleatório, FIFO, LILO, LFU 
c) aleatório, FIFO, LRU, LFU 
d) FIFO, LILO, LFU, TCU 
e) aleatório, FIFO, DMA, GPU 
 
Resp: letra C 
 
17) Sabemos que a memória cache é dividida em blocos ou páginas, e que há um número menor de menos 
páginas do que na memória principal. Quando uma leitura é solicitada pela CPU e o dado já se encontra na 
cache, ok, temos um ‘cahe hit’. Mas quando há um ‘cache fault’, deve ser lida a memória principal, e uma 
nova página deve ser trazida para a cache. Quando a cache está cheia e precisa ter seus dados substituídos, 
é utilizada algum algoritmo (ou política) de substituição de páginas da cache. Dentre eles, há aquele que 
substitui o bloco presente na cache que foi menos referenciado desde sua carga. Outro substitui o bloco que 
foi carregado há mais tempo. Estes métodos são, respectivamente: 
 
a) Random (aleatório) e FIFO (First In First Out) 
b) LFU (Least Frequently Used) e FIFO 
c) LRU (Least Recently Used) e Random 
d) FIFO e LFU 
e) LILO (Last In Last Out) e FIFO 
 
Resp: letra B 
 
 
18) NÃO se trata de uma função de um Módulo de Entrada/ Saída, que faz a interface entre o periférico que 
ele controla e o barramento do sistema. 
 
a) Comunicação com dispositivos. 
b) Controle e Temporização. 
c) Comunicação com o processador. 
d) Processar cálculos matemáticos. 
e) Armazenamento temporário de dados. 
 
Resp: letra D 
 
 
19) Sabemos que a estrutura interna dos HDs (discos rígidos) é formada por pratos (em geral com duas 
faces), divididos em cilindros (trilhas) e setores. (abaixo). 
 
 
12
 
 
Qual é a capacidade teórica (em MB) de um disco rígido com 4 pratos duplos (2 faces em cada prato, cada 
uma com sua própria cabeça de leitura/gravação), 64K trilhas por face, 16 setores por trilha e setores com 
tamanho de 1KB? 
 a) 256 MB. 
 b) 8 GB 
 c) 128 GB 
 d) 8 MB 
 e) 64 MB 
 
Resp: Qtd = 8 x 64K x 16 x 1K = 2**3 x 2**16 x 2**4 x 2**10 (bytes) = 2**(3+16+4+10) = 2**33 = 
2**3 x 2**30 = 8 x 1G = 8 G (em bytes) = 8 GB (letra B) 
 
 
20) Considere as alternativas abaixo sobre Overclock em processadores/placas: 
I) Técnica que permite com que o processador trabalhe em uma frequência maior do que aquela para a 
qual o mesmo foi projetado. 
II) Permite com que ocorra uma queda na emissão de calor por parte do processador. 
III) É usado também para aumentar a frequência de trabalho em outros periféricos, como placas de 
vídeo. 
 
Estão correta(s): 
a) Somente a alternativa I 
b) Somente a alternativa II 
c) Somente a alternativa III 
d) Somente I e III 
e) Somente I e II 
 
Resp: letra D 
 
 
21) (*** uma questão curiosa e interessante) 
Pergunta: A maioria das pessoas conta em seus dedos de 1 a 10, em decimal. Entretanto, quem trabalha 
 
13
com informática pode fazer melhor. Se você olhar cada dedo seu como um dígito binário, sendo o dedo 
estendido igual a 1 e o dedo recolhido igual a 0, você pode contar até: 
a) 33 
b) 1023 
c) 50 
d) 31515 
e) 512 
 
Resp: 1023 (que é o maior valor até o qual se consegue contar com 10 bits/dedos – 2**10 = 1024). 
 
 
22) Você possui um link de internet em sua residência de 1 Mbps. 
Considerando este link, informe em quanto tempo você conseguiria efetuar o download 
de um arquivo de 600 MB. 
a) 100 minutos 
b) 90 minutos 
c) 80 minutos 
d) 70 minutos 
e) 60 minutos 
 
Resp: letra c) 80 min. -> 1 Mbps -> 600 MB = 600x8 Mb = 4800Mb ---> 4800 Mb / 1Mbps = 
4800s = (4800/60)min = 80 min. 
 
 
23) Prova: VUNESP - 2013 - CTA - Técnico em Informática 
Disciplina: Arquitetura de Computadores 
A Unidade Central de Processamento de um computador típico é constituída pela Unidade Lógica Aritmética 
(ULA) e pela Unidade de Controle (UC).Uma das atividades realizadas pela UC é: 
 a) a execução de instruções em ponto-flutuante. 
 b) a execução de todos os tipos de instruções 
 c) a decodificação de instruções 
 d) o armazenamento de instruções em disco. 
 e) o gerenciamento da memória dinâmica 
 
Resp: letra C 
 
24) Diga quais são os 2 métodos de detecção/correção de erros mais comuns utilizados em sistemas de 
computação. 
Resp: O esquema mais simples é o bit paridade (apenas para detecção), podendo usar um ou mais bits de 
paridade, e usar “paridade par” ou “ímpar”. Em sua forma mais simples, acrescenta-se um único bit a uma 
cadeia original de bits (por exemplo: 1 bit para cada 7), de forma a garantir que o número de bits ‘1’ será 
sempre ‘par’ (ou ‘ímpar’) antes da transmissão. Após a transmissão, no ponto receptor, o número de bits ‘1’ 
é conferido. Se não estiver de acordo coma ‘regra combinada’, ouve um erro, e é solicitada retransmissão do 
dado. Observe que este esquema só é capaz de detectar a troca de um único bit, e apenas detecta, não 
sendo capaz de identificar qual bit foi trocado, muito menoscorrigir o erro. 
 
Um esquema mais poderoso (detecção e correção), e bem mais complexo, é o chamado Código de 
Hamming, que também pode acrescentar um número variável de bits à palavra original. Baseia-se na idéia 
básica dos bits de paridade. Bits extra são acrescentados no meio da palavra original, nas posições 
correspondentes a potências de 2 (bit 1, 2, 4, 8, etc). Cada bit de paridade será calculado com base em 
todos os bits originais que usam aquela potência de 2 em sua composição binária. 
(parece um pouco complicado, não?!! Mas é um bom exemplo da engenhosidade humana, sempre presente 
no universo da computação. Procure ler sobre o assunto no livro Stallings ou Tanenbaum, ou na web). 
 
 
25) Em um sistema de memória que utiliza o método “bit-paridade” para a detecção de erros, com paridade 
par, qual será a sequencia de bits, antes da transmissão, das seguintes palavras? 
 
a) 10011100 
b) 11100110 
 
14
Resp: a) 10011100 0 (pois o número de bits 1 é 4, logo, já é par) 
b) 10011100 1 (pois o número de bits 1 é 5, ímpar) 
 
26) Qual é a diferença básica entre uma instrução de CALL (cujo nome pode variar um pouco, mas que é a 
instrução de máquina típica usada para a “chamada de subrotinas” em programas de alto nível) para uma 
instrução de desvio incondicional, como JUMP <endereço>? 
 
Resp: a grande diferença é que uma instrução de CALL é uma espécie de desvio incondicional 
que têm que saber voltar, mais tarde (no momento do ‘return’) para o mesmo ponto do 
programa onde estava (é o chamado ‘retorno de subrotina’). Para isso, a instrução deve salvar 
o conteúdo atual do registrador CI (ou PC), em geral, na pilha. 
 
27) Quais são as funções básicas de um linkeditor, ou linker, no processo de programação / criação de 
novos programas? 
 
Resp: Fazer a ‘ligação’, ou ‘linkedição’ dos diversos módulos que normalmente compõem o programa 
executável, o que significa basicamente: 
 juntar os módulos de programa  – trechos de código objeto – necessários (por exemplo, diferentes 
arquivos .obj ou .lib que são ligados, na compilação de um programa em linguagem C, para compor um 
arquivo “.exe”) 
 e recalcular os endereços de memória  trazidos nas instruções (de modo que não sejam absolutos, mas 
relativos (isto é, quando da geração de código relocável, que é a maioria dos casos atualmente) ao início do 
programa como um todo). 
 
28) Explique sucintamente o conceito por trás das DLLS e do processo de ligação dinâmica. 
 
Resp: A idéia central no uso da técnica de ligação dinâmica, que envolve as ‘bibliotecas de vínculo dinâmico’ 
(DLL – Dynamic Link Library) é de que as rotinas de bibliotecas, e outros trechos de código necessários ao 
programa, só sejam ligados a este no momento de sua carga, isto é, quando o programa está sendo 
carregado na memória (função executada pelo loader, ou carregador, que é parte do SO), para ser 
executado. 
As principais vantagens desta técnica são: primeiramente, cada programa criado fica menor 
(seu(s) arquivo(s) no HD, após a ligação); e, além disso, quando há uma atualização (melhoria 
ou correção de erros) em uma DLL (ou em algumas de suas rotinas) todos os programas que as 
utilizam receberão os benefícios, a partir da próxima vez que forem carregados em memória. 
 
29) Considere um processador XPTO-4, da empresa ACME, que foi projetado utilizando um pipeline, com 
apenas 3 estágios (busca, decodificação e busca de operandos, execução). Cada estágio, em geral, gasta 
um ciclo de clock para ser executado, para qualquer instrução (uma simplificação, para facilitar nossos 
cálculos). Qual será o tempo (número de ciclos) para que sejam executadas 8 instruções, com o pipeline, e 
qual seria este número sem o recurso do pipeline? OBS: considere que não há, entre estas instruções, 
nenhuma de desvio (ou seja, trata-se de uma sequência de “pipeline perfeito”). 
 
Resp: representemos a ideia básica do pipeline em uma tabelinha: 
 
Estágio/ciclos 1 2 3 4 5 6 7 8 9 10 11 12 
E1 I1 I2 I3 I4 I5 I6 I7 I8 
E2 I1 I2 I3 I4 I5 I6 I7 I8 
E3 I1 I2 I3 I4 I5 I6 I7 I8 
 
Logo: como podemos ver acima, com o pipeline, seriam consumidos 10 ciclos. 
Sem o pipeline (ou seja, com a busca da próxima instrução sendo iniciada apenas após o 
término da execução da instrução anterior), seriam 8 x 3 ciclos, = 24 ciclos. 
 
 
15
30) Para que serve o registrador geralmente chamado de PSW, presente nas CPUs, e qual o 
significado da sigla PSW? 
Consulte slides sobre CPU e nível de instruções de máquina, ou o livro (Mário Monteiro, cap.6 e 
8). 
PSW = Program Status Word, um registrador especial (não acessível ao programador de 
sistema) que possui bits independentes que são ‘setados’ automaticamente ao final de cada 
operação da ALU, e são consultados pela UC durante a execução de diversas instruções. (ex: 
valor de saída da ALU é par? Valor é zero? Houve overflow?).

Outros materiais