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.
indice.gif

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:
indice.gif

Última actualização: 2006-11-21