SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Interrupções e DMA


Interfaces e Periféricos 2001/2


   António de Brito Ferrari
       ferrari@det.ua.pt
Excepções e Interrupções

• Eventos que provocam a alteração do fluxo normal de
  execução das instruções do programa em execução
• Eventos causadores:
  – Internos: ocorrência de overflow, tentativa de executar
    instrução não definida, chamada ao sistema de operação
    (system call)
  – Externos: pedidos dos dispositivos de I/O
     • Assíncronos relativamente ao processador – sem qualquer
       relação temporal fixa com este

                            IT - ABF 2001                        2
Excepções e Interrupções
• MIPS, Motorola e outros:
   – Excepções – designam os eventos internos
   – Interrupções - designam os eventos externos (pedidos dos
     dispositivos de I/O)
   – Excepções, em sentido lato, designam ambos
• Intel:
   – Interrupções é a designação geral (eventos tanto internos
     como externos)
   – Chamadas ao sistema: software interrupts ou traps
                             IT - ABF 2001                   3
I/O Programado
1. Processador envia ao periférico um comando de
   leitura
2. Ler status do periférico
3. Status ready? No: goto 2
4. Ler informação do periférico
5. Escrever a informação lida na memória
6. Fim? No: goto 1
Ø Maior parte do tempo à espera (ciclo 2, 3)
                      IT - ABF 2001                4
I/O sob interrupção (ex.: leitura)

1. Processador envia ao periférico um comando de leitura
2. Processador executa outras tarefas
Periférico, quando termina execução do comando, gera
  interrupção .       (desaparece busy waiting)
Processador (ISR – Interrupt Service Routine) :
3. Verifica Status do periférico
4. Lê informação do periférico
5. Armazena a informação lida na memória
6. Fim? Não: goto 1
                              IT - ABF 2001                5
Processamento de uma Interrupção

• Análogo à invocação de uma subrotina - controlo
  passa do programa que está a ser executado para um
  outro que vai atender o pedido de interrupção - a
  subrotina de tratamento da interrupção (interrupt
  handler ou ISR - Interrupt Service Routine)
Ø Diferença: a execução da ISR é desencadeada por um
  evento externo, não por uma instrução de invocação
  de subrotina do programa em execução

                       IT - ABF 2001              6
Processamento de Interrupção (2)

1. Periférico gera interrupção (Int. Request)
2. Processador:
   – termina instrução que está a ser executada,
   – se as interrupções estiverem enabled reconhece o pedido
     (Int. Acknowledge)
   – sistema de interrupções é desactivado (Int. disable)
   – salvaguarda contexto (PC, …)
   – PC := &ISR (endereço de entrada da subrotina de
     tratamento da interrupção)
                            IT - ABF 2001                   7
Processamento de Interrupção (3)
Ø Questão 1: como obter o endereço de entrada da ISR?
• Duas alternativas:
   – Endereço único, comum a todas as interrupções - a cargo do
     software (ISR) identificar o periférico que gerou a interrupção -
     MIPS
   – Endereço determinado por hardware - periférico que interrompeu
     identifica-se através de um vector de interrupção que é lido pelo
     processador e utilizado por este para obter o endereço da ISR
     correspondente – interrupções vectorizadas (vectored interrupts)
     – Intel, Motorola 68000



                               IT - ABF 2001                             8
Processamento de Interrupção (4)

• Questão 2: quando ocorrem em simultâneo vários
  pedidos de interrupção, qual a ordem de atendimento?
   ØNecessário atribuir prioridade diferente a cada fonte de
     interrupções
• Exigência: rapidez de processamento
  ØSistemas Tempo Real: interrupções são eventos críticos que
     exigem garantias em termos de tempo de resposta máximo



                           IT - ABF 2001                  9
Processamento de excepções no MIPS

• O coprocessador CP0 e os seus registos é que
  definem como são processadas as excepções e
  interrupções
• Quando ocorre uma excepção o conteúdo do Program
  Counter é guardado no EPC (Exception Program
  Counter) e é iniciada a execução de uma rotina geral
  de tratamento de excepções
  &ISR (General Exception Vector ) = 0x80000080
  interrupções não-vectorizadas
                        IT - ABF 2001              10
