Вы находитесь на странице: 1из 51
MicroprocessadoresMicroprocessadores ee MicrocontroladoresMicrocontroladores Matheus W. Romão Microprocessadores -
MicroprocessadoresMicroprocessadores ee MicrocontroladoresMicrocontroladores
Matheus W. Romão
Microprocessadores - Matheus Romão
SIMPLESIMPLE ASAS POSSIBLEPOSSIBLE 11 –– SAP1SAP1 • Computador: “O mais simples possível”. •
SIMPLESIMPLE ASAS POSSIBLEPOSSIBLE 11 –– SAP1SAP1
• Computador:
“O
mais
simples
possível”.
• Introdução aos principais aspectos
envolvidos no funcionamento de
um computador.
• Apesar de simples, apresenta uma
série de conceitos que possibilitam
o entendimento de arquiteturas
mais complexas.
Microprocessadores - Matheus Romão
SIMPLESIMPLE ASAS POSSIBLEPOSSIBLE 11 –– SAP1SAP1 ULA: Acumulador A; Somador/Subtrator; Registrador B. Unidade de
SIMPLESIMPLE ASAS POSSIBLEPOSSIBLE 11 –– SAP1SAP1
ULA: Acumulador A; Somador/Subtrator;
Registrador B.
Unidade de Controle: Contador de
Programa; Registrador de Instruções;
Controlador/Sequencializador; Sinais
de CLR e CLK.
Barramento: Barramento W.
Memória: REM e RAM.
Interface de Entrada/Saída: Chaves de
programação de entrada; registrador
de saída; Indicação Visual Binária
Microprocessadores - Matheus Romão
SAPSAP 1:1: FonteFonte dede AlimentaçãoAlimentação • Fornecer a tensão (e a corrente) que alimenta todo
SAPSAP 1:1: FonteFonte dede AlimentaçãoAlimentação
• Fornecer a tensão (e a corrente) que alimenta
todo o circuito.
• Ponte de diodo: Retificador de onda completa.
• Capacitor de 1000uF: Filtro capacitivo.
• LM 3405: Regulador de tensão de +5V.
Microprocessadores - Matheus Romão
SAP1:SAP1: ContadorContador dede ProgramaPrograma (ou(ou Ponteiro)Ponteiro) Contador: Enviar à memória o endereço da
SAP1:SAP1: ContadorContador dede ProgramaPrograma (ou(ou Ponteiro)Ponteiro)
Contador: Enviar à memória o endereço da instrução seguinte a ser buscada e executada. Ex: 0000 => Endereço 0000 memória
• Contador de 4 Bits (0000 - 1111 ou 0 – F).
• CP: Define a saída dos Flip-Flops após as transições de Clock
(CP=0 => Mantem Estado // CP=1 => Muda a saida). Isto irá parar (0) ou
incrementar o contador (1).
•CLK: Clock (Ativo em Baixo). Comanda a transição das saídas dos Flip Flops.
• CLR: Zera o contador (Ativo em Baixo)
•Ep: Enable (1=Habilita ou 0=Desabilita a saída do contador para o barramento)
74LS107 - Dual J-K Negative-edge-triggered Flip-Flops
74LS126 - QUAD 3-STATE BUFFERS
Microprocessadores - Matheus Romão
: 0= Carrega o endereço colocado no barramento dentro do registrador. 1= Endereço não é
: 0= Carrega o endereço colocado no barramento dentro do registrador. 1= Endereço não é

: 0= Carrega o endereço colocado no barramento dentro do registrador. 1= Endereço não é carregado no registrador. CLK= Clock

1= Endereço não é carregado no registrador. CLK= Clock SAP1:SAP1: EntradaEntrada ee REMREM 74LS173 : 4BIT

SAP1:SAP1: EntradaEntrada ee REMREM

registrador. CLK= Clock SAP1:SAP1: EntradaEntrada ee REMREM 74LS173 : 4BIT D-TYPE REGISTER W/ 3-STATE OUTPUTS Pin

74LS173 : 4BIT D-TYPE REGISTER W/ 3-STATE OUTPUTS

ee REMREM 74LS173 : 4BIT D-TYPE REGISTER W/ 3-STATE OUTPUTS Pin 1,2 0= Habilita saída REM

Pin 1,2 0= Habilita saída REM

1=Tri-State

3-STATE OUTPUTS Pin 1,2 0= Habilita saída REM 1=Tri-State Microprocessadores - Matheus Romão 74LS157 - QUAD
3-STATE OUTPUTS Pin 1,2 0= Habilita saída REM 1=Tri-State Microprocessadores - Matheus Romão 74LS157 - QUAD

Microprocessadores - Matheus Romão

saída REM 1=Tri-State Microprocessadores - Matheus Romão 74LS157 - QUAD 2-INPUT MULTIPLEXER REM: Registrador de

74LS157 - QUAD 2-INPUT MULTIPLEXER

- Matheus Romão 74LS157 - QUAD 2-INPUT MULTIPLEXER REM: Registrador de endereços de memória Retem o

REM: Registrador de endereços de memória Retem o endereço (enviado pelo contador de programa) onde serão acessados os dados/instruções da memória.

Multiplexador: Define se o endereço que será acessado na memória virá do contador de programa (durante execução) ou das chaves seletoras (durante gravação do programa, antes da execução). Controlado pela chave S2.

LOW = Habilita memória HiGH = Saída em 3-state SAP1SAP1 –– RAMRAM 74189 : 64-BIT
LOW = Habilita memória HiGH = Saída em 3-state
LOW = Habilita memória
HiGH = Saída em 3-state
LOW = Habilita memória HiGH = Saída em 3-state SAP1SAP1 –– RAMRAM 74189 : 64-BIT (16x4)

SAP1SAP1 –– RAMRAM

memória HiGH = Saída em 3-state SAP1SAP1 –– RAMRAM 74189 : 64-BIT (16x4) RANDOM ACCESS MEMORY
memória HiGH = Saída em 3-state SAP1SAP1 –– RAMRAM 74189 : 64-BIT (16x4) RANDOM ACCESS MEMORY

74189: 64-BIT (16x4) RANDOM ACCESS MEMORY (With 3-State Outputs)

: 64-BIT (16x4) RANDOM ACCESS MEMORY (With 3-State Outputs) Microprocessadores - Matheus Romão •2 x 74189

Microprocessadores - Matheus Romão

(With 3-State Outputs) Microprocessadores - Matheus Romão •2 x 74189 = RAM 16 x 8 •S3
•2 x 74189 = RAM 16 x 8 •S3 = 8 Bits de dados (colocados
•2 x 74189 = RAM 16 x 8
•S3 = 8 Bits de dados (colocados
ajustando as chaves)
•S4= Chave modos Leitura/Escrita
•S2 = Chave (Run – Prog)
•Gravando Programa na RAM:
•S2=prog (slide anterior também há).
•Ajustes chave S1 definem endereço
de armazenamento.
•Ajustes em S3 definem a palavra a
ser armazenada. Segurar S4=escrita
(carregar memória).
•Soltar S4 e ajustar S2=RUN.

SAPSAP 1:1: RegistradorRegistrador dede InstruçõesInstruções

1:1: RegistradorRegistrador dede InstruçõesInstruções • Ei (Ativo em Baixo): Habilita /Desabilita (3- State)

Ei (Ativo em Baixo): Habilita /Desabilita (3- State) saída de C9. Em C8 a saída está permanentemente habilitada (Pin 1 e 2 = 0). Li (Ativo em Baixo): Habilita/Desabilita entrada de dados nos dois registradores. CLK = Clock

entrada de dados nos dois registradores. • CLK = Clock 74LS173 : 4BIT D-TYPE REGISTER With

74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS

= Clock 74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS Registrador de Instruções: Armazenar a Instrução
= Clock 74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS Registrador de Instruções: Armazenar a Instrução
= Clock 74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS Registrador de Instruções: Armazenar a Instrução

Registrador de Instruções: Armazenar a Instrução a ser executada.

A palavra lida da memória (Instrução de 8bits) contem 2 informações:

Os 4 primeiros bits (nibble inferior) se referem ao endereço onde está o dado a ser manipulado (operando). Os outros 4 bits (i4,i5,i6,i7) – nibble superior – se referem à operação que deverá ser realizada. Esta informação vai ao Controlador/Sequencializador para que a operação a ser realizada possa ser decodificada (reconhecida).

Microprocessadores - Matheus Romão

SAP1:SAP1: AcumuladorAcumulador (ACC)(ACC)

Acumulador: Registrador que armazena resultados intermediários durante um processamento.

resultados intermediários durante um processamento. • LA (ativo em baixo): Habilita/Desabilita entrada de
resultados intermediários durante um processamento. • LA (ativo em baixo): Habilita/Desabilita entrada de

LA (ativo em baixo): Habilita/Desabilita entrada de dados nos registradores. EA: Habilita (1)/Desabilita (0) saída dos registradores para o barramento. CLK: Clock Obs: Saída dos registradores ficam permanentemente habilitadas e se ligam as entradas dos dois somadores/subtratores.

74LS173 : 4BIT D-TYPE REGISTER i 74LS126: QUAD 3-STATE BUFFERS W t h 3-STATE OUTPUTS
74LS173 : 4BIT D-TYPE REGISTER
i
74LS126: QUAD 3-STATE BUFFERS
W t
h
3-STATE OUTPUTS
: 4BIT D-TYPE REGISTER i 74LS126: QUAD 3-STATE BUFFERS W t h 3-STATE OUTPUTS Microprocessadores -

Microprocessadores - Matheus Romão

SAPSAP 1:1: RegistradorRegistrador BB

Registrador B: Utilizado para armazenar temporariamente um dado que será submetido a uma soma ou subtração. Obs: Na soma/subtração há dois operandos (números) envolvidos. Cada um precisa estar armazenado em um registrador (Acc e Registrador B) antes da operação ser efetuada.

(Acc e Registrador B) antes da operação ser efetuada. 74LS173 : 4BIT D-TYPE REGISTER With 3-STATE
(Acc e Registrador B) antes da operação ser efetuada. 74LS173 : 4BIT D-TYPE REGISTER With 3-STATE

74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS

74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS
74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS
74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS • LB (ativo em baixo): Habilita (0)/Desabilita (1)
74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS • LB (ativo em baixo): Habilita (0)/Desabilita (1)
74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS • LB (ativo em baixo): Habilita (0)/Desabilita (1)

LB (ativo em baixo): Habilita (0)/Desabilita (1) entrada de dados nos registradores. CLK: Clock

Microprocessadores - Matheus Romão

SAPSAP 1:1: Somador/Somador/SubtratorSubtrator 74LS126: QUAD 3- STATE BUFFERS 74LS83: Somador completo de 4 bits.

SAPSAP 1:1: Somador/Somador/SubtratorSubtrator

74LS126: QUAD 3- STATE BUFFERS 74LS83: Somador completo de 4 bits. Utilizam-se dois CI’s pois
74LS126:
QUAD 3-
STATE
BUFFERS
74LS83: Somador
completo de 4 bits.
Utilizam-se dois CI’s
pois os dados são de
8bits.

Somador/Subtrator: Efetua a Soma/Subtração dos conteúdos dos registradores ACC e B.

a Soma/Subtração dos conteúdos dos registradores ACC e B. SU: 0= Transmite conteúdo do Reg B

SU: 0= Transmite conteúdo do Reg B para o somador (soma). 1=Faz o complemento de 2 do Reg B e envia ao somador (para fazer subtração).

EU: Habilita (1)/Desabilita (0) saída do somador ser colocada no barramento.

SAPSAP 1:1: RegistradorRegistrador dede Saída/Saída/ IndicaçãoIndicação VisualVisual BináriaBinária Registrador de

SAPSAP 1:1: RegistradorRegistrador dede Saída/Saída/ IndicaçãoIndicação VisualVisual BináriaBinária

IndicaçãoIndicação VisualVisual BináriaBinária Registrador de Saída: Armazena os dados processados

Registrador de Saída: Armazena os dados processados (resultado soma/subtração)

Armazena os dados processados (resultado soma/subtração) • LO (Ativo em baixo): Habilita (0)/Desabilita (1) que a

LO (Ativo em baixo):

Habilita (0)/Desabilita (1) que a informação presente no barramento seja carrega nos registradores e conduzida aos LED’s. CLK: Clock. Indicação Visual Binária: LED’s

74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS

Visual Binária: LED’s 74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS Microprocessadores - Matheus Romão
Visual Binária: LED’s 74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS Microprocessadores - Matheus Romão

Microprocessadores - Matheus Romão

SAPSAP 1:1: Controlador/Controlador/SequencializadorSequencializador Gerar os sinais de clock (CLK) que irão sincronizar

SAPSAP 1:1: Controlador/Controlador/SequencializadorSequencializador

Controlador/Controlador/SequencializadorSequencializador Gerar os sinais de clock (CLK) que irão sincronizar toda a

Gerar os sinais de clock (CLK) que irão sincronizar toda a operação do computador.

Gerar os sinais de reinicialização (CLR) que irão zerar o contador de programas e eliminar a última instrução armazenada no registrador de instruções.

palavra determina o que cada bloco irá fazer a cada transição positiva do clock.

A palavra de controle sai pelo barramento de controle.

Gerar a palavra de controle (CON) que irá comandar todo o computador. Esta

Gerar a palavra de controle (CON) que irá comandar todo o computador. Esta • Microprocessadores -

Microprocessadores - Matheus Romão

SAPSAP 1:1: Controlador/Controlador/SequencializadorSequencializador

Palavra de Controle (CON):

• Palavra de Controle (CON): • CP : Define a saída dos Flip-Flops do contador após
• Palavra de Controle (CON): • CP : Define a saída dos Flip-Flops do contador após

CP: Define a saída dos Flip-Flops do contador após as transições de Clock (CP=0 => Mantem Estado // CP=1 => Muda a saida). Isto irá parar (0) ou incrementar o contador (1).

Ep: Enable (1=Habilita ou 0=Desabilita a saída do contador para o barramento).

LM (Ativo em Baixo): 0= Carrega o endereço colocado no barramento dentro do registrador // 1= Endereço não é carregado no registrador.

CE (Ativo em Baixo): 0 = Habilita memória RAM para Leitura ou Escrita // 1 = Saída em 3-state.

Li (Ativo em Baixo): Habilita (0) / Desabilita (1) a entrada (armazenamento) de dados nos dois registradores de instrução.

Ei (Ativo em Baixo): Habilita (0) /Desabilita (1) saída do registrador de instruções para o barramento. Esta saída coloca no barramento o endereço onde será buscado o dado. LA (Ativo em baixo): Habilita (0) /Desabilita (1) entrada de dados nos registradores do Acumulador. EA: Habilita (1)/Desabilita (0) saída do acumulador para o barramento.

SU: 0= Transmite conteúdo do Reg B para o somador (soma). 1=Faz o complemento de 2 do Reg B e envia ao somador (para fazer a subtração).

EU: Habilita (1)/Desabilita (0) saída do somador ser colocada no barramento.

LB (ativo em baixo): Habilita (0)/Desabilita (1) entrada de dados no Registrador B.

LO (Ativo em baixo):Habilita (0)/Desabilita (1) que a informação presente no barramento seja carregada nos registradores e conduzida aos LED’s.

Microprocessadores - Matheus Romão

Eliminador de trepidação (Debouncer): Latch (NAND) SAPSAP 1:1:
Eliminador de trepidação (Debouncer): Latch (NAND)
Eliminador de trepidação
(Debouncer):
Latch (NAND)

SAPSAP 1:1: Controlador/Controlador/SequencializadorSequencializador

Controlador/Controlador/SequencializadorSequencializador • S5, S6 e S7 : Botões manipulados pelo usuário. •

S5, S6 e S7 : Botões manipulados pelo usuário.

CLR: Sinal de Clear (RESET).

CLK: Clock.

•S5: Forçar CLEAR (RESET) no computador. •S6: Permite gerar pulsos Clock manualmente. •S7: Coloca clock
•S5: Forçar CLEAR (RESET) no
computador.
•S6: Permite gerar pulsos Clock
manualmente.
•S7: Coloca clock no modo
automático ou manual.
Microprocessadores - Matheus Romão
SAPSAP 1:1: Controlador/Controlador/SequencializadorSequencializador Memória Intermediária de relógio: Circuito

SAPSAP 1:1: Controlador/Controlador/SequencializadorSequencializador

Controlador/Controlador/SequencializadorSequencializador Memória Intermediária de relógio: Circuito utilizado
Memória Intermediária de relógio: Circuito utilizado para suportar todas as cargas (sinais de clock) que
Memória Intermediária de
relógio:
Circuito utilizado para
suportar todas as cargas
(sinais de clock) que devem
ser enviados aos circuitos
do computador.
Microprocessadores - Matheus Romão
SAPSAP 1:1: Controlador/Controlador/SequencializadorSequencializador Gerador de pulsos (clock automático): 555: TIMER

SAPSAP 1:1: Controlador/Controlador/SequencializadorSequencializador

Controlador/Controlador/SequencializadorSequencializador Gerador de pulsos (clock automático): 555: TIMER F=2KHz.
Gerador de pulsos (clock automático): 555: TIMER F=2KHz. Flip Flop JK (Mestre- Escravo) reduz a
Gerador de pulsos (clock
automático):
555: TIMER
F=2KHz.
Flip Flop JK (Mestre-
Escravo) reduz a freqüência
para 1KHz e proporciona
um duty cycle de 50%.
Microprocessadores - Matheus Romão
SAPSAP 1:1: BarramentoBarramento • Conjunto de 8 vias (8 Bits). • Multiplexado: Utilizado para transmissão

SAPSAP 1:1: BarramentoBarramento

SAPSAP 1:1: BarramentoBarramento • Conjunto de 8 vias (8 Bits). • Multiplexado: Utilizado para transmissão de

Conjunto de 8 vias (8 Bits).

Multiplexado: Utilizado para transmissão de dados e endereços.

Utilização de dispositivos 3-State:

Via comum para transmissão dos dados dos registradores.

Como evitar que uma informação colocada no barramento vá para um destino errado?

Solução: Possibilitando que os registradores sejam “desligados” do circuito em determinados instantes.

que os registradores sejam “desligados” do circuito em determinados instantes. Microprocessadores - Matheus Romão

Microprocessadores - Matheus Romão

SAPSAP 1:1: DiagramaDiagrama CompletoCompleto

SAPSAP 1:1: DiagramaDiagrama CompletoCompleto Microprocessadores - Matheus Romão

Microprocessadores - Matheus Romão

SAPSAP 1:1: InstruçõesInstruções • Código Operação possui 4 Bits. Microprocessadores - Matheus Romão
SAPSAP 1:1: InstruçõesInstruções
• Código Operação possui 4 Bits.
Microprocessadores - Matheus Romão
SAPSAP 1:1: InstruçõesInstruções • Como fazer um programa? • Basta descrever seqüencialmente os passos que
SAPSAP 1:1: InstruçõesInstruções
• Como fazer um programa?
• Basta descrever seqüencialmente os passos que devem ser seguidos para que se
cumpra aquilo que é desejado.
• O computador deve ser capaz de compreender cada passo (ou seja, ele deve
reconhecer todas as instruções passadas).
• As instruções ficam gravadas na memória principal.
• Como isso é feito fisicamente no SAP 1?
– Chaves de seleção
1) Onde está gravado o programa?
2) Onde estão gravados os dados?
3) O que o programa faz?
4) O que é exibido no final da execução?
1)
0H a 5H
2) 9H a CH
3) Carrega um número no ACC, efetua
duas adições e uma subtração, exibe
o resultado da conta e para.
4) 02H (0000 0010 nos 8 Led’s de saída)
Microprocessadores - Matheus Romão
SAPSAP 1:1: InstruçõesInstruções Como o computador entenderá o código apresentado se ele entende somente 0’s
SAPSAP 1:1: InstruçõesInstruções
Como o computador entenderá o código apresentado se ele entende somente 0’s e 1’s?
• Devemos converter o programa fonte em um programa objeto (linguagem de máquina)
• Como ficaria?
•Lembrando que:
Microprocessadores - Matheus Romão
SAPSAP 1:1: InstruçõesInstruções EX 2: Escrever um programa que efetue a seguinte operação: 16+20+24-32 •
SAPSAP 1:1: InstruçõesInstruções
EX 2: Escrever um programa que efetue a
seguinte operação:
16+20+24-32
• Escrever utilizando os Mnemônicos.
• Escrever em Linguagem de Máquina.
• Escrever em Hexadecimal.
• Armazenar os dados nas posições 9H a CH
Mnemônicos
Binário
Hexadecimal
Microprocessadores - Matheus Romão
SAPSAP 1:1: FuncionamentoFuncionamento • Vamos considerar que há um programa gravado na memória do SAP
SAPSAP 1:1: FuncionamentoFuncionamento
• Vamos considerar que há um programa gravado na memória do SAP 1.
• Vimos que diversos módulos que compõem o SAP 1 compartilham o mesmo barramento.
• Porém se todos estiverem conectados ao barramento simultaneamente, haverá um erro na
execução do programa.
• Para funcionar corretamente, é necessário que haja uma sincronização na atividade de cada
módulo, ou seja, em determinados instantes alguns estarão funcionando (enviado dados,
recebendo dados, efetuando cálculos, etc) enquanto outros estarão “desligados”.
• Como se dá a dinâmica de execução de programa?
– É uma seqüência de execução de instruções.
• Como se dá a dinâmica de execução de uma instrução?
– No SAP 1 uma instrução é executada em duas etapas (dois ciclos):
– 1) Ciclo de busca (FETCH) da instrução.
– 2)Ciclo de Execução da instrução.
• Quem coordena estes dois ciclos é a Unidade de Controle (Contador de Programa,
registrador de instruções e o controlador/sequencializador).
• Especificamente, o Contador em Anel (localizado dentro do controlador/sequencializador) é a
estrutura que marca os instantes em que cada ciclo começa e termina.
• Quando um começa, termina o outro.
• No SAP 1 estes dois ciclos ocorrem em 6 pulsos de clock.
Microprocessadores - Matheus Romão

