Está parte do sistema é responsável pelo processamento lógico no nosso sistema, é onde de fato os dados são transformados, compostos e decompostos, até atingir o resultado desejado
Esse componente é o mais complexo do nosso sistema, porque agrega muitas regras de negocio em um único espaço
Está sessão do sistema é composta por 3 componentes, sendo eles:
- Registrador A (ou Acumulador): é um registrador usado para persistir e guardar os resultados das operações do sistema
- Registrador B: é o registrador auxiliar, usado para "memoria de trabalho", tem a função de receber o valor a será processado sobre o valor do Registrador A.
- ULA: é de fato a onde ocorre o processamento, tem por objetivo processar os valores dos registradores A e B e armazenar novamente esse valor no registrador A
Registradores A e B
Os Registradores já foram abordados em artigos anteriores, e todas as suas conexões estão descritas na imagem acima
Unidade Lógica e Aritmética (ULA)
Este componente é capaz de processar os valores dos Registradores A e B de diversas formas diferentes, conseguimos fazer diversas operações, sendo elas:
- Adição (ADD)
- Subtração (SUB)
- Lógica e (AND)
- Lógica ou (OR)
- Lógica ou exclusivo (XOR)
- Lógica negação (NOT)
Os inputs ALU_0 e ALU_1, são utilizados para selecionar a operação deseja, veja a tabela a baixo
ALU_0 | ALU_1 | Operação |
---|---|---|
0 | 0 | ADD/SUB |
0 | 1 | OR |
1 | 0 | AND |
1 | 1 | XOR/NOT |
Observe que nos casos em que á mais de duas operações por seleção, será feito uma desambiguação em inputs específicos, portanto sendo necessário nos casos:
- ADD/SUB: utilize o input N_SUB_ADD em 0 para SUB e 1 para ADD
- XOR/NOT: utilize o input N_XOR_NOT em 0 para XOR e 1 para NOT
À também mais um input de entrada: ALU_OUT, server para liberar o resultado da operação para o BUS
Além desta, há mais uma saída: Carry_out, está saída é ativa quando o resultado das operações de soma ou subtração resultam em um overflow.
Top comments (0)