La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Organización del Computador I Verano Programación de Operaciones de Entrada/Salida Profesora Borensztejn.

Presentaciones similares


Presentación del tema: "Organización del Computador I Verano Programación de Operaciones de Entrada/Salida Profesora Borensztejn."— Transcripción de la presentación:

1 Organización del Computador I Verano Programación de Operaciones de Entrada/Salida
Profesora Borensztejn

2 Elementos de un Computador tipo von Neumann
Dispositivos de E/S: permiten la comunicación entre el computador y el mundo exterior Ejemplos de periféricos: Representación de datos: pantalla, impresora Adquisición de datos: teclado, sensores Almacén de información: discos, CDRom, DVD Modificación del entorno: motores, luces, válvulas

3 Controladores El controlador de períféricos es un circuito que actúa de intermediario entre el procesador y el periférico. Para realizar operaciones de E/S el procesador se comunica directamente con el controlador. Conexión procesador-controlador Conexión controlador-periférico Controlador de disco Disk Procesador Controlador de teclado teclado

4 Controladores Ventajas del uso de controladores: Periférico Procesador
Interfaz con procesador Interfaz con periférico Procesador Periférico Ventajas del uso de controladores: Facilidad de Interconexión: Todos los controladores se conectan de forma similar al procesador. Habitualmente, el periférico viene dotado de su propio controlador, y por lo tanto, no es necesario realizar la conexión controlador-periférico Facilidad de programación de operaciones de E/S: Los pasos a realizar para programar cualquier tipo de operación de E/S son muy parecidos (sea cual sea el tipo de dispositivo)

5 Controladores Registros del Controlador:
El procesador se comunica con el controlador a través de un conjunto de registros que se encuentran físicamente en el controlador. El procesador puede leer y escribir esos registros. Registro de Estado Registro de Control Registro de Datos Interfaz con procesador

6 Registros del Controlador
Tipos de registros: Registro de Estado: Contiene una serie de bits que el hardware del controlador se encarga de activar para indicar la situación en la que se encuentra el periférico (el usuario ha pulsado una tecla, hay un nuevo dato en el buffer de recepción de la línea serie, etc) Registro de Control: Contiene una serie de bits que deben activarse por programa para indicar como debe funcionar el periférico (lectura/escritura de un sector del disco, interrupción , etc) Registro de Datos: Contiene los datos involucrados en la operación de E/S (el carácter pulsado, el byte recibido, el sector leído, etc) Registro de Estado Registro de Control Registro de Datos Interfaz con procesador

7 Programación del Controlador
Cualquier operación de E/S no es más que una serie de lecturas y escrituras de los registros del controlador Secuencia típica de operaciones para transferir información del periférico (por ejemplo, del disco) a memoria: Leer el registro de estado para determinar si el dispositivo está listo Escribir en el registro de control para indicar al controlador el tipo de operación a realizar (lectura de un sector) Leer uno a uno los datos que el controlador va a colocar en el registro de datos y transferirlos a memoria.

8 Acceso a los registros del controlador
Los registros del controlador deben poder ser leídos y/o escritos por el procesador Existen dos técnicas de conexión del controlador al sistema computador para que los registros puedan ser leídos o escritos: Registros Mapeados en Memoria Registros No Mapeados en memoria (espacio de direcciones independiente de E/S) La decisión de mapeo la realiza el diseñador del procesador.

9 Registros Mapeados en Memoria
Las direcciones de los registros pertenecen al espacio lógico de direcciones de memoria. Las direcciones de los registros deben estar asignadas de tal forma que no correspondan a direcciones de memoria principal. Se leen y escriben de la misma forma que la memoria principal DRAM E/S FFFFFFFF

