Universidade Estácio de Sá
Curso de Organização de Computadores II
Prof. Gabriel P. Silva - 1o Sem. / 2005
1a Lista de Exercícios
1) Desenhe um diagrama funcional do modelo do tipo Von Neumann. Faça uma breve descrição
de cada uma de suas partes.
MEMÓRIA
ENTRADA
ARITMÉTICA
SAÍDA
CONTROLE
- Memória: É a unidade onde as instruções, os dados de entrada, as tabelas de referência, e os
resultados intermediários são armazenados para permitir a execução de um programa.
- Controle: É a unidade responsável pelo seqüenciamento das operações e pelo controle das
demais unidades do computador.
-
Aritmética: É a unidade que irá executar as operações aritméticas e lógicas tais como: soma,
subtração, multiplicação, divisão, raiz quadrada, movimentação entre a unidade aritmética e a
memória, verificação do sinal do resultado, conversão de decimal para binário e vice-versa.
Um total de 10 operações fundamentais foi definido por Von Neumann. É chamada
abreviadamente de UAL.
-
Entrada: É a unidade que transfere a informação (numérica ou não) do meio externo. Todas
as transferências devem ser feitas para a memória e nunca diretamente para a unidade de
controle.
- Saída: É a unidade que transfere a informação (numérica ou não) para o meio externo. Todas
as transferências devem ser feitas da memória para o meio externo, e nunca diretamente da
unidade de controle.
2) Desenhe o diagrama em blocos do modelo de barramento de sistema, com uma breve
descrição de cada uma das unidades funcionais.
ENTRADA
PROCESSADOR
MEMÓRIA
E
SAÍDA
Controle
BarramentodeEndereço
BarramentodeDados
Nesse modelo, a unidade de controle e a unidade aritmética são vistas como um só
elemento e recebem o nome de processador. As unidades de entrada e saída são vistas
agora também como uma única unidade, chamada de unidade de entrada/saída. A
memória continua sendo vista com uma unidade independente, com as mesmas funções
da arquitetura de Von Neumann, ou seja, armazenamento de dados e instruções dos
programas em execução.
Um elemento novo que surge é o próprio barramento de sistema, que faz a interligação entre o
processador, a memória e a unidade de entrada/saída. O barramento de sistema é composto
pelos barramentos de endereço, dados e controle.
O barramento de endereços transporta os sinais de endereço através de fios ou trilhas até a
memória. Sinais estes que vão, principalmente, determinar qual a posição de memória que irá ser
lida ou escrita. Os endereços podem ser fornecidos tanto pelo processador como pela unidade de
entrada/saída.
A informação dessa posição de memória, que está sendo lida ou escrita na memória, transita pelo
barramento de dados, que é bidirecional. Apesar do nome, tanto instruções como os dados
propriamente ditos circulam por esse barramento.
O barramento de controle indica qual a natureza da operação que vai ser realizada: leitura ou
escrita, na maior parte dos casos, e possui também sinais para a arbitragem do barramento, para
determinar quem vai utilizar o barramento naquele momento, que pode ser tanto o processador
como a unidade de entrada/saída.
3) Quais são os componentes principais do processador?
R: Unidade Aritmética e Lógica, Unidade de Controle e Banco de Registradores.
4) Quais as funções que o processador realiza?
R:




Buscar instruções e dados na memória.
Programar a transferência de dados entre a memória e os dispositivos de entrada/saída.
Decodificar as instruções.
Realizar das operações aritméticas e lógicas.

Responder aos sinais enviados por dispositivos de entrada/saída, tais como interrupções e
sinais de erro.
5) Qual a função do apontador de instruções (PC)?
R: Guarda o endereço da próxima instrução a ser executada.
6) Qual a função do banco de registradores do processador?
R: É o conjunto de registradors que são visíveis ao programador e/ou compilador. Ou seja, que
podem ser utilizados para a execução de um programa.
7) Qual a função da memória principal?
R: A memória principal é utilizada para armazenar os programas e dados que vão ser
processados durante a operação normal do computador. As informações armazenadas memória
principal podem ser alteradas durante a execução de um programa. São também usadas para
armazenar os resultados intermediários e finais das operações realizadas pelo processador.
8) Qual a função da unidade de E/S?
R: A unidade de entrada e saída contém os circuitos de interface necessários para permitir a
comunicação entre os dispositivos de entrada/saída (também chamados de periféricos) com as
demais partes do computador.
9) Descreva todos os passos do ciclo de busca de instrução de um processador.
R:
1. Busca a próxima instrução que está localizada na memória para o registrador de instrução;
2. Atualiza o apontador de instruções (PC) para que ele aponte para a próxima instrução a
ser lida da memória e executada.
3. Determina o tipo de instrução e o número de operandos;
4. Busca os operandos, se houver, para os registradores no processador;
5. Executa a instrução;
6. Armazena os resultados;
7. Volta ao passo 1 para executar a próxima instrução.
10) Quais são os principais tipos de instruções do processador DLX?
R:





