Buscar

(ebook) Arquitetura de Computador Von Neumann

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Arquitetura de Computadores 
 
COMPUTADOR SEQUENCIAL 
 
O computador conhecido como do tipo von Neumann, ou máquina IAS, foi 
projetado e construído no Instituto de Estudos Avançados de Princeton (Princeton 
Institute for Advanced Studies). Essa máquina, que foi completada em 1952, é o 
modelo de todos os computadores subsequentes de propósito geral. A estrutura dessa 
máquina foi delineada por von Neumann da seguinte forma: 
1) Se a máquina é um computador, ela deve realizar operações aritméticas básicas 
mais frequentes, que são adição, subtração, multiplicação e divisão. É portanto 
razoável que contenha unidades especializadas para essas operações. Essa parte 
constitui a primeira parte específica: CA; 
2) O controle lógico do dispositivo, que é a própria sequenciação das operações, 
pode ser realizado mais eficientemente por uma unidade de controle centralizada: 
CC; 
3) Qualquer máquina que deve realizar uma sequência complexa e longa de 
operações deve ter uma memória considerável. Essa memória constitui a terceira 
parte específica: M; 
As três partes específicas CA, CC e M, correspondem aos neurônios associativos do 
sistema nervoso humano. Falta ainda discutir os equivalentes aos neurônios 
sensoriais ou aferentes e aos neurônios motores ou eferentes. São as unidades de 
entrada (sensorial) e saída (motora) do dispositivo, chamadas de meio de registro 
externo: R; 
4) A máquina deve ter unidades para transferir informações de R para as partes 
específicas CA, CC e M, que formam a entrada, a quarta parte específica: I; e 
5) A máquina deve ter unidades para transferir de suas partes específicas CA, CC e 
M para R. Essas unidades formam a saída, a quinta parte específica: O. 
 
Com raras excessões, os computadores atuais tem essa estrutura e 
função geral e então são referidos como máquinas do tipo von Neumann. 
Essencialmente, o que caracteriza essas máquinas é o programa armazenado 
na memória, junto com os dados. O programa é constituído por um conjunto 
de instruções, e essas instruções são armazenadas em endereços 
subsequentes, ou sequenciais, na memória. Isso significa que as instruções 
são executadas na sequência de armazenamento na memória, com excessão 
dos casos de imposição de quebra dessa sequência, através de instruções de 
salto, ou interrupção. Essa memória em que as instruções e os dados são 
armazenados é denominada memória principal. 
 
AC MQ
MBR
Circuitos de
Aritmetica e 
 Logica
E
n
d
e
r
e
c
o
Instrucoes
 e
 dados
 MEMORIA
PRINCIPAL
 IR PC
MAR
Circuitos
 de
Controle
 Linhas
 de
controle
S
i
n
a
i
s
UNIDADE DE
 CONTROLE
Dispositivos
 de
Entrada/Saida
TimingOscilador
D
a
d
o
s
Endereco
UNIDADE DE
 FLUXO DE 
 DADOS
 
Figura 1. Diagrama simplificado do computador IAS. 
 
A seguir será apresentado o computador IAS, com pequenas alterações, 
reduzindo o tamanho da palavra de memória de 40 para 20 bits, e adotando o sistema 
binário. Isso significa que uma palavra de 40 bits contendo duas instruções, do IAS, 
foi simplificado para uma palavra de 20 bits contendo apenas uma instrução. As 
instruções de salto que faz referência a uma das duas instruções no IAS também 
foram excluídas. 
 
A Fig. 1 mostra um diagrama simplificado do computador, com a Unidade de 
Fluxo de Dados, Unidade de Controle , Dispositivos de Entrada/Saída e Memória 
Principal. Nele são notados os seguintes registradores: 
 
a) MBR (Memory Buffer Register): contem uma palavra que deve ser escrita na 
memória ou uma palavra lida da memória; 
b) MAR (Memory Address Register): especifica o endereço de memória para a 
leitura ou escrita de uma palavra contida no MBR; 
c) IR (Instruction Register): Contem o opcode de 8 bits de uma instrução que está 
sendo executada; 
d) PC (Program Counter): Contem o endereço da instrução a ser lida da memória; e 
e) AC (Acumulador) e MQ(Multiplicador-Quociente): Empregados para manter 
temporariamente os operandos e resultados de operações realizadas pela ULA. 
Por exemplo, o resultado de uma multiplicação de dois números de 20 bits é um 
número de 40 bits; os 20 bits mais significativos são armazenados no AC e os 
bits menos significativos no MQ. 
 
O computador IAS é constituído de uma memória de 4096 endereços de 
armazenamento, chamados de palavras, de 20 dígitos binários cada. Cada número é 
representado por um bit de sinal e 19 bits de valor (Fig.2). 
 
0 1 19
 
Figura 2. Representação numérica. 
 
0 7 8 19
 
Figura 3. Formato de uma palavra de memória contendo uma instrução. 
 
Uma palavra pode também conter uma instrução de 20 bits, com um formato 
consistindo de um código de operação de 8 bits (opcode) especificando a operação a 
ser realizada e um endereço de 12 bits designando uma das palavras da memória 
(numeradas de 0 a 4095), Fig. 3. 
A unidade de controle opera o computador sequencial fazendo as buscas de 
instruções da memória e as execuções, uma por vez. Um computador sequencial 
opera realizando repetitivamente os ciclos de instrução. Cada ciclo de instrução 
consiste de dois outros ciclos: de busca da instrução (instruction fetch) e execução 
(instruction execution). Durante o ciclo de busca, o opcode da próxima instrução é 
carregada no IR e a parte referente ao endereço é carregada no MAR. Essa instrução 
é obtida da memória carregando a palavra no MBR, e então, para IR e MAR. 
Uma vez que o opcode se encontra no IR, o ciclo de execução é realizado. O 
circuito de controle decodifica o opcode e executa a instrução enviando os sinais de 
controle apropriados para fazer com que os dados sejam movidos e a operação seja 
realizada pela ULA. 
A Tabela 1 mostra um conjunto de instruções do IAS agrupadas em: 
a) Transferência de dados: move os dados entre a memória e os registradores da 
ULA; ou entre dois registradores das ULA; 
b) Salto incondicional: normalmente, a unidade de controle executa instruções em 
sequência de armazenamento na memória. Essa sequência pode ser alterada por 
uma instrução de salto. Essa instrução facilita operações de repetição; 
c) Salto condicional: o salto pode ser dependente de uma condição, permitindo a 
existência de pontos de decisão; 
d) Aritmética: operações realizadas pela ULA; e 
e) Modificação de endereço: permite que os endereços sejam computados pela ULA 
e então inseridos em instruções armazenados na memória. Isso permite que um 
programa tenha uma considerável flexibilidade de endereçamento. 
As instruções são mostradas em código binário do opcode, e em forma 
simbólica, também conhecida como mnemônico. Junto ao mnemônico é especificado 
também o operando, que corresponde ao campo de 12 bits. A parte referente ao 
opcode (8bits) especifica qual das instruções deve ser executada. A parte referente ao 
endereço (12 bits), M(X) especifica qual dos 4096 endereços de memória é 
envolvido na execução da instrução, ou MQ representa o uso do registrador MQ . 
 