10 Registros Mapeados en Memoria
Ejemplo: Supongamos que los registros del controlador de la unidad de disco flexible está asignado a la dirección de memoria 0xFFFF1000, cuyo valor está cargado en el registro base $2. Supongamos que el registro de datos está en el offset 0 respecto a la dirección base: La instrucción Lb $4, 0($2) Transfiere un byte desde el registro del controlador al registro del procesador Ventaja: Puede utilizarse cualquier instrucción y cualquier modo de direccionamiento para acceder a los registros del controlador Desventaja: Una parte del espacio lógico direccionable por el procesador debe asignarse a los registros del controlador

11 Registros No Mapeados en Memoria
Los registros están mapeados en un espacio totalmente independiente del espacio lógico. Existen instrucciones de lenguaje máquina para leer y escribir en una posición determinada del espacio de E/S (In/Out) 0000 E/S FFFF DRAM FFFFFFFF

12 Registros No Mapeados en Memoria
Ejemplo: Supongamos que los registros del controlador de la unidad de disco flexible está asignados a la dirección del espacio de E/S 0x1000, cuyo valor está cargado en el registro base $2. Supongamos que el registro de datos está en el offset 0 respecto a la dirección base: La instrucción IN $4, 0($2) Transfiere un byte desde el registro del controlador al registro del procesador OUT $4, 0($2) Transfiere un byte desde el registro del procesador al registro del controlador Ventaja: Los espacios son diferentes, fácil de implementar protección. Desventaja: Se necesitan instrucciones especiales.

13 Sincronización en las operaciones de E/S
Problema de la sincronización en las operaciones de entrada/salida El procesador y los controladores son circuitos que cooperan de manera asíncrona. Es necesario establecer algún mecanismo que permita a estos dispositivos sincronizarse para la realización de una dterminada operación Técnicas para resolver el problema de la sincronización: Sincronización por consulta (pooling) Sincronización por interrupción

14 Sincronización por consulta
El procesador toma la iniciativa para determinar el estado en el que se encuentra el periférico. Para ello consulta periódicamente el registro del estado del controlador Típicamente las operaciones que realiza el procesador para sincronizarse con el controlador son las siguientes: Repetir Leer registro de estado Hasta que (dispositivo preparado) Acciones propias de la operación de E/S Ventajas: Es fácil de implementar, no requiere soporte hardware Desventajas: Mientras el dispositivo no está preparado, el procesador no hace ningún trabajo útil.

15 Sincronización por interrupción
El periférico toma la iniciativa de indicar al procesador en que momento está preparado. Para ello, existe un mecanismo, denominado Interrupción, que permite al controlador forzar al procesador a que abandone el programa que está ejecutando y pase a ejecutar una serie de instrucciones de atención al dispositivo periférico (rutina de atención a la interrupción). Al terminar la rutina, el procesador continúa la ejecución del programa interrumpido. Programa Rutina de atención interrupción

16 Sincronización por interrupción
Ventajas: El procesador puede realizar otras operaciones útiles hasta que sea interrumpido por el periférico Inconvenientes: Requiere soporte hardware Comentario: Todos los procesadores disponen de un mecanismo de interrupciones. Es decisión del programador utilizar, en cada caso, consulta o interrupción

17 Interrupciones Secuencia de acontecimientos durante la atención a una interrupción: Solicitud de interrupción por parte del controlador Detección de la petición de interrupción por parte del procesador Salvar el estado del programa interrumpido Identificación del dispositivo que ha interrumpido Ejecución de la rutina de atención correspondiente Retorno al programa interrumpido

18 (a) Solicitud de interrupción
El controlador realiza una petición de interrupción cada vez que requiere atención del procesador: Por ejemplo: se ha pulsado una tecla La petición de interrupción se realiza activando una señal eléctrica conectada a una entrada del procesador

