Sparc
El diseño SPARC soporta un set total de traps o interrupciones. Ellos son manejados por una tabla que soporta 128 interrupciones de hardware y 128 traps de software. Sin embargolas instrucciones de punto flotante pueden ejecutarse concurrentemente con las instrucciones enteras, los traps de punto flotante deben ser exactos porque la FPU provee (desde la tabla) lasdirecciones de las instrucciones que fracasan.
Trap Base Register
Contiene campos que permiten determinar la dirección de los manejadores de traps:
TBR_trap_base_address (TBA): 20 bits más significativos dela dirección de la trap table (escrito por WRTBR)
TBR_trap_type (tt): este campo de 8 bits es escrito por el hardware cuando se produce un trap, y mantiene el valor hasta el siguiente trap. Es eloffset en la trap table. Dado quelos 4 bits menos significativos son cero, cada entrada de la trap table contiene los primeros 16 bytes (4 palabras) del manejador de trap correspondiente.
• Valores 0 al0x7F reservados para traps de hardware traps
• Valores 0x80 al 0xFF reservados para traps de software traps (instrucciones Ticc)
TBR_zero (0): campo fijo en cero
Las instrucciones de lecturacopian el registro especial especificado en el registro destino
WRY, WRPSR, WRWIM, y WRTBR escriben “r[rs1] xor r[rs2]”, o “r[rs1] xor sign_ext(simm13)” en los campos modificables del registro especialcorrespondiente. (Notar el XOR).
Terminología habitual:
• Trap: llamado al SO, causada por la ejecución de Ticc
• Excepción: error provocado por la ejecución de una instrucción (ejemplo, fallo depágina)
• Interrupción de hardware, típicamente E/S
• Que se busca con los mecanismos de interrupción…
• Excepciones: manejarlas en el orden del programa (no trivial)
• Todas las interrupciones:capacidad de resumir la ejecución como si “nada hubiera pasado”
• Excepciones precisas: la última instrucción debe preceder inmediatamente a la que causó el fallo
• Pero los mecanismos de interrupción...
Regístrate para leer el documento completo.