SAPSAP 1:1: FuncionamentoFuncionamento :: ContadorContador emem AnelAnel (Localizado(Localizado dentrodentro dodo Controlador/Controlador/SequencializadorSequencializador))

Controlador/Controlador/SequencializadorSequencializador)) • CLK: Sinal de Clock (transição negativa) • CLR

CLK: Sinal de Clock (transição negativa)

CLR (ativo em baixo): Sinal que zera o contador em anel

T1 a T6: Seis estados que o contador apresenta na saída

T: Palavra formada por T1 aT6.

Seis estados que o contador apresenta na saída • T: Palavra formada por T1 aT6. Microprocessadores
Seis estados que o contador apresenta na saída • T: Palavra formada por T1 aT6. Microprocessadores
Seis estados que o contador apresenta na saída • T: Palavra formada por T1 aT6. Microprocessadores

Microprocessadores - Matheus Romão

SAPSAP 1:1: CicloCiclo dede BuscaBusca (FETCH)(FETCH)

O Ciclo de busca da instrução é realizado em 3 etapas (denominadas Estados) ou seja, é necessário que três eventos ocorram para caracterizar a busca de uma instrução.

Cada estado é coordenado pelo Contador em Anel.

Assim, dos 6 estados possíveis do contador em anel, são utilizados os três primeiros para buscar a instrução (T1 T2 e T3).

