Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Professor: Alan Sovano, M.Sc. 
Disciplina: Microprocessadores (2024.4) 
 
SAP- 1 
TÓPICOS 
• Introdução 
• Por que estudar o SAP? 
• Microarquitetura do SAP-1 
• Conjunto de instruções do SAP-1 
• Ciclo de instrução do SAP-1 
• Matriz de controle x Microprogramação 
• Ciclo variável de instrução 
Prof. Alan Sovano 
INTRODUÇÃO 
• Iremos estudar, nos próximos tópicos da disciplina, o computador SAP, cuja 
sigla significa Simple-as-Possible (Tão Simples Quanto Possível); 
 
• O computador SAP é descrito no livro “Microcomputadores e 
Microprocessadores” do autor Albert Paul Malvino, sendo subdividido em três 
estágios: o SAP-1, o SAP-2 e o SAP-3, havendo um aumento de complexidade 
de um nível para o outro; 
 
• O SAP-3 tem muitas semelhanças com o processador 8085 da Intel, lançado na 
década de 1970 e utilizado em muitos projetos até os anos 2000. 
 
Prof. Alan Sovano 
POR QUE ESTUDAR O SAP? 
• Por que iremos estudar o SAP-1, 2 e 3, se os três sistemas são baseados no processador 8085, 
que é antigo e tem muito menos funcionalidades em comparação com sistemas 
computacionais mais atuais? 
 
• O computador SAP é um recurso didático, utilizado para mostrar a complexidade de um 
sistema computacional, mesmo que simples. Apesar de ser um modelo para aprendizagem, ele 
é totalmente funcional, podendo ser, de fato, construído e utilizado para tarefas básicas. 
 
• O estudo do SAP fará com que nós possamos visualizar de forma mais muitos dos conceitos 
que estudamos sobre a organização estruturada de computadores, memórias, a 
microarquitetura do processador e de seu nível ISA! 
 
• OBS: Aqui, vale uma ressalva – fique atento aos conceitos utilizados na referência que fala 
sobre o SAP-1, 2 e 3. Estaremos utilizando um livro antigo e de uma área em constante 
evolução, logo, alguns termos ou informações podem estar desatualizados. Mesmo assim, o 
SAP será de grande valor para os nossos estudos! 
 
Prof. Alan Sovano 
 
MICROARQUITETURA 
DO SAP-1 
• O diagrama de blocos ao lado 
representa a microarquitetura do 
SAP-1. Ele apresenta vários dos 
elementos que estudamos na 
microarquitetura de um processador 
genérico, os quais são descritos a 
seguir. 
 
• OBS: Alguns elementos estão 
agrupados em conjunto no 
diagrama do SAP-1 (como o REM 
e as chaves de entrada, formando o 
bloco “Entrada e REM”). 
Prof. Alan Sovano 
 
MICROARQUITETURA 
DO SAP-1 
No diagrama do SAP-1, podemos 
visualizar: 
 
• Um contador de programa de 4 
bits (conta de 00002 até 11112 ou 
de 0H até FH). 
 
 
Prof. Alan Sovano 
 
MICROARQUITETURA 
DO SAP-1 
No diagrama do SAP-1, podemos visualizar: 
 
• O bloco Entrada e REM, o qual é 
composto pelo Registrador de 
Endereços de Memória (REM) de 4 
bits (gera os endereços de 00002 até 
11112 ou de 0H até FH); e por oito 
chaves de dados, utilizadas para 
programar o SAP-1; 
 
• Pense como se houvesse 8 botões (ou 
“teclas”) utilizados para definir, 
endereço por endereço, quais os dados 
que a memória RAM do SAP-1 irá 
assumir (eles são utilizados na etapa de 
programação). 
 
 
 
Prof. Alan Sovano 
 
MICROARQUITETURA 
DO SAP-1 
No diagrama do SAP-1, podemos visualizar: 
 
• Uma memória RAM 16 x 8, a qual irá 
funcionar como memória de dados e de 
programa; 
 
• No SAP-1, a memória RAM não será 
alterada pela execução do programa 
em nenhum momento. Seu conteúdo 
será definido sempre antes da execução 
de um programa (lembre-se: esse é um 
computador didático e simplificado, 
logo, é um sistema muito mais 
limitado!). 
 
Prof. Alan Sovano 
 
MICROARQUITETURA 
DO SAP-1 
No diagrama do SAP-1, podemos visualizar: 
 
• Um registrador de instruções (RI), o 
qual possui 8 bits. o 4 bits mais 
significativos (nibble mais significativo) 
vai para o bloco 
controlador/sequencializador, 
enquanto os quatro bits menos 
significativos (nibble menos 
significativo) vai para o barramento de 
dados; 
 
