








































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Apostila de SAP, introdução teorica ao SAP
Tipologia: Notas de estudo
1 / 48
Esta página não é visível na pré-visualização
Não perca as partes importantes!









































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.
Fig10-1 Arquitetura do SAP-
Controlador – Sequencializador
O bloco inferior esquerdo contém o controlador - sequencializador. Antes de cada processamento
registrador de instruções. Isto restabelece o contador de programa em 0000 e elimina a última instrução no registrador de instruções. Um sinal CLK de relógio é enviado a todos os registradores de memória intermediária; isto sincroniza a operação do computador, assegurando que as coisas acontecem quando elas são passíveis de
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.)
Indicador Visual em Binário
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
A unidade de controle do SAP-1 consiste no contador de programa, no registrador de instruções e no controlador-sequencializador que produz a palavra de controle, os sinais de limpar(ou restabelecer) e os sinais de relógio. A ULA do SAP-1 consiste em um acumulador, em um somador- subtrator e em um registrador B. A memória do SAP-1 tem um REM e uma RAM de 16x8. A unidade de E/S inclui as chaves de programação de entrada, a porta de saída e o indicador visual em binário.
10-2 CONJUNTO DE INSTRUÇÕES
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 R 0 , R 1 , R (^2) etc. Isto significa que R 0 é armazenada no endereço OH , R 1 no endereço 1H , R 2 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
R 8 = a execução de LDA 8H resulta em
A= 1111 0000
Similarmente, LDA AH significa "carregar o acumulador com o conteúdo do local AH da memória", LDA FH significa "carregar o acumulador com o conteúdo do local FH da memória " etc.
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
Durante a execução de ADD 9H , acontece o seguinte. Primeiro, R 9 é carregada no registrador B para a se obter
B= 00000011
e quase instantaneamente o somador-subtrator forma a soma de A e B.
SUM = 00000101
Segundo, esta soma é carregada no acumulador para se obter
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 R 9 ao conteúdo do acumulador, a execução de ADD FH acrescenta R (^) F 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 = R (^) c = 00000011
A execução de SUB CH ocorre como segue. Primeiro, R (^) c é carregada no registrador B para se obter
B = 00000011
e quase que instantaneamente o somador-subtrator forma a diferença de A e B :
DIFF = 0000 0100 Segundo, esta diferença é carregada dentro do acumulador e
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 R (^) c do conteúdo do acumulador, a execução de SUB EH subtrai R (^) E 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.
Endereço Mnemônicos 0H LDA 9H 1H ADD AH 2H ADD BH 3H SUB CH 4H OUT 5H HLT
Os dados na memória superior são
Endereço Dados 6H FFH 7H FFH 8H FFH 9H 01H AH 02H BH 03H CH 04H DH FFH EH FFH FH FFH
O que faz cada instrução?
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 = 01H + 02H = 03H
Similarmente, a terceira instrução soma o conteúdo do local BH da memória
A = 03H + 03H = 06H
A instrução SUB subtrai o conteúdo do local CH da memória para produzir
A = 06H -04H = 02H
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
A instrução HLT interrompe o processamento dos dados.
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.
TABELA 10-2. CÓDIGO OP DO SAP-
Mnemônicos Código op LDA 0000 ADD 0001 SUB 0010 OUT 1110 HALT 1111
Por exemplo, suponhamos que queremos armazenar as seguintes instruções:
Endereço Instrução 0H LDA FH 1H ADD EH 2H HLT
Primeiro, convertemos cada instrução em binário como segue:
LDA FH = 0000 1111 ADD EH = 00011110 H L T = 1111 XXXX
Na primeira instrução. 0000 é o código op de LDA e 1111 é o equivalente binário de FH. Na segunda instrução, 0001 é o código op de ADD^ e 1110 é o equivalente binário de EH. Na terceira instrução, 1111 é o código op de HLT e XXXX são saídas irrelevantes porque a HLT não é uma instrução de referência da memória. A seguir, montemos as chaves de dados e de endereços como segue:
Endereços Dados DDDD DDDDUUUU DDDU DDDUUUUD DDUD UUUUXXXX
Depois de cada palavra de dados e de endereço ser ajustada, comprimimos o botão de escrita.Uma vez que D armazena um binário 0 e U armazena um binário 1, os três primeiros locais da memória têm agora este conteúdo:
Endereços Conteúdo 0000 0000 1111 0001 00011110 00 10 1111 XXXX
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
A versão em linguagem de máquina é
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-
Compactar o programa e os dados do exemplo precedente convertendo em abreviação hexadecimal.
SOLUÇÃO
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
Esta versão do programa e dados é ainda considerada linguagem de máquina. A propósito, os dados negativos são carregados em forma de complemento de 2. Por exemplo, -03H é introduzido como FDH.
10-4 CICLO DE BUSCA (FETCH)
A unidade de controle constitui a chave para uma operação automática do computador. A unidade de controle gera as palavras de controle que buscam e executam cada instrução. Enquanto cada instrução for buscada e executada, o computador passará por diferentes estados de temporização (estados T), períodos durante os quais mudam os conteúdos dos registradores. Investiguemos mais alguma coisa a respeito destes estados T.
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 = T 6 T 5 T 4 T 3 T 2 T (^1)
No começo de um processamento do computador, a palavra anel é
T = 000001
Pulsos de relógio sucessivos produzem palavras de anel de
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 T (^1) 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 T 1 fora do contador em anel está alto. Durante o próximo estado, T^2 está alto; o estado seguinte tem um T^3 alto; depois um T^4 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.
Conforme vemos, o bit CP é ativo.
Estado de Memória
O estado T 3 é chamado estado de memória porque a instrução de RAM endereçada é transferida da memória para o registrador de instrução. A Fig. 10-3c mostra as partes ativas de SAP-
1 durante o estado de memória. Os únicos bits de controle ativos durante este estado são e
Fig. 10-3 Ciclo de busca:(a) estado T 1 ;(b) estado T 2 ;(c)estado T 3.
Ciclo de Busca
Os estados de endereço, de incremento e de memória são chamados ciclo de busca do SAP-1.
monta o REM através do barramento W. Conforme mostrado inicialmente na Fig. 10-2b uma transição positiva de relógio ocorre a meia distância através do estado de endereço; isto carrega o REM com o conteúdo do PC. CP é o único bit de controle ativo durante o estado de incremento. Isto prepara o contador de programa para contar transições positivas de relógio. A meia distância através do estado de incremento, uma transição positiva de relógio atinge o contador de programa e avança a contagem de 1.
prepara o registrador de instruções através do barramento W. A meia distância através do estado de memória, uma transição positiva de relógio carrega o registrador de instruções com a palavra de RAM endereçada.
Os três estados seguintes ( T 4 , T 5 e T 6 ) constituem o ciclo de execução do SAP-1. As transferências do registrador durante o ciclo de execução dependem da instrução particular que está sendo executada. Por exemplo, LDA 9H requer transferências de registrador diferentes das de ADD BH. O que se segue são as rotinas de controle para as diferentes instruções do 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 T 4 , 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
controle são inativos.
endereçada a RAM será carregada no acumulador na próxima transição positiva de relógio (ver Fig. 10-4b). T 6 é 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 T 6 da rotina LDA é um nop. A Fig.10-5 mostra o diagrama de temporização das rotinas LDA e de busca. Durante o estado T 1 ,
o endereço no contador de programa para o REM. Durante o estado T 2 , C (^) P está ativo e o contador
ativos; quando ocorre a transição positiva de relógio, a palavra da RAM endereçada é transferida
estão ativos; na transição positiva de relógio o campo de endereço no registrador de instruções é
dados de RAM endereçada é transferida para o acumulador na transição positiva de relógio. Conforme sabemos, o estado T 6 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
Durante o estado T 4 o campo de instruções vai para o controlador-sequencializador e o campo de
endereçada prepare (sete) o registrador B (Fig. 10-6b). Usualmente, o carregamento ocorre a meio caminho através do estado quando a transição positiva de relógio atinge a entrada CLK do registrador B.
acumulador (Fig. 10-6c). A meio caminho através deste estado, a transição positiva de relógio carrega a soma no acumulador. A propósito, o tempo de preparação e o tempo de retardo de propagação evitam a corrida do acumulador durante este estado final de execução. Quando ocorre a transição positiva de relógio na Fig.10.6c, o conteúdo do acumulador se modifica, forçando o conteúdo do Somador-subtrator a mudar. Os novos conteúdos retomam à entrada do acumulador, mas os novos conteúdos não chegam lá até dois retardos de propagação após a transição positiva de relógio(um para o acumulador e um para o somador-subtrator), A esse tempo é demasiado tarde para preparar o acumulador. Isto evita a corrida do acumulador ( carregamento mais de uma vez na mesma transição de relógio). A Fig.10-7 mostra o diagrama de temporização para as rotinas de busca e ADD. A rotina de busca é a mesma que a anterior: o estado T 1 carrega o endereço PC no REM; o estado T (^2) incrementa o contador de programa; o estado T 3 envia a instrução endereçada para o registrador de instrução.
Fig. 10-7 Diagrama de temporização de busca e ADD.
portanto, a palavra de RAM endereçada é carregada no registrador B a meio caminho através do
soma fora do somador-subtrator é armazenada no acumulador.
Rotina SUB
A rotina SUB é similar à rotina ADD. A Fig.10-6a e b mostra as partes ativas de SAP-1 durante os estados T 4 e T 5. Durante o estado T 6 , 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 T 1 a T 5 e SU alto durante o estado T 6.
Rotina OUT
Suponhamos que o registrador de instruções contenha a instrução OUT no fim de um cicIo de busca. Então
IR = 1110 XXXX
O campo de instrução vai ao controlador-sequencializador para decodificação. Então o controlador-sequencializador emite a palavra de controle necessária para carregar o conteúdo do acumulador no registrador de saída. A Fig. 10-8 mostra as secções ativas de SAP.1 durante a execução de uma instrução OUT .Uma
acumulador no registrador de saída durante o estado T 4. Os estados T 5 e T 6 são nops. A Fig.10.9 é o diagrama de temporização das rotinas OUT e de busca. Novamente, o cicIo de busca é o mesmo: estado de endereço, estado de incremento e estado de memória. Durante o
quando ocorre a transição positiva de relógio.
Fig. 10-8 Estado T 4 da instrução.
Fig. 10-9 Diagrama de temporização de busca e de ADD.