i/o Flashcards
Controladores de dispositivos i/o
son circuitos digitales encargados de controlar las
partes electro/mec´anicas del dispositivo seg´un la comunicaci´on realizada con el computador. En la
mayor´ıa de los casos, los controladores son microprocesadores completos, que ejecutar´an programas
especialmente dise˜nados para controlar al dispositivo
funciones controladores de dispositivos i/o
Comunicaci´on con el computador.
Comunicaci´on con el dispositivo.
Almacenamiento temporal.
Detecci´on de errores
Control de elementos mec´anicos/f´ısicos.
Conversi´on de se˜nales continuas en digitales o vice-versa
componentes de los controladores de dispositivos i/o
Circuitos de control Conversores ADC o DAC Memoria: -Buffer -Registros de control -Registros de status -Registros de datos -Registros de direcci´on
funcion circuitos de control de un controlador
estar´an
encargados de regular el funcionamiento del dispositivo, coordinar la comunicaci´on con el
computador y ejecutar la detecci´on y/o correcci´on de errores
funcion Conversores ADC o DAC de un controlador
conversores an´alogo-digital o digital-an´alogo para traducir se˜nales el´ectricas
continuas en informaci´on para el computador o vice-versa
funcion buffer de un controlador
e almacena los datos que el dispositivo este entregando
o recibiendo del computador
funcion registro de control de un controlador
direcciones espec´ıficas de la memoria que son escritos por el
computador para indicar comandos que debe ejecutar el dispositivo
funcion registro de status de un controlador
direcciones espec´ıficas de la memoria que son escritos por el
dispositivo para indicar informaci´on al computador
funcion registro de datos de un controlador
direcciones espec´ıficas de la memoria para leer o escribir datos
individuales o asociados a la memoria local (buffer) del dispositivo
funcion registro de direcciones de un controlador
direcciones espec´ıficas de la memoria para direccionar la memoria
local (buffer) del dispositivo
comunicaciones que pueden ocurrir entre la CPU y un dispositivo i/o
- comunicaci’on de comandos
- comunicacion de estado
- transferencia de datos
comunicacion de comandos
Cuando la CPU quiere indicarle a un dispositivo que realice
una determinada acci´on, debe hacerlo envi´andole comandos a los registros de control. Por
ejemplo si la CPU quiere avisarle a un cierto dispositivo (e.g c´amara web) que se encienda,
deber´a escribir en un determinado registro de control del controlador del dispositivo un cierto
n´umero, que este interpretar´a como el comando de activaci´on
comunicacion de estado
Cuando la CPU quiere obtener informaci´on sobre el estado del
dispositivo, dee hacerlo leyendo uno de los registros de status de ´este. Por ejemplo si la CPU
quiere saber si un dispositivo tiene nueva informaci´on que enviar (e.g el mouse se movi´o, y
tiene nuevas posiciones que enviar), la CPU deber´a leer el valor almacenado en el registro
espec´ıfico e interpretarlo seg´un corresponda
transferencia de datos
Cuando la CPU quiere enviarle datos a un dispositivo o leer datos de ´el, si es poca informaci´on esto se podr´a hacer ocupando registros de datos que tenga el controlador del dispositivo. Si es m´as informaci´on, esto se realizar´a escribiendo o leyendo desde el buffer (memoria) del dispositivo. Por ejemplo, si el disco duro quiere enviarle informaci´on a la CPU, se acceder´a a ´esta mediante el buffer de datos del disco
mecanismos principales para realizar el proceso de direccionamiento y transferencia
de datos
Existen dos mecanismos principales para realizar el proceso de direccionamiento y transferencia
de datos: mapeo a memoria (memory mapped I/O) y usando el mecanismo de puertos (port
I/O).
Memory mapped i/o
. La implementaci´on de esta idea consiste en reservar un espacio de direcciones de memoria
para ser ocupados para ✭✭mapear✮✮ los registros y buffer de los dispositivos de I/O. De esta forma es
posible acceder directamente ocupando una instrucci´on como MOV A, (dir) a un dispositivo
address decoder
Se utiliza en memory mapped i/o. una pieza de hardware especializada que estar´a ✭✭vigilando✮✮ el bus de direcci´on para
determinar si la direcci´on colocada corresponde a la RAM o alguno de los dispositivos
ventajas y desventajas de memory mapped i/o
ventajas: su implementaci´on es simple a nivel de
hardware, es posible ocupar las mismas instrucciones de transferencia y modos de direccionamiento
que para trabajar con memoria y tambi´en es posible realizar operaciones en la ALU, de la misma
forma que se realizaban con datos de memoria.
desventaja: limita el espacio direccionable de la memoria, lo que se
conoce como memory barrier. Debido a que se deben reservar un grupo de direcciones para
apuntar a los dispositivos, estas direcciones no pueden ser ocupadas para almacenar en memoria.
Port i/o
se definen instrucciones espec´ıficas y un espacio de direccionamiento propio para acceder a los
dispositivos. En el caso de la arquitectura Intel, por ejemplo, se definen dos instrucciones: IN que se
ocupa para leer datos desde un dispositivo y OUT que se ocupa para escribir datos en un dispositivo
mecanismos de direccion espacial de port i/o
- utilizar un bus de direcciones especial s´olo para I/O (figura 7) con lo que se asegura
que no habr´a choque entre las direcciones. - m´etodo consiste en ocupar el mismo bus que
el de la RAM, pero indicarle mediante una se˜nal de control al bus, que se est´a refiriendo a una
direcci´on de I/O, y por tanto la RAM no debe considerar ese valor