Vous êtes sur la page 1sur 18

CONTEDO DO CAPTULO 7 (Entrada/Sada)

Introduo ...................................................................................................... 03

VII.1 Arquiteturas de E/S................................................................................... 03

VII.2 E/S isolada (I/O BUS)................................................................................. 03

VII.3 E/S mapeada em memria (UNIBUS)...........................................................05

VII.4 INTERFACES DE E/S.....................................................................................06

VII.4.1 Registrador de dados..............................................................................06

VII.4.2 Registrador de estado.............................................................................06


Entrada de dados, 06
Sada de dados, 07

VII.4.3 Registrador de controle ..........................................................................07

VII.4.4 Fluxo de informao nos registradores da interface................................08

VII.5 Controle de transferncia de dados............................................................09

VII.5.1 E/S Controlada por programa..................................................................09


Transferncia condicional, 09
Transferncia incondicional, 09

VII.5.2 E/S Controlada por interrupo................................................................10

VII.5.3 E/S Controlada por hardware (DMA - DIRECT MEMORY ACCESS)...........10

VII.6 Comunicao interface dispositivo...........................................................11

VII.6.1 Comunicao paralela.............................................................................11

VII.6.2 comunicao serial..................................................................................12


Formatao, 13
Classificao da conexo interface-dispositivo, 13
Modos de transferncia, 14

VII.7 O Controlador DMA....................................................................................15

VII.7 .1 Inicializao da transferncia..................................................................15


Transferncia controlada por programa, 15
Transferncia controlada por interrupo, 16

VII.7.2 Modos de transferncia...........................................................................16


Burst Rajada, 16
Cycle Stealing -Roubo de Ciclo, 16
DMA transparente, 16

1
VII.8 Exerccios..................................................................................................17

VII.9 Bibliografia.................................................................................................18

2
INTRODUO

Qualquer aplicao que envolva a utilizao de um computador requer a transferncia de dados


entre o computador e o ambiente externo. Desta forma, precisamos de um mecanismo para
introduzir instrues e dados (de um programa) via, por exemplo, teclado ou discos, no incio, e
receber os resultados via vdeo, impressora etc. Quando o computador for dedicado a controlar as
operaes de algum processo industrial, os dados de entrada podero ser sinais de sensores e os de
sada, amadores que enviam sinais para modificar a velocidade de motores ou abrir/fechar vlvulas.
Transferncias de dados, que no sejam entre UCP e a memria principal, so chamadas de
entrada/sada (E/S).
Entrada denominada a comunicao de um dispositivo para o computador e sada, a
comunicao em sentido inverso.
A comunicao de entrada / sada requer tratamento especial pelo fato de que o hardware
externo com que a comunicao realizada (perifricos) compreende dispositivos que no so
capazes de operar em sincronismo com os ciclos de relgio da UCP. Estes dispositivos podem ser
chaves mecnicas, teclado, dispositivos de memria secundria (fitas e discos magnticos) etc.

VII.1 ARQUITETURAS DE E/S

Usualmente, mais de um dispositivo de E/S conectado a um computador. Portanto, algum


mecanismo deve existir para enderear (selecionar) um dispositivo especfico, necessrio para uma
dada operao de E/S.
Assim, cada dispositivo de E/S dever estar ligado a uma interface de E/S. O acesso ao
dispositivo realizado endereando-se a interface qual o dispositivo est ligado. Normalmente
estes endereos referenciam registradores da interface de E/S.
Estes registradores so denominados portas.
Interfaces podem ser dedicadas ou controlar mais que um dispositivo.
Dependendo de como so definidos os endereos utilizados para a operao de E/S, podemos
distinguir dois tipos de arquitetura:
E/S isolada (I/O Bus) e
E/S mapeada em memria (memory Mapped I/O ou Unibus).

VII.2 E/S ISOLADA (I/O BUS)

Neste tipo de arquitetura, os barramentos de controle, endereos e dados para E/S e para
acesso memria so logicamente distintos, de forma que o acesso da UCP unidade de memria
isolado do seu acesso s portas de EIS (Figura 7.1).