Os três estados são:

Estado de endereço (T1=000001): O endereço no contador de programa (que no início da execução é 0H) é transferido para o registrador de endereços da memória

Estado de Incremento (T2=000010): O contador de programa é incrementado.

Estado de Memória (T3=000100): A instrução é buscada na memória RAM e transferida para o registrador de Instrução.

Microprocessadores - Matheus Romão

SAPSAP 1:1: CicloCiclo dede BuscaBusca (FETCH)(FETCH) –– EstadoEstado dede endereçoendereço (T1)(T1)

Estado de endereço: O endereço no contador de programa (que no início da execução é 0H) é transferido para o registrador de endereços da memória.

Para que isso ocorra é preciso que o valor da saída do contador de programa seja carregado no registrador de endereço de memória (REM). Desta forma apenas estes dois blocos do SAP 1 devem estar “funcionando”. Como o Controlador/Sequencializador é o responsável por ativar/desativar os blocos do SAP 1, ele também estará ativo (“funcionando”). Como o Controlador ativa ou desativa um determinado bloco do SAP 1? Ele tem acesso aos bits de controle de todos os blocos através da palavra de controle (12 Bits) que é enviada pelo barramento de controle.

(12 Bits) que é enviada pelo barramento de controle. • CP=0: Pára o contador . •
(12 Bits) que é enviada pelo barramento de controle. • CP=0: Pára o contador . •

