Input/Output
Métodos
de Acesso
Existem basicamente 2 métodos de entrada/saída de
dados entre CPU e dispositivos de entrada/saída (ex.
teclado, rato, monitor, interfaces de rede, modem):
Memory-Mapped
IO
Este método de IO usa o mesmo barramento para passar
endereços para a memória e para os dispositivos
de IO, bem como as mesmas instruções para aceder
a memória ou dispositivos (ex. MOV ou LD). Para isso,
é necessário que o CPU reserve determinados
endereços para uso dos dispositivos e não da
memória. Isto cria uma descontinuidade na
memória, o que é uma desvantagem. Pelo
contrário, é simple e barato de implementar.
Para que este método funcione, é além
disso necessário que os dispositivos de IO (ou outro por
eles) monitorize o barramento de endereços permanentemente,
e responda aos pedidos quando o endereço respeitar ao (a
um) dispositivo de IO.
Port-Mapped IO
Este método usa diferentes instruções
para aceder aos dispositivos de IO, bem como uma gama de
endereços completamente distinta dos endereços de
memória. As instruções são
diferentes daquelas para acesso a memória (ex. IN e
OUT para acesso a dispositivos de IO, e MOV para acesso à
memória.)
O barramento de endereços é distinto em pelo
menos um bit (i.e. a arquitectura poderá accionar um
determinado bit apenas, sendo os restantes iguais ao barramento de
endereços para acesso à memória), mas
poderá ser completamente diferentes.
As vantagens deste método relacionam-se com o desempenho do
sistema, com a existência de mais endereços para
memória (problema ultrapassado com o aumento do
espaço de endereçamento), e com a
diferenciação de
programação para acesso a memória e
dispositivos de IO.

Métodos de Interacção
Um método de interacção consiste em definir como o
CPU solicita a aceita pedidos de um determinado dispositivo de IO.
Existem os seguintes métodos de interacção:
- Sampling: O CPU pode em qualquer momento aceder aos dados do dispositivo, que são sempre válidos;
- Polling: O CPU deve perguntar se dispositivos
está pronto para interagir;
- Interrupts: O dispositivo informa o CPU que deseja "comunicar";
- DMA: Um dispositivo com capacidades de Direct
Memory Access é capaz de controlar a transferência
de dados com a memória sem a
interveção do CPU. Quando o dispositivo terminar
a tarefa que lhe foi requisitada pelo CPU (ex. copiar uma
porção de bytes de /para disco), informa o CPU
através dum interrrupt;
- IO Controllers: DMA, mas várias
intruções de IO;
- IO Coprocessors: O dispositivo é um computador
independente.
Última
actualização: 2006-11-21