Esquemas de Interrupcion

Download Report

Transcript Esquemas de Interrupcion

Esquemas de Interrupción
Objetivo: Ahorrarle al procesador la espera
activa.
Procesador
Controlador
rutin
a
Int
Intrq
¿Como?: El dispositivo avisa al procesador
cuando se requiere su intervención
¿Qué ocurre cuando más de un dispositivo
requiere en el mismo instante la atención del
procesador?
1
PROCESADOR
I1
INT1
2
INT2
I2
INT3
I3
3
¡Fácil!. Se le ponen más entradas de interrupción
al procesador
De nuevo el espacio físico es limitado.
Ack
PROCE SADOR
1
¿Quién fue?
INT
I1
I2
2
I3
3
Más de un dispositivo debe compartir la
línea de interrupción.
Esquema por consulta
?
?
Procesador
BUS
?
1
2
1
Int
ack
2
INT
int
+ prioridades -
3
Ciclo de reconocimiento de
interrupciones
El procesador busca dispositivo a
dispositivo al autor de la petición
3
Esquema vectorial:
Daisy Chain
Procesador
+ prioridades -
BUS
1
2
3
Ack
INT
Ciclo de reconocimiento de
interrupciones
Los dispositivos se las arreglan para
enviarle al procesador un identificador
Esquema de interrupciones del 8086
Bus
PROCESADOR
Controlador
de
interrupciones
1
INT
2
Gestiona
vectorización
Gestiona
3
Prioridades
Vectorizado. Uso de un controlador de
interrupciones
Interrupciones- excepciones
•
Interrupciones: externas
–
–
•
Enmascarables (IF)
No enmascarables
Excepciones: fallos internos, INT nº
–
Faults: antes de la ejecución inst. actual
•
–
Traps: después de la ejecución inst. actual
•
–
•
Ej. fallo de página
Ej. Div/0
Abort: fallo no relacionado con inst.
Tabla de vectores
•
–
Modo Real: 4 bytes
•
•
–
Segmento de Código
Desplazamiento
Modo Protegido
•
–
Punteros a la rutina de atención
Interrupt Descriptor Table (IDTR)
256 entrada
•
•
•
No enmascarable: 2
INT nº
Enmascarable: ciclo de reconocimiento de interrupció
Dirección de la rutina de
atención a la interrupción
Vec 1 (4 bytes)
Vec 2 (4 bytes)
Vec 3 (4 bytes)
Vec 4 (4 bytes)
Bus
PROCESADOR
Vec 5 (4 bytes)
Controlad
or de
interrupcio
nes
...
Vec 6 (4 bytes)
INT
1
2
3
Vector de interrupciones: 256 entradas
Tabla de
interrupciones
IA-32
Controlador de interrupciones
• 8259