Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos...
-
Upload
duongquynh -
Category
Documents
-
view
218 -
download
0
Transcript of Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos...
Entrada e SaídaWalter Fetter [email protected]
Universidade Federal do Rio Grande do Sul
Escola de Engenharia
Departamento de Engenharia Elétrica
Programa de Pós-Graduação em Engenharia Elétrica
ELE0002 Sistemas de Automação
Copyright (c) Walter Fetter Lages – p.1
Introdução
• Sistemas de tempo real usualmente tem comoobjetivo o controle de dispositivos de I/O
• Acessos a dispositivos de I/O usualmentepossuem exigências de temporização
• Diferentes perspectivas do hardware• Interface física• Interface de programação
• Device drivers• Dispositivos de caractere• Dispositivos de bloco
Copyright (c) Walter Fetter Lages – p.2
Mecanismos de I/O
• Programmed I/O (PIO)• Polling• Arquitetura com barramentos de I/O e
Memória• Independentes• Multiplexados
• Arquitetura com barramento único• I/O mapeado em memória
• Instruções privilegiadas• Interrupções• Acesso direto à memória (DMA)• Chanal de I/O
Copyright (c) Walter Fetter Lages – p.3
Polling
Copyright (c) Walter Fetter Lages – p.4
PIO
• Menor latência possível• Alta carga para a CPU• Pouco overhead• Em sistemas multitarefa pode-se ter uma tarefa
exclusivamente para fazer o polling• Do ponto de vista das outras tarefas é
semelhante a uma interrupção• Hardware mais simples• Boa previsibilidade temporal
Copyright (c) Walter Fetter Lages – p.5
Interrupções
Copyright (c) Walter Fetter Lages – p.6
Interrupções
• Mascaráveis• Podem ser desabilitadas
• Não mascaráveis• Não podem ser desabilitadas
• Ativas por borda• Solicitação ativa quando ocorre transição
(subida ou descida) do sinal• Ativas por nível
• Solicitação ativa quando o sinal está em umdeterminado nível (alto ou baixo)
Copyright (c) Walter Fetter Lages – p.7
Interrupções
• Latência• Tempo entre a solicitação de interrupção e o
início da rotina de tratamento• Aninhamento
• Se o sistema permite aninhamento deinterrupções, rotinas de tratamenteo deinterrupções podem ser interrompidas
• Prioridade• Interrupções de maior prioridade interrompem
as rotinas de tratamento das interrupções demenor prioridade
Copyright (c) Walter Fetter Lages – p.8
Tipos de Interrupções
• Interrupções (dehardware)• Exceções
• Geradas internamente pelo processador• Interrupções de software
• Concebidas para testar as rotinas detratamento de interrupção
• Interface com o sistema operacional
Copyright (c) Walter Fetter Lages – p.9
Exceções
• Faltas• Gerada antes da execução da instrução• No retorno da rotina de tratamento, a
instrução que causo a falta é re-executada• Traps
• Gerada após a execução da instrução• Abortos
• Não permitem o reinício da execução• Erros dehardware• Inconsistência nas tabelas de sistema
Copyright (c) Walter Fetter Lages – p.10
Interrupções
• Latência dependente da arquitetura da CPU e dosoftware de tratamento de interrupção
• Baixa carga para a CPU• Overhead considerável se o tratamento de I/O for
simples
Copyright (c) Walter Fetter Lages – p.11
Tratamento de Interrupções
• Chaveamento de contexto• Preserva o estado da tarefa que estava
executandoBásico Apenas o contador de programa é
salvo/restauradoParcial Contador de programa e alguns
registradores são salvosCompleto
• Vetor de interrupção• Eventualmente utilizado para priorização
Copyright (c) Walter Fetter Lages – p.12
Tratamento de Interrupções
• Compartilhamento• Encadeamento de rotinas de tratamento• Identificação do dispositivo
• Escalonamento• Interrupções rápidas• Reescalonamento
• Botton-halves• Interrupção faz um pré-tratamento imediato e
marca um bottom-half para fazer ohouse-keeping
Copyright (c) Walter Fetter Lages – p.13
Acesso Direto à Memória
• O controlador de DMA assume o controle dobarramento e faz a transferência
• Interrupções são frequentemente utilizadasjuntamente com DMA, para sinalizar o fim datransferência de um bloco de dados
Copyright (c) Walter Fetter Lages – p.14
Modos de Transferência
• Transferência única• Uma transferência a cada requisição
• Transferência em bloco• Um bloco transferido por requisição
• Transferência por demanda• Transferências enquanto a requisição estiver
ativa• Transferência memória-memória
Copyright (c) Walter Fetter Lages – p.15
Característica da Transferência
• Inicialização• Inicialização única• Reinicialização automática
• Prioridade• Fixa• Rotativa
Copyright (c) Walter Fetter Lages – p.16
DMA
• Baixa carga para a CPU• Baixo overhead• Não se presta para I/O interativo• Frequentemente utilizado com interrupções para
sinalizar o fim da transferência de um bloco dedados
• Uso de DMA pode comprometer aprevisibilidade do sistema de tempo real
Copyright (c) Walter Fetter Lages – p.17
Canais de I/O
• Processador de I/O que faz a interface com osdispositivos
• Processador de I/O executa um programacarregado pela CPU principal
• Baixa carga para a CPU• Baixo overhead• Baixa latência• Se a memória de código for compartilhada com a
CPU causa imprevisibilidade
Copyright (c) Walter Fetter Lages – p.18
Drivers de Dispositivos
• Fornecem uma interface uniforme para os níveissuperiores do software• Definem um conjunto de operações que
devem/podem ser suportadas• Mapeamento das operações suportadas pelo
driver nas operações suportadas pelodispositivo
• Virtualização de dispositivos de I/O• Através do driver• Hardware Abstraction Layer
Copyright (c) Walter Fetter Lages – p.19
Relógio
• Manter hora• Temporizar o chaveamento de tarefas• Registrar o uso da CPU• Profiling• Time-stamping de mensagens
Copyright (c) Walter Fetter Lages – p.20
Temporizadores
• Usualmente em sistemas de tempo real tarefasprecisam ser executadas em instantes específicos
• Hardware• Simulados em software
• Lista ligada ordenada por instante deexpiração
• Watchdog
Copyright (c) Walter Fetter Lages – p.21
Níveis de Privilégio no ix86
Copyright (c) Walter Fetter Lages – p.22
Proteção de I/O no ix86
• Existe um nível de privilégio de I/O• Apenas processos com nível de privilégio
menor ou igual podem executar instruções deI/O
• Associado a cada processo pode existir umbitmap de permissões de I/O• Apenas as portas habilitadas podem ser
acessadas• Hardware Virtual
• Virtualização de dispositivos
Copyright (c) Walter Fetter Lages – p.23
Verificação de Privilégios
Copyright (c) Walter Fetter Lages – p.24
I/O Permission Bit Map
Copyright (c) Walter Fetter Lages – p.25
Entradas e Saídas em Automação
• Digitais• Analógicas• Em tensão• Em corrente
Copyright (c) Walter Fetter Lages – p.26
Entradas e Saídas Digitais
• Em tensão• TTL
• 0-5V• Coletor Aberto
• Tensão variável (usualmente 0-30V)• Útil para implementarwired-or
• Isolamento óptico• Em corrente
• Usualmente 0-20mA• A Relé
• Normalmente aberto• Normalmente fechado
Copyright (c) Walter Fetter Lages – p.27
Entradas e Saídas Analógicas
• Em tensão• Unipolar• Bipolar• Usualmente 5, 12, 24 ou 30V• Geralmente a tensão máxima é superior à
faixa de operação• Entrada para termopar
• Em corrente• Usualmente 0-20mA
• Single-end• Diferencial• Em largura de pulso (PWM)
Copyright (c) Walter Fetter Lages – p.28