CP=0: Pára o contador .

Ep=1: Habilita a saída do contador para o barramento.

LM (ativo em baixo)=0: Carrega o endereço colocado no barramento dentro do

registrador do REM.

CE (ativo em baixo) =1: Saída RAM em 3-state.

Li (ativo em baixo) =1: Desabilita a entrada de dados nos dois registradores de instrução.

Ei (ativo em baixo) =1: Desabilita saída do registrador de instruções para o barramento.

LA (ativo em baixo)=1: Desabilita entrada de dados nos registradores do

Acumulador.

EA=0 : Desabilita saída dos registradores para o barramento.

SU=0: Transmite conteúdo do Reg B para o somador (soma).

EU=0: Desabilita saída do somador ser colocada no barramento.

LB (ativo em baixo)=1: Desabilita entrada de dados no Registrador B.

LO (ativo em baixo)=1: Desabilita que a informação presente no barramento seja carregada nos registradores e conduzida aos LED’s.

baixo)=1: Desabilita que a informação presente no barramento seja carregada nos registradores e conduzida aos LED’s.

SAPSAP 1:1: CicloCiclo dede BuscaBusca (FETCH)(FETCH) –– EstadoEstado dede IncrementoIncremento (T2)(T2)

O contador de programa é incrementado.

Apenas o Contador de Programa Ativo.

