Conceito Uma das características básicas necessária de um computador é a capacidade de trocar dados com o mundo exterior (dispositivos periféricos). Para tornar os sinais internos à máquina compatíveis, elétrica e temporalmente, com os dos mundo exterior, fazem-se necessários circuitos especiais denominados interfaces de entrada e saída. EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 276
Capítulo 7 - Interface de Entrada e Saída Estratégias de alocação de endereços para E/S É possível distinguir duas organizações básicas do espaço de endereçamento do processador associado às interfaces de E/S: E/S Isolada. O espaço de endereçamento reservado a E/S é disjunto do da memória. Como características marcantes desta organização têmse Barramentos de Endereços para Memória e para E/S logicamente distintos; e instruções específicas para E/S. E/S Mapeada em Memória. Memória e E/S compartilham o mesmo espaço de endereçamento. Como características marcantes desta organização têm-se um único (físico e lógico) Barramento de Endereços; e não há distinção entre instruções de acesso à memória e as interfaces de E/S. EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 277
Modelo lógico das Interfaces de E/S Para um programador (e portanto também para a CPU) uma interface de E/S é vista como um conjunto de registradores (células de armazenamento), divididos em 3 classes distintas: Registrador(es) de Controle (utilizados para escrita). O conteúdo deste(s) registrador(es) define(m) o modo de operação da interface. Registrador(es) de Dados. Este(s) registrador(es) é(são) utilizado(s) para o armazenamento temporário de forma a melhor acomodar o fluxo de dados entre computador e dispositivo. Registrador(es) de estado (utilizados para a leitura). Este(s) registrador(es) indica(m) o estado do dispositivo e/ou da interface e pode(m) ser utilizado(s) para controlar a dinâmica da transferência. EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 278
Modelo lógico das Interfaces de E/S Registradores internos Programa (entrada) EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 279
Interface Elétrica (há grande diversidade) Exemplos Entrada EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 280
Interface Elétrica Exemplos Saída EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 281
Interface Síncrona (família 6800) EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 282
Interface Síncrona (família 6800) EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 283
Interface Síncrona (família 6800) EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 284
Interface Interface Síncrona e Barramento Assíncrono do 68000 (família 6800) EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 285
Interface Interface Síncrona e Barramento Assíncrono do 68000 (família 6800) EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 286
Tipos de transferência de E/S A transferência de dados pode ser realizada de três maneiras distintas: E/S programada (programmed I/O) E/S por interrupção (interrupt-driven I/0) DMA (direct memory access). EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 287
E/S programada (programmed I/O) Na E/S programada, o programador define os instantes das operações de E/S, inserindo em seu código as instruções que realizam a operação de E/S. A E/S programada admite dois tipos de transferência: Transferência Incondicional: A transferência é realizada incondicionalmente, ou seja, independentemente do estado da interface/periférico. Transferência Condicional: a operação de E/S só é realizada quando e se o dispositivo estiver pronto para tal. Em geral, em um programa que implementa uma transferência condicional temse um laço de espera (loop), onde são efetuados a leitura e o teste do estado do dispositivo repetidas vezes até que o mesmo indique que a operação de E/S pode ser realizada. Essa transferência, por ser caracterizada pela consulta ao dispositivo, também é conhecida como transferência por polling. EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 288
E/S por interrupção (interrupt-driven I/O) Neste tipo de E/S a transferência é acionada por interrupção, ou seja, o instante da operação de E/S não é definido por programa, mas ditado pelo dispositivo externo através de um pedido de interrupção. Em geral, o pedido de interrupção está associado à disponibilidade do dispositivo em realizar a transferência - o dispositivo/interface solicita uma interrupção toda vez que está pronto para realizar a transferência. EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 289
DMA (direct memory access) Nas E/S programadas e por interrupção a CPU participa ativamente durante a transferência do dado. A CPU executa uma instrução para a leitura ou escrita na interface (por exemplo: MOVE.B INTERFACE,D0). A necessidade de busca e execução da instrução (e algumas vezes a própria velocidade da CPU) pode limitar a taxa de transferência colocando entraves na operação do sistema com dispositivos rápidos de armazenamento secundários (discos magnéticos). Na solução DMA, a CPU delega a dispositivo controlador de DMA a tarefa da transferência. Durante o DMA, a CPU fica em estado passivo (idle), sendo que o controle do barramento é efetuado por dispositivo Controlador de DMA. EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 290
DMA - registradores internos Tipicamente, um Controlador de DMA possui: Registrador de Endereços: registrador que contém o endereço de memória a ser acessado. Este registrador é automaticamente incrementado após cada acesso à memória. Registrador de Contagem: indica o tamanho do bloco de dados a ser tranferido. Este contador é decrementado automaticamente após cada acesso à memória. Em geral, um controlador de DMA gera um pedido de interrupção quando este contador zera, para indicar o fim da transferência de um bloco de dados. Registrador de Controle: que serve para controlar a operação: disparar o processo; indicar se leitura ou escrita, etc. Registrador de Estado: indica o estado da transferência (em andamento, finalizada) e situações de erro. Os 3 primeiros registradores são inicializados pela CPU sob comando de programa do usuário/programador de sistema. EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 291
DMA (direct memory access) Em geral, uma operação de DMA envolve os seguintes fase: Inicialização: O Canal de DMA é inicializado pela CPU a CPU inicializa (escreve) os registradores de endereços, contagem e controle do dispositivo Controlador de DMA. Em geral, é efetuada um transferência de bloco de dados. Transferência: Durante a transferência o dispositivo Controlador de DMA aceita solicitações de transferência do dispositivo periférico e gera os sinais necessários (barramento de endereço e de controle) para o acesso à memória. Finalização: Após a transferência do bloco de dados definidos pela CPU na fase de inicialização, o dispositivo controlador de DMA informa a CPU (em geral, por interrupção) o final da transferência. EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 292
DMA - organização hardware EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 293
DMA - organização hardware Um controlador de DMA, em geral, possui: Sinais para efetuar acesso de escrita/leitura em memória: barramento de endereço, R/W*, LDS* UDS*, DTACK* (receber) Sinais para solicitar e adquirir os barramentos: BR* (Bus Request), BG* (Bus Grant), BGACK* (Bus Grant Acknowledge). Sinal de Interrupção: Para informa à CPU o final de uma transferência de um bloco. Sinais de controle para o controle/comunicação do o periférico: REQ* (entrada - solicitação do periférico); ACK* (saída - atendimento da solicitação). EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 294
DMA - organização hardware EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 295
DMA - organização hardware EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 296
Tipos básicos de interfaces Interface paralela: Suporta a comunicação paralela, ou seja, a transferência simultânea de vários bits de informação. Necessita de várias linhas de sinais - uma para cada bit. A comunicação paralela é indicada para pequenas distâncias e quando velocidade é importante. exemplo típico: impressora. Interface serial: A comunicação é feita bit-abit. Apenas necessita de 2 condutores (sinal e terra). Exemplo tipico: mouse, teclado. O seguintes modos são possíveis: Simplex: a informação e transferida em apenas uma direção (transmissor receptor). Half-duplex: a comunicação é bidirecional só que em apenas um direção em um dado instante de tempo. Full-duplex: comunicação simultanea. bidirecional EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 297
Comunicação paralela com a impressora O padrão Centronics de comunicação paralela é bastante difundido no mercado de computadores pessoais para a comunicação destes sistemas com impressoras. Este padrão é universalmente aceito pelos fabricantes de impressoras, sendo suportado pela maioria do fabricantes de computadores pessoais, incluindo os da linha IBM-PC e Apple. Conector Centronics EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 298
Comunicação paralela com a impressora Sinais Centronics Pino Sinal Direção Descrição 01 /STB Computador -» Impressora Pulso negativo fornecido pelo computador como clock de transmissão dos dados. 02 DATA 0 Computador -» Impressora Bit 0 do dado a ser impresso. 03 DATA 1 Computador -» Impressora Bit 1 do dado a ser impresso. 04 DATA 2 Computador -» Impressora Bit 2 do dado a ser impresso. 05 DATA 3 Computador -» Impressora Bit 3 do dado a ser impresso. 06 DATA 4 Computador -» Impressora Bit 4 do dado a ser impresso. 07 DATA 5 Computador -» Impressora Bit 5 do dado a ser impresso. 08 DATA 6 Computador -» Impressora Bit 6 do dado a ser impresso. 09 DATA 7 Computador -» Impressora Bit 7 do dado a ser impresso. 10 /ACK Impressora -» Computador Pulso negativo que indica ao computador que a impressora recebeu o dado. 11 BUSY Impressora -» Computador Em nível alto, indica que a impressora não pode receber dados. 12 PE Impressora -» Computador Paper Empty. Em nível alto, indica que acabou o papel da impressora. 13 SELECT Impressora -» Computador En nível alto, indica que a impressora está em modo remoto. Caso contrário, está em modo local. No modo remoto a impressora pode receber dados do computador. 14-15 NC - - 16 GND - Terra lógico. Usado como referência. 17 CHASSI - Terra da carcaça. S 18 NC - - 19-30 GND - Terra de retorno para par trançado. 31 /INIT Computador -» Impressora Pulso negativo que pode ser utilizado para reinicializar a impressora. 32 /FAULT Impressora -» Computador Em nível baixo, indica falha na impressora. 33-36 NC - - EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 299
Comunicação paralela com a impressora Centronics - comunicação com handshaking EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 300
Barramento IEEE 488 Barramento para a conexão de computadores e instrumentos (de medida) inteligentes. Aplicação típica laboratório de instrumentação. O Barramento IEEE 488 também a conhecido por: GPIB (General Purpose Interface Bus) HPIB (Hewlett Packard Instrument Bus) Características básica: Taxa de transmissão 1Mbyte/segundo Até 20 metros Até 15 dispositivos Permite broadcasting vários) (comunicação 1 para 24 vias 16 sinais. EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 301
Estrutura Barramento IEEE 488 EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 302
Estrutura Barramento IEEE 488 Talker: dispositivo que transmite a informação. Em um dado momento apenas um dispositivo pode ser Talker (transmissor); Listener: dispositivo que recebe a informação transmitida.. Em um dado momento, poder haver mais do que 1 Listener (receptor); Controler: dispositivo que gerencia a operação do barramenteo e determinar qual dispositivo que será o Talker (transmissor) e quais serão os Listener (receptores). Não é necessário que exista um dispositivo controlador no sistema. Se existir, apenas um controlador deve estar ativo em um dado momento. EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 303
Operação de transferência de dados - (handshake de 3 fios) RFD ready for data DAV data available DAC data accepted EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 304
Operação de transferência de dados - (handshake de 3 fios) EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 305