arquitetura de computadores - módulos de e/s - por que usar módulos de e/s?...
TRANSCRIPT
Modelo Geral de um Módulo de E/S
Módulo de E/S
Barramento de Endereço
Barramento de Dados
Barramento de Controle
Conexões com Dispositivosperiféricos 2
Por que usar Módulos de E/S?
• Há uma grande variedade de periféricos, comdiferentes mecanismos de operação– É impraticável incorporar ao µP a lógica necessária
para controlar vários dispositivos diferentes
• A taxa de transferência de dados dos periféricos érelativamente baixa– Não faz sentido usar barramentos de alta velocidade
para comunicação direta com um periférico
• Os periféricos usam freqüentemente formatos dedados e tamanhos de palavras diferentes dosusados internamente à máquina
3
Funções de um Módulo de E/S
• Controle e Temporização
• Comunicação com o µP
• Comunicação com dispositivos
• Área de armazenamento temporário de dados
• Detecção de erros
4
Exemplo da Função Controle e Temporização
1. O µP interroga o módulo de E/S para verificar o estado do dispositivo
2. O módulo retorna o estado do dispositivo3. Se o dispositivo estiver em operação e pronto
para transmitir dados, o µP requisitará atransferência enviando um comando para omódulo de E/S
4. O módulo de E/S obtém uma unidade de dados(p.ex., 8 ou 16 bits) do dispositivo
5. Os dados são transferidos do módulo de E/Spara o µP
5
Tópicos Envolvidos na Função Comunicação com o µP
• Decodificação de comandos– Conversão entre sinais transmitidos através do
barramento de controle e comandos usados pelosdispositivos
• Dados– São transferidos entre o µP e o módulo de E/S através
do barramento de dados
• Informação de estado– Lentidão dos periféricos faz com que seja importante
conhecer o estado do módulo de E/S
• Reconhecimento de endereço– O módulo de E/S deve reconhecer um endereço
distinto para cada periférico controlado6
A Função Comunicação com Dispositivos
7
Área de armazenamento
temporário
Transdutor
LógicaDe
Controle
Sinais de controleDo módulo de E/S(READ/WRITE)
Sinais de estado p/o módulo de E/S (READY/NOT READY)
Sinais de dados (bits) dee para o módulo de E/S
Dados de e para o ambiente
A Função Armazenamento Temporário de Dados
• A transferência de dados da memória principalpara o módulo de E/S é feita rapidamente– Esses dados são temporariamente armazenados no
módulo de E/S e então enviados para o dispositivonuma taxa adequada
• No caminho oposto, os dados são tambémarmazenados temporariamente no módulo deE/S para não reter a memória numa transferênciade dados a baixa velocidade
• O módulo de E/S deve ser capaz de realizaroperações tanto à velocidade da memória quantoà do dispositivo externo
8
A Função Detecção de Erros
• Erros possíveis:
– Mau funcionamento elétrico ou mecânico
• Falha de alimentação de papel
• Trilha de disco defeituosa
• etc
– Alterações no padrão de bits transmitidos por um dispositivo para o módulo de E/S
• Bits de paridade (p.ex., 8º bit em 1 Byte contendo um caractere ASCII)
9
Estrutura Interna de um Módulo de E/S
10
Lógica de interface
com dispositivo
externo
Lógica de interface
com dispositivo
externo
LógicaDeE/S
Registradores de dados
Registradores de estado/controle
Linhasde
dados
Linhasde
endereço
Linhasde
controle
Dados
Estado
Controle
Dados
Estado
Controle
Interface com o barramento do sistema
Interface com Dispositivos externos
Técnicas Usadas para E/S
Sem Interrupções Com Interrupções
Transferência entre memória e E/S por meio do µP
E/S programada E/S dirigida por interrupção
Transferência direta entre memória e E/S
- Acesso Direto à Memória(DMA)
11
E/S Programada
• Em um programa, a execução de uma instruçãorelacionada a E/S faz com que um comando sejaenviado para o módulo de E/S
• O módulo de E/S executa a operação requisitadae sinaliza o seu término carregando um valor noregistrador de estado
• Nenhuma ação é executada pelo módulo paraalertar o µP sobre o término da operação
• É responsabilidade do µP verificarperiodicamente o estado do módulo, para ver sea operação foi completada
12
E/S Programada 13
Envia cmd de leitura para o
módulo de E/S
Lê o estado do módulo de E/S
Lê uma palavra do
módulo de E/S
Escreve uma palavra na memória
Verifica estado
Terminou?
µP → módulo de E/S
módulo de E/S → µP
Condição de erro
módulo de E/S → µP
µP → memória
Pronto
Nãopronto
Não
SimPróxima instrução
Endereçamento de dispositivos de E/S
• E/S mapeada na memória– Há um único espaço de endereçamento para posições
de memória e dispositivos de E/S
– Exemplo:• Endereçamento de Byte
• Endereços de 10 bits → 1024 Bytes– Endereços 0-511: memória principal
– Endereços 512-1023: dispositivos de E/S
• E/S independente– Espaço de endereçamento de E/S é independente do
espaço de endereçamento da memória
14
E/S Mapeada na Memória
ENDEREÇO INSTRUÇÃO OPERANDO COMENTÁRIO
200 Carregar acumulador “1”
201 Armazenar acumulador 517 Iniciar leitura do teclado
202 Carregar acumulador 517 Obter byte de estado
203 Desviar se sinal = 0 202 Repetir até que esteja pronto
204 Carregar o acumulador 516 Carregar byte de dados
15
7 6 5 4 3 2 1 0
Registrador de dados de entrada do teclado
516
7 6 5 4 3 2 1 0
517Registrador de controle e de estadode entrada do teclado
Atribuir “1” para iniciar a leitura1 – pronto0 – ocupado
E/S Independente
ENDEREÇO INSTRUÇÃO OPERANDO COMENTÁRIO
200 Iniciar E/S 5 Iniciar leitura do teclado
201 Testar E/S 5 Testar se a operação foi completada
202 Desviar se não pronto 201 Repetir até que seja completada
203 Leitura 5 Carregar byte de dados
16
• Acesso aos dispositivos de E/S é feito atravésde instruções especiais (comandos)
E/S Dirigida por Interrupção
• μP envia um comando de E/S para o módulo econtinua a executar outras instruções
• O módulo de E/S interrompe o μP quando ele(módulo) estiver pronto para trocar dados
• μP efetua a transferência de dados e depoisretorna ao seu processamento original
• É mais eficiente que a E/S programada, poiselimina ciclos de espera desnecessários
17
18
Envia cmd de leitura para o
módulo de E/S
Lê o estado do módulo de E/S
Lê uma palavra do
módulo de E/S
Escreve uma palavra na memória
Verifica estado
Terminou?
µP → módulo de E/S
módulo de E/S → µP
Condição de erro
módulo de E/S → µP
µP → memória
Pronto
Não
Sim
Executa outrasinstruções
Interrupção
E/S Dirigidapor Interrupção
Próxima instrução
Processamento da Interrupção
19
Módulo de E/S envia uma interrupção
μP termina execução da instrução corrente
μP reconhece a interrupção
μP armazena PSW e PC na pilha de controle
μP carrega novo valor no PC, conforme interrupção
Demais informações de estado são armazenadas
Processamento da interrupção
Informações de estado do processo são restauradas
Antigos valores de PSW e PC são restaurados
Hardware
Software
Início
Processamento da Interrupção
20
Y
NN+1
Retorno
N+1T
Y
Y+L
Programa de usuário
Rotina de tratamento
de interrupção
Pilha de controle
PC
T
RTopo
21
Início
Processamento da Interrupção
21
Y
NN+1
Retorno
N+1
T-M
Y
Y+L
Programa de usuário
Rotina de tratamento
de interrupção
Pilha de controle
PC
T-M
RTopoRegistradores
T...
T-1
2222
Início
Processamento da Interrupção
22
Y+L
NN+1
Retorno
N+1
T-M
Y
Y+L
Programa de usuário
Rotina de tratamento
de interrupção
Pilha de controle
PC
T
RTopoRegistradores
T...
T-1
232323
Início
Processamento da Interrupção
23
N+1
NN+1
Retorno
N+1
Y
Y+L
Programa de usuário
Rotina de tratamento
de interrupção
Pilha de controle
PC
T
Identificação de Dispositivos
• Técnicas utilizadas:– Múltiplas linhas de interrupção
• Na prática, poucas linhas de μP são usadas para solicitação de interrupções
– Identificação por software• Consome muito tempo
– Identificação por hardware (vetorada)• Consome menos tempo que a identificação por SW
– Arbitração do barramento (vetorada)• Consome menos tempo que a identificação por SW
24
Identificação de Dispositivos – múltiplas linhas de interrupção
25
Módulo de E/S
Dispositivo
Módulo de E/S
Dispositivo
Módulo de E/S
Dispositivo
μP ...
...INTR#0
INTR#1
INTR#N
Identificação de Dispositivos – identificação por software
• Quando o μP detecta uma interrupção, ele desviaa execução para uma rotina de tratamento deinterrupções
• Esta rotina interroga cada módulo de E/S, paradeterminar qual deles causou a interrupção– Metodologias de interrogação:
• Linha de teste especial (TEST I/O) + colocação de endereçosdos módulos no barramento de endereços
• Leitura de registradores de estado
• Identificado o módulo, sua rotina de tratamentode interrupção específica é chamada
26
Identificação de Dispositivos – identificação por hardware
• O sinal de reconhecimento de interrupção se propaga pelosmódulos de E/S, até chegar àquele que originou a interrupção
• Esse módulo responde colocando uma palavra de dados, chamadavetor de interrupção, nas linhas de dados
• O vetor de interrupção contém o endereço do módulo de E/S, eserve para que o μP acione a rotina de tratamento de interrupçãoadequada ao dispositivo
27
Módulo de E/S
Módulo de E/S
Módulo de E/S
μPMódulo de E/S
Identificação de Dispositivos- arbitração do barramento
• Para enviar um sinal de interrupção, o módulode E/S precisa inicialmente obter o controledo barramento
• Quando o μP detecta a interrupção, eleresponde por meio da linha dereconhecimento de interrupção
• O módulo de E/S que causou a interrupçãocoloca seu vetor na linha de dados
28
O Controlador Intel 82C59A
• O Intel 80386 possui:– Uma única linha de requisição de interrupção (INTR)
– Uma única linha de reconhecimento de interrupção(INTA)
• Para manipular vários dispositivos e estruturas deprioridade, ele é normalmente configurado comum controlador de interrupções externo, o Intel82C59A
• Os módulos de E/S são conectados ao 82C59A,que por sua vez é conectado ao 80386
29
O Controlador Intel 82C59A
• Caso seja preciso controlar mais de oito módulos,pode ser usado um arranjo em cascata –possibilitando controlar até 64 módulos
30
IR0INTR
Módulo de E/S 00
Módulo de E/S 01IR1
Módulo de E/S 02IR2
Módulo de E/S 07IR7...
...INTR
INTA INTA
O Controlador Intel 82C59A
• O 82C59A é programável
• Modos de programação possíveis:– Totalmente aninhado
• As requisições de interrupção são ordenadas de acordocom as prioridades de 0 (IR0) a 7 (IR7)
– Circular• Num mesmo grupo de dispositivos, aquele que foi mais
recentemente atendido recebe a prioridade mais baixa
– Máscara especial• Possibilita ao μP inibir interrupções de determinados
dispositivos
31
O Módulo de E/S Intel 82C55A
• Pode ser programado para E/S programada ouE/S dirigida por interrupção
• Como interface externa para dispositivos,possui 3 grupos de linhas de 8 bits (A, B e C)
– Em um modo de operação específico, os 3 gruposfuncionam como 3 portas de E/S
– Nos demais modos, as linhas dos grupos A e Bfuncionam como portas de E/S e as do grupo Ccomo linhas de controle para os grupos A e B
32
O Módulo de E/S Intel 82C55A
33
LógicaDe
Controle
Registradorde Dados
Registradorde Controle
ReadWriteReset
CS
A0A1
Linhas deendereço
Barramento de 8 bits
buffers
8
8
8
4
4
8
8
Alimentação+5VTerra
Barramento de dados do 80386
A
B
CA
CB
34
R0R1R2R3R4R5ShiftControlData ReadyAcknowledge
Teclado
S0S1S2S3S4S5BackspaceClearData ReadyAcknowledgeBlankingClear Line
Monitorde Vídeo
82C55A
A0A1A2A3A4A5A6A7C4C5
B0B1B2B3B4B5B6B7C1C2C6C7
Porta deentrada
Porta desaída
Requisiçãode
interrupção
C3
Requisiçãode
interrupção
C0
Acesso Direto à Memória (DMA)
• Envolve um módulo adicional no barramento dosistema
• Esse módulo, denominado controlador de DMA,imita o μP nas funções de E/S de dados
• O controlador de DMA pode operar das seguintesmaneiras:– Usando o barramento apenas quando o μP não o
utiliza
– Forçando o μP a suspender temporariamente suaoperação – técnica conhecida como roubo de ciclo
35
Roubo de Ciclo
36
Busca de instrução
Decod.de instrução
Busca deoperando
Execução deinstrução
Armazenam.de resultado
Proc. deinterrupção
Ciclo do μP Ciclo do μP Ciclo do μP Ciclo do μP Ciclo do μP Ciclo do μP
Ciclo de instrução
Tempo
Pontos de suspensãode DMA
Pontos de suspensãode interrupção
Acesso Direto à Memória (DMA)
37
Envia cmd de leitura para o
módulo de E/S
Lê o estado do controlador DMA
µP → controlador DMA
Controlador DMA → µP
Próxima instrução
Executa outrasinstruções
Interrupção
Estrutura Interna de Um Módulo DMA
38
Contador de dados
Registrador de dados
Registrador de endereços
Lógica de
Controle
DMA Request
DMA Acknowledgement
Interrupt
Read
Write
Linhas de endereço
Linhas de dados
Configurações de DMA
• Algumas possibilidades:
– Barramento único, DMA separado
– Barramento único, DMA-E/S integrados
– Barramento específico de E/S
39
Configurações de DMA – Barramento Único, DMA separado
• Barata
• Ineficiente – a transferência de cada palavraconsome vários ciclos de barramento
40
μP DMA E/S E/S Memória...
Configurações de DMA - Barramento Único, DMA-E/S Integrados
• Custosa
• Eficiente
41
μP DMA
E/S E/S
Memória
E/S
DMA
Configurações de DMA- Barramento Específico de E/S
42
μP
E/S E/S
Memória
E/S
DMA
• Custosa
• Eficiente
Barramento do sistema
Barramento de E/S
Evolução: canais e processadores de E/S
1. μP controla diretamente dispositivos
2. Módulos de E/S são adicionados
3. Interrupções são utilizadas
4. É introduzido o módulo de DMA
5. O módulo de E/S evolui para um canal, eexecuta programas de E/S carregados damemória principal
6. O canal evolui para um processador, possuindosua própria memória local
43
Tipos de Canais
• Seletores
– Dedicam-se à transferência de dados apenas com um único dispositivo por vez
• Multiplexadores
– Transferem dados de/para vários dispositivos simultaneamente
44
Canal Seletor
45
CanalSeletor
Módulo de E/S
Módulo de E/S
dispositivo dispositivo dispositivo
Memóriaprincipal
μP