Tabela 1. Conjunto de Instruções do IAS 
Tipo de Instrução Opcode Representação Simbólica Descrição 
Transferência de Dados 00001010 
 
 
00001001 
 
 
00100001 
 
LOAD MQ 
 
 
LOAD MQ,M(X) 
 
 
STOR M(X) 
 
Tranfere o conteúdo do registrador MQ 
para o acumulador AC 
 
Transfere o conteúdo da posição de 
memória X ao MQ 
 
Transfere o conteúdo do acumulador para a 
posição de memória X 
 
00000001 
 
00000010 
 
00000011 
 
 
00000100 
 
 
 
LOAD M(X) 
 
LOAD –M(X) 
 
LOAD | M(X) | 
 
 
LOAD - | M(X) | 
 
Transfere M(X) para o acumulador 
 
Transfere –M(X) para o acumulador 
 
Transfere o valor absoluto de M(X) para o 
acumulador 
 
Transfere - | M(X) | para o acumulador 
Salto Incondicional 00001101 
 
 
JUMP M[X] 
 
 
Toma a próxima instrução do endereço 
M[X] 
 
Salto Condicional 00001111 
 
 
 
JPOS M(X) 
 
 
 
Se o número contido no acumulador é 
positivo, tomar a próxima instrução de 
M(X) 
 
Aritmética 00000101 
 
 
00000111 
 
 
00000110 
 
 
00001000 
 
 
0000101100001100 
 
 
00010100 
 
 
 
00010101 
ADD M(X) 
 
 
ADD | M(X) | 
 
 
SUB M(X) 
 
 
SUB | M(X) | 
 
 
MUL M(X) 
 
 
 
DIV M(X) 
 
 
LSH 
 
 
 
RSH 
Somar M(X) ao AC; colocar o resultado 
em AC 
 
Somar | M(X) | ao AC; colocar o resultado 
em AC 
 
Subtrair M(X) de AC; colocar o resultado 
em AC 
 
Subtrair | M(X) | de AC; colocar o 
resultado em AC 
 
Multiplicar M(X) por MQ; colocar os bits 
mais significativos em AC e os bits menos 
significativos em MQ 
 
Dividir AC por M(X); colocar o quociente 
em MQ e o resto em AC 
 
Multiplicar o acumulador por 2, isto é, 
deslocar uma posição à esquerda 
 
Dividir o acumulador por 2, isto é, deslocar 
uma posição à direita 
Modificação de 
Endereço 
00010010 
 
 
 
STOR M(X,8:19) 
 
 
 
Substituir o campo de endereço de M(X) 
pelos 12 bits mais à direita de AC 
 
 
CICLO DE INSTRUÇÕES 
 
 Um computador interpreta as instruções, num período denominado 
ciclo de interpretação de instrução, ou ciclo de instrução, que corresponde a 
uma sequência de pequenos passos discriminados a seguir: 
1) busca de instrução da memória para o registrador de instrução; 
2) atualização do contador de programa para que o mesmo aponte 
para a próxima instrução na memória; 
3) determinação do tipo de instrução; 
4) busca do operando, se houver, carregando um dos registradores; 
5) execucão da operação (soma, subtração, etc.); 
6) armazenamento do resultado; e 
7) volta para o passo 1 para iniciar a interpretação da instrução seguinte. 
 
Nota-se que cada tipo de instrução apresenta diferenças nos passos de 4 a 6; 
sendo porém, coincidentes nos demais passos. 
O primeiro passo corresponde à operação de busca da instrução na memória 
apontada pelo contador de programa. Nota-se que no início da interpretação de uma 
instrução, o contador de programa deve conter o endereço da instrução na memória. 
A instrução lida da memória é carregada no registrador de instrução, IR. 
O passo seguinte corresponde à atualização do contador de programa, 
PC, para que o mesmo aponte para a próxima instrução da memória. Esse 
passo tem o conceito de computador sequencial implicitamente embutido, 
pois o que é feito normalmente é incrementar o contador de programa, ou 
somar um ao conteúdo anterior, para que o conteúdo do mesmo seja o 
anterior acrescido de um, apontando, portanto, para a próxima palavra 
contígua na memória principal. 
O terceiro passo corresponde à análise do campo de código de operação (opcode) 
da instrução. Essa análise pode ser feita num decodificador, quando se usa uma 
unidade de controle fixo (hardwired), ou através de microinstruções, quando se usa 
uma unidade de controle microprogramada. 
Os passos 4,5 e 6, são diferentes para cada tipo de instrução, sendo portanto 
necessária uma descrição do conjunto de instruções do computador. 
O último passo é a volta para o início do ciclo de interpretação de instruções. 
A Fig. 4 mostra alguns exemplos de execução de instrução. Nota-se que cada 
operação requer vários passos. A operação de multiplicação requer 19 suboperações, 
uma para cada posição de bit, exceto o bit de sinal. 
INICIO
MAR <-- PC
MBR <-- M[MAR]
IR <-- MBR(0,7)
MAR <-- MBR(8,19)
PC <-- PC + 1
 DECODIFICACAO DO OPCODE
MBR <-- M[MAR]
 AC <--MBR
AC > 0
PC <-- MAR
----
SOMASE AC>0 
salta
Salta
Nao
Sim
<--------
 Demais
instrucoes
<
C
I
C
L
O
 
D
E
 
B
U
S
C
A
 
D
E
 
I
N
S
T
R
U
C
A
O
C
I
C
L
O
 
D
E
 
E
X
E
C
U
C
A
O
 
Figura 4. Diagrama de Fluxo de Interpretação Parcial de Instruções do IAS. 
 
 
Para elucidar graficamente o fluxograma de interpretação de 
instruções do IAS, apresenta-se na Fig.5 um diagrama alternativo do 
computador IAS. 
 