3
Figura 7.1 Esquema lgico de arquitetura com EIS isolada.

Sob o ponto de vista de implementao, os barramentos de E/S e de memria podem ser


fisicamente distintos ou compartilhados. No segundo caso, o mais usual, um mesmo barramento
serve para transferir os dados tanto entre a UCP e a unidade de memria bem como entre a UCP e
as portas de E/S; entretanto, as operaes de E/S devem ser diferenciadas das operaes de
acesso unidade de memria pela gerao de um sinal de controle que especifique o acesso
memria, ou o acesso de E/S. Em geral, arquiteturas com E/S isolada possuem linhas reservadas no
barramento de controle para especificar cada uma das operaes.
Com barramentos isolados, valores idnticos de endereo podem referir-se a elementos
diferentes que aparecem em operaes de E/S ou em operaes com a memria. Assim, a
arquitetura define dois espaos distintos de endereos: o espao de endereos de entrada/sada e o
espao de endereos de memria. Por exemplo, o mesmo endereo 6 pode referir-se clula 6 de
memria ou porta de sada 6 (Figura 7.2).

Figura 7.2 Espao de endereos em EIS isolada.

Este uso de endereos idnticos obriga que arquiteturas do tipo E/S isolada incluam instrues
especficas para entrada de dados, para sada de dados e para acesso memria.

Exemplos:

1. transferncia de dados entre o acumulador e uma porta de E/S:


IN port -entrada de dados
OUT port -sada de dados

2. transferncia de dados entre o acumulador e uma posio m da memria:


LOAD m -leitura da memria
STORE m -escrita na memria

4
VII.3 E/S MAPEADA EM MEMRIA (UNIBUS)

Neste tipo de arquitetura no h barramentos dedicados para E/S, como tambm no existem
instrues especiais de E/S (Figura 7.3).
Nesta arquitetura, existe um nico espao de endereos, tratados como endereos de memria.
Uma parte deste espao de endereos reservada s portas de E/S, de forma que a UCP pode
tratar qualquer porta como uma clula de memria. Assim, as instrues de E/S so as prprias
instrues de acesso memria, por exemplo MOVE, que podem referenciar endereos de clulas
fisicamente inexistentes na memria. Estes endereos fisicamente inexistentes so mapeados para
as portas de E/S.

Figura 7.3 Esquema de arquitetura com E/S mapeada em memria.

Figura 7.3 Espao de endereos para E/S mapeada .

Este uso de endereos idnticos obriga que arquiteturas do tipo E/S isolada incluam instrues
especficas para entrada de dados, para sada de dados e para acesso memria.
Esta soluo apresenta as seguintes vantagens:
no so necessrios cdigos especficos para instrues de E/S;
todas as instrues que fazem referncia memria podem ser usadas para
manipulao de E/S;
a quantidade de endereos para E/S praticamente ilimitada.
Algumas desvantagens podem tambm ser listadas:
parte dos endereos de memria no pode ser utilizada como endereos de
memria;
h necessidade de interfaces mais complexas para reconhecer endereos maiores;

5
instrues de referncia a endereos de memria (que na verdade realizam a E/S)
podem ser mais longas, com maior tempo de execuo, do que instrues
especficas de E/S.

VII.4 INTERFACES DE E/S

A funo de uma interface de E/S coordenar a transferncia de dados entre o processador e


um dispositivo externo, comunicando-se com o processador atravs do barramento e com o
dispositivo atravs de ligaes apropriadas.
Uma interface de E/S deve:

armazenar o estado do dispositivo, para informar UCP o seu estado quando


solicitado, no registrador de estado (RS);
prover uma rea de armazenamento, no caso, o registrador de dados (RD), para
ser usada na transferncia de dados;
reconhecer o endereo dos seus registradores quando este aparecer no
barramento de endereos;
prover sinais apropriados de temporizao, quando requeridos, para possibilitar a
transferncia de dados;
executar a converso de formatos de dados necessria para a transmisso de
dados entre o barramento de dados e os dispositivos perifricos.
Assim, toda interface de E/S possui pelo menos trs registradores bsicos:
Registrador de dados (RD);
Registrador de estado (RS);
Registrador de controle (RC).

