Para empezar una operación de e/s, el CPU tiene que escribir sobre los registros anteriores los datos de la operación a través de una dirección de e/s o de memoria asignada únicamente al controlador. Según se haga de una u otra forma, se distingue entre dispositivos conectados por puertos o proyectados en memoria. El modelo de dispositivos por puertos es clásico en las arquitecturas de Intel. En ellas, cuando se instala un dispositivo, a su controlador se le asigna un puerto de e/s, una interrupción hardware y un vector de interrupción. Para efectuar una operación de e/s el CPU ejecuta operaciones port o portout con la dirección de puerto del dispositivo y con parámetros para indicar qué registro se quiere manipular. Todas las operaciones de entrada/salida (pantalla gráfica, impresoras, ratón, discos, etc.) se realizan usando esas dos instrucciones de lenguaje máquina con los parámetros adecuados. El problema de este tipo de direccionamiento es que exige conocer las direcciones de e/s y programar las instrucciones especiales de E/S, lo que es significativamente distinto del modelo de memoria de la computadora.
Ejemplos de controladores, sus direcciones de e/s y sus vectores de interrupción en la PC IBM pueden verse en la siguiente tabla.
El otro modelo de direccionamiento de e/s es el modelo proyectado en memoria. Este modelo, típico de las arquitecturas de Motorola, asigna a cada dispositivo de e/s un rango de direcciones de memoria a través de las cuales se escribe sobre los registros del controlador. En este modelo no hay instrucciones específicas de e/s, sino que las operaciones se llevan a cabo mediante instrucciones máquina de manejo de memoria, lo que permite gestionar un mapa único de direcciones de memoria. Sin embargo, para no tener conflictos con otros accesos a memoria y para optimizar las operaciones, se reserva una zona de memoria física para asignar las direcciones de e/s.
No hay comentarios:
Publicar un comentario