AC MQ
MBR
Circuitos de
Aritmetica e 
 Logica
E
n
d
e
r
e
c
o
Instrucoes
 e
 dados
 MEMORIA
PRINCIPAL
 IR PC
M
A
R
Circuitos
 de
Controle
 Linhas
 de
controle
S
i
n
a
i
s
UNIDADE DE
 CONTROLE
Dispositivos
 de
 Entrada/
 Saida
TimingOscilador
D
a
d
o
s
Endereco
UNIDADE DE
 FLUXO DE 
 DADOS
Decodificador
Figura 5. Diagrama alternativo do computador IAS. 
 
No diagrama da Fig.5 nota-se a inclusão dos multiplexadores 
descrevendo com mais detalhes o fluxo de dados, em relação a Fig. 1. Na 
Unidade de Controle foi acrescentado o decodificador que recebe como 
entrada o opcode da instrução, e cada opcode indica uma saída distinta para 
o ciclo de execução. Além disso foi acrescentado o oscilador e o circuito de 
timing, que é comum a todos os sistemas digitais síncronos. 
 
EXEMPLO DE INTERPRETAÇÃO DA INSTRUÇÃO DE SOMA 
 
Para facilitar a compreensão do fluxo de informações para a busca da 
instrução, mostra-se na Fig.6 os elementos envolvidos. A Tab. 2 mostra o 
conteúdo dos registradores durante o ciclo de busca, para o caso em que o 
valor do contador de programa é igual a 20; a instrução contida no endereço 
correspondente é ADD M(X) onde o endereço do operando é igual a 40. O 
opcode da instrução em binário é então 00000101, que corresponde a 5 em 
decimal. 
MBR
E
n
d
e
r
e
c
o
Instrucao
 IR PC
M
A
R
 
Figura 6. Elementos do computador envolvidos na busca da instrução. 
 
Tabela 2. Valores dos registradores durante o ciclo de busca de instrução. Os 
valores dos registradores estão em ordem cronológica crescente. 
operações PC MAR MBR 
(0,7) 
MBR 
(8,19) 
IR 
Fim do ciclo anterior 
MAR ß PC 
PC ß PC + 1; 
MBR ß M[MAR] 
IR ß MBR(0,7); MAR ß MBR (8,19) 
 
20 
20 
21 
21 
21 
 
XX 
20 
20 
20 
40 
 
XX 
XX 
XX 
5 
5 
XX 
XX 
XX 
40 
40 
XX 
XX 
XX 
XX 
5 
 
A instrução de soma consiste em realizar a adição do conteúdo do 
acumulador com um conteúdo de memória. O resultado é carregado no 
acumulador. 
 Nota-se que nessa instrução existem dois operandos, sendo que um 
deles é o conteúdo do acumulador. Esse operando já está pronto para ser 
usado, no início da interpretação da instrução, e se chama operando 
implícito. O segundo operando deve ser lido na memória, cujo endereço é 
fornecido pelo campo de operando da instrução. Após a busca do operando 
na memória, o mesmo fica carregado no registrador MBR. Nesse momento é 
possível iniciar o subciclo correspondente à execução da operação soma. 
 
 
AC
MBR
Circuitos de
Aritmetica e 
 Logica
E
n
d
e
r
e
c
o
Instrucoes
 e
 dados
 IR
M
A
R
 
 
Figura 7. Elementos envolvidos na execução da instrução soma. 
 
A Fig. 7 mostra os elementos envolvidos na execução da instrução soma. 
Para a ilustração dessa execução apresenta-se na Tab.3 os valores dos 
registradores nesse ciclo. É considerado que o valor inicialmente contido no 
acumulador é igual a 80 , e o valor contido na memória, M(X), é igual a 50. 
 
Tabela 3. Valores dos registradores durante o ciclo de execução de soma, em 
ordem cronológica crescente. 
Operações IR MAR MBR AC 
Fim do ciclo de busca de instrução 
MBR ß M[MAR] 
AC ß AC + MBR 
5 
5 
5 
40 
40 
40 
5-40 
50 
50 
80 
80 
130 
 
 
 
MICROOPERAÇÕES 
 
Uma operação mínima de transferência entre registradores no computador é 
denominada microoperação. Uma microoperação é realizada num período 
de relógio do computador, e e´portanto indivisível em suboperações. Um 
exemplo de microoperação é a transferência de um dado do MBR para o AC: 
 AC ß MBR. 
 
NOTAÇÃO RTN (REGISTER TRANSFER NOTATION) 
 
 Para facilitar a descrição da seqüência de microoperações no 
computador, usamos uma notação denominada Register Transfer Notation, ou 
simplesmente RTN, que consiste numa notação do tipo: 
 condição : ação 1; ação 2 …; ação n. 
 
A condição explicita o instante em que as ações são tomadas e as 
ações são as microoperações, ou outros sinais de controle disparados naquele 
instante. Exemplo: E.ADD.T1: MBR ß M[MAR]. 
No exemplo acima, a carga do MBR com o conteúdo de memória é 
executada no subciclo T1, do ciclo de execução E, da instrução ADD (soma ). 
Além de uma microoperação, uma ação pode ser o acionamentode 
um sinal de controle, como iniciaWR, para ativar o sinal de escrita na 
memória, fimWR para desativar o sinal de escrita, Fig. 8, e recicla, para 
reiniciar o ciclo de interpretação de instrução. Como exemplo, no subciclo T2 
da instrução ADD, tem-se as seguintes operações em RTN: 
E.ADD.T2: AC ß AC + MBR; recicla. 
 
E
n
d
e
r
e
c
o
Instrucoes
 e
 dados
J
K
Q
Q’
IniciaWR
FimWR
Clock
READ/WRITE’
IniciaWR FimWR
 MEMORIA
PRINCIPAL
 
