Baixe o app para aproveitar ainda mais
Prévia do material em texto
Microprocessadores e Microprocessadores e MicrocontroladoresMicrocontroladores Matheus W. Romão Microprocessadores - Matheus Romão SIMPLE AS POSSIBLE 1 SIMPLE AS POSSIBLE 1 –– 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.mais complexas. Microprocessadores - Matheus Romão SIMPLE AS POSSIBLE 1 SIMPLE AS POSSIBLE 1 –– 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.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 SAP 1: Fonte de AlimentaçãoSAP 1: Fonte de Alimentaçã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: Contador de Programa (ou Ponteiro)SAP1: Contador de Programa (ou Ponteiro) • 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) Contador: Enviar à memória o endereço da instrução seguinte a ser buscada e executada. Ex: 0000 => Endereço 0000 memória 74LS107 - Dual J-K Negative-edge-triggered Flip-Flops 74LS126 - QUAD 3-STATE BUFFERS Microprocessadores - Matheus Romão SAP1: Entrada e REMSAP1: Entrada e REM 74LS173 : 4BIT D-TYPE REGISTER W/ 3-STATE OUTPUTS : 0= Carrega o endereço colocado no barramento dentro do registrador. 1= Endereço não é carregado no registrador. CLK= Clock Pin 1,2 0= Habilita saída REM 1=Tri-State 74LS157 - QUAD 2-INPUT MULTIPLEXER 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.Microprocessadores - Matheus Romão SAP1 SAP1 –– RAM RAM LOW = Habilita memória HiGH = Saída em 3-state 74189: 64-BIT (16x4) RANDOM ACCESS MEMORY (With 3-State Outputs) •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.Microprocessadores - Matheus Romão SAP 1: Registrador SAP 1: Registrador de Instruçõesde Instruções 74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS •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 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). Registrador de Instruções: Armazenar a Instrução a ser executada. Microprocessadores - Matheus Romão SAP1: Acumulador (ACC)SAP1: Acumulador (ACC) 74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS •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. Acumulador: Registrador que armazena resultados intermediários durante um processamento. With 3-STATE OUTPUTS 74LS126: QUAD 3-STATE BUFFERS Microprocessadores - Matheus Romão SAP 1: Registrador BSAP 1: Registrador B 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. 74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS • LB (ativo em baixo): Habilita (0)/Desabilita (1) entrada de dados nos registradores. • CLK: Clock Microprocessadores - Matheus Romão SAP 1: Somador/SAP 1: Somador/SubtratorSubtrator Somador/Subtrator: Efetua a Soma/Subtração dos conteúdos dos registradores ACC e B. 74LS83: Somador completo de 4 bits. Utilizam-se dois CI’s pois os dados são de 8bits. 74LS126: QUAD 3- STATE BUFFERS 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. SAP 1: Registrador de Saída/ Indicação Visual BináriaSAP 1: Registrador de Saída/ Indicação Visual Binária 74LS173 : 4BIT D-TYPE REGISTER With 3-STATE OUTPUTS •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 Registrador de Saída: Armazena os dados processados (resultado soma/subtração) Microprocessadores - Matheus Romão SAP 1: Controlador/SAP 1: Controlador/SequencializadorSequencializador • 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. • Gerar a palavra de controle (CON) que irá comandar todo o computador. Esta palavra determina o que cada bloco irá fazer a cada transição positiva do clock. • A palavra de controle sai pelo barramento de controle. Microprocessadores - Matheus Romão SAP 1: Controlador/SAP 1: Controlador/SequencializadorSequencializador • Palavra de Controle (CON): • 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.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 SAP 1: Controlador/SAP 1: Controlador/SequencializadorSequencializador Latch (NAND) Eliminador de trepidação (Debouncer): • 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 no modo automático ou manual. Microprocessadores - Matheus Romão SAP 1: Controlador/SAP 1: Controlador/SequencializadorSequencializador 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. do computador. Microprocessadores - Matheus Romão SAP 1: Controlador/SAP 1: Controlador/SequencializadorSequencializador Gerador de pulsos (clock automático): 555: TIMER F=2KHz.F=2KHz. Flip Flop JK (Mestre- Escravo) reduz a freqüência para 1KHz e proporciona um duty cycle de 50%. Microprocessadores - Matheus Romão SAP 1: BarramentoSAP 1: Barramento • 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. Microprocessadores - Matheus Romão SAP 1: Diagrama SAP 1: Diagrama CompletoCompleto Microprocessadores - Matheus Romão SAP 1: InstruçõesSAP 1: Instruções • Código Operação possui 4 Bits. Microprocessadores - Matheus Romão SAP 1: InstruçõesSAP 1: Instruçõ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 SAP 1: InstruçõesSAP 1: Instruçõ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 SAP 1: InstruçõesSAP 1: Instruçõ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• Armazenar os dados nas posições 9H a CH Mnemônicos Binário Hexadecimal Microprocessadores - Matheus Romão SAP 1: FuncionamentoSAP 1: Funcionamento • 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.– É 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 SAP 1: Funcionamento : Contador em Anel (Localizado dentro do SAP 1: Funcionamento : Contador em Anel (Localizado dentro do Controlador/Controlador/SequencializadorSequencializador)) • 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.• T: Palavra formada por T1 aT6. Microprocessadores - Matheus Romão SAP 1: Ciclo de Busca (FETCH)SAP 1: Ciclo de Busca (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ória0H) é 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 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. SAP 1: Ciclo de Busca (FETCH) SAP 1: Ciclo de Busca (FETCH) –– Estado de endereço (T1)Estado de endereço (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”). • 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 registradorde 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. SAP 1: Ciclo de Busca (FETCH) SAP 1: Ciclo de Busca (FETCH) –– Estado de Incremento (T2)Estado de Incremento (T2) • O contador de programa é incrementado. • Apenas o Contador de Programa Ativo. • Como ficará a palavra de Controle? Microprocessadores - Matheus Romão SAP 1: Ciclo de Busca (FETCH) SAP 1: Ciclo de Busca (FETCH) –– Estado de Memória (T3)Estado de Memória (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? • 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ãoregistrador 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 SAP 1: Ciclo de ExecuçãoSAP 1: Ciclo de Execuçã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 SAP 1 SAP 1 -- Ciclo de Execução: LDA (T4)Ciclo de Execução: LDA (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 .são,respectivamente, e . • Assim, a palavra de controle emitida pelo Controlador/Sequencializador é: Microprocessadores - Matheus Romão SAP 1: Ciclo de Execução: LDA (T4) SAP 1: Ciclo de Execução: LDA (T4) -- Destaque da Decodificação da InstruçãoDestaque da Decodificação da Instrução Microprocessadores - Matheus Romão SAP 1 SAP 1 -- Ciclo de Execução: LDA (T5)Ciclo de Execução: LDA (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 ( ) e habilitar os registradores do Acumulador para que armazenem a palavra colocada no habilitar os registradores do Acumulador para que armazenem a palavra colocada no barramento (através do sinal de controle ). Microprocessadores - Matheus Romão SAP 1 SAP 1 -- Ciclo de Execução: LDA (T6)Ciclo de Execução: LDA (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.Controlador emite um sinal que inativa todos os módulos do SAP1. Microprocessadores - Matheus Romão SAP 1: LDA (Resumo)SAP 1: LDA (Resumo) • 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 SAP 1SAP 1-- Ciclo de Execução: ADD (T4)Ciclo de Execução: ADD (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 .são,respectivamente, e . • Assim, a palavra de controle emitida pelo Controlador/Sequencializador é: Microprocessadores - Matheus Romão SAP 1SAP 1-- Ciclo de Execução: ADD (T5)Ciclo de Execução: ADD (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. Para isso é preciso habilitar a RAM para a leitura de seu conteúdo ( ) e habilitar os Para isso é preciso habilitar a RAM para a leitura de seu conteúdo ( ) e habilitar os registradores do Acumulador para que armazenem a palavra colocada no barramento (através do sinal de controle ). Microprocessadores- Matheus Romão SAP 1SAP 1-- Ciclo de Execução: ADD (T6)Ciclo de Execução: ADD (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 resultado no • T6: Executa a soma e coloca o resultado no barramento (EU) e carrega o resultado no Acumulador ( ). Microprocessadores - Matheus Romão SAP 1SAP 1-- Ciclo de Execução: ADD (Resumo)Ciclo de Execução: ADD (Resumo) Microprocessadores - Matheus Romão SAP 1SAP 1-- Ciclo de Execução: SUBCiclo de Execução: SUB • 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. Microprocessadores - Matheus Romão SAP 1SAP 1-- Ciclo de Execução: OUT (T4)Ciclo de Execução: OUT (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 .funções são, respectivamente, EA e . Desta forma, a palavra de controle é: Microprocessadores - Matheus Romão SAP 1SAP 1-- Ciclo de Execução: OUT (T5 e T6)Ciclo de Execução: OUT (T5 e 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 Desta forma, a palavra de controle é: Microprocessadores - Matheus Romão SAP 1SAP 1-- Ciclo de Execução: OUT (Resumo)Ciclo de Execução: OUT (Resumo) Microprocessadores - Matheus Romão SAP 1SAP 1-- Ciclo de Execução: HLTCiclo de Execução: HLT • 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 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 • 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 • 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 endereços de 0H a 2H (ciclo de busca) e MicroprogramaçãoMicroprogramação: Controle : Controle MicroprogramadoMicroprogramado endereços de 0H a 2H (ciclo de busca) e depois os endereços de 6H a 8H (ciclo de execução). • 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: Controle : Controle MicroprogramadoMicroprogramado Microprocessadores - Matheus Romão MicroprogramaçãoMicroprogramação: Controle : Controle 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 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. • 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). MicroprogramaçãoMicroprogramação: Controle : Controle MicroprogramadoMicroprogramado • 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: Controle : Controle MicroprogramadoMicroprogramado • 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. Microprocessadores - Matheus Romão Referencias:Referencias: • Albert Paul Malvino ; Microcomputadores e Microprocessadores , McGraw-Hill 1985 • WILLIAM STALLlNGS ; ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES - 5ª ED. 2003
Compartilhar