¿Qué información crítica del procesador se almacena cuando un programa es interrumpido por una fuente de interrupción de hardware? ¿Dónde guarda la CPU la información?
¿Qué información crítica del procesador se almacena cuando un programa es interrumpido por una fuente de interrupción de hardware? ¿Dónde guarda la CPU la información?
Lo que se almacena es el "Estado" del núcleo actual del procesador. Lo que realmente se almacena depende un poco del procesador.
Por lo general, sin embargo, como mínimo, el contador del programa actual (la dirección de la siguiente instrucción que se ejecutará después de que se procese la interrupción), y todos y cada uno de los registros centrales como los acumuladores y las banderas como acarreo, cero, etc. se almacenan en la memoria en algo que se llama una pila.
La pila es una sección de la memoria que es el último en el búfer primero en salir. Un puntero, llamado de manera poco imaginativa, el "puntero de pila" se utiliza para realizar un seguimiento del "final" actual del búfer utilizado.
Los elementos mencionados anteriormente están "apilados" en un orden predefinido. A medida que se llaman interrupciones o subrutinas, la pila se agrega con estos estados y el puntero se mueve hacia adelante.
A medida que se producen las devoluciones, el último estado se lee desde el final de la pila y el "puntero de pila" se ajusta correctamente.
Aunque no todos los procesadores manejan todo automáticamente. Algunos, como el PIC, requieren que apile y devuelva todo excepto el contador del programa en el código y en el orden correcto. Realmente necesita consultar la documentación del dispositivo específico que está utilizando.
Las pilas siempre tienen un tamaño máximo asignado. Si se bifurca demasiadas veces, la pila se desbordará.
¿Cuál es el nombre de este sitio web del foro?
Lea otras preguntas en las etiquetas microcontroller cpu interrupts