A maior rede de estudos do Brasil

Grátis
11 pág.
O Funcionamento de um Processador Básico de 4 Bits

Pré-visualização | Página 1 de 2

O Funcionamento de um Processador Básico de 4 Bits 
Mateus Medeiros de Souza 
Instituto de Computação – Universidade Federal do Amazonas (UFAM) – 
Manaus, AM – Brasil 
mms1@icomp.ufam.edu.br 
 
1. Descrição do Circuito 
O processador básico é composto por 1 decodificador (o dec, que atua como um 
demultiplexador), 4 portas AND, 4 Registradores, 2 multiplexadores (MUX) e uma 
ULA de 4 bits. Os componentes serão descritos em módulos: 
1- O dec é um demultiplexador 1x4, no qual é fixado na entrada o nível alto, sendo 
selecionável o nível alto em uma das suas saídas no seletor de 2 bits (que 
corresponde ao comando ​Write Reg​) conforme ilustra a Figura 1; 
 
Figura 1 – Decodificador 
2- As 4 portas AND habilitam e desabilitam o resultado de escolha do dec pelo 
comando ​Write Enable​; 
3- Os 4 registradores são implementados cada um com 4 flip-flops D (num total de 
16 flip-flops), com 4 bits cada um, conforme a Figura 2; 
 
 
Figura 2 – Disposição dos Flip-flops D 
 
 
 
4- O primeiro MUX, em contagem de pilha, habilita a seleção de 4 bits vindos de 
4 dos 16 flip-flops D dos Registradores, pelo comando ​Read RegA​, enviando à 
entrada ​A da ULA. O segundo MUX habilita a seleção de 4 bits vindos de 4 
flip-flops selecionados pelo ​comando Read RegB, enviando à entrada ​B da 
ULA; 
 
5- A ULA realiza 8 operações, sendo 4 aritméticas e 4 lógicas, selecionáveis por 
combinações das entradas ​M (Mode), e os seletores S1 e S0. Segue a tabela da 
de operações da ULA, na Tabela 1. 
 
M S1 S0 Operação Descrição 
0 0 0 F = A+B Adição 
0 0 1 F = A - B Subtração 
0 1 0 F = A + 1 Incremento 
 
0 
 
1 
 
1 
 
F = A<<1 
Deslocamento 
de um bit à 
esquerda 
1 0 0 F = A&B And bit a bit 
1 0 1 F = A | B Or bit a bit 
1 1 0 F = Ã Not bit a bit 
1 1 1 F = A ​⊕​ B Xor bit a bit 
Tabela 1 – Tabela-verdade da ULA 
O processo de montagem do processador básico é trivial, pois o trabalho 
proposto oferece o esquema lógico (o circuito está anexado junto), deixando a cargo do 
leitor qual memória implementar para o Banco de Registradores. 
2. Exemplo de Utilização 
Usando o programa assembly fornecido: ​“somar dois números menores que 16 e 
determinar o resto da divisão dessa soma por 4”. ​Devem-se tomar os seguintes 
passos: 
1. Copiar o valor do primeiro operando para um registrador (R1, por exemplo). 
2. Copiar o valor do segundo operando para outro registrador (R2, por exemplo). 
3. Somar os registradores, colocando o resultado em um terceiro registrador (R3, 
por exemplo). 
4. Copiar o divisor (número 4) para um registrador (R0, por exemplo). 
5. Subtrair 1 do número quatro (para criar uma máscara de extração do resto), 
guardando o resultado em R0. 
6. Determinar o resto, por meio de uma operação AND entre a soma (R3) e a 
máscara (R0), guardando o resultado em R1, por exemplo. 
 
 
 
Podemos observar a sequência de operações na Tabela 2: 
 
Ordem de execução Operação em Ling. 
Máquina 
Descrição 
1 mov R1, 5 # R1 = 5 
2 mov R2, 9 # R2 = 9 
3 add R3, R1, R2 # R3 = R1 + R2 
4 mov R0, 4 # R0 = 4 
5 mov R2, 1 # R2 = 1 
6 sub R0, R0, R2 # R0 = R0 – R2 
7 and R1, R3, R0 # R1 = R3 & R0 
Tabela 2 – Sequência de operações do processador 
A seguir, a sequência de telas (screenshots do circuito lógico) que 
correspondem a cada linha de operações da Tabela 2: 
 
1 - ​mov R1, 5: 
 
 
Figura 3 - # R1 = 5 
 
 
 
 
 
 
 
 
 
 
 
