Computador  Simples
A arquitetura da figura abaixo tem várias características descritas anteriormente e algumas características novas que permitirão armazenar as instruções a serem executadas pelo controlador na memória do sistema, de modo que as operações possam ser feitas automaticamente.Esta arquitetura pode ser chamada, com boa aproximação, de um computador de programa armazenado onde todas as instruções necessárias para executar um processamento são armazenadas na memória do computador.

As grandezas a serem combinadas ou processadas pelo computador chamam-se operandos.
 

Fig.1


Contador de Programa(PC) : um contador que é incrementado a cada instrução do programa sendo executado; contem sempre o endereço da posição de memória da próxima instrução a ser executada

Registrador de Instrução(IR) : contém a palavra da instrução que está sendo executada; parte da instrução é o código da operação e parte é o endereço do operando

Registrador de Endereços da Memória(MAR) : registrador que contém o endereço da locação da memória que está sendo acessada

Unidade Lógica-Aritmética(ULA) : realiza todas as operações lógicas e aritméticas sobre os operandos

Controlador : gera todos os sinais de controle para ativar as linhas de comando de execução das microoperações

Os 8-bits do Registrador de Instrução(IR) são divididos em dois grupos: os 2-bits mais significativos são o Código de Operação(opcode) e os 6-bits menos significativos são endereço do operando.Como o opcode é constituído de 2-bits então o computador tem 4(quatro) instruções.
 

Fig.2


A partir dos códigos de operações, um programa para calcular a soma e subtração de vários números seria colocado na memória do computador.

Fig.3


Nas posições de 0 a 6 da memória está escrito um programa de instruções e na outra extremidade da memória estão alguns operandos(locações 59 a 63).É necessário que o programa esteja armazenado em lugares sucessivos de uma parte da memória e os operandos estejam em outro lugar.Na primeira coluna da figura acima o programa está em decimal e cada instrução com sua descrição.Na coluna seguinte o programa foi substituído por sua forma binária onde cada instrução, endereço e operando foi escrito na forma binária como será executada pelo computador.


Operação do Computador
No início, PC e ACC estão limpos e outros registradores não precisam estar limpos.Para o programa começar a ser executado é preciso que o computador traga a instrução da memória para o IR e, após decodificar, o Controlador gerar os sinais nas linhas de controle para executar as microoperações correspondentes a instrução.Então, toda instrução do programa para ser executada passa necessariamente por dois ciclos.

Ciclo de Busca(Fetch) : a instrução é lida da memória e transferida para dentro do Registrador de Instrução(IR)

Ciclo de Executar : a máquina responderá às instruções cujo os códigos de operação(opcode) estão no Registrador de Instrução(IR)

Ciclo de Busca(Fetch Cycle)
Via de Dados da CPU





Fig.4


As microoperações do Ciclo de Busca são sempre as mesmas e a operação do Controlador durante o Ciclo de Busca é independente  dos dois bits mais à esquerda no Registrador de Instrução, disponíveis para o Controlador.Observe que o Ciclo de Busca é concluído com uma microoperação que incrementa o PC, cujo o conteúdo passa a ser o endereço da posição de memória da próxima instrução a ser executada.

Ciclo de Executar(Execução)
As microoperações e sua seqüência durante o Ciclo de Executar de determinada instrução depende da instrução, ou seja, dos dois bits mais significativos no Registrador de Instrução(IR), disponíveis para o Controlador.Então, cada uma das quatro instruções do computador terá um conjunto e seqüência diferentes de microoperações durante o Ciclo de Executar.A figura abaixo mostra as microoperações do Ciclo de Executar para a instrução Subtrair, cujo código de operação é 10.



Fig.5


Assim, após concluir a execução de uma instrução, o computador começa o Ciclo de Busca da próxima instrução.O controlador sempre fará isto: busca e executa, busca e executa, até encontrar uma instrução que mande parar(opcode 00).

O circuito do Controlador para buscar e executar a instrução com as microoperações acima encontra-se na figura abaixo.

Fig.6



Projeto do Controlador do Computador
No projeto do controlador,  o dispositivo de partida e todos os flip-flops são comandados pelo mesmo sinal de relógio.O acionamento da chave fornece a partida da seqüência do registrador de deslocamentos.Quando a saída de cada flip-flop vai para o nível lógico 1 então é executada uma microoperação.Cada microoperação executada está descrita próxima ao terminal de controle correspondente.
 

Fig.7


O controlador tem uma seção de flip-flops para cada instrução, a menos da instrução Parar que não requer flip-flop.Depois que conclui a execução de uma instrução, o controlador retorna para o começo do ciclo de busca através da porta OR.Cada instrução habilita uma linha de saída do decodificador de instrução que ativa a porta AND correspondente à seção de flip-flops da instrução. As linhas de comandos de mesmo nome devem ser combinadas em uma porta OR.


Interrupção
Requerendo uma Interrupção - uma fonte interrompe a operação cíclica ou repetitiva de buscar-executar e convoca o controlador para gerar uma seqüência de sinais de comando de habilitação para executar alguma operação especial.

Respondendo um Pedido de Serviço - a resposta do controlador à solicitação de interrupção.

Controlador com Serviço de Interrupção

Fig.8


A instrução no ciclo de busca e execução não é interrompida; quando a execução é concluída, o serviço de interrupção é executado.O Flag(Bandeira) é um registrador de um bit que sinaliza para o controlador que existe uma solicitação de interrupção;o flag é desativado após a interrupção ser atendida.


Atualizada em 27/11/2005