• Veremos que o nibble mais significativo 
representa o opcode da instrução, 
enquanto o nibble menos significativo é 
o operando da instrução. 
 
Prof. Alan Sovano 
 
MICROARQUITETURA 
DO SAP-1 
No diagrama do SAP-1, podemos visualizar: 
 
• O bloco controlador/sequencializador é responsável 
por dar sincronia ao sistema e gerar os sinais de 
controle; 
 
• Esse bloco incorpora o que chamamos, ao estudar um 
microprocessador genérico, de unidade de controle, 
decodificador de instruções e de circuito oscilador 
(ou gerador de clock); 
 
• Antes de cada programa começar, esse bloco envia o 
sinal 𝐶𝐿𝑅 para o Registrador de Instruções (RI) e o 
sinal 𝐶𝐿𝑅 para o Contador de Instruções (CI), 
zerando os valores de saída de ambos os circuitos 
(inicialização do sistema); 
 
• O Controlador/Sequencializador gera uma palavra 
binária de 12 bits, a qual controla cada um dos outros 
blocos do sistema. Falaremos mais sobre isso ao 
descrever o ciclo de instrução do SAP-1. 
 
Prof. Alan Sovano 
 
MICROARQUITETURA 
DO SAP-1 
No diagrama do SAP-1, podemos visualizar: 
 
• Um somador/subtrator, o qual realiza operações 
entre os valores dos registradores A e B de soma 
e subtração (sempre utilizando a notação baseada 
em complemento de 2); 
 
• Um registrador acumulador ou registrador A, o 
qual lê ou escreve os dados no barramento W e 
fornece um dos dados para o somador/subtrator; 
 
• O Registrador B, o qual funciona como uma 
segunda entrada de dados para a realização das 
operações pelo somador/subtrator, sempre 
indicando qual valor vai ser somado ou subtraído 
do registrador A (do acumulador). Ele só recebe 
dados do barramento W (não envia). 
Prof. Alan Sovano 
 
MICROARQUITETURA 
DO SAP-1 
No diagrama do SAP-1, podemos visualizar: 
 
• Um registrador de saída, cujo 
propósito é salvar os dados do 
processamento e mostrá-los no 
indicador visual binário, o qual é 
composto por 8 LED’s, com cada LED 
indicando 1 bit do registrador de saída; 
 
• O indicador visual binário é uma 
forma do resultado final do 
processamento se manifestar no mundo 
externo ao computador. 
 
Prof. Alan Sovano 
 CONJUNTO DE INSTRUÇÕES DO SAP-1 
• Agora que vimos os componentes básicos do SAP-1, vamos estudar como funciona o seu 
conjunto de instruções. O SAP-1 possui, ao todo, 5 instruções, conforme descrito na tabela a 
seguir: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. Alan Sovano 
Instrução Operandos Descrição da operação opcode Períodos de sinal de clock 
LDA 
1 endereço de 
memória 
Carrega os dados da RAM no 
acumulador 
0000 6 ciclos 
ADD 
1 endereço de 
memória 
Soma os dados da RAM com o 
acumulador 
0001 6 ciclos 
SUB 
1 endereço de 
memória 
Subtrai os dados da RAM do 
acumulador 
0010 6 ciclos 
OUT Sem operandos 
Carrega os dados do acumulador 
no registrador de Saída 
1110 6 ciclos 
HLT Sem operandos Para o processamento 1111 3 ciclos 
 CONJUNTO DE INSTRUÇÕES DO SAP-1 
Nesse momento, com relação às instruções, você deve saber o seguinte: 
 
• A instrução LDA funciona transferindo o conteúdo de determinado endereço da 
memória RAM para o acumulador (registrador A); 
 
• As instruções SUB e ADD (operações aritméticas) funcionam transferindo o 
conteúdo de determinado endereço da memória RAM para o registrador B. Após isso, 
a operação (seja qual for) é realizada entre os registradores A e B; 
 
• A instrução OUT transfere o conteúdo de A para o registrador de saída, de forma que 
tal conteúdo seja visualizado pelo indicador visual binário; 
 
• A instrução HLT para o processamento do computador, fazendo com que o sinal de 
relógio fique estático, impedindo qualquer tipo de transição do clock – o computador 
fica “parado no tempo”, não realizando mais nenhuma tarefa. 
 
Prof. Alan Sovano 
 CONJUNTO DE INSTRUÇÕES DO SAP-1 
Exercício 1: 
 
