1k likes | 1.34k Views
1. El sistema de entrada/salida. Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2007 – 2008. Estructura del tema. Introducción La entrada/salida en el procesador Definición de periférico e interfaz Controladores de entrada/salida
E N D
1. El sistema de entrada/salida Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2007 – 2008
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
Componentes de un computador • Los componentes de un computador son: • Unidad Central de Proceso (CPU – Procesador) • Procesa los datos • Controla el funcionamiento del computador • Memoria • Almacenamiento de datos • Entrada/Salida • Transfiere datos entre el computador y el entorno externo • Sistema de interconexión • Proporciona la comunicación necesaria entre los tres componentes anteriores [STALLINGS 1.2]
Interacción entre los componentes • El procesador controla el computador • Registros de dirección: indican donde leer/escribir • Registros de almacenamiento temporal [STALLINGS 3.1]
Interacción entre los componentes • La memoria es un conjunto de posiciones secuenciales • Instrucciones • Datos [STALLINGS 3.1]
Interacción entre los componentes • La entrada/salida gestiona las transferencias con el exterior • A/desde el procesador • A/desde memoria • Utiliza registros internos para almacenamiento temporal [STALLINGS 3.1]
Importancia de la entrada/salida [PATTERSON 8.1]
Periféricos e interfaces • Un periférico es un dispositivo físico que permite al computador comunicarse con su entorno • Adquirir información del exterior • Proporcionar información al exterior • Transformar información del formato interno al formato externo y/o viceversa • Una interfaz es una conexión entre dos dispositivos que permite el intercambio de información entre ellos
Clasificación de los periféricos • Las características principales que nos permiten clasificar los periféricos son: • Comportamiento • Entrada (lectura) • Salida (escritura) • Almacenamiento • Interlocutor: ¿quién está al otro lado de la comunicación? • Humano • Máquina • Velocidad: ¿cómo de rápido se transmiten los datos? [PATTERSON 8.3]
Clasificación de los periféricos [PATTERSON 8.3]
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
Controladores de entrada/salida • Los periféricos no pueden conectarse directamente al computador • Hay muchos periféricos con funcionamientos distintos, no puede incorporarse lógica al procesador para que sepa como interactuar con todos ellos • La velocidad de los periféricos suele ser diferente a la velocidad de la memoria o el procesador • El formato de los datos usado por los periféricos suele ser diferente al usado por el computador [STALLINGS 7.0]
Controladores de entrada/salida • Un controlador de E/S es un módulo que implementa la interfaz de los periféricos con el procesador y la memoria control Procesador dirección dato Memoria controlador E/S controlador E/S … periférico periférico [STALLINGS 7.0]
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… control Procesador dirección dato Memoria controlador E/S controlador E/S … periférico periférico [STALLINGS 7.0]
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
Funciones de un controlador • Control y temporización: coordinar el tráfico entre los recursos internos y los dispositivos externos Ejemplo: transferencia de datos de un dispositivo al procesador procesador controlador periférico solicitud solicitud reconocimiento reconocimiento dato dato reconocimiento reconocimiento [STALLINGS 7.2]
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 [STALLINGS 7.2]
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 [STALLINGS 7.2]
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
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 [STALLINGS 3.3] [STALLINGS 7.1]
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 [STALLINGS 3.3] [STALLINGS 7.1]
Estructura de un controlador de E/S • Registro de datos • Almacena los datos que se envían/reciben [STALLINGS 7.2]
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 [STALLINGS 7.2]
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 [STALLINGS 7.2]
Estructura de un controlador de E/S • Lógica específica de interfaz con cada dispositivo gestionado [STALLINGS 7.2]
Estructura de un periférico • Lógica de control: maneja el periférico en función de las indicaciones del controlador de E/S [STALLINGS 7.1]
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…) [STALLINGS 7.1]
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 [STALLINGS 7.7]
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
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…) [STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]
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 [STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]
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 [STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]
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 [STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]
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 [STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]
Técnicas para las operaciones de E/S Ejemplo: lectura de datos (transferencia E/S memoria) [STALLINGS 7.3] [STALLINGS 7.4] [STALLINGS 7.5]
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
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 [STALLINGS 7.3]
Ó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 [STALLINGS 7.3]
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 [STALLINGS 7.3]
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 [STALLINGS 7.3]
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 [STALLINGS 7.3]
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 [STALLINGS 7.3]
E/S asignada vs. aislada Ejemplo de programa que realiza una operación de E/S (se asumen direcciones de 10 bits) [STALLINGS 7.3]
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
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 [STALLINGS 7.4]
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 [STALLINGS 7.4] [STALLINGS 3.2]
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 [STALLINGS 7.4] [STALLINGS 3.2]
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) [STALLINGS 7.4] [STALLINGS 3.2]
Procesamiento de interrupciones Procedimiento de interrupción simplificado PC = Program Counter PSW = Program Status Word [STALLINGS 7.4]
Procesamiento de interrupciones El contexto de un programa se almacena en la pila del sistema [STALLINGS 7.4]