Instruções aritméticas (soma, subtração, divisão, multiplicação, etc).
Instruções lógicas (complemento, deslocamento, etc.).
Instruções de transferência de dados (entre registradores, do registrador para a memória,
da memória para o registrador).
Instruções de transferência de controle (desvio incondicional e condicional, chamada de
procedimento, etc).
Instruções de Ponto Flutuante
11) Desenhe um fluxograma, e descreva todos os arquivos e programas, com as diversas etapas
desde o código fonte até a obtenção do código executável.
R:
Programa em
Linguagem de Alto
Nível
Compilador
Programa em
Linguagem de
Montagem
Montador
Objeto:
Rotinas
da
Biblioteca (em linguagem de
máquina)
Objeto: Programa em
Linguagem de Máquina
Ligador
Programa Executável
Carregador
Memória
12) Quais as diferenças entre linguagem de máquina e linguagem de montagem?
R: A linguagem de montagem é uma representação simbólica das instruções utilizando
mnemoicis, isto é, pode ser entendida pelo programador. A linguagem de máquina é o conjunto
das instruções em formato binário que são executadas pelo processador.
13) Cite três exemplos de linguagens de alto nível.
R: C, PASCAL e JAVA.
14) Suponha um vetor na memória, cuja posição inicial é
apontada pelo registrador R16 e cada elemento possui 4
bytes, com os seguintes dados mostrados ao lado.
Quais os dados carregados nos registradores R2, R3 e R4
depois da execução do seguinte trecho de código:
lw
lw
lw
R:
R2, 0(R16)
R3, 8(R16)
R4, 20(R16)
8
80
16
39
3
87
73
24
19
28
...
R2 = 8
R3 = 16
R4 = 87
15) Traduza o trecho seguinte de programa em linguagem “C” para linguagem de montagem.
Considere que as variáveis i, j e k estão em memória.
i= 4;
j= 8;
if ( i < j)
k = j*2;
else
{
k = i-2;
j = j +1;
}
ELSE:
FIM:
addi
addi
sw
sw
slt
beqz
slli
sw
j
subi
addi
sw
sw
nop
R1, R0, 4
R2R0, 8
I(R0), R1
J(R0), R2
R8, R1, R2
R8, ELSE
R3, R2, 1
K(R0), R3
FIM
R3,R1,#2
R1, R1, #1
K(R0), R3
I(R0), R1
16) Traduza o trecho seguinte de programa em linguagem “C” para linguagem de montagem.
Considere que a variável i está no registrador R1 e que o endereço inicial do vetor A está em
R16. A variável MAX e o vetor A estão armazenados em memória e possuem 4 bytes cada.
MAX = A[0];
for ( i = 1, i < 100, i++)
{
if (A[i] > MAX) MAX = A[i];
}
R: Fica para a próxima ...
17) Supondo-se que os valores de LABEL e ROTINA sejam, respectivamente, 10000 e 13000,
qual será o conteúdo do apontador de programa (PC), dos registradores R31 (RA) e R1 após
a execução do seguinte trecho de programa? Justifique.
LABEL:
addi R2, R0,#4
addi R3, R0,#7
add
R1, R2, R3
jal
ROTINA
R: Como o PC da instrução jal é 10.012, depois que ela for executada, o R31 será 10.012 + 4, ou
seja, R31 = 10.016 e PC =13.000 (ROTINA).
18) A figura abaixo mostra o formato da instrução add R1,R2,R3 em linguagem de máquina. Como
ficaria este formato se a instrução fosse and R12,R13,R14? O código de função
correspondente à instrução and é 00000010010.
opcode
000000
000000
rs1
rs2
00010
00011
01101
rd
00001
01110
01100
função
00000100000
00000010010
19) No trecho em linguagem de montagem a seguir, identifique os diversos modos de
endereçamento (imediato, registrador, indireto, relativo ao PC) e classifique os tipos de
instruções (aritmética, lógica, transferência de dados, transferência de controle) existentes.
LABEL:
lb
addi
bnez
lw
addi
sw
sub
lw
beqz
j
R1, CONST1
R2, R0, CONST2
R3, LABEL
R4, 0(R16)
R1, R2, -1
0(R16), R4
R1, R1, R2
R6, 4(R18)
R2, LABEL
EXIT
transf. Dados
aritmética
transf. Controle
transf. Dados
aritmética
transf. Dados
aritmética
transf. Dados
transf. Controle
transf. Controle
Reg. , Imediato
Reg., Reg., Imediato
Reg., Relativo ao PC
Reg., Indireto
Reg., Reg., imediato
Indireto, Registrador
Reg., Reg., Reg.
Reg., Indireto
Reg., Relativo ao PC
Relativo ao PC
Download

Resolução da 1a Lista