Seja o programa em assembly ao lado, 
desenvolvido para o SAP-1, onde a parte de 
programa e de dados, ambos contidos na memória 
RAM, são mostrados separadamente. Responda:(a) Qual a saída do indicador visual binário ao 
término do programa? 
 
(a) O que aconteceria se no endereço 5H fosse 
colocada a instrução OUT novamente (com 
todos os outros endereços de memória 
mantendo o mesmo conteúdo)? O programa 
iria parar? 
 
(a) Escreva o conteúdo de cada endereço de 
memória em linguagem de máquina. 
 
Prof. Alan Sovano 
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 
 CONJUNTO DE INSTRUÇÕES DO SAP-1 
Solução: 
 
(a) Vamos analisar o que acontece em cada uma das 
seis instruções do programa: 
 
1 – A = 01H 
2 – A = 01H + 02H = 03H 
3 – A = 03H + 03H = 06H 
4 – A = 06H - 04H = 02H 
5 – Registrador de saída = 02H 
6 – Fim do processamento. 
 
O registrador de saída tem o valor 02H. Isso é o mesmo 
que 0000 00102 em binário. Considerando um indicador 
visual binário composto por 8 LED’s, teríamos: 
 
 
 
Prof. Alan Sovano 
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 
 CONJUNTO DE INSTRUÇÕES DO SAP-1 
Solução: 
 
(b) O commando OUT em 5H não alteraria o resultado 
mostrado pelo indicador visual binário, mas, sem o 
comando HLT em 5H, o clock do sistema continuaria 
funcionando, fazendo com que o contador de programa 
(que deveria ficar restrito à memória de programa) 
invadisse a memória de dados, interpretando dados 
como instruções. 
 
Nesse caso, o conteúdo de 6H pode ser representado por 
1111 11112, onde os quatro primeiros bits são o opcode 
da instrução. O opcode 1111 representa a instrução 
HLT, portanto, o programa iria parar após processar o 
endereço 6H como se fosse uma instrução. 
 
OBS: Nesse caso, o computador acabou processando 
um “lixo” (trash), ou seja, uma informação sem 
significado, a qual apareceu devido ao processamento 
descontrolado do sistema. Sempre é necessário tomar 
cuidado para que o processador não gere/processe lixo! 
Prof. Alan Sovano 
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 
 CONJUNTO DE INSTRUÇÕES DO SAP-1 
Solução: 
 
(c) Para traduzir todas as informações para 
linguagem de máquina, precisamos saber os 
opcodes de cada instrução (os quais foram 
fornecidos nos slides anteriores slide anterior). 
 
Ao lado, todas as informações já foram 
traduzidas para a linguagem de máquina. As 
instruções OUT e HLT foram traduzidas, 
respectivamente, como “1110 XXXX” e “1111 
XXXX”, pois sabemos somente o opcode dessas 
instruções. 
 
O conteúdo que vem após o opcode, nesse caso, é 
irrelevante (haverá algum conteúdo, mas não 
interessa qual é e, com as informações 
fornecidas, não temos como saber qual seria). 
Prof. Alan Sovano 
Endereço 
Conteúdo 
(programa) 
0000 0000 1001 
0001 0001 1010 
0010 0001 1011 
0011 0010 1100 
0100 1110 XXXX 
0101 1111 XXXX 
Endereço Conteúdo (dados) 
0110 1111 1111 
0111 1111 1111 
1000 1111 1111 
1001 0000 0001 
1010 0000 0010 
1011 0000 0011 
1100 0000 0100 
1101 1111 1111 
1110 1111 1111 
1111 1111 1111 
 CONJUNTO DE INSTRUÇÕES DO SAP-1 
Solução: 
 
(c) Quando escrevemos o programa 
todo em hexadecimal (ao invés de 
binário), ainda podemos considerar que 
ele está em linguagem de máquina (só 
que, agora, em um formato de 
visualização mais amigável para o ser 
humano). 
 
Na tabela, a letra “X” indica uma 
sequência de 4 bits com condições 
irrelevantes (os mesmos bits 
irrelevantes do slide anterior). 
Prof. Alan Sovano 
Endereço Mnemônicos 
0H 09H 
1H 1AH 
2H 1BH 
3H 2CH 
4H EXH 
5H FXH 
Endereço Dados 
6H FFH 
7H FFH 
8H FFH 
9H 01H 
AH 02H 
BH 03H 
CH 04H 
DH FFH 
EH FFH 
FH FFH 
 CONJUNTO DE INSTRUÇÕES DO SAP-1 
Exercício 2: 
 
