PLIC
Siglas de controlador de interrupciones a nivel de plataforma; en la arquitectura RISC-V, un componente responsable de enrutar las interrupciones desde sus causas a los harts.
PLIC: el "policía de tráfico" de las interrupciones del procesador
Un PLIC es un componente de hardware en los sistemas RISC-V que se sitúa entre las fuentes de interrupción (periféricos, temporizadores, dispositivos externos) y los núcleos del procesador (llamados harts en la terminología RISC-V). Su trabajo es sencillo: cuando un dispositivo necesita atención, el PLIC recibe la señal, decide qué hart debe manejarla y entrega la interrupción. Sin un PLIC, cada hart necesitaría conexiones directas a cada fuente de interrupción, lo que se vuelve inmanejable en sistemas con muchos núcleos y muchos dispositivos.
El PLIC gestiona las interrupciones asignando a cada fuente un nivel de prioridad, que suele oscilar entre 0 y 15 o más, según la implementación. También admite registros de umbral: cada hart puede establecer un valor de umbral, lo que significa que solo aceptará interrupciones con una prioridad superior a ese umbral. Esto permite que un núcleo posponga temporalmente el trabajo de baja prioridad o rechace clases enteras de interrupciones durante secciones críticas. El PLIC rastrea qué interrupciones están pendientes, cuáles están habilitadas y qué hart debe atender cada una.
Enrutamiento y selección de Hart
El PLIC puede enrutar una única fuente de interrupción a múltiples harts o solo a harts específicos. En algunos diseños, una interrupción es reclamada por el primer hart que lee el registro de reclamación del PLIC; en otros, el propio PLIC selecciona el hart de destino. La lógica de selección considera la prioridad, el umbral y, a veces, el equilibrio de carga. Una vez que un hart reclama una interrupción, debe completar el manejo y luego escribir un registro de finalización para indicar al PLIC que ha terminado. Esto permite al PLIC desactivar la interrupción y, potencialmente, enviarla a otro hart si es necesario.
Las implementaciones de PLIC varían. Los diseños simples están cableados con un número fijo de fuentes de interrupción y harts; los sistemas complejos incluyen contextos configurables (un hart puede tener contextos separados de modo M y modo S, cada uno con sus propios registros de umbral y reclamación). El PLIC en sí suele estar mapeado en memoria, ocupando un rango de direcciones contiguo al que el software accede mediante instrucciones de carga y almacenamiento. Las implementaciones típicas asignan aproximadamente 4 bytes por fuente de interrupción más 8 bytes por contexto de hart, por lo que la huella de memoria crece con la escala.
En la práctica, surgen problemas cuando las prioridades de interrupción están mal configuradas, lo que hace que los dispositivos sensibles a la latencia se vean privados de recursos por fuentes de menor prioridad, o cuando el umbral se establece demasiado alto, lo que provoca la pérdida de interrupciones. El papel del PLIC lo hace invisible durante el funcionamiento normal, pero crítico durante la integración del sistema. La depuración a menudo requiere examinar los registros mapeados en memoria directamente para ver qué interrupciones están pendientes o habilitadas, y qué contextos de hart las han reclamado.
Fuentes
- Fuente de la definiciónWiktionary