VII.4.1 REGISTRADOR DE DADOS

O registrador de dados (RD) utilizado como um armazenador temporrio de dados. Em uma


operao de sada, ele carregado com o dado pela UCP, e lido pelo dispositivo. Em uma operao
de entrada, ele carregado pelo dispositivo, e lido pela UCP. Algumas interfaces possuem mais de
um registrador de dados. Deste modo, possvel adequar as velocidades da UCP e do dispositivo
externo.

VII.4.2 REGISTRADOR DE ESTADO

O registrador de estado (RS) informa o estado da transferncia de E/S; cada bit deste registrador
tem um significado especial. Diversas informaes relevantes esto associadas aos bits do
registrador de estado, tais como: se o dispositivo gerou uma interrupo, se o dispositivo est
desconectado, e outras.
Dois bits do registrador de estado so muito importantes para controlar o processo de E/S; um
deles indica se o dispositivo colocou um dado de entrada no registrador de dados, o outro indica se o
dispositivo est pronto para processar um dado de sada, ou seja, se o registrador de dados est
apto a receber outro dado de sada.

ENTRADA DE DADOS

Na entrada de dados, o dispositivo envia o dado que carregado no registrador de dados da


interface. O bit correspondente do registrador de estado feito igual a "1" indicando a presena do
dado na interface. Supondo que o bit 3 do registrador de estado indique que existe dado no
registrador de dados, enviado pelo dispositivo, como a seguir:

6
O estado do registrador de estado pode ser lido pela UCP, atravs de uma instruo de entrada
(ex. IN RS), e o valor do bit 3 testado para verificar se o registrador de dados contm o dado enviado
pelo dispositivo. Isto evita a leitura pela UCP de um dado j lido anteriormente, e que permanece no
registrador de dados da interface.
Em Assembly (para EIS isolada) :

A execuo da instruo IN RD de leitura do dado faz com que a interface zere o bit que indica a
presena de dado gerado pelo dispositivo.

SADA DE DADOS

Na sada de dados a UCP envia o dado que carregado no registrador de dados da interface. O
bit correspondente no registrador de estado feito igual a "1" indicando que o dispositivo est
processando a sada do dado. Supondo que o bit 2 do registrador de estado indique que existe dado
no registrador de dados, a ser processado pelo dispositivo, como a seguir:

O estado do registrador de estado pode ser lido ( IN RS ) pela UCP e o valor do bit 2 testado para
verificar, antes que um novo dado seja enviado pela UCP, se o dispositivo j processou o dado
anterior. Isto evita a perda do dado anterior pela sobreposio de um novo dado no registrador de
dados, antes que o dispositivo possa process-lo.
Em Assembly (para EIS isolada) :

O bit do registrador de estado resetado quando o dispositivo completa a sada do dado.

VII.4.3 REGISTRADOR DE CONTROLE

As interfaces possuem ainda um registrador especial- registrador de controle (RC) -dedicado ao


estabelecimento de modos de operao. Estes modos de operao especificam caractersticas de
operao da interface como leitura ou escrita, permisso para interrupo etc. Exemplos de modos
de operao so descritos nas Sees VII.6 e VII.7.

7
Os modos de operao podem ser programados na interface utilizando-se instrues de escrita
(sada) que endeream o registrador de controle.

Exemplo:

Supondo uma interface cujo registrador de controle possui o seguinte formato:

O trecho de programa a seguir configura a interface como interface de sada e permite


interrupo do dispositivo (envia o valor binrio "10" para RC).

(E/S Mapeada) (E/S Isolada)


:
:
MOVE #10, RC ou LDA #10
: OUT RC
:

Em interfaces muito simples no existe o registrador de controle; ento um campo do registrador


de estado utilizado para estabelecer os modos de operao da interface. Neste tipo de interface a
leitura do registrador de estado sempre permitida; a escrita, somente nos campos apropriados
como, por exemplo, no campo de modo de operao.