Excepções no MIPS
• Registos de CP0:
  – EPC – endereço de retorno
  – Cause Register – permite identificar excepção. Campos:
     • Excode – identifica o tipo de excepção. Interrupção: Excode = 0
     • IP (Interrupt Pending, 8 bits) – 6 bits para correspondem a pedidos
       de interrupção de fontes externas e 2 a “software interrupts”
  – Status Register (SR) – determina quais as interrupções
    enabled (IM – Interrupt Mask field) e qual o nível de
    privilégio do CPU (kernel/user). Tem ainda um bit (IEc –
    Interrupt Enable current) que faz o enable/disable geral das
    interrupções

                               IT - ABF 2001                         11
Excepções no MIPS (2)

• CPU tem 6 pins para pedidos de interrupção externos (6
  linhas de Interrupt Request) – o seu estado é dado pelos
  bits do campo IP do Cause Register
• Identificação da fonte da interrupção feita por software
  (ISR lê campo IP do registo Cause).
• Embora as prioridades das várias linhas seja em geral
  fixa em cada sistema ela é estabelecida por software
   Ø ordem pela qual a ISR geral examina os bits do campo IP


                            IT - ABF 2001                      12
Interrupções vectorizadas
• “Vector de Interrupção ” identifica interrupção - colocado no bus de
  dados é usado pelo processador para indexar uma tabela em memória que
  contém os endereços das subrotinas de tratamento de interrupções
  (Interrupt Table)
Ø A cada fonte de interrupção está associada uma subrotina de tratamento
   específica
• Intel: vector de interrupção: 1 byte
   Interrupt Table (PC): endereços 0 .. 3FFh (256 entradas de 4 bytes) –
   cada entrada contem CS e IP da ISR correspondente
                &ISR = 4*(Vector de Interrupção)
   Nota: a partir do 80286 foi introduzida a instrução LIDT (Load Interrupt
   Descriptor Table) que permite modificar o endereço-base da Interrupt
   Table e alterar a respectiva dimensão

                                  IT - ABF 2001                        13
Interrupções na arquitectura Intel
                (real mode)
• Processador tem duas linhas de pedido de interrupção, com
  níveis de prioridade diferentes:
NMI – Non-Maskable Interrupt (não pode ser desactivada –
  prioridade máxima) – vector de interrupção ( = 2) gerado
  internamente pelo processador
INTR – pode ser desactivada pela flag I (interrupt enable):
  I = 0 – INTR disabled
  I = 1 – INTR enabled
• PIC – Programmable Interrupt Controller – possibilita que o
  sistema suporte múltiplas fontes de interrupção
                            IT - ABF 2001                     14
Interrupt Table (Intel)
Memory Address           Mem. Contents
            3FF                      IP255
                                     CS255



                                      IP1
                 4                   CS1
                                      IP0
                 0                   CS0

                     IT - ABF 2001           15
Intel: Sequência de atendimento de IT
1.   Pedido de Interrupção detectado
2.   Acknowledge da interrupção; ler vector de interrupção do Data
     Bus (colocado no Data Bus pelo PIC)
3.   Colocar flags ( PSW), CS e IP no stack; interrupções
     automaticamente desactivadas (flags IF e TF postas a 0)
     quando da salvaguarda das flags no stack
4.   Indexar a Tabela de Interrupções para ler os novos valores de
     CS:IP (salto para a ISR)
5.   Executar ISR
6.   ISR termina com IRET (instrução de Interrupt Return ) -
     restaura os valores de IP, CS e PSW (regresso ao programa
     interrompido)
                             IT - ABF 2001                   16
