Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos...

Post on 09-Dec-2018

218 views 0 download

Transcript of Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos...

Entrada e SaídaWalter Fetter Lagesw.fetter@ieee.org

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