VII.4.4 FLUXO DE INFORMAO NOS REGISTRADORES DA INTERFACE

Do ponto de vista da UCP, no registrador de estado permitida somente a leitura e o registrador


de controle apenas de escrita; em algumas interfaces a leitura do registrador de controle tambm
permitida. O registrador de dados possui fluxo de dados bidirecional, permitindo tanto a leitura como
a escrita (Figura 7.5) .

Figura 7.5 Fluxo de informao em uma interface .

Interfaces podem conter mais de um registrador de estado, de dados ou de controle. O esquema


da pgina seguinte mostra a interao da UCP com a interface, passvel de ser realizada atravs de
instrues da UCP .

8
VII.5 CONTROLE DE TRANSFERNCIA DE DADOS

Existem trs formas bsicas de controlar a transferncia de dados entre um computador e um


dispositivo externo:
E/S controlada por programa (controlada pela UCP);
E/S controlada por interrupo (controlada pela UCP);
E/S controlada por hardware especfico -DMA (Direct Memory Access) ou Acesso
Direto Memria.

VII.5.1 E/S CONTROLADA POR PROGRAMA

Na E/S controlada por programa, o usurio insere em pontos determinados do programa as


instrues correspondentes s operaes de E/S desejadas. Dependendo do tipo de aplicao em
que se est executando a E/S, a transferncia pode ser condicional ou incondicional, como mostrado
na Figura 7.6.

TRANSFERNCIA CONDICIONAL

A transferncia s efetuada quando o dispositivo est pronto para a mesma. Utilizada em


transferncias do tipo requisio (request), onde o dispositivo requisitado a executar a
transferncia, no podendo haver perda de informao na sada ou releitura de um mesmo valor de
entrada. Para que isto ocorra necessrio testar se o dispositivo j gerou o dado na ENTRADA, ou
se o dispositivo j processou o dado anterior de SADA.
A transferncia condicional facilmente implementada atravs da verificao contnua do
registrador de estado (RS), pela implementao do lao de espera descrito na Seo VII.4.2.

Aplicaes:

Entrada: utilizada na leitura de um dado gerado no dispositivo de entrada. Exemplo: leitura de


um dado de entrada a ser fornecido pelo usurio e do qual depende a continuao do programa em
execuo.
Sada: utilizada na sada de ddos sem perda de informao. Exemplo: listagem de resultados de
um programa.

Figura 7.5 E/S controlada por programa condicional e incondicional .

TRANSFERNCIA INCONDICIONAL

O programa efetua a transferncia independentemente do estado do dispositivo. utilizada em


transferncia do tipo amostragem (sample), quando se deseja ler/escrever o valor corrente de uma
grandeza.
Neste tipo de transferncia no necessrio o lao de espera pois a leitura do valor corrente no
depende da entrada de dados pelo dispositivo no instante da leitura, podendo a UCP ler o dado
gerado pelo dispositivo em qualquer instante. Da mesma forma, na sada do valor corrente no h

9
necessidade de se assegurar que o dado anterior j tenha sido processado pelo dispositivo, podendo
haver perda de informao.

Aplicaes:

Entrada: utilizada para a leitura do valor corrente de uma grandeza. Exemplo: leitura de um
sensor em controle de processos.
Sada: utilizada para mostrar o valor corrente de uma grandeza. Exemplo: escrita de uma
grandeza em um painel em controle de processos.

VII.5.2 E/S CONTROLADA POR INTERRUPO

A E/S controlada por interrupo utilizada em aplicaes onde o tipo de transferncia por
evento (event), o que implica a no existncia de um ponto determinado do programa onde feita a
E/S de dados. Neste caso, a interface gera um sinal de interrupo quando est pronta para a
transferncia. O programa em execuo interrompido e a rotina de servio de interrupo executa
a transferncia desejada (Figura 7.7) .
A rotina de servio de interrupo no precisar implementar o lao de espera para testar o
registrador de estado pois, toda vez que a interrupo ocorrer, a interface estar pronta para realizar
a transferncia. Observemos que, desta forma, no existe a possibilidade de perda da informao.

