Proceso de Interrupciones y Transferencia de Datos por DMA
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 8,46 KB
Entre las rutinas se detiene el proceso de E/S. Tras el inicio y espera a que finalice operación E/S, la rutina de inicio está no activa. La RTI se encargará de que continúe el proceso pasando a activo la rutina de inicio.
Para las interrupciones utilizamos un hardware (controlador y CPU) que ayudan en el proceso de sincronización (6 fases).
Procesador envía orden E/S al controlador.
Controlador realiza operación E/S y al finalizar activa bits registro de estado. (Inicio de Sincronización).
Hardware del controlador activa señal de interrupción para avisar CPU (Petición de Interrupción) - Petición inter de controlador activada y saber que inter atenderé y cuales dejaré pendientes.
CPU detecta cambio en señal de petición de interrupción y decide si atender (Detección de la Interrupción) - Detección peti iter no enmascarada.
Procesador realiza acciones necesarias para reconocer qué dispositivo ha solicitado interrupción y qué rutina de atención debe ejecutar (Identificación de la Interrupción) - Que disp generó inter, por software rutina general, por hardware rutina especifica.
Si hay más peticiones de interrupción al mismo tiempo, decidir orden de atención (Priorización de la Interrupción) - Qué inter atender primero mediante línea entrada o reconocimiento, por software prio programa, por hardware mecanismos.
Ejecuta la rutina de atención completa correspondiente (Tratamiento de Interrupción) - salvaguarda el programa interrumpido, desactiva peti inter, no devuelve rdo ni param - y finaliza el proceso de interrupción retornando al programa interrumpido (Finalización de la Interrupción) - restaura valores salvados.
Como vemos, el proceso de interrupciones tiene seis fases controladas por hardware o software:
1.Petición Interrupción: Hardware dispositivo.
2.Detección Interrupción: Hardware CPU.
3.Identificación Interrupción: Hardware CPU o software ajeno.
4.Priorización Interrupción: Hardware CPU o software ajeno.
5.Tratamiento Interrupción: rutina específica software operación E/S.
6.Finalización Interrupción: Software propia rutina atención o ajeno.
El hardware utilizado se puede sustituir por un Controlador de Interrupciones
Si tengo que tratar una petición de interrupción mientras atiendo otra:
Nivel interrupciones único: rutina de interrupción ejecutada hasta el final sin aceptar otra interrupción.
Interrupciones multinivel: peticiones de interrupción anidadas, pueden generar problemas para guardar/recuperar los distintos contextos y al gestionar las prioridades.
TRANSFERENCIA DE DATOS POR DMA:
El Acceso Directo a Memoria (DMA) es una técnica de gestión de E/S para tratar grandes volúmenes de datos y dispositivos de alta velocidad.
DMA transfiere un bloque de datos desde un periférico hasta la memoria.
La transferencia periféricos-memoria se realiza sin intervención CPU.
El controlador DMA está conectado al bus del sistema.
Cuando DMA completa transferencia del bloque se produce la sincronización.
Las acciones que se llevan a cabo en una transferencia DMA son:
Software Gestión: controlador DMA acepta peticiones del controlador y le envía órdenes E/S.
Hardware DMA y E/S: controlador E/S realizará operación y al finalizar avisa al DMA. El DMA realiza transferencia a memoria e interrupción cuando finaliza.
Software Gestión: rutina de atención DMA completa la operación E/S.
El modelo de programación del DMA es similar al de interrupciones, pero hay que analizar la transferencia de datos:
Inicio operación E/S: inicio de función uso hasta que transfiero bloque de datos.
Rutina de atención: finaliza el algoritmo comprobando si hay que transmitir más bloques.
Además el DMA tiene un gestor de controlador propio y entre las dos rutinas se detiene el proceso que solicitó la E/S aprovechando el tiempo en otras tareas.
El gestor del controlador DMA incluye:
Información de operación a realizar (tipo in/out y esquema transferencia).
Posición inicial en memoria y tamaño del bloque.
Avisos de error.
Toda esta información se proporciona a través de los registros del controlador.
Los esquemas de transferencia típicos son:
Robo de ciclo: Usa uno o más ciclos de CPU por palabra a transferir, dejando alta disponibilidad bus de sistema para la CPU y la interferencia con esta es muy baja.
DMA por ráfagas: Envía bloque de datos mediante una ráfaga ocupando el bus de sistema hasta finalizar la transmisión de datos que se hará a máxima velocidad. Sin embargo la CPU no podrá usar el bus durante la transferencia y estará inactiva.
DMA transparente: Usa el bus del sistema cuando la CPU no lo necesita, así no obstaculiza la relación CPU-bus, pero la velocidad de transferencia es la más baja.