19 (b) Detección de la petición de interrupción
La señal de petición de interrupción es muestreada por el procesador periódicamente (habitualmente cada vez que acaba la ejecución de una instrucción). Existen varias formas de impedir que el procesador sea interrumpido: En la palabra de estado del procesador existe un bit denominado : bit de inhibición de interrupciones (IF). Las interrupciones no serán atendidas por el procesador mientras este bit esté activo. Existen instrucciones para setear (poner a cero) el bit. El procesador puede tener varias líneas de interrupción. En este caso, además de IF, la palabra de estado tendrá un conjunto de bits de inhibición selectiva de las diferentes señales de interrupción. Este conjunto de bits se denomina máscara.

20 (b) Detección de la petición de interrupción
El procesador puede indicar directamente al controlador que no interrumpa, activando un determinado bit en el registro de control del controlador Habitualmente, el procesador tiene señales de interrupción no enmascarables. Puede existir un mecanismo de interrupciones multinivel: existen diferentes tipos de interrupciones organizadas en niveles de prioridad. Cuando el procesador atiende una interrupción de un nivel determinado, ignora las peticiones de niveles inferiores

21 (c) Salvar el estado del programa interrumpido
Es necesario que el programa interrumpido pueda reanudarse como si nada hubiera pasado. Las operaciones de salvar el contexto pueden realizarse en parte en hardware y en parte en software. Las operaciones que deben realizarse por hardware son, como mínimo: Salvar el PC Bloquear la petición de interrupción (para que no vuelva a interrumpir): Desactivar la señal eléctrica de petición o Activar el bit de inhibición de interrupciones y salvar la palabra de estado Las operaciones que habitualmente se realizan por software son: Salvar los registros utilizados en la rutina de atención Provocar la desactivación de la señal de petición de interrupción.

22 (d) Identificación del dispositivo que ha interrumpido
Cuando varios dispositivos pueden interrumpir por la misma línea de petición de interrupción se plantea el problema de determinar cuál es el periférico que ha originado la petición. La identificación puede realizarse Por software Por hardware

23 (d) Identificación del dispositivo que ha interrumpido
Identificación por software: La rutina de atención lo primero que hace es identificar el dispositivo que interrumpió. Para ello, debe leer los registros de estado de los diferentes controladores. El orden en que se consulten estos registros determina la prioridad entre los dispositivos (en el caso de que varios soliciten interrupción simultáneamente) Ventajas: es barata porque no necesita soporte hardware Desventajas: La identificación es lenta

24 (d) Identificación del dispositivo que ha interrumpido
Identificación por hardware: Es el propio periférico (o un dispositivo externo especializado) el que se identifica. Existen dos alternativas: El procesador tiene varias señales de petición de interrupción. Cada controlador interrumpe por una línea diferente Existe una sola línea de petición de interrupción. El controlador, además de interrumpir, envía al procesador una información que es utilizada por éste para determinar la dirección de la rutina de atención al dispositivo.

25 (d) Identificación del dispositivo que ha interrumpido
Habitualmente, la información que envía el dispositivo es un número (vector de interrupción) que el procesador utiliza para indexar una Tabla (Tabla de Vectores de Interrupción) que contiene la dirección de las rutinas de atención de los diferentes dispositivos. El programador (o sistema operativo) debe encargarse de inicializar la tabla con las direcciones de las rutinas de atención requeridas por su aplicación. Ventajas: la identificación es rápida Inconveniente: Requiere un cierto soporte hardware

26 (e) Ejecución de la rutina de atención
Las operaciones realizadas en la rutina de atención dependen del tipo de dispositivo y del tipo de servicio requerido. Al comienzo de la rutina deben salvarse los registros que se usaran, y restaurarlos al final

27 (f) Desactivación de la señal de petición
Es necesario desactivar la señal de petición para evitar que el dispositivo siga pidiendo atención cuando ya está siendo servido La manera de hacerlo depende del dispositivo. Podría ser, por ejemplo, leyendo el registro de estado, o el de datos, o bien escribiendo un bit en el de control (o bien, lo que el manual del dispositivo diga)

28 (g) Retorno al programa interrumpido
La última instrucción de la rutina de atención es una instrucción especial de retorno de interrupción.

