stringtranslate.com

Latencia de interrupción

En informática, la latencia de interrupción se refiere al retraso entre el inicio de una Solicitud de interrupción (IRQ) y el inicio de la Rutina de servicio de interrupción (ISR) respectiva. [1] Para muchos sistemas operativos, los dispositivos reciben servicio tan pronto como se ejecuta el controlador de interrupciones del dispositivo . La latencia de interrupción puede verse afectada por el diseño del microprocesador , los controladores de interrupción , el enmascaramiento de interrupción y los métodos de manejo de interrupción del sistema operativo (SO). [2]

Fondo

Generalmente existe un equilibrio entre la latencia de interrupción, el rendimiento y la utilización del procesador. Muchas de las técnicas de diseño de CPU y sistema operativo que mejoran la latencia de interrupción disminuirán el rendimiento y aumentarán la utilización del procesador. Las técnicas que aumentan el rendimiento pueden aumentar la latencia de interrupción y aumentar la utilización del procesador. Por último, intentar reducir la utilización del procesador puede aumentar la latencia de interrupción y disminuir el rendimiento.

La latencia mínima de interrupción está determinada en gran medida por el circuito controlador de interrupciones y su configuración. También pueden afectar la fluctuación en la latencia de interrupción, lo que puede afectar drásticamente la capacidad de programación en tiempo real del sistema. La arquitectura Intel APIC es bien conocida por producir una gran cantidad de fluctuación de latencia de interrupción. [ cita necesaria ]

La latencia máxima de interrupción está determinada en gran medida por los métodos que utiliza un sistema operativo para el manejo de interrupciones. Por ejemplo, la mayoría de los procesadores permiten que los programas deshabiliten las interrupciones, posponiendo la ejecución de controladores de interrupciones, para proteger secciones críticas de código. Durante la ejecución de dicha sección crítica, todos los manejadores de interrupciones que no se pueden ejecutar de manera segura dentro de una sección crítica se bloquean (guardan la cantidad mínima de información requerida para reiniciar el manejador de interrupciones después de que todas las secciones críticas hayan salido). Por lo tanto, la latencia de interrupción para una interrupción bloqueada se extiende hasta el final de la sección crítica, más cualquier interrupción con igual o mayor prioridad que llegue mientras el bloqueo estaba en su lugar.

Muchos sistemas informáticos requieren latencias de interrupción bajas, especialmente los sistemas integrados que necesitan controlar la maquinaria en tiempo real. A veces, estos sistemas utilizan un sistema operativo en tiempo real (RTOS). Un RTOS promete que no pasará más de una cantidad de tiempo máxima especificada entre ejecuciones de subrutinas . Para hacer esto, el RTOS también debe garantizar que la latencia de interrupción nunca exceda un máximo predefinido.

Consideraciones

Los controladores de interrupciones avanzados implementan una multitud de características de hardware para minimizar la sobrecarga durante los cambios de contexto y la latencia de interrupción efectiva. Estos incluyen características como:

Además, existen muchos otros métodos que el hardware puede utilizar para ayudar a reducir los requisitos de latencia de interrupción más corta para que una latencia de interrupción determinada sea tolerable en una situación. Estos incluyen buffers y control de flujo . Por ejemplo, la mayoría de las tarjetas de red implementan búferes de anillo de transmisión y recepción , limitación de la tasa de interrupción y control de flujo de hardware. Los búferes permiten almacenar datos hasta que se puedan transferir, y el control de flujo permite que la tarjeta de red suspenda las comunicaciones sin tener que descartar datos si el búfer está lleno.

El hardware moderno también implementa limitación de la tasa de interrupción. Esto ayuda a prevenir tormentas de interrupciones o bloqueos en vivo al hacer que el hardware espere una cantidad de tiempo mínima programable entre cada interrupción que genera. La limitación de la tasa de interrupción reduce la cantidad de tiempo dedicado a atender las interrupciones, lo que permite que el procesador dedique más tiempo a realizar un trabajo útil. Superar este tiempo produce un error leve (recuperable) o grave (no recuperable).

Ver también

Referencias

  1. ^ abcdefghi Yiu, José (1 de abril de 2016). "Una guía para principiantes sobre la latencia de interrupción y la latencia de interrupción de los procesadores Arm Cortex-M". Comunidad de brazos . Archivado desde el original el 15 de junio de 2019 . Consultado el 15 de junio de 2019 .
  2. ^ Lin, Feng; Ashley, David T.; Burke, Michael J.; Heymann, Michael (1999). "Una solución de sistema híbrido al problema de compatibilidad de latencia de interrupciones". Transacciones SAE . 108 : 2112-2125. ISSN  0096-736X. JSTOR  44733861.