Arquitetura Melhorada de Computador
A figura abaixo apresenta a arquitetura para um computador com uma memória que armazena palavras de doze bits, com um conjunto de dezesseis instruções, ou seja, código de operações de quatro bits.Para simplificar a análise, a memória será dotada somente de dois terminais: um de leitura(R) e um de escrita(W).Para executar qualquer uma das operações é suficiente colocar o terminal no nível ativo ALTO.

Fig.1


Registrador de Operações(OPR) : registrador de quatro bits e conterá o código de operação da instrução sendo executada

Registrador de Propósitos Gerais(GPR) : registrador de doze bits que armazenará instruções lidas da memória e dados a serem escritos/lidos da memória

Registrador Flag do Acumulador(F) : registrador de um bit que será setado quando acontecer vai-um na posição mais significativa do Acumulador

Registrador Flag do Registrador de Propósitos Gerais(Z) : registrador de um bit que será setado quando o conteúdo de GPR forem todos bits 0

Observe que os dois Flags estão disponíveis para o Controlador através de uma conexão direta.Então, na execução de algumas instruções, a próxima microoperação na seqüência pode depender dos resultados produzidos pelas microoperações precedentes, e o Controlador pode seguir uma seqüência ou outra, dependendo do nível lógico dos Flags F ou Z.

Microoperações do GPR


Microoperações da ULA


O Controlador fornecerá sinais de comando a todos os terminais de controle dos registradores e para a memória, com um ou mais terminais de controle levados a nível lógico 1.A microoperação é executada quando o terminal de controle correspondente fôr ativado.


Operações de Controle do Computador

Fig.2


Instruções
A seqüência de microoperações para o Controlador Buscar(Fetch) uma instrução na memória é apresentada na figura abaixo.

 

Fig.3


No final da seqüência das microoperações de Busca, a parte de operação da instrução(código da operação)  está no OPR e o endereço do operando, se houver, está na parte de endereços do GPR.

A escolha do conjunto de instruções do computador considera o compromisso entre a complexidade das instruções, o hardware necessário e os programas a serem escritos.Se as instruções são simples e poucas, então o circuito do controlador será simples e os programas devem ser maiores.Caso as instruções sejam complicadas e numerosas, então o circuito do controlador será mais elaborado e os programas mais simples.


Instruções de uma microoperação(podem ser executadas em um ciclo de relógio)

Fig.4


Qualquer uma das instruções acima requer que um único terminal de controle seja colocado no nível ativo e podem ser executadas em um ciclo de relógio e consiste de uma só microoperação.


Instruções com Seqüência de Microoperações(podem ser executadas em vários ciclos de relógio)
ADD, endereço
Adicionar ao presente conteúdo do acumulador o número(operando) localizado no endereço de memória que está especificado como parte da instrução.

Fig.5


O endereço do operando pode ser direto ou indireto.O endereço direto significa que a instrução tem o endereço da posição de memória onde está o operando(Fig.6(a)).O endereço indireto é quando a instrução tem o endereço da posição de memória onde está o endereço do operando(Fig.6(b)).

Fig.6


ADDI, endereço
O conteúdo da posição de memória cujo endereço está armazenado em endereço é somado ao conteúdo do Acumulador e o resultado fica no Acumulador.

Fig.7


STA, endereço
Armazenar o conteúdo do Acumulador em um endereço da memória indicado em endereço

Fig.8


Normalmente as instruções são listadas na memória na ordem em que devem ser executadas e o acesso será a uma instrução após a outra incrementando o Contador de Programa.Algumas vezes será preciso não seguir esta seqüência mas saltar para uma instrução que não esteja na ordem seqüêncial.

JMP, endereço
Saltar(Jump) para a instrução localizada no local de memória especificado na instrução em endereço

Fig.9


JMPI, endereço
Saltar para a instrução cujo endereço está armazenado no local endereço da memória; endereço armazena o endereço da próxima instrução a ser executada
 

Fig.10


A parte de endereço da instrução JMPI é o endereço do local da memória que tem o endereço da próxima instrução.

Uma rotina é definida como um conjunto de instruções que realiza determinada função dentro de um programa.A chamada da sub-rotina ou salto para uma sub-rotina é o processo no qual o fluxo do programa principal de execução da instruções é desviado para a execução de uma  determinadaq rotina.

CSR, endereço
Chamar a sub-rotina.A instrução armazena o endereço de retorno ao programa principal no local da memória especificado na instrução(endereço) e busca a próxima instrução a partir da locação endereço+1

Fig.11


O fim da sub-rotina deve ser sempre o retôrno ao local da memória onde o programa fez o salto para a sub-rotina

Fig.12


ISZ, endereço
Incrementar e saltar se zero; ler o número no local de memória endereço, incrementá-lo e retorná-lo a seu local original; se depois do incremento o número fôr zero, saltar a próxima instrução

Fig.13


HLT
Parar; esta instrução colocará o computador inativo, nenhuma operação será realizada

Resumo das Instruções

Instrução
CRA limpar acumulador
CTA complementar acumulador
ITA lincrementar acumulador
CRF limpar flip-flop F
CTF complementar flip-flop F
SFZ saltar próxima instrução se F é zero
ROR girar à direita
ROL girar à esquerda
ADD adicionar ao acumulador
ADDI adicionar ao acumulador, indireto
STA armazenar na memória do acumulador
JMP saltar
JMPI saltar indireto
CSR chamar sub-rotina
ISZ incrementar e saltar se Z é um
HLT parar



Como Funciona um Microprocessador
Esta página da Intel mostra o funcionamento de um processador moderno, com registradores e outras unidades interagindo na execução de instruções.
Compare o funcionamento dessa arquitetura com a arquitetura estudada.
É preciso ter o plug-in Shockwave  instalado.