Você está na página 1de 5

Decodificador, a instrução recebida está armazenada em binário, para converter para uma operação

aritmética conhecida utilize a conversão vista em aula e a tabela abaixo:


Decimal Hexadecimal Operação Aritmética
43 2B + (ADD)
42 2A * (MUL)
45 2D - (SUB)
47 2F / (DIV)
123 7B Load
125 7D Store

Operações
Load(Pos, Reg) “Busca o valor em uma posição da memória de
endereço passado como referencia”
Store(Reg, Pos) “Busca o valor em uma posição da memória de
endereço passado como referencia”
ADD(Pos1, Pos2) “Soma dois valores armazenados na posição
Pos1 e Pos2“
SUB(Pos1, Pos2) “Subtração de dois valores armazenados na
posição Pos1 e Pos2”
MUL(Pos1, Pos2) “Multiplicação de dois valores armazenados na
posição Pos1 e Pos2”
DIV(Pos1, Pos2) “Divisão de dois valores armazenados na
posição Pos1 e Pos2”

Programa de Exemplo:

15 0111 1011​(0, R1) → 16


16 0111 1011​(3, R2) → 17
17 0010 1011 ​(R1, R2) → 18
18 0111 1101 (​ R3, 12) → null

Resultado
Memória RAM
Posição Valor
0 15
1 20
2 1
3 18
4 0
5 2
6 0010 1011 +

7 0010 1101 -

8 0010 1111 /

9 0010 1010 *

10 0111 1011 Load

11 0111 1101 Store

12 0111 1011(1 ,R1) → 13

13 0111 1011(3, R2) → 14

14 0010 1011(R1, R2) → 15

15 0111 1101(R3, 21) → null

16
17
18
19
20
21
22 0111 1011(4, R1)Load → 23

23 0111 1011(2, R2)Load → 24

24 0010 1011(R1, R2) Add → 25

25 0111 1101(R3, 17) Str → 26

26 0111 1011(17, R1)Load → 27

27 0010 1011(R1, R2) Add → 28

28 0111 1101(R3, 17) Str → null

29
30
31
32
33
34
35

Roteiro:

Registrador R1 Olá, você é o registrador R1 e a sua função é


armazenar um dos dados de entrada da ULA.
Olá, você é o registrador R2 e a sua função é
Registrador R2 armazenar um dos dados de entrada da ULA.

Olá, você é o registrador R3 e a sua função é


armazenar o resultado de cada operação da
ULA.
Registrador R3
Olá, você é a Unidade Lógico Aritmética(ULA) e
sua responsabilidade é executar a instrução que
está armazenada no Registrador de Instruções.
As entradas A e B para as instruções estão
Unidade Lógico Aritmética (ULA) armazenadas respectivamente nos registradores
R1 e R2, já a saída será armazenada no
registrador R3.
Olá, você é o Decodificador de Instruções e sua
responsabilidade é decodificar as instruções
lidas na memória.
Decodificador de Instruções (DI)
Olá, você é o Contador de Programa e você é
um registrador que mantém armazenado
somente um valor, o endereço da próxima
Contador de Programa (PC)
instrução que será lida na memória.
Olá, você é a memória RAM e você já começa
com alguns dados gravados. Sua função é
fornecer valores ao barramento ou gravar
Memória RAM
informações na sua tabela por solicitações dele.
Olá, você é a Memória Cache e sua função é
tornar o acesso dos dados da memória principal
mais rápido. Você irá armazenar os dados que
irão para o processador e os que retornam, para
Memória Cache que caso sejam solicitados novamente você
informe sem que seja necessário acessar a
memória RAM.
Registrador de Intrução (RI) Olá, você é o registrador RI e a sua função é
armazenar a operação que a ULA irá executar.

Olá, você é o Barramento e sua função é


movimentar os dados dentro do processador.
Em um computador convencional o barramento
Barramento é só o meio por onde os dados são passados,
no entanto, nessa atividade você deverá fazer
uma movimentação de cada vez, conforme as
solicitações da Unidade de Controle.

Olá, você é a Unidade de Controle, e a sua


função é coordenar as atividades do
processador. Basicamente você irá coordenar
as atividades de comunicação no processador,
fazendo requisições ao barramento.
Abaixo segue sua agenda de transferência de
dados:
Verifica com o Contador de programa o
endereço da próxima instrução.
Solicita que o barramento busque a
instrução na memória cache e caso não
tenha o dado, deverá ir até a memória
RAM buscar a instrução e levar para o
decodificador de instrução.
Deve ser solicitado ao barramento que
busque a próxima instrução na memória
e este dado deve ser repassado ao
Contador de Programa.
Voce solicitará que o barramento pegue
a instrução que foi decodificada.
Uma vez a instrução decodificada, você
Unidade de Controle (UC) saberá se precisa ativar novamente o
barramento para buscar um dado na
memória ou dará sinal verde para a ULA
executar uma operação.
◦ Caso a instrução seja de LOAD, você
deverá solicitar ao barramento que
busque o dado na hierarquia de
memórias e no retorno do dado, o
mesmo deve ser repassado ao
registrador informado na instrução.
◦ Caso a instrução seja um STORE,
trata-se da gravação do dado
armazenado em R3 na memória
Cache/RAM. Nesse caso você
solicitará que o Barramento busque a
informação em R3 e grave no
endereço informado na instrução.
◦ Caso a instrução seja ADD, MUL, DIV
ou SUB, você deverá solicitar que o
Registrador de Intrução armazene a
instrução decodificada e você
sinalizará a ULA que ela deve realizar
a operação.
◦ O processo recomeça

Você também pode gostar