13 Controladores de entrada/salida El principal objetivo de un controlador de E/S es establecer una abstracción Simplificar la visión que el computador tiene de los periféricos Ocultar detalles físicos, de formato, de temporización Procesador control dirección dato Memoria controlador E/S controlador E/S periférico periférico
14 Estructura del tema Introducción La entrada/salida en el procesador Definición de periférico e interfaz Controladores de entrada/salida Funciones de un controlador Estructura de un controlador Técnicas para las operaciones de entrada/salida Entrada/salida programada Entrada/salida mediante interrupciones Acceso directo a memoria Evolución de la entrada/salida
15 Funciones de un controlador Control y temporización: coordinar el tráfico entre los recursos internos y los dispositivos externos procesador periférico controlador solicitud solicitud reconocimiento reconocimiento reconocimiento reconocimiento dato dato Ejemplo: transferencia de datos de un dispositivo al procesador
16 Funciones de un controlador Almacenamiento temporal de datos: compensar la diferencia de velocidad en las transferencias Si los datos llegan con demasiada rapidez se almacenan y se van procesando al ritmo adecuado Si los datos llegan con demasiada lentitud se van almacenando y se procesan cuando hay suficientes
Detección de errores Defectos mecánicos o eléctricos Errores de transmisión
17 Funciones de un controlador Comunicación con el procesador Decodificar órdenes provenientes del procesador Intercambiar datos Comunicar información de estado y condiciones de error Reconocimiento de una dirección como correspondiente a uno de los periféricos bajo control
Comunicación con el dispositivo: intercambio de señales de control, estado y datos
18 Estructura del tema Introducción La entrada/salida en el procesador Definición de periférico e interfaz Controladores de entrada/salida Funciones de un controlador Estructura de un controlador Técnicas para las operaciones de entrada/salida Entrada/salida programada Entrada/salida mediante interrupciones Acceso directo a memoria Evolución de la entrada/salida
19 Interconexión con los controladores Desde el punto de vista del procesador, la entrada/salida funciona igual que la memoria Operaciones de lectura Operaciones de escritura
Un controlador de E/S tiene dos interfaces Con el procesador y la memoria Con los periféricos
20 Interconexión con los controladores Las conexiones entre el procesador, la memoria y los controladores E/S reciben usualmente el nombre de bus Líneas de control Líneas de dirección Líneas de datos
21 Estructura de un controlador de E/S Registro de datos Almacena los datos que se envían/reciben
22 Estructura de un controlador de E/S Registro de estado Proporciona información del estado actual Puede funcionar como un registro de control para almacenar la información de control transmitida por el procesador
23 Estructura de un controlador de E/S Lógica de entrada/salida Interactúa con el procesador por medio de líneas de control por las que recibe órdenes del procesador pero que también puede usar para solicitar recursos (acceso al bus ) Reconoce y genera los identificadores asociados con cada dispositivo que controla
24 Estructura de un controlador de E/S Lógica específica de interfaz con cada dispositivo gestionado
25 Estructura de un periférico Lógica de control: maneja el periférico en función de las indicaciones del controlador de E/S
26 Estructura de un periférico Transductor: convierte señales digitales a otra forma de energía (salida) o viceversa (entrada) Un buffer permite el almacenamiento temporal de las señales Hay gran variedad de interfaces entre el periférico y el exterior (teclado, monitor, ratón )
27 Interfaz controlador de E/S periférico La interfaz puede ser serie o paralela Serie: solo hay una línea de conexión, los bits se transmiten de uno en uno Paralela: hay varias líneas de conexión, lo que permite transmitir varios bits de forma simultánea Tradicionalmente se asocian las interfaces paralelas con dispositivos de alta velocidad (cinta, disco ) y las interfaces serie con dispositivos más lentos (impresoras, terminales ) Hoy en día, las interfaces serie de alta velocidad hacen que las paralelas sean cada vez menos frecuentes
28 Estructura del tema Introducción La entrada/salida en el procesador Definición de periférico e interfaz Controladores de entrada/salida Funciones de un controlador Estructura de un controlador Técnicas para las operaciones de entrada/salida Entrada/salida programada Entrada/salida mediante interrupciones Acceso directo a memoria Evolución de la entrada/salida
29 Técnicas para las operaciones de E/S E/S programada Los datos se intercambian entre el procesador y el controlador El procesador envía una orden y espera a que la operación termine ejecutando un programa que controla la operación (lectura, escritura, comprobación de estado )
30 Técnicas para las operaciones de E/S Desventajas de la E/S programada Consume tiempo: el procesador debe dedicar parte de su tiempo a gestionar las operaciones de E/S Mantiene al procesador innecesariamente ocupado: si el procesador es más rápido se verá obligado a comprobar el estado del controlador una y otra vez hasta que la operación finaliza Velocidad limitada: la velocidad de transferencia está limitada por la velocidad a la que el procesador puede atender al controlador
31 Técnicas para las operaciones de E/S E/S mediante interrupciones El procesador da la orden y sigue ejecutando otras instrucciones hasta que el controlador de E/S le interrumpe para comunicarle que la operación ha concluido Es más eficiente porque elimina esperas innecesarias, pero los datos siguen pasando a través del procesador Consume tiempo Limita velocidad
32 Técnicas para las operaciones de E/S Acceso directo a memoria (DMA Direct Memory Access) La memoria y el controlador de E/S intercambian datos directamente sin intervención del procesador El procesador da la orden y sigue ejecutando otras instrucciones hasta que el controlador de E/S le interrumpe para comunicarle que la operación ha concluido, pero los datos no pasan a través de él
33 Técnicas para las operaciones de E/S La E/S programada puede resultar más rápida para pequeñas cantidades de datos, pero el procesador no podrá hacer nada más
La E/S mediante interrupciones libera el procesador para que haga otras tareas, pero la transferencia será más lenta
DMA es la técnica más eficiente cuando se trata de transmitir grandes volúmenes de información
34 Técnicas para las operaciones de E/S Ejemplo: lectura de datos (transferencia E/S ? memoria)
35 Estructura del tema Introducción La entrada/salida en el procesador Definición de periférico e interfaz Controladores de entrada/salida Funciones de un controlador Estructura de un controlador Técnicas para las operaciones de entrada/salida Entrada/salida programada Entrada/salida mediante interrupciones Acceso directo a memoria Evolución de la entrada/salida
36 E/S programada Al encontrar una instrucción E/S, el procesador genera: El identificador del controlador y el periférico Una orden de E/S
La orden de E/S es enviada al controlador
El controlador realiza la operación y ajusta el valor del registro de estado, pero no avisa al procesador
El procesador debe controlar periódicamente el estado del controlador hasta que comprueba que la operación ha finalizado
37 Órdenes de E/S Hay cuatro tipos de órdenes de E/S Control: son específicas de cada tipo particular de periférico (activar periférico, indicarle que hacer ) Test: comprueban condiciones de estado (¿conectado?, ¿disponible?, ¿operación terminada?, ¿error? ) Lectura El controlador lee un dato del periférico y lo almacena internamente El procesador podrá obtener el dato pidiendo al controlador que lo ponga en el bus Escritura El controlador toma un dato del bus El dato es transmitido al periférico
38 Direccionamiento de los periféricos Las instrucciones de E/S suelen tener una correspondencia directa 1-1 con las órdenes de E/S
El formato de las instrucciones de E/S depende de la forma de direccionamiento de los dispositivos, pues deben contener la dirección adecuada
Si el procesador, la memoria y la E/S comparten un bus se pueden usar dos modos de direccionamiento E/S asignada en memoria E/S aislada de memoria
39 E/S asignada en memoria Existe un único espacio de direcciones para posiciones de memoria y dispositivos de E/S
Los registros de estado y de datos de los controladores son vistos por el procesador como posiciones de memoria y accede a ellos como si lo fueran
Sólo existe una línea de lectura y una línea de escritura Por ejemplo, con 10 líneas de dirección tendríamos un total de 210 = 1024 posiciones de memoria y E/S
40 E/S aislada de memoria Existen líneas de lectura/escritura en memoria y otras separadas para las órdenes de E/S Por ejemplo, con 10 líneas para memoria y otras 10 líneas de dirección para E/S tendríamos 210 = 1024 posiciones de memoria y otras tantas de E/S
Las instrucciones deben especificar si se refieren a una posición de memoria o a un dispositivo de E/S
41 E/S asignada vs. aislada E/S asignada en memoria La programación es más eficiente porque existe una gran variedad de instrucciones de lectura/escritura en memoria La desventaja es que hay que compartir el valioso espacio de direcciones de memoria
E/S aislada de memoria Hay menos opciones de programación porque sólo se dispone de unas pocas instrucciones de E/S No se comparte el espacio de direcciones
Ambas se utilizan frecuentemente hoy en día
42 E/S asignada vs. aislada Ejemplo de programa que realiza una operación de E/S (se asumen direcciones de 10 bits)
43 Estructura del tema Introducción La entrada/salida en el procesador Definición de periférico e interfaz Controladores de entrada/salida Funciones de un controlador Estructura de un controlador Técnicas para las operaciones de entrada/salida Entrada/salida programada Entrada/salida mediante interrupciones Acceso directo a memoria Evolución de la entrada/salida
44 E/S mediante interrupciones Desde el punto de vista del controlador de E/S El controlador recibe una orden del procesador El controlador gestiona la operación con el periférico asociado Una vez concluye la operación, el controlador envía una interrupción al procesador El controlador espera a que el procesador actúe Lectura: toma el dato Escritura: comprueba el estado El controlador queda preparado para la siguiente operación
45 E/S mediante interrupciones Desde el punto de vista del procesador El procesador envía una orden al controlador y luego continúa ejecutando instrucciones Del mismo programa si es posible paralelizar De un programa distinto
46 E/S mediante interrupciones Desde el punto de vista del procesador En cada ciclo de instrucción, el procesador comprueba el estado de las interrupciones Una vez detectada, la interrupción es procesada
47 Procesamiento de interrupciones El procesamiento de una interrupción consiste en Suspender la ejecución del programa y guardar su contexto Carga la rutina de gestión de la interrupción Puede haber una por interrupción o una por interrupción y dispositivo Puede haber más de una adecuada La interrupción puede haber indicado cual era la adecuada Puede ser necesario interrogar al dispositivo al respecto Ejecutar la rutina de gestión de la interrupción, lo que puede implicar comunicarse de nuevo con el dispositivo Recuperar el contexto del programa anterior (u otro distinto)
48 Procesamiento de interrupciones Procedimiento de interrupción simplificado PC = Program Counter PSW = Program Status Word
49 Procesamiento de interrupciones El contexto de un programa se almacena en la pila del sistema
50 Procesamiento de interrupciones Es posible que se produzca una interrupción mientras se está procesando otra
Para tratar con estos casos hay dos alternativas Deshabilitar interrupciones Establecer prioridades
51 Deshabilitar interrupciones Mientras se está tratando una interrupción se ignora cualquier interrupción que llegue posteriormente Las interrupciones posteriores quedan pendientes y se procesarán cuando acabe la actual Las interrupciones son tratadas en un orden estrictamente secuencial, pero no se tienen en cuenta la prioridad relativa o las operaciones en tiempo crítico
52 Interrupciones con prioridades Se permite que una interrupción de mayor prioridad interrumpa al gestor de una interrupción de menor prioridad
53 ¿Quién interrumpe? La presencia de múltiples controladores implica que es necesario establecer una estrategia para que el procesador sepa quien generó una interrupción
Múltiples líneas de interrupción Se podrían tener varias líneas de interrupción entre el procesador y los controladores No resulta práctico tener sino unas pocas líneas Incluso si hay varias líneas, tendrán que ser compartidas entre controladores distintos
54 ¿Quién interrumpe? Consulta software (software poll) Cuando se detecta una interrupción se salta a una rutina general de servicio de interrupción que consulta a cada controlador para determinar el responsable Activar una señal de control para que el controlador responda Direccionar el registro de estado de cada controlador Una vez identificado el controlador se salta a una rutina específica de servicio de interrupción El principal problema de esta técnica es que consume demasiado tiempo
55 ¿Quién interrumpe? Conexión en cadena (daisy chain) Todos los controladores comparte una línea común para solicitar interrupciones La línea de reconocimiento de interrupciones se conecta encadenando los controladores uno tras otro Cuando el procesador detecta una interrupción activa el reconocimiento, que se va propagando hasta el controlador correcto El controlador responde poniendo en el bus un identificador (vector) que el procesador usa como puntero a la rutina de interrupción De esta forma se evita ejecutar una rutina de servicio general primero pues la consulta es hardware (hardware poll) Esta técnica también recibe el nombre de interrupciones vectorizadas
56 ¿Quién interrumpe? Arbitraje de bus Un controlador debe disponer del bus antes de poder activar una interrupción Sólo un controlador puede interrumpir en cada momento Cuando el procesador detecta la interrupción responde activando la línea de reconocimiento, con lo que el controlador coloca su vector en el bus (esta técnica también es vectorizada)
57 ¿Quién tiene prioridad? Las técnicas anteriores proporcionan una forma de asignar prioridades a las interrupciones Múltiples líneas de interrupción: el procesador elige la línea que tenga mayor prioridad Consulta software: la prioridad viene determinada por el orden en el que se consultan los controladores Conexión en cadena: la prioridad viene determinada por el orden en el que los controladores se conectan en la cadena Arbitraje de bus: la prioridad en la asignación del bus determina la prioridad de las interrupciones
58 Intel 82C59A El controlador de interrupciones Intel 82C59A es un árbitro de interrupciones externo utilizado con el procesador 80386 El 80386 tiene una única línea de petición de interrupción: INTR (interrupt request) El 80386 tiene una única línea de reconocimiento de interrupción: INTA (interrupt acknowledge) La conexión con el 82C59A permite al procesador manejar cierta variedad de dispositivos y estructuras de prioridad
59 Intel 82C59A Este chip se encarga únicamente de la gestión de interrupciones Acepta solicitudes de los controladores Determina quién tiene la prioridad más alta Activa INTR para indicárselo al procesador El procesador activa INTA para reconocer la solicitud El chip pone el vector apropiado en el bus El procesador inicia el gestor de la interrupción y pasa a comunicarse directamente con el controlador a partir de ese momento
60 Intel 82C59A Un chip puede manejar hasta 8 controladores Pueden conectarse varios chips en cascada para manejar hasta 64 controladores
61 Intel 82C59A El 82C59A es programable El procesador determina el esquema de prioridad que se va a usar cargando una palabra de control en el chip Completamente anidado: las solicitudes de interrupción se ordenan según el nivel de prioridad (de IR0 a IR7) Rotatorio: hay varios dispositivos con igual prioridad pero, después de ser atendido, un dispositivo pasa a tener la menor prioridad del grupo Con máscara especial: se permite que el procesador pueda inhibir selectivamente las interrupciones desde ciertos dispositivos
62 Intel 82C55A Mientras que el 82C59A era un árbitro de interrupciones externo, la interfaz programable de periféricos 82C55A es un verdadero controlador de E/S Es un controlador de propósito general que puede usarse tanto para E/S programada como para E/S mediante interrupciones Está integrado en un solo chip con 40 terminales También se utiliza junto con el procesador 80386
63 Intel 82C55A La interfaz externa se compone de 24 líneas de E/S configurables mediante un registro de control Tres buses de 8 bits (A, B y C) Dos buses de 8 bits (A y B) y cuatro bits de señales de control y estado para cada uno (CA y CB)
64 Intel 82C55A La interfaz externa se compone de 24 líneas de E/S configurables mediante un registro de control Cada puerto puede designarse como de entrada o salida Las líneas C pueden usarse para sincronización mediante confirmación de señales o para petición de interrupciones
65 Intel 82C55A La interfaz interna se compone de Un bus bidireccional de 8 bits (D) usado para transferir datos a/desde los puertos de E/S y al registro de control Dos líneas de dirección (A0,A1) para especificar uno de los puertos de E/S o el registro de control
66 Intel 82C55A La interfaz interna se compone de Una señal RESET para inicializar el controlador Una señal CHIP SELECT que indicará el comienzo de una transferencia cuando se active junto con la señal READ o la señal WRITE
67 Procesamiento de interrupciones Ejemplo: controlar una terminal con teclado y pantalla
68 Estructura del tema Introducción La entrada/salida en el procesador Definición de periférico e interfaz Controladores de entrada/salida Funciones de un controlador Estructura de un controlador Técnicas para las operaciones de entrada/salida Entrada/salida programada Entrada/salida mediante interrupciones Acceso directo a memoria Evolución de la entrada/salida
69 Controlador de DMA El controlador de DMA es un módulo capaz de recibir el control del bus del sistema (cedido por el procesador) para transferir datos a/desde memoria Dos opciones de funcionamiento: Utilizar el bus sólo cuando el procesador no lo necesita Lo más común es forzar al procesador a que suspenda temporalmente el uso del bus (robo de un ciclo de bus)
70 Controlador de DMA Cuando el procesador desea leer/escribir un bloque de datos envía una orden al controlador de DMA incluyendo la siguiente información: Indicación de si es lectura o escritura usando la línea de control apropiada Dirección del dispositivo de E/S usando las líneas de datos
71 Controlador de DMA Cuando el procesador desea leer/escribir un bloque de datos envía una orden al controlador de DMA incluyendo la siguiente información: Posición inicial de memoria a la que leer/escribir usando las líneas de datos y que será almacenada en el registro de direcciones Número de palabras a leer/escribir usando las líneas de datos y que será almacenado en el registro de cuenta de datos
72 Controlador de DMA El controlador de DMA puede robarle el bus al procesador justo antes de que lo necesite No es una interrupción: el procesador no guarda el contexto, tan solo espera un ciclo de bus El procesador se ralentiza, pero para transmitir varias palabras es más eficiente que las otras dos técnicas Cuando termina la transmisión, el controlador de DMA devuelve el control del bus al procesador
73 Controlador de DMA El procesador puede continuar con su trabajo después de enviar la orden al controlador de DMA pues, a todos los efectos, ha delegado en él la operación
El controlador de DMA se encarga de transferir el bloque completo de datos, palabra a palabra, directamente a/desde memoria (sin pasar por el procesador)
Cuando la operación concluye, el controlador envía una interrupción al procesador para comunicárselo
74 Configuración del DMA La configuración más económica es que todos los controladores compartan el bus del sistema El controlador de DMA actuará como un procesador suplementario que usa E/S programada para transferir datos entre la memoria y un controlador de E/S Es ineficiente porque cada dato consumirá dos ciclos de bus (E/S ?? DMA ?? Memoria)
75 Configuración del DMA Integrar las funciones de DMA y E/S reduciría el número de ciclos de bus necesarios Existe un camino entre el controlador de DMA y uno o varios controladores de E/S que no pasa por el bus del sistema El controlador de DMA puede ser un módulo separado que gestiona varios controladores de E/S o parte de uno de ellos Cada dato consumirá un solo ciclo del bus del sistema (DMA ?? Memoria)
76 Configuración del DMA Se puede dar un paso más conectando los controladores de E/S a un controlador de DMA usando un bus de E/S El controlador de DMA sólo tiene una interfaz con la E/S, dando lugar a una configuración fácilmente ampliable De nuevo, cada dato consumirá un solo ciclo del bus del sistema (DMA ?? Memoria)
77 Intel 8237A El controlador de DMA Intel 8237A proporciona la interfaz necesaria para realizar el acceso directo a memoria en computadores basados en procesadores de la familia 80×86
78 Intel 8237A El 8237A es un controlador de DMA al vuelo (fly-by DMA) porque los datos no pasan nunca a través del propio controlador y no se almacenan en él Puede controlar transferencias Memoria ?? E/S No puede controlar transferencias E/S ?? E/S Puede controlar transferencias Memoria ?? Memoria usando un registro temporal
En cualquier caso, mientras el controlador de DMA utiliza los buses, el procesador permanece ocioso (idle)
79 Intel 8237A Ejemplo de transferencia Por ejemplo, supongamos que el controlador de DMA va a transferir un bloque de datos desde la memoria hasta el disco El controlador de disco solicitará el DMA activando la señal DREQ (DMA Request) El controlador DMA necesita usar los buses para la transferencia (datos, dirección y control), por lo que envía al procesador la señal HRQ (Hold Request); esta señal debe estar activa durante toda la transmisión El procesador terminará el ciclo de bus en el que se encuentre, aunque no necesariamente terminará la ejecución de la instrucción
80 Intel 8237A Ejemplo de transferencia Por ejemplo, supongamos que el controlador de DMA va a transferir un bloque de datos desde la memoria hasta el disco El procesador responde al controlador de DMA activando la señal de reconocimiento HLDA (Hold Acknowledge) para indicarle que puede usar los buses El controlador de DMA activará la señal DACK (DMA Acknowledge) para indicar al periférico que comienza la transmisión Se realiza la transmisión de datos Una vez finalizado el proceso, el controlador de DMA desactiva la señal HRQ para indicarle al procesador que puede volver a hacer uso de los buses
81 Intel 8237A Ejemplo de transferencia Cuando la transmisión de datos (paso 6) sea una lectura de memoria, el controlador de DMA realizará las siguientes operaciones: Poner en el bus de direcciones la dirección del primer byte a leer de memoria Activar MEMR (Memory Read) para obtener el byte de datos de memoria y ponerlo en el bus de datos Activar IOW (Input/Output Write) para escribir en el periférico el dato presente en el bus Decrementar el contador de bytes leídos Incrementar el puntero a la posición que debe leerse Repetir el proceso hasta que todos los datos se hayan leído
82 Intel 8237A Ejemplo de transferencia Cuando la transmisión de datos (paso 6) sea una escritura en memoria, el controlador de DMA realizará las siguientes operaciónes: Poner en el bus de direcciones la dirección de la primera posición de memoria a escribir Activar IOR (Input/Output Read) para obtener un byte de datos del periférico y ponerlo en el bus de datos Activar MEMW (Memory Write) para escribir en memoria el dato presente en el bus Decrementar el contador de bytes escritos Incrementar el puntero a la posición en que se debe escribir Repetir el proceso hasta que todos los datos se hayan escrito
83 Intel 8237A Canales de DMA El 8237A tiene cuatro canales (0, 1, 2 y 3) Cada canal se puede programar independientemente Cualquiera canal puede estar activo en un momento dado, incluso varios (o todos) de forma simultánea
El 8237A dispone de ocho registros de datos que utiliza para indicar la posición y el tamaño de la zona de memoria afectada por una transferencia Un registro de dirección de memoria por cada canal Un registro contador por cada canal
84 Intel 8237A Canales de DMA El 8237A dispone de cinco registros de control que se utilizan para programar y controlar la operación DMA de cada uno de los cuatro canales Orden (command) Estado (status) Modo (mode) Máscara simple (single mask) Máscara completa (all mask)
85 Intel 8237A Registros de Control
86 Intel 8237A Registros de Control Orden (command): el procesador carga este registro para controlar la operación de DMA D0 habilita una transferencia Memoria ?? Memoria que usa el canal 0 para leer un byte en un registro temporal y el canal 1 para transferirlo de nuevo a memoria D1 permite deshabilitar el incremento/decremento en el canal 0 para forzar la transmisión de un valor fijo D2 habilita/deshabilita las operaciones de DMA D3 reduce el periodo de bus D4 elige entre prioridad fija y prioridad máxima rotatoria D5 define el comportamiento de la señal MEMW D6 y D7 define cuando DREQ y DACK están activas (0 ó 1)
87 Intel 8237A Registros de Control Estado (status): el procesador lee este registro para determinar el estado del controlador de DMA D0 D3: indican si los canales 0 3 han alcanzado el valor final de la cuenta D4 D7: indican si hay una petición de DMA pendiente en los canales 0 3
88 Intel 8237A Registros de Control Modo (mode): el procesador carga este registro para establecer el modo de operación de un canal D0,D1: selecciona el canal D2 D7: establece el modo de operación del canal elegido D2,D3: indican si la transferencia es E/S ? Memoria (escritura) o Memoria ? E/S (lectura) D4: vuelve a cargar el registro de dirección de memoria y el registro contador a los valores iniciales una vez que termina la transferencia D5: indica si durante la transferencia hay que incrementar o decrementar las direcciones D6,D7: determina el modo de utilización del 8237A Simple: se transfiere un único bit de datos Bloque/Demanda: transfiere bloques (demanda = finalización prematura) Modo cascada: permite encadenar varios para tener más de cuatro canales
89 Intel 8237A Registros de Control Máscara simple (single mask): el procesador modifica este registro para deshabilitar un canal determinado enmascarando la entrada DREQ D0,D1: selecciona el canal D2: activa o desactiva el bit de máscara correspondiente al canal seleccionado
Máscara completa (all mask): es similar al anterior pero permite habilitar/deshabilitar todos los canales en una sola operación
90 Estructura del tema Introducción La entrada/salida en el procesador Definición de periférico e interfaz Controladores de entrada/salida Funciones de un controlador Estructura de un controlador Técnicas para las operaciones de entrada/salida Entrada/salida programada Entrada/salida mediante interrupciones Acceso directo a memoria Evolución de la entrada/salida
91 Evolución de la Entrada/Salida A medida que los computadores evolucionaban, la entrada/salida ha evolucionado con ellos El procesador controlaba directamente los periféricos Aparece el controlador de E/S y el procesador se independiza de los detalles específicos de la de la interfaz de los periféricos; las operaciones se gestionan por medio de E/S programada Surge el concepto de interrupción; el procesador ya no tiene que esperar por las operaciones de E/S, aumentando su eficiencia Aparece el DMA; el procesador ya sólo necesita involucrarse al comienzo y al final de las operaciones
92 Evolución de la Entrada/Salida A medida que los computadores evolucionaban, la entrada/salida ha evolucionado con ellos Canales de E/S: los controladores mejoran tanto que se comportan como pequeños procesadores con su propio repertorio de instrucciones especializado El procesador especifica al canal una secuencia de actividades, indicándole que ejecute su propio programa desde memoria, y se desentiende hasta que la secuencia termine y reciba una interrupción Procesadores de E/S: el canal de E/S tiene memoria propia puede controlar un conjunto grande de dispositivos de E/S con una intervención mínima por parte del procesador
93 Canales de Entrada/Salida En general, esta evolución se caracteriza por que cada vez más funciones se realizan sin intervención del procesador, mejorando con ello su rendimiento Los canales y procesadores de E/S son un cambio importante en el concepto de controlador de E/S Amplían el concepto de DMA con la capacidad de ejecutar programas de E/S La capacidad de ejecutar instrucciones de E/S les proporciona completo control sobre las operaciones de E/S Tanto el término canal como el término procesador se pueden utilizar indistintamente, pero usaremos canal de E/S para generalizar y evitar confusiones
94 Canales de Entrada/Salida El procesador no ejecuta instrucciones de E/S Se almacenan en memoria como programas independientes Al principio de una transferencia, el procesador indica al canal de E/S qué programa debe ejecutar El programa de entrada salida determina Dispositivo/s a utilizar Área/s de memoria Prioridades Acciones a realizar en caso de error El canal de E/S sigue estas instrucciones y controla la transferencia
95 Canales de Entrada/Salida En general, se pueden distinguir dos tipos de canales de E/S: selectores y multiplexores Un canal selector se usa en lugar del procesador para gestionar los controladores Controla varios dispositivos de velocidad elevada Cada dispositivo (o grupo de ellos) es gestionado por un controlador En un momento dado, el canal de E/S selecciona un dispositivo y efectúa una transferencia
96 Canales de Entrada/Salida En general, se pueden distinguir dos tipos de canales de E/S: selectores y multiplexores Un canal multiplexor puede gestionar la E/S de varios dispositivos al mismo tiempo Los datos enviados por varios dispositivos son entrelazados y transmitidos tan rápidamente como sea posible Dispositivos de velocidad reducida: entrelazado a nivel de bytes Dispositivos de velocidad elevada: entrelazado a nivel de bloques
97 Bibliografía [PATTERSON] Estructura y diseño de computadores interficie circuitería/programación David A. Patterson y John L. Hennessy Editorial Reverté, 2000
[STALLINGS] Organización y arquitectura de computadores William Stallings Pearson Education Prentice Hall, 2005 (7ª edición)
Página anterior | Volver al principio del trabajo | Página siguiente |