Construa um programa para o SAP-1 
que execute a seguinte operação: 
 
26 - 10 - 10 + 6 + 6 +10 - 6 
 
E mostre a resposta no indicador visual 
binário. 
 
Prof. Alan Sovano 
Endereço 
Mnemônicos/ 
Dados 
0H 
1H 
2H 
3H 
4H 
5H 
6H 
7H 
Endereço 
Mnemônicos 
/Dados 
8H 
9H 
AH 
BH 
CH 
DH 
EH 
FH 
 CONJUNTO DE INSTRUÇÕES DO SAP-1 
Solução: 
 
Na solução, foram utilizados os últimos endereços de 
memória para os dados e os primeiros para o programa. O 
programa poderia seguir uma sequência diferente (e os 
dados poderiam ser armazenados em outros endereços) 
 
Lembre-se: o contador de programa do SAP-1 começa no 
endereço 0H). Logo, os primeiros endereços devem conter o 
programa a ser executado (independente da ordem das 
instruções). 
 
Para o indicador visual binário, temos que: 
 
26 - 10 - 10 + 6 + 6 +10 - 6 = 22 
2210 = 0001 01102 (oito bits) 
 
 
 
 
Prof. Alan Sovano 
Endereço 
Mnemônicos/ 
Dados 
0H LDA DH 
1H SUB EH 
2H SUB EH 
3H ADD FH 
4H ADD FH 
5H ADD EH 
6H SUB FH 
7H OUT 
Endereço 
Mnemônicos 
/Dados 
8H HLT 
9H XXH 
AH XXH 
BH XXH 
CH XXH 
DH 1AH 
EH 0AH 
FH 06H 
CICLO DE INSTRUÇÃO DO SAP-1 
• Iremos, agora, estudar com detalhes como ocorre o ciclo de busca-decodificação-execução (ou ciclo de instrução) das 
instruções do SAP-1. Esse ciclo está intimamente ligado à unidade de controle, a qual gera os sinais de saída 
apropriados para que cada instrução seja executada adequadamente; 
 
• Devemos relembrar, aqui, a diferença entre microoperação, microinstrução e instrução. Podemos discutir tais 
conceitos, agora, sob a perspectiva do SAP-1: 
 
• A operação mais básica possível que um processador executado dentro do seu ciclo de instrução (habilitar um 
registrador para receber informação do barramento de dados, definir qual operação uma ULA irá realizar, passar o 
endereço de memória para o REM, etc.) é a microoperação. Uma ou mais microoperações ocorrem em uma 
microinstrução; 
 
• A microinstrução é um conjunto de uma ou mais microoperações, as quais serão definidas por uma palavra de 
controle (como a palavra de controle gerada pelo controlador/sequencializador do SAP-1); 
 
• Várias palavras de controle são geradas ao longo da busca, decodificação e execução de uma instrução. Cada uma 
dessas palavras de controle é uma microinstrução, as quais se unem para formar as instruções. Lembre-se: um 
programador de um sistema computacional consegue definir, no máximo, quais instruções um processador irá executar 
(ele é incapaz de influenciar nas microoperações ou microinstruções que são executadas em cada instrução). As 
instruções são representadas, para nós, pelos mnemônicos. 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO DO SAP-1 
• Todas as instruções do SAP-1 (com exceção da instrução HLT) são compostas por seis microinstruções, com cada 
microinstrução levando um ciclo de clock. Logo, cada instrução leva seis ciclos de clock para ser executada; 
 
• Cada microinstrução é disparada por um estado de um contador de anel, i.e., um circuito cujos sinais de saída são 
alterados da seguinte forma: 
 
T = T6T5T4T3T2T1 
 
T = 000001 
T = 000010 
T = 000100 
T = 001000 
T = 010000 
T = 100000 
 
• Cada bit setado (igual a 1) dispara uma das seis microinstruções referente à determinada instrução do SAP-1. 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO DO SAP-1 
• Abaixo, podemos visualizar o comportamento do contador em anel do SAP-1: 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
• Os três primeiros estados (referentes às três 
primeiras microinstruções) são iguais para todas 
as instruções, configurando a etapa de busca do 
ciclo de instrução; 
 
