Você está na página 1de 9

Universidade Federal do Espírito Santo

DCE08399 - Sistemas Digitais - EARTE

T1 - Processador Programável de Três Instruções

Diogo Jéferson Guimarães Araújo,


sob orientação de Anibal Cotrina

São Mateus
2021
Universidade Federal do Espírito Santo
DCE08399 - Sistemas Digitais - EARTE

SUMÁRIO

1 Introdução
2 Desenvolvimento
3 Conclusão
4 Referências
5 Apêndice A
Universidade Federal do Espírito Santo
DCE08399 - Sistemas Digitais - EARTE

1 Introdução

1.1 Origem da Atividade

O desenvolvimento da presente atividade foi designada pelo professor Anibal


Cotrina, na disciplina de Sistemas Digitais (código DCE08399). Essa atividade consiste na
criação de um processador de propósito geral de três instruções, como observado na seção
“8.3 UM PROCESSADOR PROGRAMÁVEL DE TRÊS INSTRUÇÕES” do livro “Sistemas
Digitais: projeto, otimização de HDLs” (Vahid, 2009).
O processador possui uma arquitetura geral como exposto na figura 1 (figura 8.4
do livro). Ela contém quatro componentes principais: memória de instruções, unidade de
controle (contém o bloco de controle), memória de dados e bloco operacional.

Figura 1: A unidade de controle de um processador programável (Vahid, 2009).

1.2 Especificação do Bloco Operacional

O processador abordado no livro possui três instruções básicas de carregar,


armazenar e somar. Os valores para realizar as instruções consiste em uma entrada de 16
bits, enquanto os dados que sofrerão alterações ou transporte estarão alocados em uma
memória, conhecida como “Memória de Dados”, abreviada por D. Estes dados podem
transitar entre a memória D e outro componente de memória conhecido como “Banco de
Registradores”, abreviado por RF. Em RF é onde os dados serão processados para serem
utilizados em operações lógico-aritméticas. Na realização das operações, temos o seguinte
formato de entrada:
 Carregar - 0 0 0 0 r0 r1 r2 r3 d7 d6 d5 d4 d3 d2 d1 d0 : a instrução é denotada
pelo valor “0 0 0 0”, ela transporta os dados da memória D alocados sob o
endereço “d7 d6 d5 d4 d3 d2 d1 d0” para o banco RF no endereçamento “r0 r1 r2 r3”.
 Armazenar - 0 0 0 1 r0 r1 r2 r3 d7 d6 d5 d4 d3 d2 d1 d0 : a instrução é denotada
pelo valor “0 0 0 1”, ela transporta os dados do banco RF alocados sob o

1
Universidade Federal do Espírito Santo
DCE08399 - Sistemas Digitais - EARTE

endereço “r0 r1 r2 r3” para a memória D no endereçamento “d7 d6 d5 d4 d3 d2 d1


d0”.
 Somar - 0 0 1 0 ra0 ra1 ra2 ra3 rb0 rb1 rb2 rb3 rc0 rc1 rc2 rc3 : a instrução é
denotada por “0 0 1 0”, ela soma os valores guardados nos registradores de RF
cujos endereços são “rb0 rb1 rb2 rb3” e “rc0 rc1 rc2 rc3”, soma os valores e salva
no registrador cujo endereço é “ra0 ra1 ra2 ra3”.

1.3 Especificação da Unidade de Controle

Para executar uma operação qualquer, o processador de propósito geral precisa


realizar operações simples anteriormente, para decidir qual é o procedimento atual e qual
é o próximo. Uma máquina de estados é necessária para o funcionamento dessa etapa.
Essas operações ocorrem na seguinte ordem:
 Início: nenhuma operação é realizada ainda, o processador aguarda a inicialização

do processo de leitura de uma memória, conhecida como “Memória de


Instruções”, abreviada por I. Nesse momento, o contador externo à máquina de
estado está zero. Esse contador externo é conhecido como “Contador de
Programa”, abreviado por PC, e ele guarda o endereço da memória I da próxima
instrução a ser executada.
 Busca: assim que o programa é inicializado, o contador PC armazena o endereço

referente à próxima instrução e o registrador, conhecido como “Registrador de


Instrução”, abreviado por IR guarda a instrução a ser executada.
 Decodificação: o bloco de controle seleciona a operação que deve ser realizada

conforme os quatro bits que apontam a instrução a ser realizada no bloco


operacional.
 Execução: a instrução desejada é realizada conforma mostrado na explicação do

bloco operacional. Após essa operação ser encerrada, a máquina retorna ao


estado de busca, em direção à próxima instrução.
A execução da máquina de estados, no bloco de controle, ocorre conforme a
figura 2 (Figura 8.9 do livro).

Figura 2: Descrição de um processador programável de três instruções por meio de uma


máquina de estados de alto nível (Vahid, 2009).

2
Universidade Federal do Espírito Santo
DCE08399 - Sistemas Digitais - EARTE

2 Desenvolvimento

2.1 Componentes Essenciais

O processador programável é composto de quatro componentes, como explicitado


anteriormente. Abordaremos cada um dos componentes e seus elementos na seguinte
ordem: 1) Unidade de Controle e 2) Bloco Operacional. Veja o circuito completo na
figura 3.

Figura 3: Projeto do circuito completo, construído no Logisim (imagem do autor).

2.2 Unidade de Controle

A unidade de controle é composta por três elementos principais: o PC, o IR e a


máquina de estados (bloco de controle).
A máquina de estados foi criada conforme a figura 2. Quando inserida no circuito
para a geração do bloco de simulação da Unidade de Controle, obteve-se o seguinte
circuito como resultado, na figura 4.

Figura 4: Unidade de controle do processador (imagem do autor).

3
Universidade Federal do Espírito Santo
DCE08399 - Sistemas Digitais - EARTE

2.3 Bloco Operacional

O bloco operacional é dotado de três componentes principais também: o


multiplexador (que dará abertura para a passagem dos dados conforme a operação
desejada), o RF e a Unidade Lógica Aritmética (ULA) - Arithmetic Logic Unit (ALU). A
ALU é responsável por realizar a operação de soma, apenas, no caso deste processador.
Todas as outras operações ocorrerão apenas entre o RF e as memórias. O bloco
operacional está projetado conforme a figura 5.

Figura 5: Bloco operacional do processador (imagem do autor).

A ALU e o banco RF foram projetados conforme as figuras 6 e 7, respectivamente.

Figura 6: ALU do processador (imagem do autor).

4
Universidade Federal do Espírito Santo
DCE08399 - Sistemas Digitais - EARTE

Figura 7: Banco de registradores do processador (imagem autoral).

5
Universidade Federal do Espírito Santo
DCE08399 - Sistemas Digitais - EARTE

Referências

[1] Vahid, F. (2009). Sistemas Digitais. Bookman Editora.

6
Universidade Federal do Espírito Santo
DCE08399 - Sistemas Digitais - EARTE

Apêndice A

Link mostrando o funcionamento do circuito:


https://drive.google.com/file/d/1VxWUdQ8_uDW0o_UQF60Dkwsyu_tnl0K2/view?usp
=sharing
Para a realização do experimento, foi inserido o valor de 16 bits
“0000000000000001” (1) nos endereços 5, 6 e 7 da memória de dados D, resultando no
armazenamento do valor “0000000000000011” (3) no primeiro registrador do banco RF e
no endereço 5 da memória D.

Você também pode gostar