Como ficará a palavra de Controle?

• Apenas o Contador de Programa Ativo. • Como ficará a palavra de Controle? Microprocessadores -
• Apenas o Contador de Programa Ativo. • Como ficará a palavra de Controle? Microprocessadores -

Microprocessadores - Matheus Romão

SAPSAP 1:1: CicloCiclo dede BuscaBusca (FETCH)(FETCH) –– EstadoEstado dede MemóriaMemória (T3)(T3)

A instrução é buscada na memória RAM e transferida para o registrador de Instrução.

Quem estará ativo?

REM; RAM IR e CON

Como ficará a palavra de Controle?

REM; RAM IR e CON • Como ficará a palavra de Controle? • CP=0: Pára o
REM; RAM IR e CON • Como ficará a palavra de Controle? • CP=0: Pára o

CP=0: Pára o contador .

Ep=0: Desabilita a saída do contador para o barramento.

LM (ativo em baixo)=1: Desabilita entrada de dados do Barramento dentro do

registrador do REM (Neste instante queremos ler o conteúdo do REM e não armazenar dado).

CE (ativo em baixo) =0: Habilita Leitura da memória no endereço armazenado no

REM.

Li (ativo em baixo) =0: Habilita a entrada de dados nos dois registradores de instrução.

Ei (ativo em baixo) =1: Desabilita saída do registrador de instruções para o barramento.

LA (ativo em baixo)=1: Desabilita entrada de dados nos registradores do

Acumulador.

EA=0 : Desabilita saída dos registradores do Acumulador para o barramento.

SU=0: Transmite conteúdo do Reg B para o somador (soma).

EU=0: Desabilita saída do somador ser colocada no barramento.

LB (ativo em baixo)=1: Desabilita entrada de dados no Registrador B.

LO (ativo em baixo)=1: Desabilita que a informação presente no barramento seja carregada nos registradores e conduzida aos LED’s.

Microprocessadores - Matheus Romão

presente no barramento seja carregada nos registradores e conduzida aos LED’s. Microprocessadores - Matheus Romão

SAPSAP 1:1: CicloCiclo dede ExecuçãoExecução

O Ciclo de execução da instrução é realizado nas 3 últimas etapas (Estados).

Cada estado é coordenado pelo Contador em Anel.

Assim, dos 6 estados possíveis do contador em anel, são utilizados os três últimos para executar a instrução (T4, T5 e T6).

Como as instruções do SAP 1 (LDA, ADD, SUB, OUT e HLT) tem finalidades distintas, os blocos ativos nos estados T4, T5 e T6 irão variar para cada instrução.

OBS: T1,T2 e T3 será o mesmo para todas as instruções.

Microprocessadores - Matheus Romão

SAPSAP 11 -- CicloCiclo dede Execução:Execução: LDALDA (T4)(T4)

Ex: Executar a Instrução LDA 9H (gravada na posição 0H da memória).

T1: Carrega 0H no REM.

T2: Contador de Programa = 1H.

T3: RAM coloca no barramento o conteúdo de 0H (LDA 9H) e esta instrução é armazenada no Registrador de Instrução (0000 1001 = LDA 9H).