• O estado T1 é chamado de estado de endereço, 
pois o endereço do contador de instruções é 
transferido para o REM. Nesse caso, é gerado o 
seguinte sinal de controle: 
 
 
 
 
• Perceba que somente 𝐸𝑝 (que habilita o 
contador de instruções no barramento)e 𝐿𝑀 
(que habilita o REM no barramento) estão 
ativados, evidenciando a transferência de da 
informação de um lugar para o outro. 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
• O estado T2 é chamado de estado de 
incremento, pois é quando o contador de 
instruções/programa é incrementado. 
Nesse caso, é gerado o seguinte sinal de 
controle: 
 
 
 
 
• Perceba que somente o bit de controle 
intitulado 𝐶𝑝 está ativado, o qual faz com 
que o valor do contador de programa seja 
atualizado (seu valor é somado com mais 
uma unidade). Esse elemento não está 
mais habilitado junto ao barramento, com 
seus dados sendo transferidos para o 
registrador de instruções somente no 
próximo ciclo de instrução. 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
• O estado T3, última microinstrução da 
etapa de busca, é chamado de estado de 
memória, com a memória RAM 
colocando no barramento os oito bits que 
serão lidos pelo registrador de instrução 
(quatro bits referentes ao opcode e quatro 
referentes ao operando, se houver). Nesse 
caso, é gerado o seguinte sinal de 
controle: 
 
 
 
 
• Os bits 𝐶𝐸 e 𝐿𝐼 são ativados, habilitando 
a memória RAM para transferir as 
informações para o barramento de dados 
e habilitando o registrador de instruções 
para receber as instruções. 
Prof. Alan Sovano 
 CICLO DE INSTRUÇÃO DO SAP-1 
• As próximas etapas do ciclo de instrução são referentes à etapa de execução 
do ciclo de instrução. 
 
• A etapa de decodificação ocorre sempre no estágio T3, pois o opcode vai 
direto do RI para o decodificador (assim que o RI recebe algum conteúdo). O 
RI está ligado diretamente ao controlador/sequencializador, mas está ligado ao 
barramento de dados através de um conjunto de portas de três estados (as 
quais são ativadas/desativadas pelo bit 𝑬𝑰). 
 
• Veremos como cada instrução se comporta no SAP-1 durante a execução. 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução LDA: 
 
• Vamos considerar que desejamos 
executar a instrução LDA 9H. Em 
linguagem de máquina, podemos escrever 
isso como 0000 1001. 
 
• No estado T4, o bit 𝐸𝐼
 é ativado, assim 
como o 𝐿𝑀. As saídas de dados do RI são 
habilitadas, enviando o endereço do 
operando para o barramento de dados. 
Esse opcode tem o valor 0000. 
 
• O REM também é habilitado, recebendo 
o endereço do operando da instrução 
LDA (enviado pelo RI). Esse endereço 
tem o valor, em nosso exemplo, de 1001. 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução LDA: 
 
• No estado T5, 𝐶𝐸 é ativado, 
colocando o conteúdo do endereço 
indicado pelo REM no barramento 
de dados. 
 
• O bit 𝐿𝐴 também é ativado, fazendo 
com que o registrador acumulador A 
receba a informação disponível no 
barramento de dados (nesse 
exemplo, o conteúdo do endereço 
1001 da memória RAM). 
 
 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução LDA: 
 
• Por fim, no estado T6, não ocorre 
nenhuma microoperação – o 
controlador/sequencializador 
gera uma palavra binária onde 
nenhum dos outros elementos do 
sistema é ativado. Esse é um 
estado sem operação, abreviado 
como nop. 
 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução LDA: 
 
• Ao lado, temos o diagrama de temporização 
da instrução LDA, ilustrando quais bits ficam 
ativos em cada um dos seis estados da instrução. 
 
• As linhas tracejadas indicam as bordas de 
subida do clock, indicando quando os 
registradores são carregados com o conteúdo 
presente no barramento de dados. Na borda de 
subida do sinal 𝐶𝐿𝐾 (ou na borda de descida de 
𝐶𝐿𝐾 ) ocorre também o incremento do 
contador de programa. 
 
• Lembre-se: estado corresponde a uma 
microinstrução, com cada microinstrução 
possuindo uma palavra de controle diferente! 
 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução ADD: 
 
• Vamos considerar que desejamos 
executar a instrução ADD BH. Em 
linguagem de máquina, podemos escrever 
isso como 0001 1011. 
 
• No estado T4, o bit 𝐸𝐼
 é habilitado, assim 
como o 𝐿𝑀. As saídas de dados do RI são 
habilitadas, enviando o endereço do 
operando para o barramento de dados. 
Esse opcode tem o valor 0001. 
 
• O REM também é habilitado, recebendo 
o endereço do operando da instrução 
ADD (enviado pelo RI). Esse endereço 
tem o valor, em nosso exemplo, de 1011. 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução ADD: 
 
