EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC
Estratégias para identificar a necessidade de executar diferentes tarefas assíncronas: (Exemplos: Identificar se há caixa disponível para avisar aos clientes na fila, e paralelamente, apresentar propaganda do estabelecimento. Disparar câmera de semáforo enquanto temporiza alternância de lâmpadas) Polling; Interrupção;
Polling Processador testa seqüencialmente todos os dispositivos/periféricos para tomar conhecimento se o mesmo demanda execução de tarefa. Problema: Devido à necessidade do processador testar, freqüentemente, se algum periférico requer atenção, seu desempenho na execução de outras tarefas decai;
Interrupção Técnica para tratar exceções, ocorrência de eventos e sincronizar transferência de dados entre microprocessador e periféricos. Exs: identificar divisão por zero; overflow e outros; Detector de presença => Ligar celular; Buffer de recepção serial cheio;
Interrupções alteram fluxo de execução do programa
Interrupção Se ocorre interrupção habilitada, microprocessador: Interrompe execução do programa principal; Salva contexto e PC da instrução posterior àquela sendo executada; Carrega o endereço do tratador de interrupção no PC; Processa a interrupção; Restaura PC, contexto do programa principal e continua execução do programa principal.
Pinos de Interrupção do 8085
Endereços de atendimento de interrupções no 8085 INTERRUPÇÃO ENDEREÇO (Hex) 8085 Prioridade TRAP 0024 1 RST5.5 002C 4 RST6.5 0034 3 RST7.5 003C 2
Descrição RST7.5 1 Salva na pilha o contéudo do PC (endereço da instrução que se segue àquela durante a qual a interrupção ocorreu). 2 Sobrescreve PC atual com 003Ch 3 Inibe outras interrupções (DI) 4 Executa o tratador 5 EI 6 RET PILHA END. DADO SP-1 20BEH PC LSB 20BFH MSB SP 20C0H
End. interrupção no Abacus ENDEREÇO (HEX) 8085 INSTRUÇÃO NA ROM DO KIT TELEMÁTICA TRAP 0024 JMP 20D1H RST5.5 002C JMP 20C8H RST6.5 0034 JMP 20CBH RST7.5 003C JMP 20CEH
Interrupções Mascaráveis RST7.5, RST6.5, RST5.5 Há certos momentos durante o programa em que o atendimento de interrupções pode atrapalhar a execução de outra tarefa em andamento. Assim, existem mecanismos para inibir o atendimento de interrupções: máscara de interrupção, registrador IE.
Interrupção Não Mascarável TRAP Há certos momentos durante o programa a execução de outra tarefa em andamento é de pouca relevância quando comparada à sinalização da interrupção.
MÁSCARA DE INTERRUPÇÃO SOD SOE X R7.5 MSE M7.5 M6.5 M5.5 1 2 3 4 5 6 7 ESCRITA NA MÁSCARA DE INTERRUPÇÃO MVI A,??x?????B SIM
MÁSCARA DE INTERRUPÇÃO SDI P7.5 P6.5 P5.5 IE M7.5 M6.5 M5.5 1 2 3 4 5 6 7 LEITURA DA MÁSCARA DE INTERRUPÇÃO Instrução RIM
Interrupções Mascaráveis As interrupções mascaráveis estão efetivamente habilitadas se o registrador IE estiver setado. EI : Instrução que seta IE. DI: Instrução que reseta IE. IE é resetado pelo processador após: Reset do processador; Qdo do atendimento de interrupção.
RST75 EQU 20CEH ORG 2000H LXI SP,2080H ; INDICA ESPACO RAM PARA PILHA MVI A,00011011B ; HABILITA 7.5 - RESETA PENDÊNCIA SIM LXI H,DADO EI ; HABILITA CHAVE GERAL DE INTERRUPÇÕES ; MASCARÁVEIS INICIO: LDA DADO JMP INICIO DADO DB 00 ORG RST75 PUSH PSW INR M POP PSW EI RET END
Características a serem observadas no tratador de interrupção Endereço do tratador; Não alterar registradores; Não alterar a pilha; Código de rápida execução.
Expansão das Fontes de Interrupção 8259 tem registradores para mascarar e estabelecer a prioridade das interrupções. Pode haver 8259 em cascata para atender até 64 ints.
Expansão das Fontes de Interrupção Ao receber pulso INTA, 8259 supre código de instrução, geralmente, CALL ou RST. Se CALL, recebe ainda outros dois pulsos de INTA, para suprir o endereço do tratador de interrupção 20
Expansão das Fontes de Interrupção
Interrupção por Software RST n (8 x n) ENDEREÇO 8085 (hexadecimal) ABACUS RST0 0000 2000 RST1 0008 2008 RST2 0010 2010 RST3 0018 2018 RST4 0020 2020 RST5 0028 2028 RST6 0030 2030 RST7 0038 2038