T4: O Nibble Superior (0000),que se refere ao código de operação, vai para o Controlador/Sequencializador para ser decodificado. O Nibble inferior (1001), que se refere ao endereço onde está o dado, vai para o REM(ver diagrama SAP 1). Para que isso seja possível, precisamos ativar o sinais de controle dos blocos IR e REM, que são,respectivamente, e .

controle dos blocos IR e REM, que são,respectivamente, e . • Assim, a palavra de controle
controle dos blocos IR e REM, que são,respectivamente, e . • Assim, a palavra de controle

Assim, a palavra de controle emitida pelo Controlador/Sequencializador é:

e . • Assim, a palavra de controle emitida pelo Controlador/Sequencializador é: Microprocessadores - Matheus Romão
e . • Assim, a palavra de controle emitida pelo Controlador/Sequencializador é: Microprocessadores - Matheus Romão
e . • Assim, a palavra de controle emitida pelo Controlador/Sequencializador é: Microprocessadores - Matheus Romão
e . • Assim, a palavra de controle emitida pelo Controlador/Sequencializador é: Microprocessadores - Matheus Romão

Microprocessadores - Matheus Romão

SAPSAP 1:1: CicloCiclo dede Execução:Execução: LDALDA (T4)(T4) -- DestaqueDestaque dada DecodificaçãoDecodificação dada InstruçãoInstrução

-- DestaqueDestaque dada DecodificaçãoDecodificação dada InstruçãoInstrução Microprocessadores - Matheus Romão

Microprocessadores - Matheus Romão

SAPSAP 11 -- CicloCiclo dede Execução:Execução: LDALDA (T5)(T5)

Ex: Executar a Instrução LDA 9H (gravada na posição 0H da memória).

T1: Carrega 0H no REM.

T2: Contador de Programa = 1H.

T3: RAM coloca no barramento o conteúdo de 0H (LDA 9H) e esta instrução é armazenada no Registrador de Instrução (0000 1001 = LDA 9H).

T4: Nibble Superior (0000): Para Controlador/Sequencializador para ser decodificado. Nibble inferior (1001): Vai para o REM.

T5: A palavra localizada no endereço 1001 da RAM é colocada no barramento e carregada no

Acumulador. Para isso é preciso habilitar a RAM para a leitura de seu conteúdo (

habilitar os registradores do Acumulador para que armazenem a palavra colocada no

barramento (através do sinal de controle

que armazenem a palavra colocada no barramento (através do sinal de controle ) e ). Microprocessadores

) e

).
).
que armazenem a palavra colocada no barramento (através do sinal de controle ) e ). Microprocessadores
que armazenem a palavra colocada no barramento (através do sinal de controle ) e ). Microprocessadores

Microprocessadores - Matheus Romão

SAPSAP 11 -- CicloCiclo dede Execução:Execução: LDALDA (T6)(T6)

Ex: Executar a Instrução LDA 9H (gravada na posição 0H da memória).

T1: Carrega 0H no REM.

T2: Contador de Programa = 1H.

T3: RAM coloca no barramento o conteúdo de 0H (LDA 9H) e esta instrução é armazenada no Registrador de Instrução (0000 1001 = LDA 9H).

T4: Nibble Superior (0000): Para Controlador/Sequencializador para ser decodificado. Nibble inferior (1001): Vai para o REM.

T5: Os dados endereçados na RAM são carregados no Acumulador.

T6: Estado sem operação (Nop): A instrução LDA é finalizada em T5. Assim, no estado T6 o Controlador emite um sinal que inativa todos os módulos do SAP1.

no estado T6 o Controlador emite um sinal que inativa todos os módulos do SAP1. Microprocessadores
no estado T6 o Controlador emite um sinal que inativa todos os módulos do SAP1. Microprocessadores
no estado T6 o Controlador emite um sinal que inativa todos os módulos do SAP1. Microprocessadores
no estado T6 o Controlador emite um sinal que inativa todos os módulos do SAP1. Microprocessadores

Microprocessadores - Matheus Romão

SAPSAP 1:1: LDALDA (Resumo)(Resumo)

SAPSAP 1:1: LDALDA (Resumo)(Resumo) • Para executar a instrução “LDA” o controlador emite três palavras de
SAPSAP 1:1: LDALDA (Resumo)(Resumo) • Para executar a instrução “LDA” o controlador emite três palavras de
SAPSAP 1:1: LDALDA (Resumo)(Resumo) • Para executar a instrução “LDA” o controlador emite três palavras de

Para executar a instrução “LDA” o controlador emite três palavras de controle que dizem para todos os módulos do SAP 1 o que fazer (Habilitar/Desabilitar entrada ou saída, incrementar,etc). Assim, as palavras de controle T4,T5 e T6 são chamadas Microinstruções. No SAP 1, cada instrução é formada por três microinstruções.

Microprocessadores - Matheus Romão

SAPSAP 11-- CicloCiclo dede Execução:Execução: ADDADD (T4)(T4)

Ex: Executar a Instrução ADD BH (gravada na posição 1H da memória).

T1: Carrega 1H no REM.

T2: Contador de Programa = 2H.

T3: RAM coloca no barramento o conteúdo de 1H (ADD BH) e esta instrução é armazenada no Registrador de Instrução (0001 1011 = ADD BH).

T4: O Nibble Superior (0001),que se refere ao código de operação, vai para o Controlador/Sequencializador para ser decodificado. O Nibble inferior (1011), que se refere ao endereço onde está o dado, vai para o REM(ver diagrama SAP 1). Para que isso seja possível, precisamos ativar o sinais de controle dos blocos IR e REM, que são,respectivamente, e .

controle dos blocos IR e REM, que são,respectivamente, e . • Assim, a palavra de controle
controle dos blocos IR e REM, que são,respectivamente, e . • Assim, a palavra de controle

Assim, a palavra de controle emitida pelo Controlador/Sequencializador é:

e . • Assim, a palavra de controle emitida pelo Controlador/Sequencializador é: Microprocessadores - Matheus Romão
e . • Assim, a palavra de controle emitida pelo Controlador/Sequencializador é: Microprocessadores - Matheus Romão
e . • Assim, a palavra de controle emitida pelo Controlador/Sequencializador é: Microprocessadores - Matheus Romão