2 - ​mov R2, 9​: 
 
 
Figura 4 - #R2 = 9 
 
3 -​ add R3, R1, R2: 
 
Figura 5 - #R3 = R1 + R2 
 
 
 
4 - ​mov R0, 4: 
 
Figura 6 - #R0 = 4 
 
 
5 - ​mov R2, 1: 
 
Figura 7 - #R2 = 1 
 
 
 
6 - ​sub R0, R0, R2: 
 
Figura 8 - #R0 = R0 – R2 
 
 
7 - ​and R1, R3, R0: 
 
 
 
Figura 9 = #R1 = R3 & R0 
3. Conclusão 
O circuito do processador de 4 bits utiliza 16 flip-flops D, sendo que 4 flip-flops 
armazenam 1 palavra de 4 bits, a palavra é selecionada pelos dois multiplexadores, cuja 
seleção é feita pelos comandos ​Read ReagA e ​Read ReagB. ​Cada comando envia para 
a entrada A ou B da ULA uma palavra, executando a operação aritmética ou lógica 
(dependendo do valor do Mode), que é selecionada pelo comando ​Op ULA​. A saída F é 
enviada diretamente aos registradores, selecionando o registrador desejado pelo 
comando de seleção ​Write Reg e habilitando a escrita pelo ​Write Enable​, o qual 
transmite um pulso de clock para ‘ativar’ o registrador de destino. 
A desvantagem do projeto proposto é que o processo dos comandos é feito de 
forma manual. O ideal seria um processador que executasse comandos em série, de 
acordo com a necessidade do programa que se quer rodar. 
Para torná-lo automatizado, utilizam-se duas memórias RAMs, uma para gravar 
as instruções dos comandos (mov, Op ULA, Write Reg, Read ReagA, Read ReagB) e 
outra para substituir os registradores. 
Há um incremento de comando, o mov, no processador melhorado. No 
processador inicial, o mov era executado manualmente no registrador. No processador 
melhorado, para gravar o comando mov na RAM de instruções, algumas instruções 
precisam ser seguidas: 
➢ Selecionar nível alto no mov (o nível baixo desabilita o mov e habilita 
as outras opções); 
➢ O comando ​Op ULA​ não influencia nas instruções; 
 
 
➢ O ​Write Reg seleciona em qual célula deve ser gravado o número, na 
memória RAM de resultado; 
➢ Pelos comandos ​Read A e ​Read B forma-se uma palavra de 4 bits que é 
o número a ser gravado, e o ‘último’ bit do ​Read B é o menos 
significativo da palavra; 
➢ E por último, deve-se habilitar a escrita da memória pelo comando ​RD, 
com um pulso de baixo nível (um pulso de alto nível habilita a leitura da 
memória, usada na execução do programa), e um pulso de alto nível no 
comando de Clock. 
Por exemplo, executar o comando -mov R1 5-, que move o número binário 0101 
para a célula de memória 01, conforme Figura 10. 
 
Figura 10 – Ilustração da instrução mov R1,5 
Outra forma de registro de comando na memória de instruções é converter o 
número 1000010101 (mov R1 5) para hexadecimal, que corresponde a 215, e o 
resultado pode ser registrado diretamente na memória. 
O parâmetro (​Amount of commands​) é o número de comandos a ser executado 
na memória de instruções. 
E por último, o comando (OE clock) habilita e desabilita o funcionamento do 
processador. Sendo um flip-flop D, para desabilitar injeta-se nível baixo e habilitar, 
nível alto. 
Para o funcionamento do circuito ser automatizado, um dos aspectos importantes 
é o uso de dois contadores, e dois comparadores, destacados com as cores vermelha e 
amarela na Figura 11. 
 
 
 
Figura 11 - Proposta de Automatização, com os novos implementos 
O contador sublinhado com cor amarela conta de 0 a 3, que é o necessário para 
realizar uma operação (do tipo add R3, R2, R1) e registrar na memória de resultado 
(destacada de cor laranja). Se o seu estado estiver no 11, onde o comparador está 
diretamente ligado a seus resultados, então a comparação será fixa com a entrada 11. 
Assim, enviando um nível alto para o registrador de cor vermelha, responsável pela 
troca de comandos na memória de instruções (destacada com a cor roxa). 
O comparador (destacado de cor vermelha) delimita a quantidade de comandos 
desejada pelo parâmetro ​Amount of commands​. 
A sua delimitação é, se a saída do contador (destacado de cor vermelha) for 
menor que o comando (​Amount

Crie agora seu perfil grátis para visualizar sem restrições.