Módulos de E/S

Propaganda
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO
DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS
CURSO DE CIÊNCIA DA COMPUTAÇÃO
Arquitetura e Organização de
Computadores
Módulos de E/S
Prof. Sílvio Fernandes
Introdução
• Além do processador e memória o sistema de
computação ainda possui os módulos de E/S
• Cada módulo se conecta ao barramento ou
comutador central e controla um ou mais
periféricos
2
Introdução
• Por que os periféricos não são conectados
diretamente no barramento do sistema?
– Existe uma grande variedade de periféricos, com
diversos métodos de operação
– A taxa de transferência de dados dos periféricos
normalmente é muito mais lenta (ou mais rápida)
do que a da memória ou do processador
– Os periféricos normalmente utilizam formatos de
dados e tamanhos diferentes
3
Introdução
• Módulo de E/S tem funções
– Interface com o processador e a memória por
meio do barramento do sistema ou comutador
central
– Interface com um ou mais dispositivos periféricos
por conexões de dados adequados
4
Modelo Geral de um Módulo de E/S
Barramento de Endereço
Barramento de Dados
Barramento de Controle
Módulo de E/S
Conexões com
Dispositivos
periféricos
5
Introdução
• Dispositivos Externos
– Legíveis ao ser humano:
• Monitor, impressora, teclado
– Legíveis à máquina:
• Monitoração e controle
– Comunicação:
• Modem
• Placa de interface de rede (NIC)
6
Introdução
• Dispositivos Externos
7
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
8
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 dispositivo
3. Se o dispositivo estiver em operação e pronto para
transmitir dados, o µP requisitará a transferência
enviando um comando para o mó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/S para o µP
9
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 pelos dispositivos
• 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 controlado
10
A Função Comunicação com
Dispositivos
Sinais de controle
Do módulo de E/S
(READ/WRITE)
Sinais de estado p/
o módulo de E/S
(READY/BUSY)
Lógica
De
Controle
Sinais de dados (bits) de
e para o módulo de E/S
Área de
armazenamento
temporário
Transdutor
Dados de e para o
ambiente
11
A Função Armazenamento Temporário
de Dados
• A transferência de dados da memória principal para 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 dispositivo numa taxa adequada
• No caminho oposto, os dados são também armazenados
temporariamente no módulo de E/S para não reter a
memória numa transferência de dados a baixa velocidade
• O módulo de E/S deve ser capaz de realizar operações
tanto à velocidade da memória quanto à do dispositivo
externo
12
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)
13
Estrutura Interna de um Módulo de E/S
Interface com o
barramento do sistema
Linhas
de
dados
Linhas
de
endereço
Linhas
de
controle
Interface com
Dispositivos externos
Registradores de dados
Registradores de estado/controle
Lógica de
interface
com
dispositivo
externo
Dados
Lógica de
interface
com
dispositivo
externo
Dados
Estado
Controle
.
.
.
Lógica
De
E/S
Estado
Controle
14
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)
15
E/S Programada
• Em um programa, a execução de uma instrução
relacionada a E/S faz com que um comando seja
enviado para o módulo de E/S
• O módulo de E/S executa a operação requisitada e
sinaliza o seu término carregando um valor no
registrador de estado
• Nenhuma ação é executada pelo módulo para alertar o
µP sobre o término da operação
• É responsabilidade do µP verificar periodicamente o
estado do módulo, para ver se a operação foi
completada
16
Não
pronto
Envia cmd de
leitura para o
módulo de E/S
µP → módulo de E/S
Lê o estado do
módulo de E/S
módulo de E/S → µP
Verifica
estado
Condição de erro
Pronto
Lê uma
palavra do
módulo de E/S → µP
módulo de E/S
Escreve uma
palavra na
memória
Não
E/S Programada
µP → memória
Terminou
?
Sim
Próxima instrução
17
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
18
E/S Mapeada na Memória
7 6 5 4 3 2 1 0
Como os programas
São executados?
Registrador de dados
de entrada do teclado
516
7 6 5 4 3 2 1 0
Registrador de controle e de estado
de entrada do teclado
517
1 – pronto
0 – ocupado
Atribuir “1” para iniciar a leitura
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
19
PC (Contador de Programa)
• O PC vai evoluindo instrução a instrução (mas os endereços das
memórias começam em 0 e não em 1).
• Após cada instrução, o PC contém o endereço da instrução seguinte.
• “Desviar” equivale a escrever um novo valor no PC.
soma
temp
0
1
2
3
4
5
6
7
EQU
EQU
40H
41H
(definição do endereço da variável soma)
(definição do endereço da variável temp)
M[soma]  0
M[temp]  N
Se (M[temp] < 0) PC  7
Se (M[temp] = 0) PC  7
M[soma]  M[soma] + M[temp]
M[temp]  M[temp] – 1
PC  3
PC  7
(inicializa soma com zero)
(inicializa temp com N)
(se temp for negativo, desvia para o fim)
(se temp for zero, desvia para o fim)
(adiciona temp à soma)
(decrementa temp)
(desvia para o endereço 3)
(fim do programa)
Fonte: DELGADO, J.; RIBEIRO, C. Arquitetura de Computadores. 2 ed. LTC, 2009.
Vamos somar!
Número de instruções executadas
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Valores após a execução da instrução (PC endereça a seguinte):
soma 6
0
3
5
0
1
2
4
5
6
3
PC 7
soma
temp
0
1
2
3
4
5
6
7
EQU
EQU
40H
41H
temp 0
3
2
1
(definição do endereço da variável soma)
(definição do endereço da variável temp)
M[soma]  0
M[temp]  N
Se (M[temp] < 0) PC  7
Se (M[temp] = 0) PC  7
M[soma]  M[soma] + M[temp]
M[temp]  M[temp] – 1
PC  3
PC  7
(inicializa soma com zero)
(inicializa temp com N)
(se temp for negativo, desvia para o fim)
(se temp for zero, desvia para o fim)
(adiciona temp à soma)
(decrementa temp)
(desvia para o endereço 3)
(fim do programa)
Já chega!!!!
Fonte: DELGADO, J.; RIBEIRO, C. Arquitetura de Computadores. 2 ed. LTC, 2009.
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
• Acesso aos dispositivos de E/S é feito através
de instruções especiais (comandos)
22
E/S Dirigida por Interrupção
• μP envia um comando de E/S para o módulo e
continua 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 depois retorna ao
seu processamento original
• É mais eficiente que a E/S programada, pois elimina
ciclos de espera desnecessários
23
Envia cmd de
leitura para o
módulo de E/S
Lê o estado do
módulo de E/S
µP → módulo de E/S
Executa outras
instruções
módulo de E/S → µP
Interrupção
Verifica
estado
Condição de erro
Pronto
Lê uma
palavra do
módulo de E/S → µP
módulo de E/S
Escreve uma
palavra na
memória
Não
E/S Dirigida
por Interrupção
µP → memória
Terminou
?
Sim
Próxima instrução
24
Processamento da Interrupção
Programa
principal
Salva conteúdo dos
registradores na pilha
de controle
Identifica a origem do
evento
Interrupção
ou exceção
Rotina de
tratamento
Obtém o endereço da
rotina de tratamento
Restaura o conteúdo
dos registradores
25
Processamento da Interrupção
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
26
Processamento da Interrupção
Y
PC
T
RTopo
Y
Início
N
N+1
T
Programa
de usuário
Y+L Retorno
Rotina de
tratamento
de interrupção
N+1
Pilha de
controle
27
Processamento da Interrupção
...
Y
PC
T-M
RTopo
Registradores
Y
Início
T-M
N
N+1
T-1
T
Programa
de usuário
Y+L Retorno
Rotina de
tratamento
de interrupção
N+1
Pilha de
controle
28
Processamento da Interrupção
...
Y+L
PC
T
RTopo
Registradores
Y
Início
T-M
N
N+1
T-1
T
Programa
de usuário
Y+L Retorno
Rotina de
tratamento
de interrupção
N+1
Pilha de
controle
29
Processamento da Interrupção
N+1
PC
Y
Início
N
N+1
T
Programa
de usuário
Y+L Retorno
Rotina de
tratamento
de interrupção
N+1
Pilha de
controle
30
Aspectos de Projeto
• Como identificar o módulo que emite a
interrupção?
• Como lidar com interrupções múltiplas?
– Ou seja, um tratador de interrupção sendo
interrompido
31
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 (pooling)
• Consome muito tempo 
– Daisy Chain - 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 
32
Identificação de Dispositivos
– múltiplas linhas de interrupção
INTR#0
INTR#1
...
μP
Módulo
de E/S
Dispositivo
Módulo
de E/S
Dispositivo
INTR#N
...
Módulo
de E/S
Dispositivo
33
Identificação de Dispositivos
– identificação por software
• Quando o μP detecta uma interrupção, ele desvia a
execução para uma rotina de tratamento de
interrupções
• Esta rotina interroga cada módulo de E/S, para
determinar qual deles causou a interrupção
– Metodologias de interrogação:
• Linha de teste especial (TEST I/O) + colocação de endereços dos
módulos no barramento de endereços
• Leitura de registradores de estado
• Identificado o módulo, sua rotina de tratamento de
interrupção específica é chamada
34
Identificação de Dispositivos
– identificação por hardware
Módulo
de E/S
μP
Módulo
de E/S
Módulo
de E/S
Módulo
de E/S
• O sinal de reconhecimento de interrupção se propaga pelos módulos de
E/S, até chegar àquele que originou a interrupção
• Esse módulo responde colocando uma palavra de dados, chamada vetor
de interrupção, nas linhas de dados
• O vetor de interrupção contém o endereço do módulo de E/S, e serve para
que o μP acione a rotina de tratamento de interrupção adequada ao
dispositivo
35
Identificação de Dispositivos
- arbitração do barramento
• Para enviar um sinal de interrupção, o módulo de E/S
precisa inicialmente obter o controle do barramento
• Quando o μP detecta a interrupção, ele responde por
meio da linha de reconhecimento de interrupção
• O módulo de E/S que causou a interrupção coloca seu
vetor na linha de dados
36
Interrupções Múltiplas
• Múltiplas linhas
– O processador apenas apanha a linha de interrupção
com a prioridade mais alta
• Verificação por Software
– A ordem em que os módulos são verificados
determina suas prioridades
• Daisy
– A ordem em que os módulos são verificados
determina suas prioridades
• Arbitração
– Centralizada ou distribuída
37
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 de
prioridade, ele é normalmente configurado com
um controlador de interrupções externo, o Intel
82C59A
• Os módulos de E/S são conectados ao 82C59A,
que por sua vez é conectado ao 80386
38
O Controlador Intel 82C59A
INTR
INTR
IR0
Módulo de E/S 00
IR1
Módulo de E/S 01
IR2
Módulo de E/S 02
INTA
IR7
...
...
INTA
Módulo de E/S 07
• Caso seja preciso controlar mais de oito módulos, pode
ser usado um arranjo em cascata – possibilitando
controlar até 64 módulos
39
O Controlador Intel 82C59A
40
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 acordo com
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
41
O Módulo de E/S Intel 82C55A
• Pode ser programado para E/S programada ou E/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 grupos
funcionam como 3 portas de E/S
– Nos demais modos, as linhas dos grupos A e B funcionam
como portas de E/S e as do grupo C como linhas de
controle para os grupos A e B
42
O Módulo de E/S Intel 82C55A
Registrador
de Dados
Barramento de
dados do 80386
Alimentação
Linhas de A0
endereço A1
Read
Write
Reset
CS
Barramento de 8 bits
8
8
8
4
+5V
Terra
4
Lógica
De
Controle
A
CA
CB
8
8
Registrador
de Controle
buffers
B
43
Requisição
de
interrupção
C3
Porta de
entrada
82C55A
Porta de
saída
Requisição
de
interrupção
C0
A0
A1
A2
A3
A4
A5
A6
A7
C4
C5
R0
R1
R2
R3
Teclado
R4
R5
Shift
Control
Data Ready
Acknowledge
B0
B1
B2
B3
B4
B5
B6
B7
C1
C2
C6
C7
S0
S1
Monitor
S2
de Vídeo
S3
S4
S5
Backspace
Clear
Data Ready
Acknowledge
Blanking
Clear Line
44
Acesso Direto à Memória (DMA)
• Envolve um módulo adicional no barramento do
sistema
• 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 seguintes
maneiras:
– Usando o barramento apenas quando o μP não o
utiliza
– Forçando o μP a suspender temporariamente sua
operação – técnica conhecida como roubo de ciclo
45
Roubo de Ciclo
Tempo
Ciclo de instrução
Ciclo do μP
Ciclo do μP
Ciclo do μP
Ciclo do μP
Ciclo do μP
Busca de
instrução
Decod.
de instrução
Busca de
operando
Execução de
instrução
Armazenam.
Proc. de
de resultado interrupção
Pontos de suspensão
de DMA
Ciclo do μP
Pontos de suspensão
de interrupção
46
Acesso Direto à Memória (DMA)
Envia cmd de leitura
para o controlador de
DMA
Lê o estado do
controlador DMA
µP → controlador DMA
Executa outras
instruções
Controlador DMA → µP
Interrupção
Próxima instrução
47
Estrutura Interna de Um Módulo DMA
Contador
de dados
Linhas de dados
Linhas de endereço
Registrador
de dados
Registrador
de endereços
DMA Request
DMA Acknowledgement
Interrupt
Read
Lógica
de
Controle
Write
48
Configurações de DMA
• Algumas possibilidades:
– Barramento único, DMA separado
– Barramento único, DMA-E/S integrados
– Barramento específico de E/S
49
Configurações de DMA
– Barramento Único, DMA separado
μP
DMA
E/S
...
E/S
Memória
• Barata 
• Ineficiente – a transferência de cada palavra
consome vários ciclos de barramento 
50
Configurações de DMA
- Barramento Único, DMA-E/S Integrados
μP
DMA
DMA
Memória
E/S
E/S
E/S
• Custosa 
• Eficiente 
51
Configurações de DMA
- Barramento Específico de E/S
Barramento do sistema
μP
DMA
Memória
Barramento de E/S
E/S
E/S
E/S
• Custosa 
• Eficiente 
52
Controlador DMA Intel 8237A
• Interfaces com família 80x86 e DRAM
• Quando o módulo de DMA precisa de
barramentos, ele envia sinal HOLD ao
processador.
• CPU responde HLDA (hold acknowledge) .
• Módulo de DMA pode usar barramentos.
53
Controlador DMA Intel 8237A
2/6
3
1
4
5
54
Controlador DMA Intel 8237A
• Ex: transferir dados da memória para o disco
1. Dispositivo requisita serviço de DMA levantando
DREQ (requisição de DMA).
2. DMA levanta sua linha HRQ (hold request).
3. CPU termina ciclo de barramento presente (não
necessariamente instrução presente) e levanta
linha HDLA HDLA (hold acknowledge). HOLD
permanece ativo pela duração do DMA.
55
Controlador DMA Intel 8237A
• Ex: transferir dados da memória para o disco
4. DMA ativa DACK (DMA acknowledge), dizendo
ao dispositivo para iniciar a transferência.
5. DMA inicia transferência colocando endereço do
primeiro byte no barramento de endereço e
ativando MEMR; depois, ativa IOW para escrever
no periférico. DMA decrementa contador e
incrementa ponteiro de endereço. Repete até
contagem chegar a zero.
6. DMA desativa HRQ, retornando o controle do
barramento de volta à CPU
56
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, e executa
programas de E/S carregados da memória principal
6. O canal evolui para um processador, possuindo sua
própria memória local
57
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
58
Canal Seletor
Memória
principal
Canal
Seletor
μP
Módulo
de E/S
dispositivo
Módulo
de E/S
dispositivo
dispositivo
59
Canal Multiplexador
Memória
principal
Canal
Multiplexador
μP
Módulo
de E/S
dispositivo
dispositivo
Módulo
de E/S
dispositivo
Módulo
de E/S
dispositivo
60
Referências
• STALLINGS, W. Arquitetura e organização de
computadores: projeto para o desempenho. 8.
ed. Prentice Hall, 2009.
• DELGADO, J.; RIBEIRO, C. Arquitetura de
Computadores. 2 ed. LTC, 2009.
• PATTERSON, D. A. ; HENNESSY, J.L. Organização
e projeto de computadores – a interface
hardware software. 3. ed. Editora Campus,
2005.
61
Download