29 Interrupciones Multinivel
Muchos procesadores permiten que una rutina de atención a una interrupción pueda ser interrumpida por otro dispositivo que requiere atención prioritaria. En estos casos, existe un orden de prioridad entre los distintos dispositivos. El procesador, o un circuito externo especializado, se encarga de determinar cuando una petición de interrupción es mas prioritaria que la que se está atendiendo. Para permitir interrupciones multinivel, no se deben desabilitar las interrupciones globales dentro de las rutinas de servicio.

30 Transferencia de Información en las operaciones de E/S
¿Quien realiza la transferencia de datos desde los registros del controlador a la memoria? Dos alternativas: Transferencia por programa Transferencia por acceso directo a memoria El problema de la transferencia es ortogonal al de la sincronización: para cualquiera de las alternativas de transferencia puede aplicarse cualquiera de las alternativas de sincronización

31 Transferencia por programa
El procesador se encarga de realizar la transferencia de la información, leyendo y/o escribiendo los registros del controlador Ventaja: fácil de implementar, no requiere soporte hardware Inconveniente: La transferencia es lenta ya que para mover cada dato deben ejecutarse una serie de instrucciones de lenguaje máquina

32 Transferencia por acceso directo a memoria
El propio controlador deposita/toma los datos en/la memoria. Es necesario indicarle previamente a partir de que posición de memoria debe leer/escribir los datos, y cuantos datos están involucrados en la operación. Para ello, el controlador dispone de dos nuevos registros: Registro de Dirección: dirección de memoria involucrada en la transferencia Registro de Longitud: Número de datos involucrados en la transferencia Estos registros deben ser inicializados por el procesador en el momento de la programación de la operación de E/S

33 Transferencia por acceso directo a memoria
Ventaja: La transferencia es rápida. Además el procesador puede realizar otras tareas mientras se realiza la transferencia Inconveniente: requiere soporte hardware La técnica de DMA es conveniente cuando la información a transferir está organizada en forma de bloque que ocupa posiciones consecutivas de memoria. Además, DMA es imprescindible cuando el dispositivo es rápido

34 Esquemas básicos para la programación de operaciones de E/S
Transferencia por programa, sincronización por consulta Transferencia por programa, sincronización por interrupción Transferencia por DMA, sincronización por interrupción

35 Transferencia por programa, sincronización por consulta
El programa que requiere la operación de E/S (programa principal) realiza la programación del controlador y la transferencia de los datos Lectura de un sector de disco sobre memoria Los registros del controlador de disco son: Sector, pista, control, dato y estado El sector se identifica mediante num_pista y num_sector El sector debe leerse sobre el vector sec. El número de bytes del sector es tamsec.

36 Transferencia por programa, sincronización por consulta
Programa Principal pistanum_pista Sectornum_sector Controllectura para i=1 hasta tamsec hacer repetir estadovar hasta que (var==preparado) dato->sec[i] fpara Procesar información en sec[1..tamsec]

37 Transferencia por programa, sincronización por interrupción
El programa principal se encarga de la programación del periférico. La transferencia de datos se realiza desde la rutina de tratamiento de las interrupciones del controlador. Lectura de un sector de disco sobre memoria El controlador de disco interrumpe cada vez que tiene disponible un byte del sector en el registro de datos. Se supone que la identificación de la interrupción es por hardware. Las escrituras sobre los registros pista y sector informan al controlador sobre lo que hay que hacer. La escritura sobre el registro control también informa, pero además da la orden de inicio de operación. Por ello, esta escritura debe realizarse cuando toda la información ha sido escrita en los registros del controlador.

38 Transferencia por programa, sincronización por interrupción
Programa Principal i=0 fin=falso pistanum_pista sectornum_sector controllectura Otras operaciones que no requieren el sector del disco mientras no fin hacer fmientras Procesar información en sec[1..tamsec] Rutina de Atención salvar registros i=i+1 dato->sec[i] si i==tamsec entonces fin=cierto fsi restaurar registros IRET