Microprocessadores - Matheus Romão

SAPSAP 11-- CicloCiclo dede Execução:Execução: ADDADD (T5)(T5)

Ex: Executar a Instrução ADD BH (gravada na posição 1H da memória).

Adicionar o conteúdo localizado no endereço BH da RAM ao valor armazenado no acumulador.

T1: Carrega 1H no REM.

T2: Contador de Programa = 2H.

T3: RAM coloca no barramento o conteúdo de 1H (ADD BH) e esta instrução é armazenada no Registrador de Instrução (0001 1011 = ADD BH).

T4: Nibble Superior (0001): Para Controlador/Sequencializador para ser decodificado. Nibble inferior (1011): Vai para o REM.

T5: Pegar o conteúdo localizado no endereço BH da RAM e vai carregá-lo no Registrador B.

no endereço BH da RAM e vai carregá-lo no Registrador B. Para isso é preciso habilitar

Para isso é preciso habilitar a RAM para a leitura de seu conteúdo (

registradores do Acumulador para que armazenem a palavra colocada no barramento

(através do sinal de controle

) e habilitar os

).
).
a palavra colocada no barramento (através do sinal de controle ) e habilitar os ). Microprocessadores

Microprocessadores - Matheus Romão

SAPSAP 11-- CicloCiclo dede Execução:Execução: ADDADD (T6)(T6)

Ex: Executar a Instrução ADD BH (gravada na posição 1H da memória).

Adicionar o conteúdo localizado no endereço BH da RAM ao valor armazenado no acumulador.

T1: Carrega 1H no REM.

T2: Contador de Programa = 2H.

T3: RAM coloca no barramento o conteúdo de 1H (ADD BH) e esta instrução é armazenada no Registrador de Instrução (0001 1011 = ADD BH).

T4: Nibble Superior (0001): Para Controlador/Sequencializador para ser decodificado. Nibble inferior (1011): Vai para o REM.

T5: Os dados endereçados na RAM são carregados no Registrador B.

• T6: Executa a soma e coloca o resultado no barramento (EU) e carrega o
• T6: Executa a soma e coloca o resultado no barramento (EU) e carrega o resultado no
Acumulador (
).
e coloca o resultado no barramento (EU) e carrega o resultado no Acumulador ( ). Microprocessadores
e coloca o resultado no barramento (EU) e carrega o resultado no Acumulador ( ). Microprocessadores
e coloca o resultado no barramento (EU) e carrega o resultado no Acumulador ( ). Microprocessadores

Microprocessadores - Matheus Romão

SAPSAP 11-- CicloCiclo dede Execução:Execução: ADDADD (Resumo)(Resumo)

SAPSAP 11-- CicloCiclo dede Execução:Execução: ADDADD (Resumo)(Resumo) Microprocessadores - Matheus Romão
SAPSAP 11-- CicloCiclo dede Execução:Execução: ADDADD (Resumo)(Resumo) Microprocessadores - Matheus Romão

Microprocessadores - Matheus Romão

SAPSAP 11-- CicloCiclo dede Execução:Execução: SUBSUB

• A execução da instrução SUB é semelhante à instrução ADD. • A diferença é que na instrução SUB, durante a execução de T6 o controlador precisa enviar para o somador/subtrator um sinal de controle que faça o complemento de 2 do conteúdo do Registrador B. Este sinal de controle é o SU.

o complemento de 2 do conteúdo do Registrador B. Este sinal de controle é o SU.
o complemento de 2 do conteúdo do Registrador B. Este sinal de controle é o SU.

Microprocessadores - Matheus Romão

SAPSAP 11-- CicloCiclo dede Execução:Execução: OUTOUT (T4)(T4)

Ex: Executar a Instrução OUT (gravada na posição 2H da memória).

Carrega o conteúdo do Acumulador no Registrador de Saída.

T1: Carrega OUT no REM.

T2: Contador de Programa = 3H.

T3: RAM coloca no barramento o conteúdo de 2H (OUT) e esta instrução é armazenada no Registrador de Instrução (1110 XXXX = OUT).

T4: A instrução é decodificada e o Controlador gera uma palavra de controle para que o conteúdo do Acumulador seja colocado no barramento e que o registrador de saída seja carregado com o conteúdo do Acumulador. Os sinais de controle que comandam estas duas

funções são, respectivamente, EA e

comandam estas duas funções são, respectivamente, EA e . Desta forma, a palavra de controle é:

.

comandam estas duas funções são, respectivamente, EA e . Desta forma, a palavra de controle é:

Desta forma, a palavra de controle é:

duas funções são, respectivamente, EA e . Desta forma, a palavra de controle é: Microprocessadores -

Microprocessadores - Matheus Romão

SAPSAP 11-- CicloCiclo dede Execução:Execução: OUTOUT (T5(T5 ee T6)T6)

Ex: Executar a Instrução OUT (gravada na posição 2H da memória).

Carrega o conteúdo do Acumulador no Registrador de Saída.

T1: Carrega OUT no REM.

T2: Contador de Programa = 3H.

T3: RAM coloca no barramento o conteúdo de 2H (OUT) e esta instrução é armazenada no Registrador de Instrução (1110 XXXX = OUT).

T4: Decodificação da instrução, conteúdo do Acumulador é carregado no Registrador de Saída.

T5 e T6: A instrução OUT é concluída em T4. Logo, os estados T5 e T6 são NOP’s

é concluída em T4. Logo, os estados T5 e T6 são NOP’s Desta forma, a palavra

Desta forma, a palavra de controle é:

em T4. Logo, os estados T5 e T6 são NOP’s Desta forma, a palavra de controle
em T4. Logo, os estados T5 e T6 são NOP’s Desta forma, a palavra de controle

Microprocessadores - Matheus Romão

SAPSAP 11-- CicloCiclo dede Execução:Execução: OUTOUT (Resumo)(Resumo)

