Fundamentos de Excepciones e Interrupciones en Arquitectura de Microprocesadores
Clasificado en Informática
Escrito el en
español con un tamaño de 3,09 KB
Procesamiento de Excepciones y Vectores
Lectura de 8 bytes > RESET (puntero de pila y contador de programa) | Tabla > Binario > +2 ceros > Hexadecimal ¡VBR! (VBR + %XX). Si desde un JSR, la subrutina acaba con RTE, se produce una violación de privilegio.
Máscara de Interrupciones
Son 3 bits del SR (Status Register) que indican la prioridad del programa actual. Cuando se solicita una interrupción, dicha solicitud tiene asociado un nivel de prioridad:
- La interrupción solo es atendida si su nivel es estrictamente superior al de la máscara.
- La excepción es la petición de nivel 7, que siempre es atendida.
- En el arranque (excepción de RESET), la máscara se establece en nivel 7.
- Durante el procesamiento de una excepción, la máscara se actualiza al nivel de la interrupción que está siendo atendida.
Instrucciones Ilegales y Excepciones de Traza
Instrucción ilegal
No todos los códigos binarios sin un código máquina asociado se consideran instrucciones ilegales. Solo dos de estos códigos se procesan como tal: $0000 y $4AFC.
Excepción de traza
Para que se produzca, es necesario cambiar el bit T del SR a 1. Para que se procese, se debe configurar el valor del VBR, estableciendo como inicio de la tabla de vectores de excepción la dirección $100000.
Exception Stack Frame
Funciones principales
El exception stack frame cumple dos funciones críticas:
- Almacenar la dirección de retorno.
- Almacenar el SR del programa interrumpido para restaurar el estado original tras la ejecución de la instrucción RTE.
Formato y optimización
El microprocesador (μP) optimiza el acceso al exception stack frame ubicándolo en una dirección de memoria múltiplo de 4:
- Al producirse la excepción, el μP anota los 2 bits de menos peso de A7 y los pone a 0, creando un hueco en la pila.
- Estos bits se guardan en el campo Format del exception stack frame.
- Al ejecutar RTE, el μP utiliza estos bits para reponer el valor original de A7.
- Los valores válidos de Format son 4, 5, 6 y 7. Si el μP encuentra otro valor, procesará una excepción de error de formato.
Modificación de la máscara
Para que, al retornar al programa principal tras la instrucción RTE, se atiendan interrupciones de nivel 6 y superiores, es necesario modificar directamente la copia del SR almacenada en la pila. Los bits a alterar se encuentran en las posiciones de memoria correspondientes a la máscara de interrupción en (A7), específicamente en los bits 10, 9 y 8 del SR.