• No estado T5, 𝐶𝐸 é ativado, 
colocando o conteúdo do 
endereço indicado pelo REM no 
barramento de dados. 
 
• O bit 𝐿𝐵 também é ativado, 
fazendo com que o registrador B 
receba a informação disponível no 
barramento de dados (nesse 
exemplo, o conteúdo do endereço 
1011 da memória RAM). 
 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução ADD: 
 
• Por fim, no estado T6, ocorre a 
ativação dos bits Eu (habilitação da 
saída do somador/subtrator no 
barramento de dados) e 𝐿𝐴 
(habilitação da entrada do 
registrador acumulador A no 
barramento de dados). 
 
• Lembre-se: o conteúdo do 
acumulador A é alterado somente 
na borda de subida do sinal de 
clock! 
 Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução ADD: 
 
• Ao lado, temos o diagrama de 
temporização da instrução 
ADD, ilustrando quais bits ficam 
ativos em cada um dos seis 
estados da instrução. 
 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução SUB: 
 
• A instrução SUB (a qual possui o 
opcode 0010) tem o mesmo 
comportamento da instrução ADD no 
estado T4 (Ativação de 𝐿𝑀 e 𝐸𝐼
 ) e T5 
(ativação de 𝐶𝐸 e 𝐿𝐵). 
 
• No estado T6 (ilustrado no diagrama ao 
lado), além de ativar os bits 𝐿𝐴 e 𝐸𝑈, a 
instrução SUB também ativa o bit SU 
(o qual coloca o somador/subtrator no 
modo de subtração). Essa é a única 
diferença entre a execução das 
instruções ADD e SUB. 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução SUB: 
 
• Ao lado, temos o diagrama de 
temporização da instrução 
SUB, ilustrando quais bits ficam 
ativos em cada um dos seis 
estados da instrução. 
 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução OUT: 
 
• Na etapa de execução da instrução OUT, o 
registrador de instruções possui os bits 1110 XXXX 
(perceba que os quatro bits menos significantes não 
têm importância para a instrução). 
 
• No estado T4, o bit 𝐸𝐴 é ativado, habilitando o 
conteúdo do acumulador no barramento de dados. O 
bit 𝐿𝑂 também é ativado, fazendo com que o 
registrador de saída receba o conteúdo disponível 
no barramento de dados (proveniente do registrador 
acumulador A). 
 
• Quando um valor é carregado no registrador de 
saída, ele aparece automaticamente no indicador 
visual binário. 
 
• Os estados T5 e T6 são estados sem operação (nop) 
para a instrução OUT. 
Prof. Alan Sovano 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Instrução OUT: 
 
• Ao lado, temos o diagrama de 
temporização da instrução 
OUT, ilustrando quais bits ficam 
ativos em cada um dos seis 
estados da instrução (perceba 
que não há nenhum bit ativo nos 
estados T5 e T6). 
 
Prof. Alan Sovano 
Instrução HLT: 
 
• A instrução HLT possui um funcionamento diferente das 
outras instruções. Quando o controlador/sequencializador 
recebe a instrução HLT (opcode 1111) no estado T3 e a 
decodifica, o clock do sistema fica travado, parando de gerar 
qualquer mudança de estado em qualquer outro elemento do 
SAP-1. 
 
• Portanto, a instrução HLT depende somente da fase de busca 
para ser executada. 
 
• Mais exatamente, essa “trava” no clock do sistema ocorre, na 
prática, quando o registrador de instruções recebe o opcode 
1111. Isso irá ocorrer na metade do ciclo T3. Por 
conveniência, iremos considerar que a instrução HLT ocorre 
em três ciclos inteiros de clock. 
 
• Ao lado, temos o diagrama de temporização da instrução HLT, 
representando o sinal de clock travado após a instrução ter 
sido decodificada. 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Prof. Alan Sovano 
 CICLODE INSTRUÇÃO DO SAP-1 
Exercício 3: 
 
Seja o programa ao lado desenvolvido 
para o SAP-1 (explorado no exercício 
1). Quanto tempo o programa leva para 
ser executado? Considere que a 
frequência de clock do SAP-1 é de 1 
kHz. 
 
OBS: Lembre-se – o SAP-1 não possui 
nenhum tipo de pipeline! 
 
Prof. Alan Sovano 
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 
 CICLO DE INSTRUÇÃO DO SAP-1 
Exercício 3: 
 
Resolução: 
 
Cada instrução leva 6 períodos de clock, 
com exceção da HLT (a qual 
consideramos que leva 3 períodos). Logo, 
a instrução leva 33 períodos de clock para 
ser executada. 
 