SAPSAP 11-- CicloCiclo dede Execução:Execução: OUTOUT (Resumo)(Resumo) Microprocessadores - Matheus Romão
SAPSAP 11-- CicloCiclo dede Execução:Execução: OUTOUT (Resumo)(Resumo) Microprocessadores - Matheus Romão

Microprocessadores - Matheus Romão

SAPSAP 11-- CicloCiclo dede Execução:Execução: HLTHLT

• HLT não requer uma rotina de controle pois sua execução não envolve o uso de registradores. • Assim, quando a instrução HLT (1111 XXXX) for decodificada, o controlador irá desligar o Clock (CLK) do computador, interrompendo o processamento. • Neste caso o Controlador/Sequencializador não precisa emitir nenhum sinal de controle pois o Clock está localizado dentro dele.

Microprocessadores - Matheus Romão

MicroprogramaçãoMicroprogramação • Vimos que a Matriz de Controle gera as Microinstruções para cada ciclo de
MicroprogramaçãoMicroprogramação
• Vimos que a Matriz de Controle gera as Microinstruções para cada ciclo de execução.
• A Matriz de Controle é construída para ser capaz de interpretar apenas as instruções (LDA,
ADD, SUB, OUT e HLT).
• Para aumentar o número de instruções do SAP 1, teríamos que refazer o projeto da Matriz de
Controle (montar outro circuito).
• Quanto mais instruções, mais complexo fica o desenvolvimento dos circuitos.
• Isto levou os projetistas a pensarem em uma forma alternativa de gerar as palavras de
controle: A Microprogramação .
• Na Microprogramação, as microinstruções são armazenadas em uma ROM ao invés de serem
geradas por meio de um circuito lógico (matriz de controle).
Microprocessadores - Matheus Romão
MicroprogramaçãoMicroprogramação:: ControleControle MicroprogramadoMicroprogramado • O ciclo de busca de qualquer
MicroprogramaçãoMicroprogramação:: ControleControle MicroprogramadoMicroprogramado
• O ciclo de busca de qualquer instrução é
realizada através de 3 microinstruções.
• O ciclo de execução de cada instrução é
realizada através de 3 microinstruções.
• Podemos carregar todas estas
informações em uma ROM (16X12).
• Assim, o ciclo da instrução ADD seria
realizado acessando a ROM nos
ç
depois os endereços de 6H a 8H (ciclo de
execução).
endere os de 0H a 2H (ciclo de b sca) e
u
• O conteúdo em cada posição se refere a
uma palavra de controle.
• Como fazer para acessar exatamente a
posição de memória que marca o início
de cada rotina?
Microprocessadores - Matheus Romão
MicroprogramaçãoMicroprogramação:: ControleControle MicroprogramadoMicroprogramado Microprocessadores - Matheus Romão
MicroprogramaçãoMicroprogramação:: ControleControle MicroprogramadoMicroprogramado
Microprocessadores - Matheus Romão

MicroprogramaçãoMicroprogramação:: ControleControle MicroprogramadoMicroprogramado

Pelos fios I4 a I7 chegam o código da operação das instruções.

Este código irá acessar a ROM no endereço correspondente ao seu

irá acessar a ROM no endereço correspondente ao seu valor. [ Ex: LDA – C.Op=0000 //

valor. [Ex: LDA – C.Op=0000 // C.Op irá acessar a posição 0000 da memória ROM.

O conteúdo da memória neste endereço corresponde ao endereço da ROM de Controle onde começa a rotina de execução da instrução desejada.

neste endereço corresponde ao endereço da ROM de Controle onde começa a rotina de execução da
neste endereço corresponde ao endereço da ROM de Controle onde começa a rotina de execução da

MicroprogramaçãoMicroprogramação:: ControleControle MicroprogramadoMicroprogramado

Para concluir o ciclo de execução de LDA é preciso que sejam geradas sequencialmente as microinstruções de 3H, 4H e 5H.

Como isso é feito, se o que entra na ROM de endereço é apenas o código de operação da instrução?

Utilizando um contador que irá incrementar o endereço da ROM de Controle a partir do endereço acessado inicialmente (Neste exemplo, 3H).

do endereço acessado inicialmente (Neste exemplo, 3H). • Quando T1 (contador em Anel) estiver alto (1),
do endereço acessado inicialmente (Neste exemplo, 3H). • Quando T1 (contador em Anel) estiver alto (1),

Quando T1 (contador em Anel) estiver alto (1), indica que um novo ciclo de instrução está começando.

Este sinal, ou um sinal de CLR, forçam o contador a zerar. Assim, o endereço acessado na ROM de Controle é o 0H (Início do Ciclo de Busca).

O contador continua a contagem até 2H.

Quando T3 (contador em Anel) estiver alto, ele irá forçar o Contador Pré-Ajustável a começar uma contagem partindo do valor que vem da ROM de Endereço.

Se a instrução for, por exemplo, ADD, o contador partirá de 6H e irá contar até 8H. Após isso T1 irá zera o

contador novamente.

Microprocessadores - Matheus Romão

MicroprogramaçãoMicroprogramação:: ControleControle MicroprogramadoMicroprogramado

ControleControle MicroprogramadoMicroprogramado • Melhoria: Detector de Nop. • Nop: Palavra de

Melhoria: Detector de Nop.

Nop: Palavra de controle 3E3H.

Quando ocorre 3E3H, a saída da porta NAND é baixa.

Isto restabelece o contador em anel para T1.

Utilidade: Aumenta a velocidade de processamento.

o contador em anel para T1. • Utilidade: Aumenta a velocidade de processamento. Microprocessadores - Matheus

Microprocessadores - Matheus Romão

Referencias:Referencias: • Albert Paul Malvino ; Microcomputadores e Microprocessadores , McGraw-Hill 1985 • WILLIAM
Referencias:Referencias:
• Albert Paul Malvino ; Microcomputadores e Microprocessadores , McGraw-Hill 1985
• WILLIAM STALLlNGS ; ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES - 5ª ED. 2003