Professional Documents
Culture Documents
R
64
Gestión de Interrupciones
Alejandro Furfaro
Abril 2012
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 1 / 106
Agenda
1 Inroducción
Sistema de Interrupciones de
Procesadores x86
Identificación de las fuentes de
interrupción
2 Vectorización en Modo Protegido
Estrucuras de datos asociadas
Utilización de los descriptores
Manejo de la Pila
3 Excepciones
Clasificación
Excepciones y Código de Error
4 Implicancias para el kernel
Niveles de privilegio
5 Prioridades
Simultaneidad de requerimientos.
6 Interrupciones en Modo 64 bits
¿Que cambia respecto del Modo Legacy?
7 Tipos de Interrupciones predefinidos
8 Interrupciones en una PC
El PIC
Subsistema de Interrupciones
R El APIC
Alejandro Furfaro () Procesadores IA-32 e Intel 64 Gestión de Interrupciones Abril 2012 1 / 106
Inroducción Sistema de Interrupciones de Procesadores x86
Fuentes de interrupción
Hardware.
Señales eléctricas enviadas desde los dispositivos de hardware,
generalmente concentradas en un controlador externo que las prioriza y
envı́a a la CPU secuencialmente de acuerdo a este criterio.
Caracterı́sticas: Asincrónicas. No determinı́sticas.
Software.
Se producen cuando el software ejecuta INT n.
Caracterı́stica: Determinı́sticas. La instrucción INT se intercala donde
se desea generar la interrupción.
Internas.
Se conocen como excepciones y son generadas por la propia CPU a
consecuencia de una situación que le impide completar la ejecución de
la instrucción en curso. Por ejemplo, una división por cero, un page fault,
una violación de protección, entre otras.
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 2 / 106
Inroducción Identificación de las fuentes de interrupción
Caracterı́siticas principales
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 3 / 106
Inroducción Identificación de las fuentes de interrupción
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 4 / 106
Inroducción Identificación de las fuentes de interrupción
Tipos predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 5 / 106
Inroducción Identificación de las fuentes de interrupción
Tipos predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 6 / 106
Vectorización en Modo Protegido Estrucuras de datos asociadas
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 7 / 106
Vectorización en Modo Protegido Estrucuras de datos asociadas
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 8 / 106
Vectorización en Modo Protegido Estrucuras de datos asociadas
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 9 / 106
Vectorización en Modo Protegido Estrucuras de datos asociadas
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 10 / 106
Vectorización en Modo Protegido Utilización de los descriptores
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 11 / 106
Vectorización en Modo Protegido Utilización de los descriptores
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 12 / 106
Vectorización en Modo Protegido Utilización de los descriptores
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 13 / 106
Vectorización en Modo Protegido Utilización de los descriptores
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 14 / 106
Vectorización en Modo Protegido Utilización de los descriptores
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 15 / 106
Vectorización en Modo Protegido Utilización de los descriptores
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 16 / 106
Vectorización en Modo Protegido Utilización de los descriptores
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 17 / 106
Vectorización en Modo Protegido Utilización de los descriptores
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 18 / 106
Vectorización en Modo Protegido Manejo de la Pila
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 19 / 106
Vectorización en Modo Protegido Manejo de la Pila
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 20 / 106
Vectorización en Modo Protegido Manejo de la Pila
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 21 / 106
Vectorización en Modo Protegido Manejo de la Pila
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 22 / 106
Excepciones Clasificación
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 23 / 106
Excepciones Excepciones y Código de Error
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 24 / 106
Excepciones Excepciones y Código de Error
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 25 / 106
Excepciones Excepciones y Código de Error
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 26 / 106
Excepciones Excepciones y Código de Error
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 27 / 106
Excepciones Excepciones y Código de Error
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 28 / 106
Implicancias para el kernel Niveles de privilegio
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 29 / 106
Implicancias para el kernel Niveles de privilegio
En particular:
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 30 / 106
Implicancias para el kernel Niveles de privilegio
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 31 / 106
Implicancias para el kernel Niveles de privilegio
Observación
A los datos resguardados en el stack de Modo USER se suman los registros del stack
de Modo USER ya que éstos van a ser escritos con los nuevos valores
correspondientes al stack de Modo KERNEL. De este modo, se recuperarán al
momento de que se ejecute iret desde el handler de la interrupción.
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 32 / 106
Prioridades Simultaneidad de requerimientos.
Prioridad Descripción
1 (Máxima) Reset y Machine check
2 Trap en Conmutacón de tarea. Flag T de TSS = 1
3 Eventos de Hardware Externos
-FLUSH
-STOPCLK
-SMI
-INIT
4 Trap en la instrucción previa
-Breackpoint, o Debug Trap Exception.
-TF=1 o breackpoint de dato o E/S
5 NMI, Non Maskable Interrupt
6 INTR, Interrupciones enmascarables
7 Code Breakpoint Fault
8 Fault en el ciclo de Fectch de la siguiente instrucción.
-Violación del lı́mite del segmento de código
-Code-Page Fault)
9 Faults en la decodificación de la siguiente instrucción.
-Instruction length mayor a 15 bytes
-Invalid Opcode
-Coprocessor Not Available
10 (Mı́nima) Faults en la ejecución de una instrucción.
-Overflow -Bound error -Invalid TSS -Segment Not Present -Stack fault -General Protection -Data Page
Fault -Alignment Check -x87 FPU Floating-point except -SIMD floating-point exception
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 33 / 106
Interrupciones en Modo 64 bits ¿Que cambia respecto del Modo Legacy?
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 34 / 106
Interrupciones en Modo 64 bits ¿Que cambia respecto del Modo Legacy?
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 35 / 106
Interrupciones en Modo 64 bits ¿Que cambia respecto del Modo Legacy?
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 36 / 106
Interrupciones en Modo 64 bits ¿Que cambia respecto del Modo Legacy?
31 0
Reservado 12
31 0
Offset 63-32 8
31 16 15 14 131211 8 7 5 4 3 2 0
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 38 / 106
Interrupciones en Modo 64 bits ¿Que cambia respecto del Modo Legacy?
Cuestiones de protección
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 39 / 106
Interrupciones en Modo 64 bits ¿Que cambia respecto del Modo Legacy?
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 43 / 106
Interrupciones en Modo 64 bits ¿Que cambia respecto del Modo Legacy?
Resumen
El stack switch en modo IA-32e trabaja como en el modo legacy
excepto que el registro SS no se carga con el nuevo selector de la
TSS, sino que se pone a NULL.
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 44 / 106
Interrupciones en Modo 64 bits ¿Que cambia respecto del Modo Legacy?
SS +40
RSP +32
RFLAGS +24
CS +16
RIP +8
Error Code 0
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 45 / 106
Interrupciones en Modo 64 bits ¿Que cambia respecto del Modo Legacy?
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 46 / 106
Interrupciones en Modo 64 bits ¿Que cambia respecto del Modo Legacy?
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 47 / 106
Interrupciones en Modo 64 bits ¿Que cambia respecto del Modo Legacy?
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 49 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 50 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 51 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 53 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 55 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 59 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 60 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 62 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 63 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 64 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 66 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 68 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 69 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 71 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 72 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 78 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 82 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 84 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 85 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 87 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 88 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 89 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 90 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 92 / 106
Tipos de Interrupciones predefinidos
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 94 / 106
Interrupciones en una PC El PIC
Conexionado
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 95 / 106
Interrupciones en una PC El PIC
Secuencia de Inicialización
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 96 / 106
Interrupciones en una PC El PIC
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 97 / 106
Interrupciones en una PC El PIC
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 98 / 106
Interrupciones en una PC El PIC
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 99 / 106
Interrupciones en una PC El PIC
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 100 / 106
Interrupciones en una PC El PIC
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 101 / 106
Interrupciones en una PC El PIC
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 102 / 106
Interrupciones en una PC Subsistema de Interrupciones
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 103 / 106
Interrupciones en una PC Subsistema de Interrupciones
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 104 / 106
Interrupciones en una PC El APIC
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 105 / 106
Interrupciones en una PC El APIC
R
Alejandro Furfaro () Procesadores IA-32 e Intel
64 Gestión de Interrupciones Abril 2012 106 / 106