Interrupt Service Routine
• Começa por salvaguardar (no stack) o conteúdo dos
  registos que vai utilizar (antes de entrar na ISR apenas
  foi salvaguardada a informação mínima que permite
  retomar a execução do programa interrompido
• Antes de terminar restaura o conteúdo dos registos
• Se durante a execução da ISR se quizer permitir o
  atendimento de interrupções de prioridade mais elevada
  necessário colocar a flag I = 1
   – STI – instrução SeT Interrupt
   – CLI - instrução CLear Interrupt


                            IT - ABF 2001                    17
Múltiplas fontes de Interrupção

• Necessário poder ter uma multiplicidade de periféricos
  com possibilidade de interromperem o processador
  PC: teclado, rato, porto série, porto paralelo,
  controlador de diskettes, relógio de tempo real, ...
• Necessário definir o que fazer quando há mais do que
  um pedido de interrupção em simultâneo:
   Ø atribuição de diferentes níveis de prioridade (i.e. de
     urgência de atendimento) aos pedidos


                            IT - ABF 2001               18
Interrupções Múltiplas - alternativas
• várias linhas de Int Req com diferentes níveis de
  prioridade - Motorola 68000 (prioridade fixa), MIPS
  (prioridade estabelecida pelo software)
• processador com uma só linha de Int Req – Intel
   – lógica de arbitragem entre os pedidos dos diferentes
     periféricos incorporada num componente externo: PIC
     (Programmable Interrupt Controller)
      • Pentium: APIC (Advanced PIC)
      • i80188 (Intel embedded processors em geral): PIC on-chip

                             IT - ABF 2001                         19
Intel – linhas de interrupção dos CPU

• NMI – Non-Maskable Interrupt (input) – sempre
  activa; vector de interrupção 2
• INTR – INTerrupt Request (input) – apenas
  activa quando a flag I = 1
• ~INTA - INTerrupt Acknowledge (output) –
  indica que o pedido de interrupção (INTR) foi
  reconhecido pelo CPU e que o vector de
  interrupção deve ser colocado no Data Bus

                     IT - ABF 2001                20
Controlador de Interrupções – i8259A

• 8 linhas de pedidos de interrupção priorizadas (IR0, ..., IR7) –
  8259A activa a sua saída INT (ligada à entrada INTR do µP)
  sempre que uma dessas linhas, desde que corresponda a uma
  interrupção não “mascarada”, é colocada a 1 pelo interface do
  periférico.
• Quando recebe o INTA (acnowledge) o 8259A coloca nas suas
  saídas D0...D7 (ligadas ao bus de dados) o vector de
  interrupção correspondente ao pedido de mais alta prioridade
  pendente


                             IT - ABF 2001                    21
8259A – Modelo de programação (1)

• Status Registers:
   – IRR – Interrupt Request Register – indica quais os pedidos
     de interrupção que estão activos
   – ISR – In-Service Register – indica a interrupção que está a
     ser servida
• IMR – Interrupt Mask Register (Control/Status) -
  (OCW1) – especifica quais as fontes de interrupção
  desactivadas (disabled ) – bit respectivo = 1

                            IT - ABF 2001                    22
8259A – Modelo de programação (2)

• Inicialização – ICW1, ..., ICW4 – Initialization Command
  Words – definem o modo básico de operação – programadas
  quando o sistema é ligado; só depois de programadas é que o
  8259 pode funcionar
   – ICW2 – define o vector de interrupção usado com cada linha de
     pedido de interrupção (= valor do 1º vector de interrupção)
• Operation Command Words – OCW1, ..., OCW3 – podem
  ser programadas durante o funcionamento do dispositivo
   – OCW1 – Interrupt Mask Register


                               IT - ABF 2001                         23
O sistema de Interrupções dos PC
• PCs com bus ISA: dois i8259 ligados em cascata (master
  e slave) – 15 linhas IRQ0, IRQ1, IRQ3...15 (7 + 8) para
  interrupções de periféricos
   – Master 8259: registos acedidos pelas portas 20H e 21H (I/O)
   – Slave 8259: registos acedidos pelas portas A0H e A1H (I/O)
• Inicializados durante POST (Power-On Self-Test)
   – ICW1 mapeado no port 20H (master) e A0H (slave)
   – ICW2, ICW3 e ICW4 mapeados no port 21H (A1H)
   – Qualquer posterior instrução OUT A, 21H (A1H) escreve em
     OCW1 (o Interrupt Mask Register)
                             IT - ABF 2001                  24
O sistema de Interrupções dos PC (2)
• Dois i8259A fornecem 15 linhas de interrupção:
   – IRQ0 – System Timer
   – IRQ1 – Interface Keyboard
   – IRQ4 – Porta Série 1
   – IRQ6 – Controlador Floppy
   – IRQ7 – Porta Paralelo 1
   – IRQ8 – Relógio Tempo Real
   – IRQ12 – Interface Rato
   – IRQ14 – Controlador Disco (disponível no bus ISA)
   – IRQ10, IRQ11, IRQ15 –no bus ISA (disponíveis para serem
     utilizados por outras cartas de interface)

                               IT - ABF 2001                   25
DMA vs. Interrupções
•    I/O por interrupção:
       1.   Processador envia ao periférico um comando de leitura
       2.   Processador executa outras tarefas
       3.   Periférico, quando termina execução do comando, gera interrupção.
       4.   Processador verifica Status do periférico
       5.   Processador lê informação do periférico
       6.   Processador armazena a informação lida na memória
       7.   Fim? Não: goto 1
    Ø Processador ocupado com simples transferência de dados
•    Alternativa: sistema de I/O encarrega-se das
     transferências entre o periférico e a memória,
     sem envolvimento do processador
    Ø DMA – Acesso Directo à Memória
                                IT - ABF 2001                              26
DMA – Acesso Directo à Memória

1.   Processador envia ao controlador de DMA um comando (e.g.
     ler do periférico um bloco de informação)
2.   Processador executa outras tarefas
3.   Controlador de DMA verifica Status do periférico
4.   Controlador de DMA lê informação do periférico
5.   Controlador de DMA armazena a informação lida na memória
6.   Fim da leitura do Bloco? Não: goto 3
7.   Controlador de DMA , quando termina execução do comando,
     gera interrupção.


                             IT - ABF 2001                  27
DMA – Comandos
1. Processador envia ao controlador de DMA um comando
   (e.g. ler do periférico um bloco de informação)
Ø Qual a informação necessária ao controlador de DMA?
  à Endereço-base da zona de memória onde deve colocar os dados
  à No. de elementos do bloco a transferir
Ø Qual o interface do controlador de DMA com o sistema?
  à Address Bus
  à Data Bus
   Em ambos capacidade de actuar como bus master
•    i8237 – Controlador de DMA - 4 canais de DMA

                             IT - ABF 2001                   28
Stallings – Fig. 6.12




        IT - ABF 2001   29
Stallings – Fig. 6.13




        IT - ABF 2001   30
Stallings – Fig. 6.14




        IT - ABF 2001   31

Weitere ähnliche Inhalte

Was ist angesagt?

​室內停車場智慧照明 實證計畫
​室內停車場智慧照明 實證計畫​室內停車場智慧照明 實證計畫
​室內停車場智慧照明 實證計畫taidennis
 
Bai03 he thong tap tin fat
Bai03   he thong tap tin fatBai03   he thong tap tin fat
Bai03 he thong tap tin fatVũ Sang
 
Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxFábio dos Reis
 
Dns server setup on ubuntu vps (master+slave)
Dns server setup on ubuntu vps (master+slave)Dns server setup on ubuntu vps (master+slave)
Dns server setup on ubuntu vps (master+slave)Vijay Sharma
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Faculdade Mater Christi
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeDelacyr Ferreira
 
Programando os Microcontroladores PIC
Programando os Microcontroladores PICProgramando os Microcontroladores PIC
Programando os Microcontroladores PICFabio Souza
 
Padrões de Projeto: Adapter
Padrões de Projeto: AdapterPadrões de Projeto: Adapter
Padrões de Projeto: AdapterMessias Batista
 
Bài giảng thực hành windows server 2008 776030
Bài giảng thực hành windows server 2008 776030Bài giảng thực hành windows server 2008 776030
Bài giảng thực hành windows server 2008 776030trucmt2000
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidorJoao Andre Picao
 
Building Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchBuilding Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchSherif Mousa
 
Bai02 he thong quan ly tap tin
Bai02   he thong quan ly tap tinBai02   he thong quan ly tap tin
Bai02 he thong quan ly tap tinVũ Sang
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Conjunto de instruções mips - introdução
Conjunto de instruções mips - introduçãoConjunto de instruções mips - introdução
Conjunto de instruções mips - introduçãoElaine Cecília Gatto
 
Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básicoCezar Souza
 
Trabalho de sistema operativo servidor
Trabalho de sistema operativo servidorTrabalho de sistema operativo servidor
Trabalho de sistema operativo servidordtml2k
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controleProfessor Samuel Ribeiro
 

Was ist angesagt? (20)

​室內停車場智慧照明 實證計畫
​室內停車場智慧照明 實證計畫​室內停車場智慧照明 實證計畫
​室內停車場智慧照明 實證計畫
 
Bai03 he thong tap tin fat
Bai03   he thong tap tin fatBai03   he thong tap tin fat
Bai03 he thong tap tin fat
 
Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em Linux
 
Dns server setup on ubuntu vps (master+slave)
Dns server setup on ubuntu vps (master+slave)Dns server setup on ubuntu vps (master+slave)
Dns server setup on ubuntu vps (master+slave)
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - Recursividade
 
Programando os Microcontroladores PIC
Programando os Microcontroladores PICProgramando os Microcontroladores PIC
Programando os Microcontroladores PIC
 
Padrões de Projeto: Adapter
Padrões de Projeto: AdapterPadrões de Projeto: Adapter
Padrões de Projeto: Adapter
 
Bài giảng thực hành windows server 2008 776030
Bài giảng thực hành windows server 2008 776030Bài giảng thực hành windows server 2008 776030
Bài giảng thực hành windows server 2008 776030
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
Building Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchBuilding Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 Arch
 
Bai02 he thong quan ly tap tin
Bai02   he thong quan ly tap tinBai02   he thong quan ly tap tin
Bai02 he thong quan ly tap tin
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Aula 3 banco de dados
Aula 3   banco de dadosAula 3   banco de dados
Aula 3 banco de dados
 
Conjunto de instruções mips - introdução
Conjunto de instruções mips - introduçãoConjunto de instruções mips - introdução
Conjunto de instruções mips - introdução
 
Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básico
 
Banco de dados de Loja
Banco de dados de LojaBanco de dados de Loja
Banco de dados de Loja
 
Trabalho de sistema operativo servidor
Trabalho de sistema operativo servidorTrabalho de sistema operativo servidor
Trabalho de sistema operativo servidor
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
Hệ điều hành windows
Hệ điều hành windowsHệ điều hành windows
Hệ điều hành windows
 

Ähnlich wie Interrupções e DMA

hardware de um sistema de computação
hardware de um sistema de computaçãohardware de um sistema de computação
hardware de um sistema de computaçãoelliando dias
 
Barramentos clock interno
Barramentos clock internoBarramentos clock interno
Barramentos clock internocabaldreams
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Cláudio Alves
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 
Interrupções e interconexões
Interrupções e interconexõesInterrupções e interconexões
Interrupções e interconexõesPAULO Moreira
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8elliando dias
 
Hierarquia dos Processadores da Intel.pptx
Hierarquia dos Processadores da Intel.pptxHierarquia dos Processadores da Intel.pptx
Hierarquia dos Processadores da Intel.pptxOsvaldoJooNhabete
 
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdfmicrocontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdftccunip
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timerMayara Mônica
 
Arquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamentoArquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamentoAlex Camargo
 
Apostila para aprender sobre CPUs e tudo mais
Apostila para aprender sobre CPUs e tudo maisApostila para aprender sobre CPUs e tudo mais
Apostila para aprender sobre CPUs e tudo maisGilberto Mota
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalhoRafael Cruz
 
Funcionamento de um sistema de computação
Funcionamento de um sistema de computaçãoFuncionamento de um sistema de computação
Funcionamento de um sistema de computaçãoPAULO Moreira
 
parte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdfparte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdfAriclenesKinkela
 

Ähnlich wie Interrupções e DMA (20)

hardware de um sistema de computação
hardware de um sistema de computaçãohardware de um sistema de computação
hardware de um sistema de computação
 
Barramentos clock interno
Barramentos clock internoBarramentos clock interno
Barramentos clock interno
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
Interrupções e interconexões
Interrupções e interconexõesInterrupções e interconexões
Interrupções e interconexões
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8
 
Hierarquia dos Processadores da Intel.pptx
Hierarquia dos Processadores da Intel.pptxHierarquia dos Processadores da Intel.pptx
Hierarquia dos Processadores da Intel.pptx
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdfmicrocontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timer
 
Arquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamentoArquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamento
 
cpu.pdf
cpu.pdfcpu.pdf
cpu.pdf
 
Apostila para aprender sobre CPUs e tudo mais
Apostila para aprender sobre CPUs e tudo maisApostila para aprender sobre CPUs e tudo mais
Apostila para aprender sobre CPUs e tudo mais
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalho
 
Mod 2 Hardware
Mod 2   HardwareMod 2   Hardware
Mod 2 Hardware
 
Funcionamento de um sistema de computação
Funcionamento de um sistema de computaçãoFuncionamento de um sistema de computação
Funcionamento de um sistema de computação
 
Processadores intel 8008 e 8080
Processadores intel 8008 e 8080Processadores intel 8008 e 8080
Processadores intel 8008 e 8080
 
CPU.ppt
CPU.pptCPU.ppt
CPU.ppt
 
parte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdfparte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdf
 

Mehr von elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mehr von elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Kürzlich hochgeladen

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 

Kürzlich hochgeladen (8)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Interrupções e DMA

  • 1. Interrupções e DMA Interfaces e Periféricos 2001/2 António de Brito Ferrari ferrari@det.ua.pt
  • 2. Excepções e Interrupções • Eventos que provocam a alteração do fluxo normal de execução das instruções do programa em execução • Eventos causadores: – Internos: ocorrência de overflow, tentativa de executar instrução não definida, chamada ao sistema de operação (system call) – Externos: pedidos dos dispositivos de I/O • Assíncronos relativamente ao processador – sem qualquer relação temporal fixa com este IT - ABF 2001 2
  • 3. Excepções e Interrupções • MIPS, Motorola e outros: – Excepções – designam os eventos internos – Interrupções - designam os eventos externos (pedidos dos dispositivos de I/O) – Excepções, em sentido lato, designam ambos • Intel: – Interrupções é a designação geral (eventos tanto internos como externos) – Chamadas ao sistema: software interrupts ou traps IT - ABF 2001 3
  • 4. I/O Programado 1. Processador envia ao periférico um comando de leitura 2. Ler status do periférico 3. Status ready? No: goto 2 4. Ler informação do periférico 5. Escrever a informação lida na memória 6. Fim? No: goto 1 Ø Maior parte do tempo à espera (ciclo 2, 3) IT - ABF 2001 4
  • 5. I/O sob interrupção (ex.: leitura) 1. Processador envia ao periférico um comando de leitura 2. Processador executa outras tarefas Periférico, quando termina execução do comando, gera interrupção . (desaparece busy waiting) Processador (ISR – Interrupt Service Routine) : 3. Verifica Status do periférico 4. Lê informação do periférico 5. Armazena a informação lida na memória 6. Fim? Não: goto 1 IT - ABF 2001 5
  • 6. Processamento de uma Interrupção • Análogo à invocação de uma subrotina - controlo passa do programa que está a ser executado para um outro que vai atender o pedido de interrupção - a subrotina de tratamento da interrupção (interrupt handler ou ISR - Interrupt Service Routine) Ø Diferença: a execução da ISR é desencadeada por um evento externo, não por uma instrução de invocação de subrotina do programa em execução IT - ABF 2001 6
  • 7. Processamento de Interrupção (2) 1. Periférico gera interrupção (Int. Request) 2. Processador: – termina instrução que está a ser executada, – se as interrupções estiverem enabled reconhece o pedido (Int. Acknowledge) – sistema de interrupções é desactivado (Int. disable) – salvaguarda contexto (PC, …) – PC := &ISR (endereço de entrada da subrotina de tratamento da interrupção) IT - ABF 2001 7
  • 8. Processamento de Interrupção (3) Ø Questão 1: como obter o endereço de entrada da ISR? • Duas alternativas: – Endereço único, comum a todas as interrupções - a cargo do software (ISR) identificar o periférico que gerou a interrupção - MIPS – Endereço determinado por hardware - periférico que interrompeu identifica-se através de um vector de interrupção que é lido pelo processador e utilizado por este para obter o endereço da ISR correspondente – interrupções vectorizadas (vectored interrupts) – Intel, Motorola 68000 IT - ABF 2001 8
  • 9. Processamento de Interrupção (4) • Questão 2: quando ocorrem em simultâneo vários pedidos de interrupção, qual a ordem de atendimento? ØNecessário atribuir prioridade diferente a cada fonte de interrupções • Exigência: rapidez de processamento ØSistemas Tempo Real: interrupções são eventos críticos que exigem garantias em termos de tempo de resposta máximo IT - ABF 2001 9
  • 10. Processamento de excepções no MIPS • O coprocessador CP0 e os seus registos é que definem como são processadas as excepções e interrupções • Quando ocorre uma excepção o conteúdo do Program Counter é guardado no EPC (Exception Program Counter) e é iniciada a execução de uma rotina geral de tratamento de excepções &ISR (General Exception Vector ) = 0x80000080 interrupções não-vectorizadas IT - ABF 2001 10
  • 11. Excepções no MIPS • Registos de CP0: – EPC – endereço de retorno – Cause Register – permite identificar excepção. Campos: • Excode – identifica o tipo de excepção. Interrupção: Excode = 0 • IP (Interrupt Pending, 8 bits) – 6 bits para correspondem a pedidos de interrupção de fontes externas e 2 a “software interrupts” – Status Register (SR) – determina quais as interrupções enabled (IM – Interrupt Mask field) e qual o nível de privilégio do CPU (kernel/user). Tem ainda um bit (IEc – Interrupt Enable current) que faz o enable/disable geral das interrupções IT - ABF 2001 11
  • 12. Excepções no MIPS (2) • CPU tem 6 pins para pedidos de interrupção externos (6 linhas de Interrupt Request) – o seu estado é dado pelos bits do campo IP do Cause Register • Identificação da fonte da interrupção feita por software (ISR lê campo IP do registo Cause). • Embora as prioridades das várias linhas seja em geral fixa em cada sistema ela é estabelecida por software Ø ordem pela qual a ISR geral examina os bits do campo IP IT - ABF 2001 12
  • 13. Interrupções vectorizadas • “Vector de Interrupção ” identifica interrupção - colocado no bus de dados é usado pelo processador para indexar uma tabela em memória que contém os endereços das subrotinas de tratamento de interrupções (Interrupt Table) Ø A cada fonte de interrupção está associada uma subrotina de tratamento específica • Intel: vector de interrupção: 1 byte Interrupt Table (PC): endereços 0 .. 3FFh (256 entradas de 4 bytes) – cada entrada contem CS e IP da ISR correspondente &ISR = 4*(Vector de Interrupção) Nota: a partir do 80286 foi introduzida a instrução LIDT (Load Interrupt Descriptor Table) que permite modificar o endereço-base da Interrupt Table e alterar a respectiva dimensão IT - ABF 2001 13
  • 14. Interrupções na arquitectura Intel (real mode) • Processador tem duas linhas de pedido de interrupção, com níveis de prioridade diferentes: NMI – Non-Maskable Interrupt (não pode ser desactivada – prioridade máxima) – vector de interrupção ( = 2) gerado internamente pelo processador INTR – pode ser desactivada pela flag I (interrupt enable): I = 0 – INTR disabled I = 1 – INTR enabled • PIC – Programmable Interrupt Controller – possibilita que o sistema suporte múltiplas fontes de interrupção IT - ABF 2001 14
  • 15. Interrupt Table (Intel) Memory Address Mem. Contents 3FF IP255 CS255 IP1 4 CS1 IP0 0 CS0 IT - ABF 2001 15
  • 16. Intel: Sequência de atendimento de IT 1. Pedido de Interrupção detectado 2. Acknowledge da interrupção; ler vector de interrupção do Data Bus (colocado no Data Bus pelo PIC) 3. Colocar flags ( PSW), CS e IP no stack; interrupções automaticamente desactivadas (flags IF e TF postas a 0) quando da salvaguarda das flags no stack 4. Indexar a Tabela de Interrupções para ler os novos valores de CS:IP (salto para a ISR) 5. Executar ISR 6. ISR termina com IRET (instrução de Interrupt Return ) - restaura os valores de IP, CS e PSW (regresso ao programa interrompido) IT - ABF 2001 16
  • 17. Interrupt Service Routine • Começa por salvaguardar (no stack) o conteúdo dos registos que vai utilizar (antes de entrar na ISR apenas foi salvaguardada a informação mínima que permite retomar a execução do programa interrompido • Antes de terminar restaura o conteúdo dos registos • Se durante a execução da ISR se quizer permitir o atendimento de interrupções de prioridade mais elevada necessário colocar a flag I = 1 – STI – instrução SeT Interrupt – CLI - instrução CLear Interrupt IT - ABF 2001 17
  • 18. Múltiplas fontes de Interrupção • Necessário poder ter uma multiplicidade de periféricos com possibilidade de interromperem o processador PC: teclado, rato, porto série, porto paralelo, controlador de diskettes, relógio de tempo real, ... • Necessário definir o que fazer quando há mais do que um pedido de interrupção em simultâneo: Ø atribuição de diferentes níveis de prioridade (i.e. de urgência de atendimento) aos pedidos IT - ABF 2001 18
  • 19. Interrupções Múltiplas - alternativas • várias linhas de Int Req com diferentes níveis de prioridade - Motorola 68000 (prioridade fixa), MIPS (prioridade estabelecida pelo software) • processador com uma só linha de Int Req – Intel – lógica de arbitragem entre os pedidos dos diferentes periféricos incorporada num componente externo: PIC (Programmable Interrupt Controller) • Pentium: APIC (Advanced PIC) • i80188 (Intel embedded processors em geral): PIC on-chip IT - ABF 2001 19
  • 20. Intel – linhas de interrupção dos CPU • NMI – Non-Maskable Interrupt (input) – sempre activa; vector de interrupção 2 • INTR – INTerrupt Request (input) – apenas activa quando a flag I = 1 • ~INTA - INTerrupt Acknowledge (output) – indica que o pedido de interrupção (INTR) foi reconhecido pelo CPU e que o vector de interrupção deve ser colocado no Data Bus IT - ABF 2001 20
  • 21. Controlador de Interrupções – i8259A • 8 linhas de pedidos de interrupção priorizadas (IR0, ..., IR7) – 8259A activa a sua saída INT (ligada à entrada INTR do µP) sempre que uma dessas linhas, desde que corresponda a uma interrupção não “mascarada”, é colocada a 1 pelo interface do periférico. • Quando recebe o INTA (acnowledge) o 8259A coloca nas suas saídas D0...D7 (ligadas ao bus de dados) o vector de interrupção correspondente ao pedido de mais alta prioridade pendente IT - ABF 2001 21
  • 22. 8259A – Modelo de programação (1) • Status Registers: – IRR – Interrupt Request Register – indica quais os pedidos de interrupção que estão activos – ISR – In-Service Register – indica a interrupção que está a ser servida • IMR – Interrupt Mask Register (Control/Status) - (OCW1) – especifica quais as fontes de interrupção desactivadas (disabled ) – bit respectivo = 1 IT - ABF 2001 22
  • 23. 8259A – Modelo de programação (2) • Inicialização – ICW1, ..., ICW4 – Initialization Command Words – definem o modo básico de operação – programadas quando o sistema é ligado; só depois de programadas é que o 8259 pode funcionar – ICW2 – define o vector de interrupção usado com cada linha de pedido de interrupção (= valor do 1º vector de interrupção) • Operation Command Words – OCW1, ..., OCW3 – podem ser programadas durante o funcionamento do dispositivo – OCW1 – Interrupt Mask Register IT - ABF 2001 23
  • 24. O sistema de Interrupções dos PC • PCs com bus ISA: dois i8259 ligados em cascata (master e slave) – 15 linhas IRQ0, IRQ1, IRQ3...15 (7 + 8) para interrupções de periféricos – Master 8259: registos acedidos pelas portas 20H e 21H (I/O) – Slave 8259: registos acedidos pelas portas A0H e A1H (I/O) • Inicializados durante POST (Power-On Self-Test) – ICW1 mapeado no port 20H (master) e A0H (slave) – ICW2, ICW3 e ICW4 mapeados no port 21H (A1H) – Qualquer posterior instrução OUT A, 21H (A1H) escreve em OCW1 (o Interrupt Mask Register) IT - ABF 2001 24
  • 25. O sistema de Interrupções dos PC (2) • Dois i8259A fornecem 15 linhas de interrupção: – IRQ0 – System Timer – IRQ1 – Interface Keyboard – IRQ4 – Porta Série 1 – IRQ6 – Controlador Floppy – IRQ7 – Porta Paralelo 1 – IRQ8 – Relógio Tempo Real – IRQ12 – Interface Rato – IRQ14 – Controlador Disco (disponível no bus ISA) – IRQ10, IRQ11, IRQ15 –no bus ISA (disponíveis para serem utilizados por outras cartas de interface) IT - ABF 2001 25
  • 26. DMA vs. Interrupções • I/O por interrupção: 1. Processador envia ao periférico um comando de leitura 2. Processador executa outras tarefas 3. Periférico, quando termina execução do comando, gera interrupção. 4. Processador verifica Status do periférico 5. Processador lê informação do periférico 6. Processador armazena a informação lida na memória 7. Fim? Não: goto 1 Ø Processador ocupado com simples transferência de dados • Alternativa: sistema de I/O encarrega-se das transferências entre o periférico e a memória, sem envolvimento do processador Ø DMA – Acesso Directo à Memória IT - ABF 2001 26
  • 27. DMA – Acesso Directo à Memória 1. Processador envia ao controlador de DMA um comando (e.g. ler do periférico um bloco de informação) 2. Processador executa outras tarefas 3. Controlador de DMA verifica Status do periférico 4. Controlador de DMA lê informação do periférico 5. Controlador de DMA armazena a informação lida na memória 6. Fim da leitura do Bloco? Não: goto 3 7. Controlador de DMA , quando termina execução do comando, gera interrupção. IT - ABF 2001 27
  • 28. DMA – Comandos 1. Processador envia ao controlador de DMA um comando (e.g. ler do periférico um bloco de informação) Ø Qual a informação necessária ao controlador de DMA? à Endereço-base da zona de memória onde deve colocar os dados à No. de elementos do bloco a transferir Ø Qual o interface do controlador de DMA com o sistema? à Address Bus à Data Bus Em ambos capacidade de actuar como bus master • i8237 – Controlador de DMA - 4 canais de DMA IT - ABF 2001 28
  • 29. Stallings – Fig. 6.12 IT - ABF 2001 29
  • 30. Stallings – Fig. 6.13 IT - ABF 2001 30
  • 31. Stallings – Fig. 6.14 IT - ABF 2001 31