Figura 8. Controle de escrita da memória. 
 
 
PROJETO DA UNIDADE DE CONTROLE HARDWIRED 
 
 
O computador a ser projetado tem uma unidade de controle fixa 
(hardwired), constituída de um decodificador e um circuito combinatório que gera os 
sinais de controle. Esses sinais de controle devem ser interligados aos pontos de 
controle cuja maioria se encontram numa outra unidade denominada fluxo de dados. 
A unidade de controle recebe como entrada o opcode, e os sinais de sincronismo, 
gerados pelo circuito de temporização (timing ), além das sinalizações provenientes 
das unidades controladas, que são a memória, a entrada e saída, e o fluxo de dados. 
 
 
PROJETO DA UNIDADE DE FLUXO DE DADOS 
 
 A unidade de fluxo de dados consiste dos blocos funcionais (registradores, 
somador, multiplexadores) e das interligações entre os blocos funcionais. Uma 
interligação direta entre dois blocos funcionais, ou seja caminho direto, depende do 
compromisso custo/benefício. Por outro lado, a existência de duas entradas num 
mesmo registrador implica na existência de um multiplexador, aumentando a 
complexidade da implementação. 
A Fig. 9a mostra o caso em que os registradores MBR, PC e MAR estão 
com conexões diretas dois a dois, permitindo que as transferências de MBR a PC, 
PC a MAR e MAR a MBR possam ser executadas diretamente, através das 
microoperações PC ß MBR, MAR ß PC e MBR ß MAR, respectivamente. Porém, 
a transferência de PC a MBR, só é possível indiretamente, através das 
microoperações MAR ß PC e MBR ß MAR. 
O diagrama da Fig. 9b mostra a inclusão do caminho direto de PC a MBR, 
para melhorar o desempenho do computador. Nesse caso é agora possível uma 
transferência direta de PC a MBR através da microoperação MBR ß PC, porém 
houve um aumento na complexidade do circuito acrescentando a interconexão e o 
multiplexador. 
Nota-se, também, que quanto maior o número de entradas num mesmo 
registrador, maior é a complexidade do multiplexador. 
 
MBR
PC
M
B
R
MBR
PC
M
B
R
( a) 
( b)
MUX
 
Figura 9. (a) Registradores MBR, PC e MAR interligados dois a dois; e (b) 
Acréscimo da interconexão de PC a MBR com a inclusão de um 
multiplexador. 
 O projeto deve adotar, portanto, a estratégia de minimização do número de 
caminhos sem prejudicar o desempenho do fluxo de dados. Normalmente o resultado 
é obtido após algumas tentativas. 
O projeto deve iniciar-se com a escolha de algumas instruções típicas 
(carga, armazenamento, soma, salto a subrotina) e a determinação de caminhos de 
dados implicados; seguidas de uma tentativa de projeto do fluxo de dados sujeito a 
algumas restrições; determinação do ciclo de fluxo de dados típico, que corresponde 
à menor operação de fluxo de dados do computador; e do ciclo de estado de controle 
principal, que corresponde a um conjunto de ciclos de fluxo de dados para a 
realização de uma operação considerada básica ao nível do computador. 
 
 
CIRCUITO DE TEMPO (TIMING) 
 
O computador executa as instruções em pequenos passos que denominamos 
aqui de subciclos. Para o exemplo usamos as notações T0, T1, T2 e T3, para os 
subciclos utilizados. Esses subciclos correspondem a uma operação de menor 
duração dentro do computador, como de transferência direta de dados entre 
registradores. Correspondem também a um período do relógio geral (clock) que 
fornece a base de tempo para toda a máquina. Como os subciclos são usados para 
uma operação mínima de fluxo de dados, eles também são chamados de ciclos de 
fluxo de dados. 
Um ciclo de busca de instrução, ou um ciclo de execução da instrução, é 
constituído de um conjunto desses subciclos. O ciclo de busca (fetch) de instrução é 
constituído de quatro subciclos no nosso caso, e contém uma operação de leitura de 
memória. 
Como o computador do tipo IAS é baseado em referência à memória, os 
ciclos de estado de controle principal como o ciclo de busca de instrução tem uma 
duração correspondente a um acesso à memória. Os ciclos de estado de controle 
principal, ou ciclo principal, são também conhecidos como ciclos de máquina, e 
correspondem a uma operação básica ao nível da máquina. 
Um ciclo de interpretação de instrução é constituído de pelo menos dois 
ciclos de máquina. O primeiro ciclo é comum para todas as instruções e corresponde 
ao ciclo de busca (fetch) de instrução. O ciclo de execução da operação, é diferente 
para cada instrução, podendo ter um tempo diferente para a sua conclusão. 
Os processadores complexos podem ter ciclos de fetch de instrução com 
mais de um ciclo de máquina, o mesmo acontecendo com os ciclos de execução. 
 
EXEMPLO DE CIRCUITO DE TIMING 
 
 
Fig.10. Circuito de timing de um computador simples para a geração de ciclos 
principais I e E, e subciclos T0, T1, T2 e T3. 
 
O circuito mostrado na Fig.10 corresponde ao circuito de timing de um 
computador para a geração de sinais de sincronismo para os ciclos de estado 
principais, I e E, e subciclos T0, T1, T2 e T3. O circuito é sincronizado por um sinal 
periódico denominado relógio (clock). Os sinais gerados pelo circuito são mostrados 
na Fig. 11. 
A parte superior da Fig.10 corresponde a um contador em anel, que gera os 
subciclos. Nota-se que um sinal recicla é responsável pelo reinício do contador (T0 
= 1, T1 = 0, T2 = 0 e T3 = 0). Além do recicla, quando os três primeiros flip-flops do 
contador estiverem em zero (T0 = 0, T1 = 0 e T2 = 0), o contador reinicia. Quando o 
circuito de reinício estiver em zero, o contador desloca um bit à direita na borda de 
subida do sinal de relógio, introduzindo um zero no primeiro flip-flop (T0 = 0). 
Quando o circuito de reinício estiver em um, o contador desloca um bit à direita na 
borda de subida do sinal de relógio, introduzindo o valor um no primeiro flip-flop 
(T0 = 1). 
A parte inferior da Fig.10 corresponde a um outro contador em anel, 
mas de ciclos principais: ciclo I (busca de instrução) e ciclo E (execução da 
operação). Esses ciclos se alteram a cada reinício do contador de subciclos, 
sincronizados com a borda de subida do relógio. O reinício do contador de 
ciclos principais, no entanto, é diferente do reinício do contador de subciclos. 
O reinício do contador de ciclos principais é acionado por um circuito de reinício do 
computador denotado POR (Power-On-Reset). Esse circuito gera um pulso negativo, 
quando o fornecimento de energia é acionado (quando liga a máquina, power on), ou 
quando a energia já estiver acionada e o operador aperta o botão de reset. O pulso 
negativo é usado para introduzir os valores iniciais (I = 1 e E = 0) no contador em 
anel, de ciclos principais. 
 
 
 
 
Figura 11. Diagrama de tempo do circuito de timing. 
 