Figura 7.7 E/S controlada por interrupo.

Deve ser observado que este tipo de mecanismo de transferncia aplicvel quando no h
necessidade de executar a transferncia em um ponto especfico do programa. A transferncia
executada assincronamente em relao ao programa.

Aplicao:

Entrada: utilizada para controlar o armazenamento de dados de entrada em uma rea


temporria, para utilizao posterior pelo programa.
Sada: utilizada quando a sada no precisa ser realizada imediatamente, dependendo de um
evento externo. Por exemplo, para a sada de relatrios peridicos ou dependentes de alarmes.

VII.5.3 E/S CONTROLADA POR HARDWARE (DMA - DIRECT MEMORY ACCESS)

Tanto na E/S controlada por programa, como na EIS controlada por interrupo, a transferncia
controlada pela UCP, ou seja, o dado transferido entre a interface e registradores da UCP pelas
instrues especiais:

IN port ; Acc (port) entrada


OUT port ; port (Acc) sada

quando a arquitetura E/S isolada, ou por instrues comuns como:

10
MOVE port,R1 ; RI ~ (port) entrada
MOVE R1,port ; port (RI) sada

quando a arquitetura mapeada em memria.

Estas operaes de E/S controladas pela UCP so, entretanto, inadequadas para transferncia
de dados entre a memria e dispositivos de "alta velocidade", como as unidades de discos
magnticos. Nestes casos so transferidos grandes blocos de dados e a execuo repetitiva das
instrues de EIS torna a transferncia ineficiente.
Uma soluo para este problema controlar a transferncia de dados por um hardware
especfico que permita a conexo direta entre a memria e o dispositivo, como foi introduzido na
Seo 11.3.1.3. Isto possvel atravs de uma interface especial chamada controlador DMA.

Figura 7.8 E/S por DMA.

Com o controlador DMA, a UCP inicia a transferncia de um bloco de dados pelo carregamento
de registradores especiais desta interface; aps a inicializao, o controlador DMA realizar a
transferncia de dados e a UCP ficar livre para continuar a execuo do programa.
Na Seo VII.7 discutimos os mecanismos que permitem o uso compartilhado dos barramentos
pela UCP e pelo controlador DMA.

VII.6 COMUNICAO INTERFACE DISPOSITIVO

Uma interface controla a operao de um dispositivo de acordo com os comandos gerados pela
UCP. A interface tambm converte o dado transferido do formato interno para qualquer formato
requerido pelo dispositivo e vice-versa.
Basicamente, a transferncia entre uma interface e um dispositivo conectado mesma pode ser
feita serialmente ou paralelamente, dependendo de vrios fatores como: caractersticas do
dispositivo, distncia de transmisso, desempenho requerido em velocidade ou confiabilidade etc.

VII.6.1 COMUNICAO PARALELA

Uma interface paralela recebe/envia dados da/para UCP via barramento de dados. Estes dados
so enviados ou recebidos do dispositivo de E/S atravs de um cabo de conexo com:
n de linhas entre interface e dispositivo = n de bits do dado, que constitui a ligao fsica entre o
dispositivo e a interface (Figura 7.9) .

11
Figura 7.9 Esquema de comunicao paralela.
Exemplo:
O esquema da Figura 7.10 mostra a interface paralela INTEL 8255A.
A pastilha INTEL 8255A uma interface paralela constituda de:
um registrador de controle,
trs portas (A, B e C) de E/S de 8 bits e um "buffer" para comunicao entre o
barramento de dados e as portas.

A porta C pode ser programada independentemente para entrada ou para sada, nos 4 bits mais
significativos e nos 4 bits menos significativos.

Figura 7.10 Interface paralela INTEL 8255A.

Observemos que esta interface no especifica um registrador de estado. Neste caso, s


