ENTRADA
ENTRADA E
E SAÍDA
SAÍDA DE
DE DADOS
DADOS
n
n
Os dispositivos de um computador compartilham
uma única via de comunicação → BARRAMENTO.
BARRAMENTO → Elétrica/Mecânica + Protocolo.
GERENCIAMENTO
GERENCIAMENTO DE
DE E/S
E/S
n
O controle da troca de dados entre dois dispositivos pode
ser feito basicamente de três formas:
u E/S
programada (polling): o processador é responsável por
determinar o estado do dispositivo, enviar os comandos de
leitura ou escrita e por monitorar o término da transferência.
u E/S controlada por interrupção: o processador envia um
comando de E/S e continua a executar outras instruções. O
processador é interrompido pelo módulo de E/S quanto este tiver
completado seu trabalho e transfere os dados para a memória.
u Acesso direto à memória (DMA): a transferência dos dados para
a memória é controlada por um dispositivo especializado, sem
envolver o processador.
1
E/S
E/S PROGRAMADA
PROGRAMADA (POLLING)
(POLLING)
n
n
n
n
O processador envia um comando de
E/S para o dispositivo.
O processador fica monitorando o
término da operação através do
registrador de estado do dispositivo.
O dispositivo sinaliza o término da
operação carregando um valor
apropriado no registrador de estado.
O processador transfere o dado para
a memória.
E/S
E/S POR
POR INTERRUPÇÃO
INTERRUPÇÃO
uO
processador envia uma comando de E/S
para o dispositivo, mas não fica monitorando
o seu término.
u O processador continua a executar outras
instruções enquanto o dispositivo realiza a
operação de E/S.
u Após cada ciclo de instrução o processador
verifica se existe alguma interrupção
pendente.
u Ao terminar a tarefa, o dispositivo de E/S
sinaliza (interrompe) o processador.
u O processador transfere o dado para a
memória.
2
ACESSO
ACESSO DIRETO
DIRETO À
À MEMÓRIA
MEMÓRIA (DMA)
(DMA)
u E/S
programada e controlada por
interrupção → toda transferência de
dados passa pelo processador.
u A técnica mais eficiente para a
transferência de grandes volumes de
dados é o DMA.
u É utilizado um circuito específico,
chamada Controlador de DMA
u O Controlador realiza a transferência dos
dados enquanto a CPU executa outras
instruções.
u Ao terminar, o controlador interrompe a
CPU.
INTERRUPÇÕES
INTERRUPÇÕES
n
As interrupções são um mecanismo que permite a um programa
ou dispositivo externo interromper o fluxo normal de outro
programa.
n
A geração da interrupção pode ocorrer por software (interrupção
de software) ou hardware (interrupção de hardware).
Sistema
Operacional
Rotina p/
tratamento da
Interrupção
Controlador
de
Interrupção
Interrupção por
software
Interrupção por
hardware
Requisição
do Programa
Hardware
3
CICLO
CICLO DE
DE INSTRUÇÕES
INSTRUÇÕES DA
DA CPU
CPU
INTERRUPÇÕES
INTERRUPÇÕES
n
Interrupção
u
n
suspende a execução do programa
normal e grava o estado do processador
(PSW, CS e IP).
Após a interrupção uma ISR (rotina
de processamento da interrupção) é
chamada:
u
para uma interrupção de hardware
l
l
u
INTERRUPÇÃO
a ISR comunica-se com o dispositivo e
processa os dados
retorna para o programa que executava
quando ocorreu a interrupção
ISR
para uma interrupção de software
l
interrompe o programa e chama a ISR
Redespachador
restaura o estado anterior e retoma o processamento do programa anterior.
4
INTERRUPÇÃO
INTERRUPÇÃO DE
DE HARDWARE
HARDWARE
u Na
família de PCs existem dois tipos de interrupções de hardware:
interrupções MASCARÁVEIS (IRQs) e NÃO-MASCARÁVEIS.
u Uma interrupção é dita mascarável quanto ela pode ser
desabilitada.
u As CPUs da Intel oferecem dois pinos que lidam com estas
interrupções: INTR (Interrupt Request) para mascaráveis e NMI
(Non Maskable Interrupts) para as não mascaráveis.
u As NMIs são usadas para alertar sobre situações catastróficas:
l
l
l
l
erro de paridade na memória;
erro de coprocessador (até 286);
erro no canal de I/O (barramento ISA);
erro ativado por dispositivos PCI (*SERR).
INTERRUPÇÃO
INTERRUPÇÃO DE
DE HARDWARE
HARDWARE
n
n
n
n
As interrupções mascaráveis (IRQs) são geradas
pelos dispositivos de entrada e saída para sinalizar ao
processador a conclusão de tarefas.
Os processadores da Intel possuem apenas 1 linha de
sinalização de interrupção, denominada INTR.
Para possibilitar a ligação de vários dispositivos ao
processador são utilizados dois circuitos
Controladores de Interrupções Programáveis (PIC).
Assim, é possível controlar até 16 IRQs diferentes.
5
INTERRUPÇÃO
INTERRUPÇÃO DE
DE HARDWARE
HARDWARE
u As
IRQs possuem
prioridades
programáveis.
u A programação dos
controladores é feita
pela BIOS.
u Em geral as IRQs mais
baixas possuem maior
prioridade.
Cada IRQ é associada a um evento de hardware e
direciona para uma rotina de tratamento diferente.
PIC
PIC BÁSICO
BÁSICO
Recebe os pedidos de
interrupção em um
banco de 8 latches IRR;
O IMR é programado
para habilitar ou
desabilitar os pedidos
de int.
O resolutor de
prioridades identifica
qual interrupção deve
ser atendida.
A interrupção é enviada
ao ISR para ser
repassada à CPU.
6
INTERRUPÇÃO
INTERRUPÇÃO DE
DE HARDWARE
HARDWARE
n
A Intel reservou como pré-definidas as interrupções de 0 a 31.
Entretanto, no projeto do 8086 foram utilizadas somente as de
número 0 a 4.
int 00 Divisão por 0
int 01 Execução passo a
passo
int 02 NMI – Non
maskable interrupt
int 03 Breakpoint
int 04 Overflow
As interrupções não pré-definidas são as IRQs.
TABELA
TABELA DE
DE VETORES
VETORES DE
DE
INTERRUPÇÃO
INTERRUPÇÃO
n
Vetores de Interrupção – processador em modo-real
u são
registros de endereços que informam à CPU onde
encontrar as ISR;
u às interrupções são atribuídas um número de 0 a 255;
u os vetores de interrupção associados com cada número de
interrupção são guardados na parte baixa da memória (os
primeiros 1024 bytes) do PC, ocupando 4 bytes cada (int-0
0000:0000 à 0000:0003);
u a cada interrupção é associada uma tarefa predeterminada
(ver tabela);
u no modo protegido, o endereço de cada sobrotina de
tratamento é obtido diretamente, multiplicando-se o número
da interrupção por 4.
7
TABELA
TABELA DE
DE VETORES
VETORES DE
DE
INTERRUPÇÃO
INTERRUPÇÃO
TRATAMENTO
TRATAMENTO DAS
DAS INTERRUPÇÕES
INTERRUPÇÕES
u
u
Quando ocorre uma
interrupção de hardware o
processador precisa determinar
qual trecho de código lida com
aquele hardware e iniciar a sua
execução.
Portanto, o tratamento de uma
interrupção é simplesmente o
processo de determinar o
endereço de memória em que
se localiza o código que lida
com aquele hardware.
8
INTERRUPÇÃO
INTERRUPÇÃO DE
DE SOFTWARE
SOFTWARE
n
É a interrupção de um programa aplicativo que transfere
controle para o kernel quando ele necessita executar
funções de baixo-nível (kernel level)
u nas
máquinas Intel ocorre quando o aplicativo executa uma
instrução INT-n (16-39);
u esta instrução é formada por dois bytes: o primeiro contém o
código da operação INT e o segundo o número da interrupção
a ser executada;
u o nível de privilégio das interrupções de software é mais baixo
dos que das de hardware (as interrupcões de hardware são
mais importantes)
n
No DOS a interrupção de software é executada pelo
BIOS
INTERRUPÇÕES
INTERRUPÇÕES NO
NO
MODO
MODO PROTEGIDO
PROTEGIDO
u As
CPUs que trabalham em modo protegido (80286 e posteriores)
possuem um interação muito grande com o sistema operacional.
u O tratamento de interrupções nestes casos é realizado em parte
pelo Sistema Operacional e em parte pelo processador.
u A identificação da rotina que trata as interrupções é feita através de
uma Tabela de Descritores de Interrupção (IDT), criada pelo
Sistema Operacional, e não mais pela IVT.
u Da mesma forma que na IVT, cada descritor de interrupção associa
uma interrupção ao seu manipulador.
u A IDT pode ser armazenada em qualquer posição da memória.
9
INTERRUPÇÃO
INTERRUPÇÃO NO
NO PCI-BUS
PCI-BUS
Dispositivos
ISA
IRQ15
IRQ2
4 interrupções
IRQ0
IRQ1
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
Controlador 8259A
Primário
IRQ8
IRQ9(IRQ2)
IRQ10
Controlador 8259A
Secundário
Sinais de arbitragem (ligados ao
árbitro-PCI na ponte-norte)
INTA
Dispositivos
PCI
INTA
INTB
INTC
INTA
Advanced Programmable Interrupt Controller
INTA
INTB
CPU
INTA
INTB
10
INTERRUPÇÃO
INTERRUPÇÃO NO
NO PCI-BUS
PCI-BUS
a) Transição (edge-trigger)
TTL-driver. ISA
n
n
b) nível (level-triggered)
TTL – coletor-aberto. PCI
O circuito da direita é característico do barramento ISA.
Interrupção não compartilhável.
O circuito da esquerda é típico da interrupção do PCI. Vários
dispositivos podem compartilhar uma mesma interrupção.
DMA
DMA
n
n
n
n
Os métodos de gerenciamento de E/S programada e
controlada por interrupção apresentam um
inconveniente → o processador ainda é o responsável
por transferir os dados entre o dispositivo e a memória.
Em transferências que envolvem um grande volume de
dados o processador é muito requisitado para as
operações de E/S → queda na performance geral do
computador.
Exemplo: discos rígidos, adaptador de DVD, etc.
Solução → Acesso Direto à Memória (DMA).
11
DMA
DMA
n
n
Através do controlador de DMA uma interface pode ler
ou escrever diretamente na memória, SEM A
INTERVENÇÃO DO PROCESSADOR.
Durante a evolução da família de PCs surgiram três tipos
de arquitetura de DMA:
u1
controlador de DMA 8237:
l
u2
PC XT. Disponibilizava 4 canais de DMA
controladores 8237 em cascata:
l
PC AT. Disponibilizavam 7 canais de DMA
u DMA
l
via mestre do barramento.
a partir do 80486 e da implementação da transferência em rajada.
Operação
Operação de
de DMA
DMA (visão
(visão geral)
geral)
12
Canais
Canais de
de DMA
DMA
u Nos
PCs XT e AT até o
80386 cada dispositivo
que realizava DMA tinha
seu próprio par de linhas
DRQ/*DACK.
u Portanto, cada um destes
pares caracterizava um
Canal de DMA.
u No PC AT foram
utilizados 2 controladores
em cascata, oferecendo 7
canais de DMA.
Controle
Controle das
das transferências
transferências
u Cada
canal de DMA possui 16 registradores de controle.
u Os mais importantes para o controle das transferências são:
l
l
l
l
registrador de endereço base;
registrador de endereço corrente;
contador base;
contador corrente.
u Ao
realizar uma transferência entre a memória e o dispositivo, a
CPU informa ao controlador de DMA:
l
l
l
o endereço do dispositivo envolvido na transferência;
qual a operação a ser feita (entrada ou saída de dados);
o endereço de memória inicial e a quantidade de dados a serem transmitidos.
13
Controle
Controle das
das transferências
transferências
n
Ex.: supondo uma transferência de 10 dados do dispositivo de E/S
para a memória, no endereço inicial 1700(10).
Estado inicial
M
Estado final
Após 4 transferências
M
M
END. BASE =
1700
END. BASE =
1700
END. BASE =
1700
END. CORRENTE
= 1700
END. CORRENTE
= 1704
END. CORRENTE
= 1710
CONT. BASE = 9
CONT. BASE = 9
CONT. BASE = 9
CONT.
CORRENTE = 9
CONT.
CORRENTE = 5
CONT.
CORRENTE =
FFFF
M
M
M
Controle
Controle das
das transferências
transferências
n
n
n
O número armazenado nos registradores de contagem é
sempre igual ao número de dados a transferir menos 1.
Número de
transferências
Valor a ser programado
no contador
200
65536
1
199
65535
0
Quando o controlador de DMA faz a última transferência
o Contador Corrente passa de 0000 para FFFF(16).
Neste instante o controlador de DMA gera um sinal
chamado TC (Terminal Count), que indica o término da
transferência (interrompe o processador).
14
Configurações
Configurações de
de DMA
DMA
n
O mecanismo de
DMA pode ser
configurado de
diversas maneiras:
DMA
DMA via
via arbitragem
arbitragem do
do barramento
barramento
n
n
n
n
Usado nas arquiteturas mais modernas, o DMA via
arbitragem do barramento envolve controladores mais
evoluídos.
O controlador passa a fazer requisições não mais
diretamente ao processador, mas ao árbitro do
barramento.
Quando o árbitro libera o barramento o controlador tornase o seu mestre, colocando-se no lugar da CPU e
realizando a transferência dos dados diretamente para a
memória.
Técnica utilizada no barramento PCI.
15
Download

interrupção de hardware interrupção de hardware