UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO … · meio do barramento do sistema ou comutador central...
Transcript of UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO … · meio do barramento do sistema ou comutador central...
Arquitetura e Organização de Computadores
Módulos de E/S
Prof. Sílvio Fernandes
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS
CURSO DE CIÊNCIA DA COMPUTAÇÃO
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
Módulo de E/S
Barramento de Endereço
Barramento de Dados
Barramento de Controle
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
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
11
Área de armazenamento
temporário
Transdutor
Lógica De
Controle
Sinais de controle Do módulo de E/S (READ/WRITE)
Sinais de estado p/ o módulo de E/S (READY/BUSY)
Sinais de dados (bits) de e 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 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
14
Lógica de interface
com dispositivo
externo
Lógica de interface
com dispositivo
externo
Lógica De E/S
Registradores de dados
Registradores de estado/controle
Linhas de
dados
Linhas de
endereço
Linhas de
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)
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
E/S Programada 17
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 pronto
Não
Sim Pró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
18
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
19
7 6 5 4 3 2 1 0
Registrador de dados de entrada do teclado
516
7 6 5 4 3 2 1 0
517 Registrador de controle e de estado de entrada do teclado
Atribuir “1” para iniciar a leitura 1 – pronto 0 – ocupado
Como os programas São executados?
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 EQU 40H (definição do endereço da variável soma) temp EQU 41H (definição do endereço da variável temp) 0 M[soma] 0 (inicializa soma com zero) 1 M[temp] N (inicializa temp com N) 2 Se (M[temp] < 0) PC 7 (se temp for negativo, desvia para o fim) 3 Se (M[temp] = 0) PC 7 (se temp for zero, desvia para o fim) 4 M[soma] M[soma] + M[temp] (adiciona temp à soma) 5 M[temp] M[temp] – 1 (decrementa temp) 6 PC 3 (desvia para o endereço 3) 7 PC 7 (fim do programa)
Fonte: DELGADO, J.; RIBEIRO, C. Arquitetura de Computadores. 2 ed. LTC, 2009.
Vamos somar!
0
0 PC soma temp
Número de instruções executadas
soma EQU 40H (definição do endereço da variável soma) temp EQU 41H (definição do endereço da variável temp) 0 M[soma] 0 (inicializa soma com zero) 1 M[temp] N (inicializa temp com N) 2 Se (M[temp] < 0) PC 7 (se temp for negativo, desvia para o fim) 3 Se (M[temp] = 0) PC 7 (se temp for zero, desvia para o fim) 4 M[soma] M[soma] + M[temp] (adiciona temp à soma) 5 M[temp] M[temp] – 1 (decrementa temp) 6 PC 3 (desvia para o endereço 3) 7 PC 7 (fim do programa)
0
1
1
Valores após a execução da instrução (PC endereça a seguinte):
0 3
2
2 0 3
3
3 0 3
4
4 3 3
5
5 3 2
6
6 3 2
7
3 3 2
8
4 5 2
9
5 5 1
10
6 5 1
11
3 5 1
12
4 6 1
13
5 6 0
14
6 6 0
15
3 6 0
16
7 6 0
17
7 6 0
18
7 6 0
19
7 6 0
20
7
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
22
• Acesso aos dispositivos de E/S é feito através de instruções especiais (comandos)
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
24
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 outras instruções
Interrupção
E/S Dirigida por Interrupção
Próxima instrução
Processamento da Interrupção
25
Interrupção
ou exceção
Salva conteúdo dos
registradores na pilha
de controle
Identifica a origem do
evento
Obtém o endereço da
rotina de tratamento
Restaura o conteúdo
dos registradores
Programa
principal
Rotina de
tratamento
Processamento da Interrupção
26
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
27
Y
N
N+1
Retorno
N+1 T
Y
Y+L
Programa de usuário
Rotina de tratamento
de interrupção
Pilha de controle
PC
T
RTopo
28
Início
Processamento da Interrupção
28
Y
N
N+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
RTopo Registradores
T ...
T-1
29 29
Início
Processamento da Interrupção
29
Y+L
N
N+1
Retorno
N+1
T-M
Y
Y+L
Programa de usuário
Rotina de tratamento
de interrupção
Pilha de controle
PC
T
RTopo Registradores
T ...
T-1
30 30 30
Início
Processamento da Interrupção
30
N+1
N
N+1
Retorno
N+1
Y
Y+L
Programa de usuário
Rotina de tratamento
de interrupção
Pilha de controle
PC
T
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
33
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 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
• 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
Módulo de E/S
Módulo de E/S
Módulo de E/S
μP Módulo de E/S
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
• Caso seja preciso controlar mais de oito módulos, pode
ser usado um arranjo em cascata – possibilitando
controlar até 64 módulos 39
IR0 INTR
Módulo de E/S 00
Módulo de E/S 01 IR1
Módulo de E/S 02 IR2
Módulo de E/S 07 IR7 ...
... 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 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
43
Lógica De
Controle
Registrador de Dados
Registrador de Controle
Read Write Reset
CS
A0 A1
Linhas de endereço
Barramento de 8 bits
buffers
8
8
8
4
4
8
8
Alimentação +5V Terra
Barramento de dados do 80386
A
B
CA
CB
44
R0 R1 R2 R3 R4 R5 Shift Control Data Ready Acknowledge
Teclado
S0 S1 S2 S3 S4 S5 Backspace Clear Data Ready Acknowledge Blanking Clear Line
Monitor de Vídeo
82C55A
A0 A1 A2 A3 A4 A5 A6 A7 C4 C5
B0 B1 B2 B3 B4 B5 B6 B7 C1 C2 C6 C7
Porta de entrada
Porta de saída
Requisição de
interrupção
C3
Requisição de
interrupção
C0
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
46
Busca de instrução
Decod. de instrução
Busca de operando
Execução de instrução
Armazenam. de resultado
Proc. de interrupçã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ão de DMA
Pontos de suspensão de interrupção
Acesso Direto à Memória (DMA)
47
Envia cmd de leitura para o controlador de
DMA
Lê o estado do controlador DMA
µP → controlador DMA
Controlador DMA → µP
Próxima instrução
Executa outras instruções
Interrupção
Estrutura Interna de Um Módulo DMA
48
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
49
Configurações de DMA – Barramento Único, DMA separado
• Barata
• Ineficiente – a transferência de cada palavra consome vários ciclos de barramento
50
μP DMA E/S E/S Memória ...
Configurações de DMA - Barramento Único, DMA-E/S Integrados
• Custosa
• Eficiente
51
μP DMA
E/S E/S
Memória
E/S
DMA
Configurações de DMA - Barramento Específico de E/S
52
μP
E/S E/S
Memória
E/S
DMA
• Custosa
• Eficiente
Barramento do sistema
Barramento de E/S
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
• 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
59
Canal Seletor
Módulo de E/S
Módulo de E/S
dispositivo dispositivo dispositivo
Memória principal
μP
Canal Multiplexador
60
Canal Multiplexador
Módulo de E/S
Módulo de E/S
dispositivo
dispositivo
dispositivo
Memória principal
μP
Módulo de E/S
dispositivo
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