possvel realizar E/S incondicional nas portas A, B e C. Para que seja possvel a E/S condicional ou
por interrupo, a interface permite que seja programado um "modo de operao ", carregando o
registrador de controle com a informao apropriada:
em "modo O" a interface funciona com as trs portas programadas para entrada ou
sada incondicional;
em "modo 1 " a interface utiliza a porta C como registrador de estado para as
portas A e B. Os pinos de EIS da porta C, ligados convenientemente aos sinais de
controle dos dispositivos, permitem que bits da porta C sejam definidos com a
informao necessria para a realizao de E/S condicional ou por interrupo nas
portas A e B.

VII.6.2 COMUNICAO SERIAL

A comunicao serial requer um nmero muito menor de linhas de comunicao entre interface e
dispositivo, tipicamente de 2 a 4 linhas. A Figura 7.11 mostra o esquema de uma interface serial.

apropriada quando:
o dispositivo de sada tem uma operao inerentemente serial e/ou

12
a distncia entre a UCP e o dispositivo grande, o que influi no custo do cabo de
transmisso.

Figura 7.11 Esquema de uma interface serial.

A interface serial deve prover duas funes:


formatao lgica dos dados, incluindo a converso paralelo/serial e
serial/paralelo;
compatibilizao, em nvel eltrico, para transmisso e recepo de dados.

FORMATAO

A formatao serial transforma os bits em paralelo do barramento de dados em uma srie de bits
seqenciados no tempo.

A formatao executada pela interface deve estar de acordo com a formatao que o dispositivo
"entende", ou seja, com o tempo de amostragem do dispositivo. Para que isto acontea, existem
taxas de transmisso (BaudRate). No caso de sinais binrios, Baud Rate corresponde ao nmero de
bits por segundo. Exemplos de Baud Rate padronizados vo de valores de 110 a 28.800
bits/segundo, com valores discretos dentro desta faixa.
Algumas interfaces seriais permitem que o Baud Rate seja "programado", enviando ao
registrador de controle uma palavra cdigo identificando o Baud Rate.

CLASSIFICAO DA CONEXO INTERFACE-DISPOSITIVO

Tipicamente, existem trs configuraes de transferncia serial:

Simplex -um nico sentido de transmisso;


Half Duplex -ambos os sentidos de transmisso, um de cada vez;
Full Duplex -ambos os sentidos de transmisso, simultaneamente.

13
MODOS DE TRANSFERNCIA

A transferncia serial de dados pode ser sncrona ou assncrona.

Transferncia Serial Assncrona: utilizada em transferncia de baixa velocidade.

Na transferncia serial assncrona, os caracteres so transferidos um a um, na medida em que


haja caracteres a serem transferidos. Desta forma, a linha est ociosa ou transmitindo um caractere.
Para que o receptor detecte que um caractere est sendo transmitido, a transferncia do caractere
precedida de um sinal de incio de transferncia -start bit- e seguida de um sinal de fim de
tranferncia stop bits.
A Figura 7.12 a seguir mostra a formatao para a transferncia seria! assncrona.

START BIT -igual a zero, indica o incio de transmisso sincronizando transmissor e receptor
STOP BITS -dois bits iguais a 1, indicando o fim de transmisso

Figura 7.12 Formatao da informao em interfaces seriais.

Um exemplo muito utilizado de interface serial assncrona a UAR/T -Universal Asynchronous


Receiver Transmitter. A UAR/T programvel, permitindo a transferncia em modos simplex, half
duplex e full duplex, a seleo de baud rate e a definio de um ou dois stop bits.

Observao:

A transferncia serial poderia ser feita por programa, transmitindo um bit de cada vez, sem
necessidade da interface. No entanto, o uso da interface permite que a UCP se ocupe de outras
operaes, enquanto a E/S ocorre.
Transferncia Serial Sncrona: permite transmisso mais rpida
Na transferncia serial sncrona, os caracteres so transmitidos ininterruptamente, eliminando a
necessidade dos bits de sincronismo como o start bit ou stop bits. Os dados transmitidos ou
recebidos constituem uma seqiincia contnua de bits sem indicao de fronteiras entre caracteres
adjacentes.
Os relgios no receptor e no transmissor operam exatamente na mesma freqncia e devem ser
muito estveis para manter o sincronismo por um longo perodo de tempo.
O sincronismo entre o receptor e o transmissor mantido atravs de um caractere especial
chamado caractere de sincronismo (CS). A cada n caracteres de informao, o transmissor gera um
caractere de sincronismo (Figura 7.13). O receptor deve detectar este caractere.
No incio da transmisso, o receptor opera em um modo de busca (hunt mode) , fazendo uma
comparao bit a bit da seqncia de entrada, com o caractere de sincronismo. Quando este
caractere encontrado, o receptor trata cada grupo subseqente de (n-1) caracteres como
caracteres de informao. O n-sino caractere deve ser o caractere de sincronismo; caso no seja o
caractere de sincronismo, houve uma perda de sincronismo e o receptor voltar ao modo de busca
at encontrar o caractere de sincronismo.