Nota-se através do circuito da Fig. 10 que o contador de subciclos pode ser 
reiniciado a qualquer momento, desde que o sinal de recicla seja acionado. O 
controle sobre o sinal de recicla será visto posteriormente, quando serão analisadas 
as interpretações das as instruções. O recicla é acionado no final da operação no 
ciclo de execução (E), para finalizar o ciclo principal, mesmo que não tenha ocorrido 
todos os quatro subciclos, eliminando portanto a ociosidade da máquina. O ciclo de 
busca de instrução (I) ocupa todos os quatros subciclos, e sendo comum para todas 
as instruções, não necessita ser finalizado antes de terminar todos os subciclos. 
 
ATUAÇÃO DAS LINHAS DE CONTROLE NOS ELEMENTOS 
 
A partir da notação RTN é possível projetar o circuitode controle fixo do 
computador. No exemplo a condição E.ADD.T0, deve acionar a carga do MBR, ou 
seja, a microoperação: 
MBR ß M[MAR]. 
Isso implica em implementar um circuito que dada a condição necessária, 
E.ADD.T0, gera um sinal de controle para o acionamento desejado, Fig. 12. 
A entrada E indica que o ciclo de estado de controle principal corresponde à 
execução. A entrada ADD é o sinal que indica qual instrução está sendo executada e 
corresponde à saída de um circuito decodificador de opcode. Finalmente, a entrada 
T0 indica o subciclo em que a microoperação deve ocorrer. 
 
MBR
E
n
d
e
r
e
c
o
Instrucoes
 e
 dados
 IR PC
M
A
R
E
ADD
E
ADD
T0
CLOCK
 
Figura 12. Diagrama que relaciona a linha de controle e o acionamento. 
Ainda na Fig. 12 nota-se a seleção do multiplexador, na condição E.ADD, 
implicando que o multiplexador está selecionado para a entrada da memória durante 
toda execução da instrução ADD. 
 
CIRCUITO DE CONTROLE 
 
É fácil notar que a Unidade de Controle deve conter um circuito de tempo, 
ou timing, que indica o subciclo (T0,.., T3), o ciclo de estado de controle principal 
de busca de Instrução (I ) ou Execução (E)), sendo que a cada final da interpretação 
de uma instrução, é iniciado um novo ciclo de busca de instrução, I. O circuito de 
sequenciação recebe um trem de pulsos, que serve como base para a geração dos 
sinais de subciclos, provindo do circuito oscilador, denominado relógio. 
 IR
DECODIFICADOR
RELOGIO TIMING
T0 T1 T2 T3 I E
E
ADD
E
ADD
T0
A
D
D
J
U
M
P
S
T
O
R
CLOCK
E.ADD
E.ADD.T0
....
 
Figura 13. Delineamento da Unidade de Controle Fixo (Hardwired). 
 
Além disso, deve existir um circuito de decodificação do campo do código 
de operação, opcode, da instrução. A Fig. 13 mostra um diagrama delineando a 
Unidade de Controle, com as partes envolvidas. 
 
Além do sinal de controle, o registrador MBR recebe como entrada, o 
sinal de relógio, para sincronizar a entrada de dados com os outros 
registradores. 
 
 
AC MQ
MBR
Circuitos de
Aritmetica e 
 Logica
E
n
d
e
r
e
c
o
Instrucoes
 e
 dados
 MEMORIA
PRINCIPAL
 IR PC
M
A
R
MBMUX
ACMUX
M
A
M
U
X
 
Figura 14. Diagrama do fluxo de dados simplificado do IAS. 
 
MICROOPERAÇÕES EM RTN PARA O CICLO DE BUSCA DE INSTRUÇÃO 
 
Como o ciclo de busca de instrução é igual para todas as instruções, 
iniciamos o projeto com a representação RTN das etapas desse ciclo. 
I.T0 : MAR ß PC; { inicio da leitura } 
I.T1 : espera a leitura; PC ß PC + 1; 
I.T2 : MBR ß M[MAR]; e 
I.T3 : IR ß MBR(0,7); MAR ß MBR (8,19). 
 
Observamos que uma condição previamente imposta neste projeto é de que 
a memória leva dois subciclos para o seu acesso para leitura ou escrita. Durante o 
subciclo T1 a memória está sendo lida. 
 O incremento do contador de programa pode ocorrer em qualquer subciclo 
após a carga do conteúdo atual para o MAR que ocorre no subciclo T0. No exemplo, 
fazemos esse incremento no subciclo T1. 
 Após o tempo de espera de leitura de memória o conteúdo lido pode 
ser carregado no MBR, que ocorre em T2. Em seguida, o campo de opcode da 
instrução lida é carregado para o IR, e o campo de endereço é carregado no 
MAR. A carga do MAR serve para iniciar a leitura do operando, embora a 
leitura do operando seja necessária somente para algumas instruções (por 
exemplo: ADD e LOAD), a memória fica em repouso na condição de leitura. 
Portanto, o endereçamento antecipado da memória com o campo de 
operando X, não afeta as instruções que não fazem uso de referência à 
memória, e adianta a leitura para outras instruções. 
 O opcode carregado em IR é usado para a decodificação da instrução, que é 
realizado por um circuito decodificador. Essa decodificação é realizada num tempo 
muito rápido, de tal forma que no próximo subciclo, que corresponde a um ciclo 
principal de execução de instrução, ciclo E, o computador já deve ter disponível qual 
a operação a ser realizada. 
 
 
SUBCONJUNTO DE INSTRUÇÕES DO COMPUTADOR IAS A SEREM 
IMPLEMENTADAS NO EXEMPLO 
 
A Tab.4 mostra as instruções típicas de um computador seqüencial, a serem 
implementadas a seguir. 
TABELA 4. Instruções típicas a serem implementadas. 
Opcode Binário Mnemô- 
 nico 
Instrução 
00000001 LOAD M[X] Carga 
00100001 STOR M[X] Armazenamento 
00000101 ADD M[X] Soma 
00001111 JPOS M[X] Desvia se positivo 
00001101 JUMP M[X] Desvio 
incondicional 
 
Para as descrições seguintes sobre os ciclos de execução será usada uma 
configuração de caminhos existentes no computador simplificado conforme mostrado 
no diagrama da Fig.14, que é uma alteração da Fig.5, incluindo a denominação dos 
multiplexadores, mostrando a parte referente ao fluxo de dados. A configuração foi 
definida para satisfazer o projeto de uma parte das instruções do computador IAS, 
como mostradas na Tab.4. 
 
 
MICROOPERAÇÕES PARA EXECUÇÃO DA INSTRUÇÃO ADD 
 
Apresentamos a seguir os subciclos correspondentes a instrução ADD: 
 
E.T0.ADD : {espera a leitura} 
E.T1.ADD : MBR ß M[MAR}; e 
E.T2.ADD : AC ß AC + MBR; recicla. 
 
Nota-se que após o sinal de controle recicla o circuito de timing volta para o 
subciclo T0 de busca de instrução. 
Caso a carga de MAR com o endereço do operando não tivesse sido 
incorporado no subciclo anterior I.T3, essa operação deveria ser feita em 
E.T0.ADD, e o último subciclo seria em E.T3.ADD. A carga antecipada de 
MAR antecipa a finalização da interpretação da instrução ADD, tornando o 
computador mais rápido. 
 Nota-se também que a representação RTN acima leva em conta que o fluxo 
de dados contem os caminhos diretos interligando os blocos funcionais como 
somador, acumulador, registrador de dados de memória. Além disso a parte relativa 
ao endereçamento de memória contem os caminhos diretos interligando MBR com 
MAR e PC com MAR, usando um multiplexador na entrada de MAR. 
 
 
MICROOPERAÇÕES PARA A EXECUÇÃO DA INSTRUÇÃO LOAD 
 
A instrução LOAD faz a carga do acumulador com um conteúdo de 
memória. 
As microoperações para a instrução LOAD são as seguintes: 
E.T0.LOAD : {espera a leitura} 
E.T1.LOAD : MBR ß M[MAR}; e 
E.T2.LOAD : AC ß MBR; recicla. 
 
A descrição acima implica na existência de um caminho direto entre o MBR 
e AC, para a microoperação AC ß MBR. Caso não exista esse caminho direto, uma 
alternativa de projeto é usar o caminho que passa pelo somador, fazendo com que a 
soma não seja realizada, de alguma forma, como por exemplo, zerando o conteúdo 
do acumulador, antes da operação. 
 
 
MICROOPERAÇÕES PARA A EXECUÇÃO DA INSTRUÇÃO STOR 
 
A instrução STOR realiza a escrita na memória com o conteúdo do 
acumulador. As microoperações para a execução de STOR podem ser as seguintes: 
E.T0.STOR : MBR ß AC; inicioWR 
E.T1.STOR : {espera de escrita} e 
E.T2.STOR : fimWR; recicla. 
 
 
MICROOPERAÇÕES PARA A EXECUÇÃO DA INSTRUÇÃO JUMP 
 
 A instrução JUMP realiza um salto incondicional. Como o salto é feito 
alterando o conteúdo de PC, a única microoperação executada é uma transferência do 
campo de operando contido no MAR para o PC. Isso implica na existência de um 
caminho direto entre MAR e PC. A expressão RTN para a instrução JUMP é a 
seguinte: 
 
E.T0.JUMP : PC ß MAR; recicla. 
 
MICROOPERAÇÕES PARA A EXECUÇÃO DA INSTRUÇÃO JPOS 
 
 A instrução JPOS realiza um salto condicional, quando o conteúdo do 
acumulador for positivo AC(0) = 0. A diferença entre a instrução JUMP e JPOS é 
que o salto só é executado se o primeiro bit do acumulador for igual a zero, 
indicando que o valor é positivo. Nesse caso tem-se duas expressões RTN, seguintes: 
 
E.T0.JPOS : recicla; e 
E.T0.JPOS. AC(0)’ : PC ß MAR. 
 
 
CIRCUITO COMBINATÓRIO DOS SINAIS DE CONTROLE 
 
O projeto da unidade de controle deve iniciar-se pela identificação dos 
pontos de controle do computador. Na Tab. 5 podemos verificar os pontos decontrole identificados, separados em ativação de registradores, seleção de 
multiplexadores, e flip-flops de controle. 
 
Tabela 5. Pontos de Controle 
 
Ativação dos 
registradores 
 
 
Controle dos 
Multiplexadores 
 
Controle 
De Memória 
 
 
HMBR 
HPC 
HAC 
HMAR 
INCRPC 
HIR 
ACMUX 
MAMUX 
MBMUX 
 
InícioWR 
FimWR 
 
 
 
Uma tabela de microoperações que implicam em ativação dos pontos de 
controle facilita a identificação detalhada das implicações para os pontos de controle. 
Para a construção dessa tabela, é interessante desenvolver uma tabela auxiliar 
mostrando todas as expressões RTN, usadas para as diversas instruções (Tab. 6). 
 
A Tab. 7 mostra as microoperações e os pontos de controle ativados. 
 
 
 
Tabela 6. Tabela completa de expressões RTN 
Ciclo de busca: 
I.T0 : MAR ß PC; { inicio da leitura } 
I.T1 : espera a leitura; PC ß PC+1; 
I.T2 : MBR ß M[MAR]; e 
I.T3 : IR ß MBR(0,7); MAR ß MBR(8,19). 
 
Execução: ADD 
E.T0.ADD : {espera a leitura} 
E.T1.ADD : MBR ß M[MAR}; e 
E.T2.ADD : AC ß AC + MBR; recicla. 
 
Execução: LOAD 
E.T0.LOAD : {espera a leitura} 
E.T1.LOAD : MBR ß M[MAR}; e 
E.T2.LOAD : AC ß MBR; recicla. 
 
Execução: STOR 
 E.T0.STOR : MBR ß AC; inicioWR 
 E.T1.STOR : {espera de escrita} e 
 E.T2.STOR : fimWR; recicla. 
 
Execução: JUMP 
 E.T0.JUMP : PC ß MAR; recicla. 
 
Execução: JPOS 
 E.T0.JPOS : recicla; e 
 E.T0.JPOS. AC(0)’ : PC ß MAR. 
 
 
 
Tabela 7. Microoperações e os pontos de controle 
 
Destinação Microoperação Pontos de 
controle ativos 
 
AC 
 
 
 
 
AC ß MBR 
AC ß AC + MBR 
 
 
HAC ACMUX 
HAC ACMUX 
 
 
MAR 
 
 
 
MAR ß MBR(8,19) 
MAR ß PC 
 
 
HMAR MAMUX 
HMAR MAMUX 
 
 
MBR 
 
 
 
MBR ß M [MAR] 
MBR ß AC 
 
 
HMBR MBMUX 
HMBR MBMUX 
 
IR 
 
 
IR ß MBR (0,7) 
 
 
HIR 
 
PC 
 
 
PC ß PC + 1 
PC ß MBR(8,19) 
 
 
INCRPC 
HPC 
 
 
AGRUPAMENTO DAS IMPLICAÇÕES PARA OS PONTOS DE CONTROLE 
DOS REGISTRADORES 
 
O projeto prossegue agrupando para os pontos de controle os implicantes. 
Como exemplo, nota-se pela Tab. 7 que o ponto de controle HAC é ativo para duas 
microoperações. Para o agrupamento dos implicantes, é necessário verificar no 
conjunto de microoperações, nas expressões RTN as condições correspondentes. 
Para o exemplo do HAC tem-se: 
 
HAC = E.T2.ADD + E.T2.LOAD 
 
Os implicantes para os demais pontos de controle de registradores podem 
ser obtidos analogamente: 
 
HMAR = I.T3 
HMBR = I.T2 + E.T1.ADD + E.T1.LOAD + E.T0.STOR 
HIR = I.T3 
HPC = E.T0.JUMP + E.T0.JPOS.AC(0)’ 
INCRPC = I.T1 
 
 
 
AGRUPAMENTO DAS IMPLICAÇÕES PARA OS PONTOS DE CONTROLE 
DOS MULTIPLEXADORES 
 
Para o controle de seleção dos multiplexadores é necessário verificar qual a 
seleção necessária para as microoperações. Para isso convem desenvolver uma 
extensão da Tab.7, para os multiplexadores, conforme a Tab. 8. 
 
Tabela 8. Seleção dos multiplexadores. 
Destinação Microoperação Pontos de 
Controle ativos 
Seleção dos 
Multiplexadores 
 
AC 
 
 
 
AC ß MBR 
AC ß AC + MBR 
 
 
HAC ACMUX 
HAC ACMUX 
ACMUX 
0 
1 
 
MAR 
 
 
 
MAR ß 
MBR(8,19) 
MAR ß PC 
 
 
 
HMAR MAMUX 
HMAR MAMUX 
 
MAMUX 
0 
1 
 
MBR 
 
 
 
MBR ß AC 
MBR ß M [MAR] 
 
 
HMBR MBMUX 
HMBR MBMUX 
MBMUX 
0 
1 
 
 
O projeto dos implicantes significa verificar para a coluna de seleção dos 
multiplexadores da Tab. 8, quais as condições em que os pontos de controle devem 
ter o valor um, e determinar os implicantes usando a tabela de microoperações. 
Por exemplo, o projeto de ACMUX consiste nos implicantes em que: 
 AC ß AC + MBR 
 
Portanto, 
 
ACMUX = E.T2.ADD. 
 
 Após a determinação das equações booleanas para os pontos de controle, a 
próxima tarefa é a minimização do circuito combinatório resultante. 
 O projeto apresentado constitui essencialmente de uma unidade de controle 
fixo, ou hardwired. Nota-se que uma vez feita a minimização do circuito é difícil 
alterar uma instrução sem refazer totalmente o projeto do circuito combinatório. 
 
INSTRUÇÕES DE SALTO E RETORNO DA SUBROTINA 
 
No computador IAS não consta a instrução de salto a subrotina SBR, nem a 
instrução de retorno ao programa principal RET, após a execução da subrotina. 
Apresentamos a seguir essas duas instruções para facilitar o entendimento dos 
mecanismos de salto e retorno de subrotinas, nos computadores modernos. 
 A instrução SBR que será apresentada a seguir é usada para que a seqüência 
de execução das instruções seja alterada para uma outra posição da memória 
principal, onde se encontra a subrotina. Na primeira posição da subrotina, porém, 
deve ser armazenado o endereço de retorno. A subrotina se inicia, portanto, na 
segunda posição. 
 A seguir será apresentada a execução da instrução SBR M(X), em RTN: 
E.T0.SBR : MBR(0,7) ß 00000000; MBR(8,19) ß PC; 
 PC ß MBR(8,19); inicioWR; 
E.T1.SBR : {espera de escrita}; e 
E.T2.SBR : fimWR; PC ß PC + 1; recicla. 
 
 Pela descrição RTN, durante o subciclo T0, o valor correspondente ao 
endereço de retorno, que seria a próxima instrução caso não houvesse o salto, é 
carregado do PC ao MBR; além disso, o valor contido no MBR(8,19) que 
corresponde ao endereço da primeira posição da subrotina é transferido para o PC. 
No subciclo T2 é finalizado o processo de escrita do endereço de retorno na primeira 
posição da subrotina M(X), e o conteúdo do contador de programa é incrementado de 
um para que a próxima instrução a ser executada seja lida na segunda posição da 
subrotina. 
 A instrução RET é usada para o retorno ao programa principal, após a 
execução da subrotina. Como o endereço de retorno é armazenado na primeira 
posição da subrotina pela instrução SBR, esse endereço deve ser lido para ser usado 
como o endereço da próxima instrução, alterando o conteúdo de PC. A seguir é 
mostrada a representação em RTN da instrução RET M(X): 
E.T1.RET : MBR ß M[MAR]; e 
E.T2.RET : PC ß MBR(8,19); recicla. 
 
INSTRUÇÕES DE ENTRADA E SAÍDA 
 
No computador IAS, também não consta a instrução de entrada, bem como 
instrução de saída. A entrada e saída no IAS era feita através de instruções de 
referência a memória, em endereços específicos, previamente destinados para essa 
finalidade. Essa forma de entrada e saída é denominada de entrada/saída mapeada em 
memória (memory mapped I/O). 
As instruções de entrada e saída apresentadas a seguir são específicas para a 
finalidade de troca de informações com o uso do acumulador, AC; e são comuns na 
maioria dos computadores modernos. 
A instrução de entrada, INP, é usada para a leitura de um dado contido 
num dispositivo de entrada. Após a execução dessa instrução o dado é disponível no 
AC. Como existem vários dispositivos de entrada, um duto de dados é usado em 
comum por todos os dispositivos, porém, um único dispositivo deve ser selecionado 
durante uma instrução de entrada. A instrução INP D(X) deve portanto indicar qual 
dispositivo a ser ativado para a entrada, através do valor contido em D(X). Como o 
campo de endereço é carregado em MAR durante o ciclo de busca de instrução, o 
circuito de endereçamento dos dispositivos de entrada deve estar conectado às linhas 
de saída do MAR. 
 A representação RTN abaixo mostra a execução da instrução de entrada: 
 E.T0.INP : iniciaINP; 
 E.T2.INP : AC ß dadoEntrada; e 
 E.T3.INP : fimINP. 
