i/o Flashcards
(51 cards)
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
Polling
la CPU debe estar pregunt´andole o encuestando
al dispositivo continuamente para saber si este tiene algo nuevo que reportar.
desventaja de polling
problema
de esto es que es muy ineficiente, ya que la CPU debe gastar varias instrucciones para determinar
esto, y si fueran varios dispositivos los que hay que revisar, el problema es a´un peor
interrupciones de disp i/o
el dispositivo de I/O ser´a el encargado de avisar
cuando ocurre un suceso relevante a la CPU, liberando a ´esta de tener que estar pregunt´andole
a cada dispositivo si ha habido alg´un evento relevante. Para lograr esto, el dispositivo de I/O se
debe conectar a la CPU con una se˜nal de control dedica denominada interrupt request o IRQ.
IQR interrupt request
senal de control hacia la CPU que avisa cuando ocurre un suceso relevante en algun dispositivo i/o