14
C- caractere
CS -caractere de sincronismo

Figura 7.13 Transmisso sncrona.

O transmissor envia continuamente caracteres; quando no existem dados prontos a serem


enviados, o transmissor gera caracteres de sincronismo, de modo a manter a continuidade da
sincronizao.

VII.7 O CONTROLADOR DMA

Como j mencionamos, a E/S por DMA basicamente utilizada para transferncia de blocos de
dados para/ de posies contguas de memria, sem a interveno da UCP. A UCP pode efetuar um
outro processamento enquanto o controlador DMA processa a transferncia. No h utilizao do
acumulador ou qualquer outro registrador da UCP no processamento da E/S.
A E/S de dados por DMA tipicamente utilizada para dispositivos de memria secundria de alta
velocidade (e.g., discos magnticos) nos quais a transferncia feita em blocos de tamanho
determinado pelas caractersticas do dispositivo (128, 256, 512 bytes).
Para transferir blocos de dados para/de posies contguas de memria, o controlador DMA
possui (no mnimo) dois registradores que so carregados pela UCP, informando:

o endereo inicial do bloco de memria que far parte da transferncia, e


o tamanho do bloco a ser transferido.

Estes registradores so utilizados pelo controlador DMA para gerenciar a transferncia de dados.
A cada transferncia, o controlador DMA incrementa o registrador que contm o endereo de
memria e decrementa o registrador que contm o tamanho do bloco.
Normalmente os controladores DMA possuem um ou mais registradores de controle que devem
ser carregados com opes para diferentes modos de operao, entre os quais o tipo de
transferncia: entrada ou sada.

VII.7 .1 INICIALlZAO DA TRANSFERNCIA

A transferncia de controle da UCP para DMA pode ser iniciada de duas maneiras:

Transferncia controlada por programa;


Transferncia controlada por interrupo.

TRANSFERNCIA CONTROLADA POR PROGRAMA

O programa inicia a transferncia de um bloco, isto , "programa" o controlador DMA, e a UCP


prossegue executando outras instrues do programa, enquanto se processa a transferncia do
bloco.
Quando o programa est pronto para utilizar dados do bloco, ou quando necessrio processar
a transferncia de outro bloco, o programa entra em um lao de espera, consultando o registrador de
status do controlador, aguardando que o controlador DMA complete a transferncia.
Completada a transferncia, o programa inicia a transferncia de outro bloco.

15
TRANSFERNCIA CONTROLADA POR INTERRUPO

Neste caso, o programa tambm inicia a transferncia de um bloco, isto , "programa" o


controlador DMA, e a UCP prossegue executando outras instrues do programa, enquanto se
processa a transferncia do bloco.
Ao terminar a transferncia do bloco, o controlador DMA gera um sinal de interrupo que, aceito
pela UCP, interrompe a execuo do programa e inicia a execuo de uma rotina de servio. Esta
rotina de servio pode, por exemplo, iniciar a transferncia do bloco seguinte, retomando em seguida
o controle para o programa.

VII.7.2 MODOS DE TRANSFERNCIA

O controlador DMA e a UCP compartilham os mesmos barramentos para transmitir dados e


sinais de controle. Portanto, alguma estratgia deve ser introduzida para coordenar o uso destes
barramentos. O uso de barramentos pelo controlador DMA pode ser feito de trs formas: rajada
(burst),.furto de ciclo (cycle stealing) ou DMA transparente. Alguns controladores permitem
programar a forma de transferncia como um modo de operao.

