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.

Entradas relacionadas: