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

28
Entrada e Saída Walter Fetter Lages [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

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

Page 1: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 2: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 3: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 4: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

Polling

Copyright (c) Walter Fetter Lages – p.4

Page 5: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 6: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

Interrupções

Copyright (c) Walter Fetter Lages – p.6

Page 7: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 8: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 9: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 10: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 11: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 12: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 13: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 14: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 15: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 16: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

Característica da Transferência

• Inicialização• Inicialização única• Reinicialização automática

• Prioridade• Fixa• Rotativa

Copyright (c) Walter Fetter Lages – p.16

Page 17: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 18: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 19: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 20: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 21: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 22: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

Níveis de Privilégio no ix86

Copyright (c) Walter Fetter Lages – p.22

Page 23: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 24: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

Verificação de Privilégios

Copyright (c) Walter Fetter Lages – p.24

Page 25: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

I/O Permission Bit Map

Copyright (c) Walter Fetter Lages – p.25

Page 26: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

Entradas e Saídas em Automação

• Digitais• Analógicas• Em tensão• Em corrente

Copyright (c) Walter Fetter Lages – p.26

Page 27: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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

Page 28: Entrada e Saída - GCAR - Grupo de Controle …fetter/ele00002/io.pdf• Arquitetura com barramentos de I/O e Memória • Independentes • Multiplexados • Arquitetura com barramento

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