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:

  1. Almacenar la dirección de retorno.
  2. 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.

Entradas relacionadas: