Sap 1ApostilaOff
Sap 1ApostilaOff
Sap 1ApostilaOff
1
SAP-1
10.8 Microprogramação..............................................................................35
• Armazenamento do Microprograma,35
• ROM de Endereços,35
• Contador Pré-ajustave,35
• ROM de Controle,37
• Ciclo variável de Máquina,38
• Vantagens,38
Glossário..........................................................................................................39
Exercícios de Fixação.....................................................................................40
Problemas........................................................................................................41
2
SAP-1
SAP-1
O computador SAP ( Simples – Quanto - Possível = Simple-As-Possible) foi projeta para você, o
principiante. A principal finalidade do SAP consiste em introduzir todas as idéias cruciais além da
operação do computador sem sobrecarregá-lo com detalhes desnecessários.Mas até mesmo um
simples computador como o SAP engloba muitos conceitos avançados. Para evitar bombardear você
com excesso de informações todas de uma vez, examinaremos três diferentes gerações do
computador SAP.
SAP-1 é o primeiro estágio na evolução com vistas aos modernos computadores .Embora
primitivo, o SAP-1 é um grande passo para um principiante.Assim, neste capítulo, entregue-se ao
estudo com determinação; procure adquirir um perfeito conhecimento ou prática do SAP-1, de sua
arquitetura, de sua programação e de seus circuitos. Depois você estará prepara o para estudar o
SAP-2.
10.1 ARQUITETURA
A Fig.10-1 mostra a arquitetura ( estrutura ) do SAP-1, um computador organizado em
barramentos . Todas as saídas dos registradores para o barramento W são de três estados; isto
possibilita a transferência de dados ordenadamente. Todas as outras saídas dos registradores são
de dois estados; estas saídas comandam continuamente as caixas às quais elas estão conectadas.
O diagrama da Fig.10-1 enfatiza os registradores usados no SAP-1. Por esta razão, nenhuma
tentativa tem sido feita para guardar todos os circuitos de controle em um bloco chamado unidade de
controle, todos os circuitos de entrada-saída em um outro bloco chamado unidade de E/S (I/O) etc.
Muitos dos registradores da Fig.10-1 já são conhecidos desde os primeiros exemplos e
discussões. O que segue é uma breve descrição de cada caixa; explicações detalhadas vêm mais
tarde.
Contador de Programa
Entrada e REM
3
SAP-1
A RAM
A RAM é uma RAM TTL estática de 16 x 8. Conforme discutido na secção 9-4, podemos
programar a RAM por meio dos registradores de chaves de dados e de endereços. Isto nos permite
armazenar um programa e os dados na memória antes de um processamento do computador.
Durante um processamento do computador, a RAM recebe endereços de 4 bits do REM e é
executada uma operação de leitura. Desta maneira, a instrução ou palavra de dados armazenada na
RAM é colocada no barramento W para uso em alguma outra parte do computador.
Registrador de Instruções
O registrador de instruções constitui parte da unidade de controle. Para buscar uma instrução da
memória o computador realiza uma operação de leitura da memória. Isto coloca o conteúdo do local
de memória endereçado no barramento W. Ao mesmo tempo, o registrador de instruções é
preparado para carregamento na próxima transição positiva de relógio.
O conteúdo do registrador de instruções é dividido em dois nibbles (meios-bytes). O nibble
superior é uma saída de dois estados que vai diretamente ao bloco rotulado "controlador-se-
quencializador". O nibble inferior é uma saída de três estados que é lida no barramento W quando
necessário.
4
SAP-1
Controlador – Sequencializador
5
SAP-1
Esta palavra determina como os registradores reagirão à próxima transição positiva de relógio
(CLK). Por exemplo, um Ep alto e um baixo significam que o conteúdo do contador de programa
é retido no REM na próxima transição positiva de relógio. Como outro exemplo, um baixo e um
baixo significam que a palavra da RAM endereçada será transferida para o acumulador na
próxima transição positiva de relógio. Mais tarde, examinaremos os diagramas de
temporização para verificar exatamente quando e como ocorrem estas transferências de dados.
Acumulador
O Somador-subtrator
S=A+B
S = A + B'
O somador-subtrator é assincrono (não-sincronizado); isto significa que seu conteúdo pode variar
logo que as palavras de entrada variem. Quando EU for alto, estes conteúdos aparecerão no
barramento W.
Registrador B
Registrador de Saída
6
SAP-1
for alto e L0 for baixo, a próxima transição positiva de relógio carregará a palavra do acumulador no
registrador de saída.
O registrador de saída muitas vezes é chamado porta de sa(da porque os dados processados
podem sair do computador através deste registrador. Em microcomputadores as portas de saída são
conectadas aos circuitos de interface que comandam dispositivos periféricos como as impressoras,
os tubos de raios catódicos, as teleimpressoras etc. (Um circuito de interface prepara os dados para
comandar cada dispositivo.)
O indicador visual em binário é uma fileira de oito diodos emissores de luz (LEDs). Em virtude
de cada LED conectar-se a um biestável da porta de saída, o indicador visual em binário mostra-nos
o conteúdo da porta de saída. Portanto, depois de termos transferido uma resposta do acumulador
para a porta de saída, podemos ver a resposta em forma binária.
Resumo
Um computador é um amontoado inútil de hardware até que alguém o programe. Isto significa o
carregamento de instruções passo-a-passo na memória antes do início de um processamento no
computador. Antes que possamos programar um computador, no entanto, devemos aprender seu
conjunto de instruções, as operações básicas que ele pode executar .Segue-se o conjunto de
instruções do SAP-1.
LDA
Conforme descrito no Capítulo 9, as palavras na memória podem ser simbolizadas por R0, R1, R2
etc. Isto significa que R0 é armazenada no endereço OH, R1 no endereço 1H, R2 no endereço 2H etc.
LDA significa "carregar o acumulador" (Load the Accumulator). Uma instrução LDA completa
inclui o endereço hexadecimal dos dados a serem carregados. LDA 8H, por exemplo,significa
"carregar o acumulador com o conteúdo do local 8H da memória". Portanto, dado
R8=11110000
a execução de LDA 8H resulta em
A= 1111 0000
ADD
ADD é uma outra instrução do SAP-1. Uma instrução ADD completa inclui o endereço da palavra
a ser acrescentada. Por exemplo, ADD 9H significa "acrescentar o conteúdo do local 9H " da
memória ao conteúdo do acumulador"; a soma substitui o conteúdo original do acumulador.
Eis aqui um exemplo. Suponhamos que o decimal 2 esteja no acumulador e que o decimal , no
local 9H da memória. Então
7
SAP-1
A= 00000010
R9 = 00000011
B= 00000011
SUM = 00000101
A= 00000101
A rotina precedente é usada em todas as instruções ADD; a palavra RAM endereçada vai ao
registrador B e a saída do somador-subtrator vai para o acumulador. Isto ocorre porque a execução
de ADD 9H acrescenta R9 ao conteúdo do acumulador, a execução de ADD FH acrescenta RF ao
conteúdo do acumulador etc.
SUB
SUB é uma outra instrução do SAP-1. Uma instrução SUB completa inclui o endereço da palavra
a ser subtraída. Por exemplo, SUB CH significa "subtrair o conteúdo do local CH da memória do
conteúdo do acumulador"; a diferença para fora do somador-subtrator depois substituir o conteúdo
original do acumulador.
Como um exemplo concreto, admitamos que o decimal 7 esteja no acumulador e que o
decimal 3, no local CH da memória. Então
A =00000111
Rc = 00000011
B = 00000011
A= 00000100
A rotina precedente aplica-se a todas as instruções SUB; a palavra RAM endereçada vai ao
registrador B e a saída do somador-subtrator vai ao acumulador. Isto ocorre porque a execução de
SUB CH subtrai Rc do conteúdo do acumulador, a execução de SUB EH subtrai RE do acumulador
etc.
OUT
A instrução OUT diz ao computador SAP-1 para transferir o conteúdo do acumulador para a porta
de saída. Depois de OUT ter sido executada, podemos ver a resposta ao problema que está sendo
resolvido.
8
SAP-1
OUT é completa por si própria; isto é, não temos que incluir um endereço quando usamos OUT
porque a instrução não envolve dados na memória.
HLT
HLT significa parar (halt). Esta instrução diz ao computador para parar o processamento de
dados. HLT assinala o fim de um programa, similar à maneira com que um ponto assinala o fim de
uma frase ou sentença. Devemos usar uma instrução HLT no fim de cada programa do SAP-1; do
contrário, obtemos refugos (trash) no computador (respostas sem significado causadas pelo
processamento descontrolado).
HLT é completa por si própria; não temos que incluir uma palavra de RAM ao usarmos HLT
porque esta instrução não envolve a memória.
LDA, ADD e SUB são chamadas instruções de referência à memória porque elas usam
dados armazenados na memória. OUT e HLT, por outro lado, não são instruções de referência à
memória porque elas não envolvem dados armazenados na memória.
Mnemônicos
LDA, ADD, SUB, OUT e HLT são o conjunto de instruções do SAP-1. Instruções abreviadas
como estas são chamadas mnemônicos (auxílios à memória). Mnemônicos são conhecidos no
trabalho dos computadores porque eles nos lembram da operação que ocorrerá quando a instrução
for executada. A Tabela 10-1 resume o conjunto de instruções do SAP-1.
O primeiro microprocessador amplamente usado foi o 8080. Ele tem 72 instruções. O 8085 é uma
versão ampliada do 8080 tendo essencialmente o mesmo conjunto de instruções.Para tornar o SAP
prático, as instruções do SAP terão compatibilidade ascendente com o conjunto de instruções do
8080/8085. Em outras palavras, as instruções LDA, ADD, SUB, OUT e HLT são instruções do
8080/8085. Analogamente, as instruções do SAP-2 e do SAP-3 serão parte do conjunto de
instruções do 8080/8085. Conhecendo as instruções do SAP estaremos preparados para o 8080 e
para o 8085, dois microprocessadores amplamente usados. Uma vez que aprendemos o conjunto de
instruções do 8080/8085, podemos nos desviar para outros microprocessadores.
Mnemônicos Operação
LDA Carregue os dados da RAM no acumulador.
ADD Some os dados da RAM com o acumulador.
SUB Subtraia os dados da RAM do acumulador .
OUT Carregue os dados do acumulador no registrador de saída.
HLT Pare o processamento.
EXEMPLO 10-1
9
SAP-1
Endereço Mnemônicos
0H LDA 9H
1H ADD AH
2H ADD BH
3H SUB CH
4H OUT
5H HLT
Endereço Dados
6H FFH
7H FFH
8H FFH
9H 01H
AH 02H
BH 03H
CH 04H
DH FFH
EH FFH
FH FFH
SOLUÇÃO
O programa está na memória inferior, localizado nos endereços OH a 5H. A primeira instrução
carrega o acumulador com o conteúdo do local 9H da memória, e assim o conteúdo do acumulador
toma-se
A= 01H
A segunda instrução soma o conteúdo do local AH da memória ao conteúdo do acumulador para
produzir um novo total do acumulador de
A instrução OUT carrega o conteúdo do acumulador para a porta de saída; portanto, o indicador
visual em binário mostra
0000 0010
10
SAP-1
Para carregar palavras de dados e instruções na memória do SAP-1 temos que usar alguma
espécie de código que o computador possa interpretar. A Tabela 10-2 mostra o código usado no
SAP-1. O número 0000 significa LDA, 0001 significa ADD, 0010 significa SUB, 1110 significa OUT e
1111 significa HLT.Em virtude deste código dizer ao computador que operação executar, ele é
chamado código de operação (op code).
Conforme tratado inicialmente-as chaves de dados e de endereços da Fig. 9-7 nos possibilitam
programar a memória do SAP-1. Pelo projeto, estas chaves produzem um 1 na posição para cima
(U) e um 0 na posição para baixo (D). Quando programando as chaves de dados com uma instrução,
o código de operações entra no nibble superior, e o operando (o resto da instrução) entra no nibble
inferior.
Mnemônicos Código op
LDA 0000
ADD 0001
SUB 0010
OUT 1110
HALT 1111
Endereço Instrução
0H LDA FH
1H ADD EH
2H HLT
Endereços Dados
DDDD DDDDUUUU
DDDU DDDUUUUD
DDUD UUUUXXXX
Endereços Conteúdo
0000 0000 1111
0001 00011110
00 10 1111 XXXX
11
SAP-1
EXEMPLO 1 0-2
SOLUÇÃO
Este programa está em linguagem de montagem conforme ele se acha agora. Para obtê-lo em
linguagem de máquina, nós o traduzimos em 0s e 1s conforme segue:
Endereço Instrução
0000 00001001
0001 00011010
0010 00011011
0011 00101100
0100 1110 XXXX
0101 1111 XXXX
Campo de instrução
Campo de endereço
EXEMPLO 10-3
16 + 29 + 24- 32
SOLUÇÃO
12
SAP-1
Uma das maneiras consiste em usar o programa do exemplo precedente, armazenando os dados
(6, 20, 4, 32) nos locais da memória 9H a CH. Com o Apêndice 1, podemos converter os dados
decimais em hexadecimais para obter esta versão em linguagem de montagem:
Endereço Conteúdo
0H LDA 9H
1H ADD AH
2H ADD BH
3H SUB CH
4H OUT
5H HLT
6H XX
7H XX
8H XX
9H 10H
AH 14H
BH 18H
CH 20H
Endereço Conteúdo
0000 0000 1001
0001 00011010
0010 00011011
0011 0010 1100
0100 1110 XXXX
0101 1111 XXXX
0110 XXXX XXXX
0111 XXXX XXXX
1000 XXXX XXXX
1001 0001 0000
1010 0001 0100
1011 0001 1000
1100 0010 0000
Observemos que o programa é armazenado à frente dos dados. Em outras palavras, o programa
está na memória inferior e os dados na memória superior. Isto é essencial em SAP-1 porque o
contador de programa aponta para o endereço 0000 para a primeira instrução, 0001 para a segunda
instrução e assim por diante.
EXEMPLO 10-4
SOLUÇÃO
13
SAP-1
Endereço Conteúdo
0H 09H
1H 1AH
2H 1BH
3H 2CH
4H EXH
5H FXH
6H XXH
7H XXH
8H XXH
9H 10H
AH 14H
BH 18H
CH 20H
Contador em Anel
Inicialmente, analisamos o contador em anel do SAP-1 (ver Fig. 8-16 para o diagrama
esquemático). A Fig. 10-2a simboliza o contador em anel, que tem uma saída
T = T6T5T4T3T2T1
T = 000001
T = 000010
T = 000100
T = 001000
T = 010000
T = 100000
Então, contador em anel se restabelece (reset) em 000001 e o ciclo se repete. Cada palavra de anel
representa um estado T.
A Fig. 10-2b mostra os pulsos de temporização fora do contador em anel. O estado inicial T1
começa com uma transição negativa de relógio e termina com a próxima transição negativa de
relógio. Durante este estado T, o bit T1 fora do contador em anel está alto.
Durante o próximo estado, T2 está alto; o estado seguinte tem um T3 alto; depois um T4
alto e assim por diante. Conforme podemos ver, o contador em anel produz seis estados T: Cada
instrução é buscada e executada durante estes seis estados T.
Observemos que uma transição CLK positiva ocorre a meio caminho em cada estado T. A
importância disto será ressaltada mais tarde.
14
SAP-1
Estado de Endereço
Durante O estado de endereço, EP e estão ativos; todos os outros bits de controle estão
inativos. Isto significa que o controlador-sequencializador está enviando para fora uma palavra de
controle de
=0 1 0 1 11 1 0 0 0 1 1
Estado de Incremento
A Fig. 10-3b mostra as partes ativas de SAP-1 durante o estado T2. Este estado é chamado
estado de incremento porque o contador de programa é incrementado. Durante o estado de
incremento, o controlador-sequencializador está produzindo uma palavra de controle de
15
SAP-1
= 1 0 1 1 1 1 1 0 0 0 1 1
Estado de Memória
1 durante o estado de memória. Os únicos bits de controle ativos durante este estado são e
LI , e a palavra fora do controlador-sequencializador é
= 0 0 1 0 011 0 0 0 1 1
Ciclo de Busca
16
SAP-1
Rotina LDA
Para um estudo concreto, admitamos que o registrador de instruções tenha sido carregado com
LD A 9H:
IR = 0000 1001
Durante o estado T4, o campo 0000 de instrução vai para o controlador-sequencializador, onde
ele é decodificado; o campo 1001 de endereços é carregado no REM. A Fig. 10-4a mostra as partes
ativas de SAP-1 durante o estado T4. Notemos que E I e LM são ativos; todos os outros bits de
controle são inativos.
Durante o estado T5 CE e L A tomam-se altos. Isto significa que a palavra de dados
endereçada a RAM será carregada no acumulador na próxima transição positiva de relógio (ver Fig.
10-4b).
T6 é um estado sem operação. Durante este terceiro estado de execução, todos os registradores
estão inativos (Fig. 10-4c). Isto significa que o controlador-sequencializador está enviando para fora
uma palavra cujos bits são todos inativos. Nop (pronunciado noop) significa "sem operação" ou
“inoperante". O estado T6 da rotina LDA é um nop.
A Fig.10-5 mostra o diagrama de temporização das rotinas LDA e de busca. Durante o estado T1,
EP e LM estão ativos; a transição positiva de relógio a meio caminho através deste estado transferirá
o endereço no contador de programa para o REM. Durante o estado T2, CP está ativo e o contador
de programa é incrementado na transição positiva de relógio. Durante o estado T3 , CE e LI estão
ativos; quando ocorre a transição positiva de relógio, a palavra da RAM endereçada é transferida
para o registrador de instruções. A execução de LDA começa com o estado T4 , onde LM e E I
estão ativos; na transição positiva de relógio o campo de endereço no registrador de instruções é
transferido para o REM. Durante o estado T5 , CE e L A estão ativos; isto significa que a palavra de
dados de RAM endereçada é transferida para o acumulador na transição positiva de relógio.
Conforme sabemos, o estado T6 da rotina LDA é um nop.
Rotina ADD
Suponhamos que no fim do ciclo de busca o registrador de instruções contenha ADD BH:
IR = 0001 1011
17
SAP-1
Fig. 10-6 Rotinas ADD e SUB: (a)estado T4 ;(b) estado T5 ; (c) estado T6.
18
SAP-1
19
SAP-1
Rotina SUB
A rotina SUB é similar à rotina ADD. A Fig.10-6a e b mostra as partes ativas de SAP-1 durante
os estados T4 e T5. Durante o estado T6 , um SU alto é mandado ao somador-subtrator da Fig.10-6c.
O diagrama de temporização é quase idêntico à Fig.10-7. Visualizamos SU baixo durante os estados
T1 a T5 e SU alto durante o estado T6.
Rotina OUT
IR = 1110 XXXX
20
SAP-1
HLT
HLT não requer uma rotina de controle porque não há registradores envolvidos na execução uma
instrução HLT .Quando o IR contiver.
IR = 1111 XXXX
SAP-1 tem seis estados T (três de busca e três de execução). Estes seis estados são chamados
ciclo de máquina (ver Fig. 10-10a).É necessário um ciclo de máquina para buscar e executar cada
instrução. O relógio SAP-1 tem uma freqüência de 1 kHz, equivalente a um período de 1
ms.Portanto, são necessários 6 ms para ocorrer um ciclo de máquina do SAP-1.
SAP-2 é ligeira diferente porque algumas de suas instruções levam mais do que um ciclo de
máquina para buscar e executar. A Fig. 10-10b mostra a temporização (formas-de-onda) para uma
instrução que requer dois ciclos de máquina. Os três primeiros estados T constituem o ciclo de
busca; no entanto, o ciclo de execução requer os próximos nove estados T. É por isto que uma
instrução de dois ciclos de máquina é mais complicada e necessita daqueles estados T extras para
completar a execução.
O número de estados T necessário para buscar e executar uma instrução é chamado ciclo de
instrução. No SAP-1 o ciclo de instrução é igual ao ciclo de máquina. Enquanto no SAP-2 e em
outros microcomputadores o ciclo de instrução pode ser igual a dois ou mais ciclos de máquina,
conforme mostrado na Fig. 10.10b.
Os ciclos de instrução para o 8080 e para o 8085 levam de um a cinco ciclos de
máquina(posteriormente, mais detalhes sobre isto).
EXEMPLO 10.5
O manual de programação do 8080/8085 diz que são necessários treze estados T para buscar e
executar a instrução LDA.
(a)
(b)
Fig. 10-10(a) Ciclo de instrução do SAP-1;(b)ciclo de instrução com dois ciclos de máquina.
21
SAP-1
Se o relógio do sistema tiver uma freqüência de 2,5 MHz, quanto tempo corresponderá a um ciclo
de instrução?
SOLUÇÃO
O período do relógio é
1 1
T= = = 400ns
f 2,5MHz
Portanto, cada estado T dura 400 ns. Uma vez que são necessários treze estados T para buscar
e executar a instrução LDA, o ciclo de instrução dura
EXEMPLO 10-6
A Fig. 10-11 mostra os seis estados T do SAP-1. A transição positiva de relógio ocorre a meio
caminho em cada estado. Por que isto é importante?
SOLUÇÃO
Microinstruções
Macroinstruções
As instruções com que temos estado programando (LDA, ADD, SUB, ...) são às vezes chamadas
macroinstruções para distingui-las das microinstruções. Cada macroinstrução do SAP-1 é formada
22
SAP-1
de três microinstruções. Por exemplo, a macroinstrução LDA consiste nas microinstruções na Tabela
10-3. Para simplificar o aspecto destas microinstruções, podemos usar compactação hexadecimal
conforme mostrado na Tabela 10-4.
A Tabela 10-5 mostra o microprograma do SAP-1, uma listagem de cada macroinstrução e as
microinstruções necessárias para executá-las. Esta tabela resume as rotinas de execução para as
instruções do SAP-1. Uma tabela semelhante pode ser usada com conjuntos de instruções mais
avançadas.
Fig. 10-11 Transições positivas de relógio ocorrem a meio caminho nos estados T.
TABELA 10-4
23
SAP-1
Contador Programa
As pastilhas C1, C2 e C3. da Fig. 10-12 constituem o contador de programa. A pastilha C1,um
74LS107, é um biestável duplo J-K mestre-escravo, que produz os 2 bits de endereço superiores. A
pastilha C2, um outro 74LS107, produz os 2 bits de endereço inferiores. A pastilha C3 é um
74LS126, uma chave quádrupla de três estados normalmente aberta; ela dá ao contador de
programa uma saída de três estados.
REM
Multiplexador de 2-para-l
24
SAP-1
RAM de 16 x 8
As pastilhas C6 e C7 são 74189s. Cada pastilha é uma RAM estática de 16 x 4. Juntas, elas nos
dão uma memória de leitura-escrita de 16 x 8. S3 é o registrador (8 bits) da chave de dados e S4 é
a chave de leitura-escrita (uma chave com botão de calcar). Para programar a memória, S2 é posta
na posição PROG; isto toma baixa a entrada CE (pino 2). As chaves de dados e de endereços são
depois ajustadas com as palavras de dados e de endereços corretas.Calcando-se
momentaneamente a chave de leitura-escrita, toma-se WE baixa (pino 3) e carrega-se a memória.
Depois do programa e dos dados estarem na memória, a chave (S2) RUN-PROG será posta na
posição RUN em preparação ao processamento no computador .
Registrador de Instruções
Acumulador
As pastilhas C10 e C11, 74LS173s, constituem o acumulador (Ver. Fig. 10-13). Os pinos 1 e 2
são ligados à terra em ambas as pastilhas para produzir uma saída de dois estados no somador-
subtrator. As pastilhas C12 e C13 são 74LS126s; estas chaves de três estados colocam o conteúdo
do acumulador no barramento W quando E A está alto.
Somador-subtrator
As pastilhas C14 e C15 são 74LS86s. Estas portas EXCLUSIVE-OR constituem um inversor
controlado. Quando SU é baixo, o conteúdo do registrador B é transmitido. Quando SU é alto, o
complemento de 1 é transmitido e um 1 é acrescentado ao LSB para formar o complemento de 2.
As pastilhas C16 e C17 são 74LS83s. Estes somadores totais de 4 bits se combinam para
produzir uma soma ou diferença de 8 bits. As pastilhas C18 e C19, que são 74LS126s, convertem
esta resposta de 8 bits em uma saída de três estados para comandar o barramento W.
As pastilhas C20 e C21, que são 74LS173s, formam o registrador B. Ele contém os dados a
serem adicionados ou subtraídos do acumulador. Ligando-se à terra os pinos 1 e 2 de ambas as
pastilhas, produz-se uma saída de dois estados para o somador-subtrator.
As pastilhas C22 e C23 são 74LS173s e formam o registrador de saída. Ele comanda o indicador
visual binário e nos permite ver os dados processados.
Na Fig. 10-14, o eliminador de trepidação de iniciar-Iimpar produz duas saídas: CLR para o
registrador de instruções e CLR para o contador de programa e para o contador em anel. CLR
também vai a C29, o biestável de relógio-início (clock-start flip-flop). S5 é uma chave de botão de
comprimir. Quando comprimida (abaixada), ela vai para a posição CLEAR, gerando um alto CLR e
25
SAP-1
um baixo CLR . Quando S5 é liberada, ela retoma à posição START, produzindo um CLR baixo e
um CLR alto.
Observemos que metade de C24 é usada no eliminador de trepidação de iniciar-limpar e a outra
metade no eliminador de trepidação de etapa única. A pastilha C24 é uma porta NAND quádrupIa de
2 entradas, do tipo 7400.
SAP-1 pode realizar processamento em qualquer um dos dois modos: manual ou automático. No
modo manual, comprimimos e liberamos S6 para gerar um pulso de relógio. Quando S6 for
comprimida, CLK será alto; quando estiver liberada, CLK será baixo. Em outras palavras, o
eliminador de trepidação de etapa única da Fig.10-14 gera os estados T um de cada vez conforme
comprimimos e liberamos o botão. Isto nos permite atravessar os diferentes estados T enquanto
reparamos defeitos ou fazemos depuração. (Depuração significa procurar erros em nosso programa.
Procuramos defeitos no hardware e depuramos o software).
A chave S7 é uma chave de inversão monopolar (SPDT) que pode permanecer quer na posição
MANUAL quer na posição AUTO. Quando na MANUAL, o botão de um único estágio está ativo.
Quando em AUTO, o computador realiza o processamento automaticamente. Duas das portas
NAND em C26 são usadas para eliminar trepidação na chave MANUAL-AUTO. As duas outras
portas C26 NAND constituem parte de uma estrutura NAND/NAND que orienta (ou guia) relógio de
etapa única ou o relógio automático para as saídas finais CLK e CLR .
A saída do pino 11, C26, comanda as memórias intermediárias de relógio. Conforme vemos
Fig.10-14, dois inversores são usados para produzir a saída final CLK e um inversor para produzir a
saída CLR . Ao contrário da maioria das outras pastilhas, C27 é TTL padrão em vez de um Schottky
de baixa potência (ver SAP-1, Lista das Partes, Apêndice 4). TTL padrão é usado porque ele pode
comandar 20 cargas TTL Schottky de baixa potência, conforme indicado na TabeIa 4-5.
Se verificarmos as folhas de características de dados do 74LS107 e do 74LSl73 quanto às
correntes de entrada, seremos capazes de contar as seguintes cargas TTL Schottky (LS) de baixa
potência nos sinais de relógio e de limpar (levar-a-0):
CLK = 19 LS cargas
CLR = 2 LS cargas
CLR = 1 LS cargas
CLR = 20 LS cargas
26
SAP-1
27
SAP-1
28
SAP-1
29
SAP-1
30
SAP-1
A pastilha C28 é um temporizador 555. Este CI produz uma saída retangular de 2 kHz com um
ciclo de atividade de 75 por cento. Conforme estudado anteriormente, um biestável (C29) de iniciar o
relógio divide o sinal em 1 kHz e ao mesmo tempo produz um ciclo de atividade de 50 por cento.
A fonte de alimentação consiste em um retificador em ponte de onda completa operando com um
filtro a capacitor de entrada. A tensão cc no capacitor de 1000 µF é de aproximadamente 20V . A
pastilha C30, um LM340T-5, é um regulador de tensão que produz uma saída estável de +5 V.
Decodificador de Instrução
A pastilha C31 , um inversor hexadecimal, produz complementos dos bits em código op,I7I6I5I4
(ver Fig. 10-15). Depois as pastilhas C32, C33 e C34 decodificam o código op, para produzir cinco
sinais de saída: LDA, ADD, SUB, OUT e HLT . Lembremo-nos de que somente um destes sinais
está ativo de cada vez. ( HLT é ativo quando baixo; todos os outros são ativos quando altos.)
Quando a instrução HLT estiver no registrador de instruções, os bits I7I6I5I4 serão 1111 e HLT é
baixo. Este sinal retomará a C25 (relógio de etapa única) e a C29 (relógio automático ).O relógio pára
e o processamento no computador terminará, quer no modo MANUAL quer no AUTO.
31
SAP-1
Contador em Anel
O contador em anel, às vezes chamado contador de estados, consiste em três pastilhas, C36,
C37 e 38. Cada uma destas pastilhas é um 74LS107, um biestável duplo mestre-escravo JK. Este
contador será restabelecido (levado-a-0) quando o botão (S5) de limpar-iniciar for comprimido. O
biestável Q0 é invertido de modo que sua saída Q (pino 6, C38) comande a entrada j do
biestável Q1 (pino 1, C38). Por causa disto, a saída T1 inicialmente alta.
O sinal CLK comanda uma entrada baixa ativa. Isto significa que a transição negativa do sinal
CLK inicia cada estado T. Meio-ciclo mais tarde, a transição positiva do sinal CLK produz o
carregamento do registrador, conforme descrito anteriormente.
32
SAP-1
33
SAP-1
Matriz de Controle
Operação
34
SAP-1
10.8 MlCROPROGRAMAÇÃO
Armazenamento do Microprograma .
ROM de Endereços
Fig. 10-16 mostra como microprogramar o computador SAP-1. Ele tem uma ROM de endereço
, um contador pré-ajustável e uma ROM de controle. A ROM de endereço contém os endereços de
partida de cada rotina na Tabela 10-6. Em outras palavras, a ROM de endereços contém os dados
listados na Tabela 10.7. Conforme mostrado, o endereço de partida da rotina LDA é 0000 etc. O
endereço de partida da rotina ADD é 0110 etc.
Quando os bits I7I6I5I4 do código op comandam a ROM de endereço, o endereço de partida é
gerado. Por exemplo, se a instrução ADD estiver sendo executada, I7I6I5I4 se 0001. Esta é a
entrada para a ROM de endereço; a saída desta ROM é 0110.
Contador Pré-ajustável
Quando T3 for alto, a entrada de carga do contador pré-ajustável será alta e o contador
carregará o endereço de partida da ROM de endereços. Durante os outros estados T, o contador
contará.
Inicialmente, um sinal CLR alto proveniente do eliminador de trepidação de limpar-iniciar é
diferenciado para se obter um estreito pico positivo. Isto restabelece (zera) o contador. Quando
começa o processamento no computador, a saída do contador é 0000 durante o estado T1, 0001
durante o estado T2 e 00 10 durante o estado T3 . Cada ciclo de busca é o mesmo, porque 0000,
0001 e 0010 saem do contador durante os estados T1, T2 e T3.
35
SAP-1
6H 1A3H ADD LM , E I
7H 2E1H CE , LB
8H 3C7H L A , EU
9H 1A3H SUB LM , E I
AH 2E1H CE , LB
BH 3CFH L A , SU , EU
CH 3F2H OUT E A , L0
DH 3E3H Nada
EH 3E3H Nada
FH X X Não usado
36
SAP-1
ROM de Controle
5E3H
BE3H
263H
1A3H
2E1H
3C7H
37
SAP-1
A microinstrução 3E3H na Tabela 10-6 é uma nop. Ela ocorre uma vez na rotina LDA e duas
vezes na rotina OUT .Estas nops são usadas em SAP-1 para se obter um ciclo fixo de máquina
para todas as instruções. Em outras palavras, cada ciclo de máquina dura exatamente seis
estados T, não importa qual a instrução. Em alguns computadores um ciclo de máquina fixo
constitui uma vantagem. Mas quando a velocidade for importante, as nops constituirão um
desperdício de tempo e poderão ser eliminadas.
Um modo de acelerar a operação do SAP-1 consiste em saltar qualquer estado T com uma
nop. Reprojetando-se o circuito da Fig. 10-16 podemos eliminar os estados nop. Isto abreviará o
ciclo de máquina da instrução LDA para cinco estados (T1, T2, T3, T4 e T5) .Também encurta-se o
ciclo de máquina da instrução OUT para quatro estados (T1, T2, T3, T4 e T5) .
A Fig. 10-17 mostra um modo de se obter um ciclo de máquina variável. Com uma instrução
LDA, a ação é a mesma que anteriormente durante os estados T1 a T5.Quando começa o estado
T6, a ROM de controle produz uma saída de 3E3H (a microinstrução nop). A porta NAND detecta
esta nop instantaneamente e produz um sinal NOP de saída baixa. NOP é realimentado para o
contador em anel através de uma porta AND, conforme mostrado na Fig. 10-18.Isto restabelece o
contador em anel no estado T1, e começa um novo ciclo de máquina. Isto reduz o ciclo de máquina
da instrução LDA de seis estados para cinco.
Com a instrução OUT , ocorre a primeira nop no estado T5 .Neste caso, logo após começar o
estado T5 , a ROM de controle produz uma saída de 3E3H, que é detectada pela porta NAND.O
baixo sinal NOP então restabelece o contador em anel para o estado T1. Desta maneira,
reduzimos o ciclo de máquina da instrução OUT de seis estados para quatro.
Ciclos variáveis de máquina são comumente usados com microprocessadores. No 8085,por
exemplo, os ciclos de máquina duram de dois a seis estados T porque todos os estados nop
indesejáveis são ignorados.
Vantagens
38
SAP-1
Fig. 10-18
Resumo
GLOSSÁRIO
39
SAP-1
Instrução de consulta à memória: Uma instrução que solicita uma segunda operação da
memória para se ter acesso aos dados.
LDA: Mnemônico para carregar o acumulador.
Linguagem de máquina: Os cordões de 0s e de 1s usados em um programa.
Linguagem de montagem: Os rnnemônicos usados na escrita de um programa.
Macroinstrução: Uma das instruções no conjunto de instruções.
Microinstrução: Uma palavra de controle fora do controlador-sequencializador. A menor etapa
no processamento de dados.
Nop: Sem operação. Um estado durante o qual nada acontece.
Programa fonte: Um programa escrito em mnemônicos.
Programa objeto: Um programa escrito em linguagem de máquina.
RAM: Memória de acesso aleatório. Uma melhor nome é memória de leitura-escrita. A RAM
armazena o programa e os dados necessários a um processamento no computador.
Registrador B: Um registrador auxiliar que armazena os dados a serem adicionados ou
subtraídos do acumulador.
Registrador de instruções: O registrador que recebe a instrução da memória.
Registrador de saída: O registrador que recebe dados processados do acumulador e
comanda o indicador visual de saída do SAP-1. Também chamado porta de saída.
REM: Registrador de endereços da memória. Este registrador recebe o endereço dos dados a
que se vai ter acesso na memória. O REM fornece este endereço à memória.
EXERCÍCIOS DE FIXAÇÃO
40
SAP-1
PROBLEMAS
10.1. Escrever um programa SAP-1 usando mnemônicos (semelhantes ao Exemplo 10.1) que
apresente o resultado de
5+4-6
8+4-3+5-2
10.5. A Fig. 10-19 mostra o diagrama de temporização para a instrução ADD. Desenhar o
diagrama de temporização para a instrução SUB.
Fig. 10-19
41
SAP-1
Fig. 10-20
42
SAP-1
43
SAP-1
Fig 10-21
44
SAP-1
Fig 10-21(Continuação)
45
SAP-1
Fig. 10-22
46
SAP-1
Fig 10-23
47
SAP-1
10-6. Suponhamos que um 8085 use uma frequência de relógio de 3 MHz. A instrução ADD de
um 8085 leva quatro estados T para buscar e executar. Quanto tempo representa isto ?
10-7. Quais são as microinstruções SAP-1 para a rotina LDA? E para a sub-rotina SUB?
Expressar as respostas em forma binária e em hexadecimal.
10-8. Suponhamos que queremos transferir o conteúdo do acumulador para o registrador B.Isto
requer uma nova microinstrução. Qual é esta microinstrução? Expressar sua resposta em forma
hexadecimal e em forma binária.
a. Se I7I6I5I4 = 1110, somente um dos pinos de saída em C35 está alto. Que pino é este?
b. CLR torna-se alto. Qual é o sinal de temporização (T1 a T6) que se torna alto?
c. LDA e T5 estão altos. A tensão está baixa ou alta no pino 6, C45?
d. ADD e T4 estão altos. O sinal no pino 12, C45, é baixo ou alto?
48