O sinal de controle iniciaINP é usado para ativar um flip-flop de controle de entrada, 
cuja saída deve ser conectada aos dispositivos de entrada para sinalizar o momento 
em que o dado deve ser disponibilizado no duto de dados de entrada. O sinal fimINP 
serve para sinalizar o fim da entrada de dados. Durante o subciclo T2 o dado é 
carregado no AC. 
 A instrução de saída, OUT, é usada para que um dado contido no AC seja 
lido por um dispositivo de saída. A forma de endereçamentodo dispositivo de saída 
é idêntica à instrução de entrada. Durante a execução da instrução OUT D(X) é 
gerado num flip-flop de controle de saída, um pulso indicando a disponibilização do 
dado no duto de dados de saída. Assim são usados os sinais de controle inicioOUT e 
fimOUT, para essa finalidade, conforme a descrição seguinte: 
 E.T0.OUT : iniciaOUT; e 
 E.T3.OUT : fimOUT. 
 
CONTROLE DE INTERRUPÇÃO 
 
Uma interrupção durante a execução de um programa no 
computador implica em parar temporariamente a execução do programa e 
executar uma subrotina de atendimento ao dispositivo que solicitou a 
interrupção. 
As interrupções em geral podem ser gerados pelo próprio computador, ou 
por algum dispositivo de entrada ou de saída. As interrupções geradas pelo próprio 
computador, são causadas por alguma operação imprópria, como por exemplo, 
divisão por zero, estouro da unidade aritmética, etc. Uma interrupção causada por 
dispositivos externos, corresponde a alguma solicitação de entrada ou de saída de 
dados. Como o dispositivo externo é assíncrono em relação ao computador, a 
interrupção é uma forma eficiente para a entrada ou saída de dados. 
Um outro método de entrada e saída, menos eficiente é chamado polling, e 
nesse caso o computador fica executando um laço até que o dispositivo externo fique 
pronto. Como um dispositivo externo é assíncrono em relação ao computador, o 
tempo gasto pelo computador executando o laço é imprevisível. 
Um dispositivo externo que interrompe o computador é o teclado, em que o 
operador digita caracteres durante um processamento de texto. Se for utilizado o 
método de polling para a entrada pelo teclado, o computador ficaria a maioria do 
tempo em laço, esperando o operador. 
Um exemplo de implementação é mostrado na Fig. 15. 
 
Figura 15. Diagrama do circuito de interrupção. 
 
 
A interrupção é habilitada por um flip-flop IEN (Interrupt ENable). Esse 
flip-flop quando é ligado permite que um dispositivo externo interrompa a execução 
normal do computador no próximo ciclo de busca I. A interrupção é solicitada pelo 
dispositivo externo através da linha INT’, ativa em zero. Após a linha INT’ ser 
ativada, o computador entra no estado de interrupção no próximo ciclo de instrução 
se o IEN estiver ativo. Se IEN não estiver ativo, o computador fica no estado de 
execução normal do programa principal, até que IEN seja ativado por uma instrução 
“OUTP 0”. 
O circuito mostra a ativação do flip-flop IEN e do flip-flop RUPT, que 
indica o estado de interrupção. O sinal gerado por esse flip-flop é usado pela unidade 
de controle para introduzir no MBR uma instrução de chamada de subrotina no 
endereço zero, “SBR 0”. Como o momento da interrupção é imprevisível é óbvio que 
essa instrução não provem da memória principal. Uma forma de implementação do 
mecanismo é a introdução da instrução no multiplexador do MBR, conforme mostra 
o diagrama da Fig. 16. 
Ao executar a instrução SBR 0, o computador faz um salto à subrotina no 
endereço zero, portanto a rotina de tratamento do dispositivo de interrupção deve 
estar nesse endereço. A última instrução da subrotina sendo RETN, a sua execução 
faz com que o computador passe a executar de volta o programa principal, após o 
atendimento à interrupção. 
 
AC MQ
MBR
Circuitos de
Aritmetica e 
 Logica
E
n
d
e
r
e
c
o
Instrucoes
 e
 dados
 MEMORIA
PRINCIPAL
 IR PC
M
A
R
Dispositivos
 de
 Entrada/
 Saida
D
a
d
o
s
Endereco
MBMUX
ACMUX
M
A
M
U
X
SBR 0
 
 
Figura 16. Alteração do MBMUX para a inclusão da instrução “SBR 0”. 
 
 
O diagrama de tempo da Fig. 17 mostra uma sequência de instruções 
durante duas solicitações de interrupção. Nota-se da esquerda para a direita que o 
flip-flop RUPT torna-se ativo, pela primeira solicitação de interrupção, quando IEN 
é ativo. Logo em seguida IEN fica inativo pelo circuito da Fig. 15, de solicitação de 
interrupção. Para uma outra interrupção ser habilitada uma instrução de “OUTP 0” 
deve ser executada. Nota-se no diagrama de tempo que embora uma segunda 
interrupção seja solicitada, ela só pode ser atendida após a ativação de IEN. A última 
instrução da subrotina RETN é executada antes de entrar no segundo estado de 
interrupção. 
‘SBR 0’ ‘SBR 0’
 
Figura 17. Diagrama de tempo do circuito de interrupção. 
 
INSTRUÇÃO DE MULTIPLICAÇÃO 
 
 No projeto computador IAS, está inclusa uma instrução de multiplicação, que 
executa uma multiplicação de dois números inteiros de 20 bits, gerando um produto 
de 40 bits. Para essa implementação é possível adotar o algoritmo A1 apresentado a 
seguir, baseado no diagrama da Fig.18. 
 
PRODUTO
MULTIPLICADOR
MULTIPLICANDO
SOMADOR
0 19 20 39
 
Figura 18. Diagrama dos elementos funcionais para a multiplicação. 
Algoritmo A1. Multiplicação serial de dois números inteiros de 20 bits. 
INICIO
 TESTA
PRODUTO
Somar o multiplicando `a metade esquerda do
do produto e colocar o resultado na mesma
posicao.
Deslocar o produto `a direita
ULTIMA
 CASA 
FIM
= 0
= 1
NAO
SIM
 
 
Como a execução do algoritmo A1 exige um número de ciclos 
correspondente ao número de bits do multiplicador, a implementação da instrução de 
multiplicação exige uma alteração do circuito de timing apresentado na Fig.10 para 
que durante essa instrução a execução seja constituída por um número de ciclos de 
estado principal correspondente ao número de bits do multiplicador. Além disso, 
deve ser acrescido um circuito contador para que após completar o número 
necessário de ciclos o computador gere o sinal de recicla, para iniciar a busca da 
próxima instrução.

Continue navegando