En informática , una interrupción entre procesadores ( IPI ), también conocida como interrupción de hombro , es un tipo especial de interrupción mediante la cual un procesador puede interrumpir a otro procesador en un sistema multiprocesador si el procesador que interrumpe requiere una acción del otro procesador. Las acciones que se pueden solicitar incluyen:
- vaciados de cachés de unidades de administración de memoria , como buffers de traducción , en otros procesadores cuando las asignaciones de memoria son modificadas por un procesador;
- Detenerse cuando el sistema está siendo apagado por un procesador.
- Notificar a un procesador que hay trabajo de mayor prioridad disponible.
- Notificar a un procesador sobre el trabajo que no se puede realizar en todos los procesadores debido, por ejemplo, a:
- Acceso asimétrico a canales de E/S [1]
- Características especiales de algunos procesadores [2]
Mecanismo
La opción M65MP de OS/360 utilizaba la función de control directo de S/360 para generar una interrupción en otro procesador; en S/370 y sus sucesores, incluido z/Architecture , la instrucción SIGNAL PROCESSOR proporciona una interfaz más formalizada. La documentación de algunos sistemas operativos de IBM se refiere a esto como un toque de hombro.
En las computadoras compatibles con IBM PC que utilizan el Controlador de interrupciones programable avanzado (APIC), la señalización IPI se realiza a menudo utilizando el APIC. Cuando una CPU desea enviar una interrupción a otra CPU, almacena el vector de interrupción y el identificador del APIC local del destino en el Registro de comandos de interrupción (ICR) de su propio APIC local. Luego, se envía un mensaje a través del bus APIC al APIC local del destino, que luego emite una interrupción correspondiente a su propia CPU.
Ejemplos
En un sistema multiprocesador que ejecuta Microsoft Windows , un procesador puede interrumpir a otro procesador por las siguientes razones, además de las enumeradas anteriormente: [3]
- poner en cola una interrupción DISPATCH_LEVEL para programar la ejecución de un hilo en particular;
- Punto de interrupción del depurador del núcleo.
A los IPI se les asigna un IRQL de 29. [4]
Véase también
Referencias
- ^ "Apéndice F: Extensiones de multiprocesamiento" (PDF) . OS I/O Supervisor Logic - Release 21 - Program Number 360S-CI-505 (PDF) . Program Logic. IBM . p. 271. GY28-6616-9 . Consultado el 28 de agosto de 2022 .
- ^ "Portal de información técnica de AMD". docs.amd.com . Consultado el 18 de julio de 2024 .
- ^ "Uso de interrupciones entre procesadores". Desbordamiento de pila . Consultado el 18 de julio de 2024 .
- ^ Matt (28 de abril de 2002). "Understanding IRQL". Archivado desde el original el 14 de octubre de 2019. Consultado el 6 de diciembre de 2014 .
Enlaces externos
- Interrupciones y excepciones