Como a frequência é de 1 kHz, o período 
(que é o inverso da frequência) é de 1 ms. 
 
Logo, o programa levará 33 ms para ser 
executado pelo SAP-1. 
 
Prof. Alan Sovano 
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 
• Podemos resumir os sinais de controle (gerados 
em cada estado e para cada instrução) na tabela 
ao lado, onde a palavra “macro” indica 
“macroinstrução” (em contraste com 
“microinstrução”). O termo “macroinstrução” é 
referente, nesse contexto, à instrução 
propriamente dita. 
 
• Perceba que na tabela superior são descritos 
apenas os estados T4, T5 e T6. Lembre-se: todos 
os outros estados (fase de busca) são iguais para 
todas as instruções! 
 
• Além disso, a tabela superior não descreve a 
instrução HLT – isso ocorre porque a instrução 
HLT, como vimos, já é executada no próprio 
estado T3. 
 
• A Tabela inferior descreve, por sua vez, os 
estados T1, T2 e T3. 
CICLO DE INSTRUÇÃO 
DO SAP-1 
Prof. Alan Sovano 
 MATRIZ DE CONTROLE X MICROPROGRAMAÇÃO 
• Estudaremos mais um último tópico relacionado ao SAP-1 – veremos, com um 
pouco mais de detalhes, como o controlador/sequencializador dele funciona, 
de forma a discutir um pouco mais sobre unidades de controle de 
microporcessadores. 
 
• O controlador/sequencializador do SAP-1 possui, internamente, vários 
elementos. Iremos focar em três deles: o contador em anel (que faz a 
temporização das instruções, como vimos), o decodificador de instruções (o 
qual decodifica o opcode da instrução) e a matriz de controle (que seria a 
unidade de controle, a qual estudamos nas aulas sobre “o microprocessador 
genérico”). 
 
Prof. Alan Sovano 
 MATRIZ DE CONTROLE X MICROPROGRAMAÇÃO 
 
 
Prof. Alan Sovano 
 MATRIZ DE CONTROLE X MICROPROGRAMAÇÃO 
 
 
Prof. Alan Sovano 
● O decodificador de instruções 
(contornado em azul) recebe o 
opcode do RI, decodifica e repassa 
para a matriz de controle (contornada 
em vermelho). 
 
● A matriz de controle gera um 
conjunto de sinais de controle de 
acordo com a saída do decodificador 
de instruções e do contador em anel 
(destacado em verde). 
 
● O contador em anel faz com que haja 
uma temporização na execução de 
cada instrução (cada estado do 
contador é uma microinstrução). 
 MATRIZ DE CONTROLE X MICROPROGRAMAÇÃO 
• Pode-se perceber que, nesse caso, a unidade de controle é baseada em circuitos combinacionais. 
Tal característica é, atualmente, atribuída a projetos com filosofia RISC, visto que a execução de 
instruções através de circuitos combinacionais é muito mais veloz. Lembre-se: na prática, em 
projetos RISC, busca-se construir o circuito de uma forma que a maioria das instruções sejam 
executadas em poucos ciclos de clock, como um ou dois (ao contrário, por exemplo, do SAP-1, o 
qual leva em geral 6 ciclos de clock para cada instrução); 
 
• No livro-texto que estamos utilizando, entretanto, é apresentada a ideia de microprogramação, ou 
seja, de utilizar memórias ROM para fazer o papel desse circuito combinacional; 
 
• O livro cita que a microprogramação é interessante para simplificar a construção do 
controlador/sequencializador, sendo uma alternativa para os projetistas conforme o conjunto de 
instruções aumento. Essa é uma visão que está mais associada à filosofia de projeto CISC; 
 
• Apesar do SAP-1 ter sua unidade de controle construída com circuitos combinacionais, o livro 
também apresenta uma forma alternativa de construir o SAP-1, pensando em um controle 
microprogramado. 
Prof. Alan Sovano 
 MATRIZ DE CONTROLE X MICROPROGRAMAÇÃO 
• O circuito ao lado substitui a matriz de controle e 
a maior parte do decodificador de instruções 
(apenas.a linha referente ao HLT é necessária); 
 
• Quando o contador de anel estiver no estado T1, o 
contador pré-ajustável ao lado vai ser zerado, 
fazendo a ROM de controle ir para o endereço 
0000. 
 
• Quando o contador de anel estiver no estado T3, o 
contador pré-ajustável irá habilitar a entrada 
LOAD (quando T3 estiver em nível lógico alto). 
O conteúdo da ROM de endereço passará para a 
saída do contador pré-ajustável. 
 