39 Transferencia por DMA, sincronización por interrupción
Las funciones de DMA las realiza el controlador del disco, que dispone de los siguientes registros adicionales (respecto al esquema anterior): dirección y longitud. Se supone una identificación hardware del motivo de la interrupción El controlador interrumpe cuando finaliza la lectura/escritura del sector.

40 Transferencia por DMA, sincronización por interrupción
Programa Principal fin=falso direccióndir(sec) longitudtamsec pistanum_pista sectornum_sector controllectura Otras operaciones que no requieren el sector del disco mientras no fin hacer fmientras Procesar información en sec[1..tamsec] Rutina de Atención salvar registros fin=cierto restaurar registros IRET

41 ¿Consulta o Interrupción?
Supongamos que el número de ciclos que requiere una operación de consulta es de 400 ciclos (salto a una rutina de encuesta, acceso al dispositivo, retorno al programa de usuario), y que el procesador trabaja a 500 Mhz. Determinar la proporción de tiempo de CPU consumida para los tres casos siguientes suponiendo que la consulta se puede realizar sin que se pierda ningún dato: El ratón debe ser encuestado 30 veces por segundo para asegurar que no se pierda ningún movimiento del usuario El disco flexible transfiere datos al procesador en unidades de 16 bits, a una velocidad de 50 Kbytes por segundo. No debe perderse ningún dato El disco rígido transfiere datos en bloques de 4 palabras y puede transferir a una velocidad de 4Mbytes por seg.

42 ¿Consulta o Interrupción?
El ratón debe ser encuestado 30 veces por segundo para asegurar que no se pierda ningún movimiento del usuario Ciclos por encuesta=400 Ciclos por segundo para encuesta= 30*400=12000 ciclos/seg Proporción de ciclos del procesador = consumidos en la encuesta

43 ¿Consulta o Interrupción?
El disco flexible transfiere datos al procesador en unidades de 16 bits, a una velocidad de 50 Kbytes por segundo. Ciclos por encuesta=400 Ciclos por segundo para encuesta= 25 K * 400 ciclos/seg = 10000*1024=10000*1000

44 ¿Consulta o Interrupción?
El disco rígido transfiere datos en bloques de 4 palabras y puede transferir a una velocidad de 4Mbytes por seg. Ciclos por encuesta=400 Ciclos por segundo para encuesta= 250 K * 400 ciclos/seg = *1024=100000*1000

45 ¿Y por interrupciones? El disco rígido transfiere datos en bloques de 4 palabras y puede transferir a una velocidad de 4Mbytes por seg. Supongamos que la sobrecarga por interrupciones es de 500 ciclos Ciclos por interrupción=400 Ciclos por segundo = 250 K * 500 ciclos/seg = 125*106 ciclos por segundo La mayor ventaja del soporte de interrupciones frente a la encuesta es la ausencia de sobrecarga cuando el dispositivo NO está transmitiendo.

46 ¿Y por DMA? El disco rígido puede transferir a una velocidad de 4Mbytes por seg. El tamaño medio de las transferencias es de 8Kbytes. Supongamos que la inicialización de una transferencia por DMA requiere 1000 ciclos de procesador, y que el tratamiento de la interrupción, al finalizar la transferencia de DMA requiere 500 ciclos. El procesador trabaja a 500 Mhz. ¿Cual es la proporción de tiempo de CPU consumida si el disco está transfiriendo el 100% del tiempo?

47 ¿Y por DMA?

48 Organización del Computador I Verano Rendimiento (2 de 3) Basado en el capítulo 2 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn

49 FIN!!!!!!! Última clase!

50


Descargar ppt "Organización del Computador I Verano Programación de Operaciones de Entrada/Salida Profesora Borensztejn."

Presentaciones similares


Anuncios Google