BURST RAJADA

O controlador requisita os barramentos quando est pronto para a transferncia e, uma vez de
posse dos mesmos, transfere todo o bloco de palavras enquanto a UCP aguarda o trmino da
transferncia.
Embora no haja paralelismo de E/S e UCP, a transmisso mais rpida do que a E/S
controlada pela UCP, no caso de dispositivos rpidos. A transferncia dos dados feita diretamente
da interface para a memria, no necessitando passar pela UCP; envolve somente a ocupao dos
barramentos.

CYCLE STEALING -ROUBO DE CICLO

O controlador assume o controle dos barramentos durante o tempo necessrio para transmitir
uma palavra e retorna os barramentos UCP. Durante este tempo, a UCP no pode executar
operaes que faam uso dos barramentos.
A Figura 7.14 a seguir mostra os ciclos de mquina compartilhados entre UCP e DMA.

Figura 7.14 Transferncia DMA por cycle stealing.

A execuo de programas pela UCP fica um pouco mais lenta pois ela espera pela liberao dos
barramentos; contudo, nem sempre a UCP precisa esperar, pois podem coincidir ciclos de DMA com
ciclos de UCP com operaes internas que no faam uso do barramento.

DMA TRANSPARENTE

O controlador DMA utiliza, para transferncia de dados, ciclos de mquina da UCP que no
faam uso dos barramentos. Deste modo, no h interferncia do DMA na execuo de instrues
pela UCP. Para isto, necessrio que o controlador DMA identifique o incio de um ciclo de mquina
da UCP que no ir utilizar os barramentos (Figura 7.15).

16
Figura 7.15 Transferncia por DMA transparente.

Neste caso, tipicamente, o controlador DMA libera totalmente a UCP durante a transferncia de
dados, aumentando o paralelismo do conjunto (CPU, memria, E/S) , mas no necessariamente
aumentando a taxa de transferncia de dados entre o dispositivo e a memria.

VII.8 EXERCCIOS

1 Quais so os tipos de arquiteturas para E/S? Descreva cada uma delas. Mostre
semelhanas e diferenas. Mostre vantagens e desvantagens.

2 Como a E/S controlada por programa? Faa um exemplo em alguma linguagem


(Assembly). Mostre uma aplicao.

3. Descreva como funciona a E/S controlada por interrupo. Quando utilizada?

4. Descreva como funciona a E/S controlada por DMA. Quando utilizada?

5. Quais so os registradores bsicos de uma interface? Como so utilizados?

6. Descreva a comunicao interface-dispositivo atravs de uma interface paralela.

7. Descreva a comunicao interface-dispositivo atravs de uma interface serial.

8. Descreva a transferncia serial assncrona.

9. Descreva a transferncia serial sncrona.

10. Quais so os principais registradores de um controlador DMA? Explique o seu


funcionamento.
11. Descreva e comente os modos de operao de um controlador DMA.

12. Descreva a transferncia DMA controlada por programa e por interrupo.

13. Definio de uma interface:


a. Faa um esquema e defina a funo dos registradores de como voc supe que deveria
ser uma interface paralela.
b. Defina bits nos registradores de estado e de controle relevantes para o funcionamento da
interface.
c. Faa uma rotina para entrada e outra para sada condicional, supondo que a arquitetura
seja E/S isolada.
d. Na questo (c), qual seria a diferena se a arquitetura fosse E/S mapeada em memria ?
e. A mesma interface poderia ser utilizada como interface serial?
f. A mesma interface poderia ser utilizada como interface DMA? Quais as modificaes
necessrias?

17
VII.9 BIBLIOGRAFIA

[HAMA-90] HAMACHER, V. C.; VRANESIC, Z. G. e ZAKY, S. G. Computer Organization.


McGraw-Hill, 1990.
[SHOR-81] SHORT, K. L. Microprocessors and Programmed Logic. Prentice-Hall, 1981.

18

Vous aimerez peut-être aussi