• A cada ciclo do sinal negativo de clock, o 
contador pré-ajustável é incrementado. 
Prof. Alan Sovano 
 MATRIZ DE CONTROLE X MICROPROGRAMAÇÃO 
• Quando a ROM de controle vai para o endereço 00002 
ou 0H, ela gera a palavra de controle salva em 0H. 
 
• Quando o contador de anel vai para o estado T2 (e o 
contador pré-ajustável vai para 00012 ou 1H), a ROM de 
controle gera a palavra salva em 1H. 
 
• No estado T3, a ROM de endereço gera a palavra salva 
em 2H e habilita a entrada LOAD. 
 
• No estado T4, é gerado o sinal de controle cujo endereço 
foi indicado pela ROM de endereços. Se o valor for 3H, 
a rotina LDA é executada; se o valor for 6H, a rotina 
ADD é executada; se o valor for 9H, a rotina SUB é 
executada; por fim, se o valor for CH, a rotina OUT é 
executada. 
 
• Caso o registrador de instruções receba o opcode 1111, a 
instrução HLT será executada diretamente (por um 
circuito combinacional). 
Prof. Alan Sovano 
 MATRIZ DE CONTROLE X MICROPROGRAMAÇÃO 
• A figura ao lado ilustra 
como a matriz de controle 
poderia ser substituída 
pelo circuito para controle 
microprogramado. 
 
• Perceba que o circuito para 
a instrução HLT ainda está 
presente no diagrama. 
 
 
 
 
 
 
Prof. Alan Sovano 
CICLO VARIÁVEL DE INSTRUÇÃO 
• Caso o SAP-1 seja microprogramado, ainda podemos fazer com que as 
instruções tenham tamanhos variáveis – quando uma instrução gerar uma 
palavra de controle que não gera nenhuma operação (nada ou nop), podemos 
resetar o contador de anel, fazendo com que ele inicie a próxima instrução 
antes dos 6 ciclos de clock; 
 
• Isso faz com que haja uma economia no tempo de processamento de um 
programa, deixando o sistema mais eficiente. 
 
 
 
 
 
 
Prof. Alan Sovano 
CICLO VARIÁVEL DE INSTRUÇÃO 
• O circuito ao lado ilustra como podemos 
construir uma unidade de controle 
microprogramada e com ciclo de instrução 
variável; 
 
• Cada vez que uma palavra de controle que que 
não faz nada é gerada, um sinal 𝑁𝑂𝑃 = 0 é 
enviado para a entrada de reset do contador em 
anel, fazendo com que ele comece a etapa de 
busca da próxima instrução; 
 
• Isso faz com que, por exemplo, a instrução OUT 
precise de quatro estados para ser executada (os 
dois últimos estados geram uma palavra de 
controle que não faz nada). 
Prof. Alan Sovano 
CICLO VARIÁVEL DE INSTRUÇÃO 
Exercício 4: 
 
Seja o programa ao lado desenvolvido 
para o SAP-1 (explorado no exercício 1 
e 3). Quanto tempo o programa leva para 
ser executado? Considere que a 
frequência de clock do SAP-1 é de 1 
kHz. Além disso, considere um ciclo de 
máquina variável. 
 
OBS: Lembre-se – o SAP-1 não possui 
nenhum tipo de pipeline! 
 
Prof. Alan Sovano 
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 
CICLO VARIÁVEL DE INSTRUÇÃO 
Exercício 4: 
 
Resolução:Olhando para a tabela ao lado, vemos quais instruções irão ter um ciclo variável: a 
instrução LDA terá um ciclo de 5 estados (no estado 6 temos um nop) e a instrução OUT 
terá 4 estados (nos estados 5 e 6 temos nops). 
 
 Executamos a instrução LDA 1 vez, ADD 2 vezes, SUB 1 vez, OUT 1 vez e HLT 1 vez. 
Logo: 
 
Nº de ciclos de clock do programa = 1*5 + 2*6 + 1*6 + 1*4 + 1*3 
 
Nº de ciclos de clock do programa = 30 ciclos 
 
 
Como a frequência é de 1 kHz, o período (que é o inverso da frequência) é de 1 ms. 
 
Logo, o programa levará 30 ms para ser executado pelo SAP-1 (3 ms a menos em 
comparação com o ciclo de instrução com duração fixa de 6 períodos de clock). 
 
 
Prof. Alan Sovano 
OBRIGADO PELA ATENÇÃO! 
Dúvidas ou sugestões? 
 
sovano@ufpa.br 
Prof. Alan Sovano

Mais conteúdos dessa disciplina