of 82 /82
Procesadores IA-32 e Intel R 64 Gesti ´ on de Interrupciones Alejandro Furfaro Abril 2012 Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gesti ´ on de Interrupciones Abril 2012 1/1

Procesadores IA-32 e Intel® 64 Gestión de Interrupcionesafurfaro/descargas/Procesadores de... · Alejandro Furfaro Procesadores IA-32 e Intel R 64 Gestion de Interrupciones´ Abril

  • Author
    dodat

  • View
    216

  • Download
    0

Embed Size (px)

Text of Procesadores IA-32 e Intel® 64 Gestión de Interrupcionesafurfaro/descargas/Procesadores de... ·...

  • Procesadores IA-32 e Intel R 64Gestion de Interrupciones

    Alejandro Furfaro

    Abril 2012

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 1 / 1

  • Agenda

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 1 / 1

  • Inroduccion Sistema de Interrupciones de Procesadores x86

    Fuentes de interrupcion

    Hardware.Senales electricas enviadas desde los dispositivos de hardware,generalmente concentradas en un controlador externo que las prioriza yenva a la CPU secuencialmente de acuerdo a este criterio.Caractersticas: Asincronicas. No determinsticas.

    Software.Se producen cuando el software ejecuta INT n.Caracterstica: Determinsticas. La instruccion INT se intercala dondese desea generar la interrupcion.

    Internas.Se conocen como excepciones y son generadas por la propia CPU aconsecuencia de una situacion que le impide completar la ejecucion dela instruccion en curso. Por ejemplo, una division por cero, un page fault,una violacion de proteccion, entre otras.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 2 / 1

  • Inroduccion Sistema de Interrupciones de Procesadores x86

    Fuentes de interrupcion

    Hardware.Senales electricas enviadas desde los dispositivos de hardware,generalmente concentradas en un controlador externo que las prioriza yenva a la CPU secuencialmente de acuerdo a este criterio.Caractersticas: Asincronicas. No determinsticas.

    Software.Se producen cuando el software ejecuta INT n.Caracterstica: Determinsticas. La instruccion INT se intercala dondese desea generar la interrupcion.

    Internas.Se conocen como excepciones y son generadas por la propia CPU aconsecuencia de una situacion que le impide completar la ejecucion dela instruccion en curso. Por ejemplo, una division por cero, un page fault,una violacion de proteccion, entre otras.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 2 / 1

  • Inroduccion Sistema de Interrupciones de Procesadores x86

    Fuentes de interrupcion

    Hardware.Senales electricas enviadas desde los dispositivos de hardware,generalmente concentradas en un controlador externo que las prioriza yenva a la CPU secuencialmente de acuerdo a este criterio.Caractersticas: Asincronicas. No determinsticas.

    Software.Se producen cuando el software ejecuta INT n.Caracterstica: Determinsticas. La instruccion INT se intercala dondese desea generar la interrupcion.

    Internas.Se conocen como excepciones y son generadas por la propia CPU aconsecuencia de una situacion que le impide completar la ejecucion dela instruccion en curso. Por ejemplo, una division por cero, un page fault,una violacion de proteccion, entre otras.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 2 / 1

  • Inroduccion Sistema de Interrupciones de Procesadores x86

    Fuentes de interrupcion

    Hardware.Senales electricas enviadas desde los dispositivos de hardware,generalmente concentradas en un controlador externo que las prioriza yenva a la CPU secuencialmente de acuerdo a este criterio.Caractersticas: Asincronicas. No determinsticas.

    Software.Se producen cuando el software ejecuta INT n.Caracterstica: Determinsticas. La instruccion INT se intercala dondese desea generar la interrupcion.

    Internas.Se conocen como excepciones y son generadas por la propia CPU aconsecuencia de una situacion que le impide completar la ejecucion dela instruccion en curso. Por ejemplo, una division por cero, un page fault,una violacion de proteccion, entre otras.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 2 / 1

  • Inroduccion Sistema de Interrupciones de Procesadores x86

    Fuentes de interrupcion

    Hardware.Senales electricas enviadas desde los dispositivos de hardware,generalmente concentradas en un controlador externo que las prioriza yenva a la CPU secuencialmente de acuerdo a este criterio.Caractersticas: Asincronicas. No determinsticas.

    Software.Se producen cuando el software ejecuta INT n.Caracterstica: Determinsticas. La instruccion INT se intercala dondese desea generar la interrupcion.

    Internas.Se conocen como excepciones y son generadas por la propia CPU aconsecuencia de una situacion que le impide completar la ejecucion dela instruccion en curso. Por ejemplo, una division por cero, un page fault,una violacion de proteccion, entre otras.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 2 / 1

  • Inroduccion Sistema de Interrupciones de Procesadores x86

    Fuentes de interrupcion

    Hardware.Senales electricas enviadas desde los dispositivos de hardware,generalmente concentradas en un controlador externo que las prioriza yenva a la CPU secuencialmente de acuerdo a este criterio.Caractersticas: Asincronicas. No determinsticas.

    Software.Se producen cuando el software ejecuta INT n.Caracterstica: Determinsticas. La instruccion INT se intercala dondese desea generar la interrupcion.

    Internas.Se conocen como excepciones y son generadas por la propia CPU aconsecuencia de una situacion que le impide completar la ejecucion dela instruccion en curso. Por ejemplo, una division por cero, un page fault,una violacion de proteccion, entre otras.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 2 / 1

  • Inroduccion Sistema de Interrupciones de Procesadores x86

    Fuentes de interrupcion

    Hardware.Senales electricas enviadas desde los dispositivos de hardware,generalmente concentradas en un controlador externo que las prioriza yenva a la CPU secuencialmente de acuerdo a este criterio.Caractersticas: Asincronicas. No determinsticas.

    Software.Se producen cuando el software ejecuta INT n.Caracterstica: Determinsticas. La instruccion INT se intercala dondese desea generar la interrupcion.

    Internas.Se conocen como excepciones y son generadas por la propia CPU aconsecuencia de una situacion que le impide completar la ejecucion dela instruccion en curso. Por ejemplo, una division por cero, un page fault,una violacion de proteccion, entre otras.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 2 / 1

  • Inroduccion Identificacion de las fuentes de interrupcion

    Caractersiticas principales

    El sistema de interrupciones fue disenado para el primerprocesador de la familia x86, el 8086, en 1978, y se mantieneidentico hasta los procesadores actuales de microarquitecturaCore.

    Una interrupcion se identifica unvocamente mediante un valornumerico de 8 bits que se denomina Tipo.

    Por lo tanto, un procesador x86 puede manejar 256 tiposdiferentes de interrupcion. La cuestion que necesitamos entenderes como se obtiene el valor del Tipo.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 3 / 1

  • Inroduccion Identificacion de las fuentes de interrupcion

    Identificando una fuente de interrupcion

    Como se obtiene el tipo?Es provisto por el hardware en interrupciones que ingresan por el pinINTR del procesador.Esta asociado a un pin del procesador, tal el caso de la Interrupcion Noenmascarable NMI que lleva asociado el tipo 2.Acompana al codigo de operacion en la instruccion INT type, para elcaso de las interrupciones por software, por ejemplo INT 80h.Esta asociado a una instruccion (INTO,por ejemplo, genera unainterrupcion de tipo 4).Las excepciones tienen asignado un tipo especfico cada una.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 4 / 1

  • Inroduccion Identificacion de las fuentes de interrupcion

    Identificando una fuente de interrupcion

    Como se obtiene el tipo?Es provisto por el hardware en interrupciones que ingresan por el pinINTR del procesador.Esta asociado a un pin del procesador, tal el caso de la Interrupcion Noenmascarable NMI que lleva asociado el tipo 2.Acompana al codigo de operacion en la instruccion INT type, para elcaso de las interrupciones por software, por ejemplo INT 80h.Esta asociado a una instruccion (INTO,por ejemplo, genera unainterrupcion de tipo 4).Las excepciones tienen asignado un tipo especfico cada una.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 4 / 1

  • Inroduccion Identificacion de las fuentes de interrupcion

    Identificando una fuente de interrupcion

    Como se obtiene el tipo?Es provisto por el hardware en interrupciones que ingresan por el pinINTR del procesador.Esta asociado a un pin del procesador, tal el caso de la Interrupcion Noenmascarable NMI que lleva asociado el tipo 2.Acompana al codigo de operacion en la instruccion INT type, para elcaso de las interrupciones por software, por ejemplo INT 80h.Esta asociado a una instruccion (INTO,por ejemplo, genera unainterrupcion de tipo 4).Las excepciones tienen asignado un tipo especfico cada una.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 4 / 1

  • Inroduccion Identificacion de las fuentes de interrupcion

    Identificando una fuente de interrupcion

    Como se obtiene el tipo?Es provisto por el hardware en interrupciones que ingresan por el pinINTR del procesador.Esta asociado a un pin del procesador, tal el caso de la Interrupcion Noenmascarable NMI que lleva asociado el tipo 2.Acompana al codigo de operacion en la instruccion INT type, para elcaso de las interrupciones por software, por ejemplo INT 80h.Esta asociado a una instruccion (INTO,por ejemplo, genera unainterrupcion de tipo 4).Las excepciones tienen asignado un tipo especfico cada una.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 4 / 1

  • Inroduccion Identificacion de las fuentes de interrupcion

    Identificando una fuente de interrupcion

    Como se obtiene el tipo?Es provisto por el hardware en interrupciones que ingresan por el pinINTR del procesador.Esta asociado a un pin del procesador, tal el caso de la Interrupcion Noenmascarable NMI que lleva asociado el tipo 2.Acompana al codigo de operacion en la instruccion INT type, para elcaso de las interrupciones por software, por ejemplo INT 80h.Esta asociado a una instruccion (INTO,por ejemplo, genera unainterrupcion de tipo 4).Las excepciones tienen asignado un tipo especfico cada una.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 4 / 1

  • Inroduccion Identificacion de las fuentes de interrupcion

    Identificando una fuente de interrupcion

    Como se obtiene el tipo?Es provisto por el hardware en interrupciones que ingresan por el pinINTR del procesador.Esta asociado a un pin del procesador, tal el caso de la Interrupcion Noenmascarable NMI que lleva asociado el tipo 2.Acompana al codigo de operacion en la instruccion INT type, para elcaso de las interrupciones por software, por ejemplo INT 80h.Esta asociado a una instruccion (INTO,por ejemplo, genera unainterrupcion de tipo 4).Las excepciones tienen asignado un tipo especfico cada una.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 4 / 1

  • Inroduccion Identificacion de las fuentes de interrupcion

    Tipos predefinidos

    Tipo Mnemonico Descripcion Clase Codigo deError

    Fuente

    0 #DE Error de Division Fault NO Instrucciones DIV e IDIV1 #DB Reservada Fault/Trap NO Solo para uso de Intel2 - NMI Interrupcion NO Interrupcion No enmascarable. Pin

    NMI3 #BP BreackPoint Trap NO Opcode 0xCC4 #OF Overflow Trap NO Instruccion INTO5 #BR BOUND Range Ex-

    ceededFault NO Instruccion BOUND

    6 #UD Invalid Opcode Fault NO Instruccion UD2 u Opcode Reservado7 #NM Coprocesador No

    disponibleFault NO Instrucciones de Punto Flotante o

    WAIT / FWAIT8 #DF Doble Fault Abort SI (Cero) Cualquier instruccion capaz de gene-

    rar una excepcion, una senal en NMI oen INTR

    9 Coprocessor Seg-ment Overrun (re-servada)

    Fault SI Instrucciones de Punto Flotante

    10 #TS TSS Invalido Fault SI Task switch o acceso a un TSS

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 5 / 1

  • Inroduccion Identificacion de las fuentes de interrupcion

    Tipos predefinidos

    Tipo Mnemonico Descripcion Clase Codigo deError

    Fuente

    11 #NP Segmento No Pre-sente

    Fault SI Carga o acceso a un registro de seg-mento

    12 #SS Falta en el StackSegment

    Fault SI Operacioes de Pila y Carga del registroSS

    13 #GP General Protection Fault SI Cualquier referencia a memoria y otroschequeos de proteccion

    14 #PF Page Fault Fault SI Cualquier referencia a memoria15 - Reservada por In-

    tel (no usar)NO

    16 #MF X-87 FPU Error dePunto Flotante

    Fault NO Instruccion de la FPU o WAI/FWAIT

    17 #AC Alignment Check Fault SI (Cero) Cualquier referencia de datos a memo-ria

    18 #MC Machine Check abort NO Los Codigos de error si hubiese,as como su fuente, depende del mo-delo de procesador

    19 #XF Excepcion SIMDFloating Point

    Fault NO Cualquier instruccion SSEx

    20-31

    - Reservada por In-tel (no usar)

    32-255

    - A definir por elusuario

    Interrupcion Interrupciones externas o InstruccionINTn

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 6 / 1

  • Vectorizacion en Modo Protegido Estrucuras de datos asociadas

    Interrupt Descriptor Table

    Cuando el procesador trabaja en Modo Protegido debe definirse unatabla en memoria, llamada IDT (por Interrupt Descriptor Table), que adiferencia del funcionamiento en Modo Real, no almacena vectores deinterrupcion, sino que como su nombre lo indica almacenaDescriptores.Esta tabla tiene unicamente 256 entradas, ya que esa es la cantidadde tipos de interrupciones diferentes que maneja el microprocesador.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 7 / 1

  • Vectorizacion en Modo Protegido Estrucuras de datos asociadas

    Descriptores de Sistema en la IDT

    La IDT puede contener 3 tipos de descriptores solamente:1 Interrupt Gate (de 16, 32, o 64 bits)2 Trap Gate (de 16, 32, o 64 bits)3 Task Gate (solo en el modo protegido de 32 bits!!, en 64 bits no

    existen)

    En los tres casos se trata de descriptores de Sistema (Bit S=0 enel descriptor)No se debe definir en la IDT un descriptor de segmento de datosni de codigo, ni otro tipo de Descriptor de Sistema (S=0) diferentede los tres enunciados anteriormente en modo protegido de 32bits, o de los dos pirmeros en el modo 64 bits. El procesadorgenerara invariablemente una excepcion de proteccion general alintentar vectorizar esa interrupcion.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 8 / 1

  • Vectorizacion en Modo Protegido Estrucuras de datos asociadas

    Formato de los Descriptores de 32 bits

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 9 / 1

  • Vectorizacion en Modo Protegido Estrucuras de datos asociadas

    Como se llega a la IDT?

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 10 / 1

  • Vectorizacion en Modo Protegido Utilizacion de los descriptores

    Una vez conocida la ubicacion de la IDT, vectoriza la interrupcion

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 11 / 1

  • Vectorizacion en Modo Protegido Utilizacion de los descriptores

    Una vez conocida la ubicacion de la IDT, vectoriza la interrupcion

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 12 / 1

  • Vectorizacion en Modo Protegido Utilizacion de los descriptores

    Una vez conocida la ubicacion de la IDT, vectoriza la interrupcion

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 13 / 1

  • Vectorizacion en Modo Protegido Utilizacion de los descriptores

    Una vez conocida la ubicacion de la IDT, vectoriza la interrupcion

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 14 / 1

  • Vectorizacion en Modo Protegido Utilizacion de los descriptores

    Una vez conocida la ubicacion de la IDT, vectoriza la interrupcion

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 15 / 1

  • Vectorizacion en Modo Protegido Utilizacion de los descriptores

    Una vez conocida la ubicacion de la IDT, vectoriza la interrupcion

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 16 / 1

  • Vectorizacion en Modo Protegido Utilizacion de los descriptores

    Una vez conocida la ubicacion de la IDT, vectoriza la interrupcion

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 17 / 1

  • Vectorizacion en Modo Protegido Utilizacion de los descriptores

    Una vez conocida la ubicacion de la IDT, vectoriza la interrupcion

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 18 / 1

  • Vectorizacion en Modo Protegido Manejo de la Pila

    Pila de Modo USER

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 19 / 1

  • Vectorizacion en Modo Protegido Manejo de la Pila

    Primero: Almacena los Flags

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 20 / 1

  • Vectorizacion en Modo Protegido Manejo de la Pila

    Segundo: Segmento de codigo de la Aplicacion

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 21 / 1

  • Vectorizacion en Modo Protegido Manejo de la Pila

    Tercero: Valor del Puntero de Instrucciones

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 22 / 1

  • Excepciones Clasificacion

    La excepciones se dividen en tres tipos

    1 Fault: Excepcion que puede corregirse permitiendo al programaretomar la ejecucion de esa instruccion sin perder continuidad. Elprocesador guarda en la pila la direccion de la instruccion queprodujo la falla.

    2 Traps: Excepcion producida inmediatamente a continuacion deuna instruccion de trap. Algunas permiten al procesador retomarla ejecucion sin perder continuidad. Otras no. El procesadorguarda en la pila la direccion de la instruccion a ejecutarse luegode la instruccion trapeada.

    3 Aborts: Excepcion que no siempre puede determinar lainstruccion que la causo, ni permite recuperar la ejecucion de latarea que la causo. Reporta errores severos de hardware oinconsistencias en tablas del sistema.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 23 / 1

  • Excepciones Clasificacion

    La excepciones se dividen en tres tipos

    1 Fault: Excepcion que puede corregirse permitiendo al programaretomar la ejecucion de esa instruccion sin perder continuidad. Elprocesador guarda en la pila la direccion de la instruccion queprodujo la falla.

    2 Traps: Excepcion producida inmediatamente a continuacion deuna instruccion de trap. Algunas permiten al procesador retomarla ejecucion sin perder continuidad. Otras no. El procesadorguarda en la pila la direccion de la instruccion a ejecutarse luegode la instruccion trapeada.

    3 Aborts: Excepcion que no siempre puede determinar lainstruccion que la causo, ni permite recuperar la ejecucion de latarea que la causo. Reporta errores severos de hardware oinconsistencias en tablas del sistema.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 23 / 1

  • Excepciones Clasificacion

    La excepciones se dividen en tres tipos

    1 Fault: Excepcion que puede corregirse permitiendo al programaretomar la ejecucion de esa instruccion sin perder continuidad. Elprocesador guarda en la pila la direccion de la instruccion queprodujo la falla.

    2 Traps: Excepcion producida inmediatamente a continuacion deuna instruccion de trap. Algunas permiten al procesador retomarla ejecucion sin perder continuidad. Otras no. El procesadorguarda en la pila la direccion de la instruccion a ejecutarse luegode la instruccion trapeada.

    3 Aborts: Excepcion que no siempre puede determinar lainstruccion que la causo, ni permite recuperar la ejecucion de latarea que la causo. Reporta errores severos de hardware oinconsistencias en tablas del sistema.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 23 / 1

  • Excepciones Clasificacion

    La excepciones se dividen en tres tipos

    1 Fault: Excepcion que puede corregirse permitiendo al programaretomar la ejecucion de esa instruccion sin perder continuidad. Elprocesador guarda en la pila la direccion de la instruccion queprodujo la falla.

    2 Traps: Excepcion producida inmediatamente a continuacion deuna instruccion de trap. Algunas permiten al procesador retomarla ejecucion sin perder continuidad. Otras no. El procesadorguarda en la pila la direccion de la instruccion a ejecutarse luegode la instruccion trapeada.

    3 Aborts: Excepcion que no siempre puede determinar lainstruccion que la causo, ni permite recuperar la ejecucion de latarea que la causo. Reporta errores severos de hardware oinconsistencias en tablas del sistema.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 23 / 1

  • Excepciones Excepciones y Codigo de Error

    Si es una Excepcion, puede haber un Codigo de error

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 24 / 1

  • Excepciones Excepciones y Codigo de Error

    Para que sirve el codigo de error?

    Una excepcion identificada con un determinado tipo (por ejemplo # GP),puede obedecer a numerosas causas, todas ellas de diferente origen.

    Una vez vectorizado el handler de la interrupcion, necesitamosdeterminar cual ha sido la causa concreta de la excepcion para poderresolverla.

    Por ello, en excepciones que pueden tener causas multiples, se proveeen la pila una palabra de 4 bytes denominda Codigo de Error.

    El Captulo 6 del Vol 3A de Intel es muy detallado en este aspecto yaque all se describen cada interrupcion con sus caractersticas, de modoque es necesario prestar mucha atencion a esta documentacion cuandose disena un handler de Interrupcion.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 25 / 1

  • Excepciones Excepciones y Codigo de Error

    Excepciones: Codigo de error

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 26 / 1

  • Excepciones Excepciones y Codigo de Error

    Excepciones: Codigo de error

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 27 / 1

  • Excepciones Excepciones y Codigo de Error

    Significado del Error Code

    1 EXT: External Event (bit 0): Se setea para indicar que laexcepcion ha sido causada por un evento externo al procesador.

    2 IDT: Descriptor Location (bit 1): Cuando esta seteado indica queel campo Segment Selector Index se refiere a un descriptor depuerta en la IDT: Cuando esta en cero indica que dicho campo serefiere a un descriptor en la GDT o en la LDT de la tarea actual.

    3 TI: GDT-LDT (bit 2): Tiene significado cuando el bit anterioresta en cero. Indica a que tabla de descriptores corresponde elselector del campo Indice: 0 GDT, 1 LDT.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 28 / 1

  • Excepciones Excepciones y Codigo de Error

    Significado del Error Code

    1 EXT: External Event (bit 0): Se setea para indicar que laexcepcion ha sido causada por un evento externo al procesador.

    2 IDT: Descriptor Location (bit 1): Cuando esta seteado indica queel campo Segment Selector Index se refiere a un descriptor depuerta en la IDT: Cuando esta en cero indica que dicho campo serefiere a un descriptor en la GDT o en la LDT de la tarea actual.

    3 TI: GDT-LDT (bit 2): Tiene significado cuando el bit anterioresta en cero. Indica a que tabla de descriptores corresponde elselector del campo Indice: 0 GDT, 1 LDT.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 28 / 1

  • Excepciones Excepciones y Codigo de Error

    Significado del Error Code

    1 EXT: External Event (bit 0): Se setea para indicar que laexcepcion ha sido causada por un evento externo al procesador.

    2 IDT: Descriptor Location (bit 1): Cuando esta seteado indica queel campo Segment Selector Index se refiere a un descriptor depuerta en la IDT: Cuando esta en cero indica que dicho campo serefiere a un descriptor en la GDT o en la LDT de la tarea actual.

    3 TI: GDT-LDT (bit 2): Tiene significado cuando el bit anterioresta en cero. Indica a que tabla de descriptores corresponde elselector del campo Indice: 0 GDT, 1 LDT.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 28 / 1

  • Excepciones Excepciones y Codigo de Error

    Significado del Error Code

    1 EXT: External Event (bit 0): Se setea para indicar que laexcepcion ha sido causada por un evento externo al procesador.

    2 IDT: Descriptor Location (bit 1): Cuando esta seteado indica queel campo Segment Selector Index se refiere a un descriptor depuerta en la IDT: Cuando esta en cero indica que dicho campo serefiere a un descriptor en la GDT o en la LDT de la tarea actual.

    3 TI: GDT-LDT (bit 2): Tiene significado cuando el bit anterioresta en cero. Indica a que tabla de descriptores corresponde elselector del campo Indice: 0 GDT, 1 LDT.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 28 / 1

  • Implicancias para el kernel Niveles de privilegio

    Cambio de Nivel de Privilegio de ejecucion

    En un sistema Multitarea, el kernel es quien maneja lasInterrupciones, y Excepciones. SIEMPRE!.Si al generase la excepcion o la Interrupcion se estabaejecutando codigo del Kernel (KERNEL Mode), el resto de estaseccion no aplica.Si la interrupcion o excepcion se ha producido en medio delcodigo de una aplicacion (Modo USER), sera el Kernel quientome el control.Conclusion: No hay cambio de contexto, pero si hay un cambio deNivel de privilegio de ejecucion.Entonces debemos tener presentes las reglas de proteccion delprocesador.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 29 / 1

  • Implicancias para el kernel Niveles de privilegio

    Cambio de Nivel de Privilegio de ejecucion

    En particular:

    Un segmento de pila puede ser accedido por segmentos de codigo demismo nivel de privilegio (Atributo DPL de sus descriptoresrespectivos).

    Los datos que se terminan de guardar, se han almacenado en lapila de la aplicacion, ya que la interrupcion no cambia el contextode ejecucion actual. Es decir la interrupcion no produce un taskswitch.

    Importante!Por este motivo, necesariamente el procesador debe transferir losdatos resguardados en la pila de la aplicacion de USER Mode, a lapila de la aplicacion de KERNEL Mode.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 30 / 1

  • Implicancias para el kernel Niveles de privilegio

    Cambio de Nivel de Privilegio de ejecucion

    En particular:

    Un segmento de pila puede ser accedido por segmentos de codigo demismo nivel de privilegio (Atributo DPL de sus descriptoresrespectivos).

    Los datos que se terminan de guardar, se han almacenado en lapila de la aplicacion, ya que la interrupcion no cambia el contextode ejecucion actual. Es decir la interrupcion no produce un taskswitch.

    Importante!Por este motivo, necesariamente el procesador debe transferir losdatos resguardados en la pila de la aplicacion de USER Mode, a lapila de la aplicacion de KERNEL Mode.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 30 / 1

  • Implicancias para el kernel Niveles de privilegio

    El procesador resguarda lo necesario en el stack de Modo USER

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 31 / 1

  • Implicancias para el kernel Niveles de privilegio

    Y luego lo copia automatica al stack Modo Kernel

    Observacion

    A los datos resguardados en el stack de Modo USER se suman los registros del stackde Modo USER ya que estos van a ser escritos con los nuevos valorescorrespondientes al stack de Modo KERNEL. De este modo, se recuperaran almomento de que se ejecute iret desde el handler de la interrupcion.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 32 / 1

  • Implicancias para el kernel Niveles de privilegio

    Y luego lo copia automatica al stack Modo Kernel

    Observacion

    A los datos resguardados en el stack de Modo USER se suman los registros del stackde Modo USER ya que estos van a ser escritos con los nuevos valorescorrespondientes al stack de Modo KERNEL. De este modo, se recuperaran almomento de que se ejecute iret desde el handler de la interrupcion.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 32 / 1

  • Prioridades Simultaneidad de requerimientos.

    Si hay simultaneidad de interrupciones, cual se atiende primero?

    Prioridad Descripcion1 (Maxima) Reset y Machine check2 Trap en Conmutacon de tarea. Flag T de TSS = 13 Eventos de Hardware Externos

    -FLUSH-STOPCLK-SMI-INIT

    4 Trap en la instruccion previa-Breackpoint, o Debug Trap Exception.-TF=1 o breackpoint de dato o E/S

    5 NMI, Non Maskable Interrupt6 INTR, Interrupciones enmascarables7 Code Breakpoint Fault8 Fault en el ciclo de Fectch de la siguiente instruccion.

    -Violacion del lmite del segmento de codigo-Code-Page Fault)

    9 Faults en la decodificacion de la siguiente instruccion.-Instruction length mayor a 15 bytes-Invalid Opcode-Coprocessor Not Available

    10 (Mnima) Faults en la ejecucion de una instruccion.-Overflow -Bound error -Invalid TSS -Segment Not Present -Stack fault -General Protection -Data PageFault -Alignment Check -x87 FPU Floating-point except -SIMD floating-point exception

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 33 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Que cambia en 64 bits?

    En este modo de trabajo el procesador conserva todo el mecanismocentral de manejo de interrupciones. Los cambios se enumeran acontinuacion (no afectan la sustancia del sistema de interrupciones).

    1 Excepto el handler de SMI (System Management ModeInterruption), todos los handlers apuntados en la IDT en el modo64-bit deben apuntar a codigo de 64 bits.

    2 Cada dato que se pushea en la pila consume 64 bits (aun unsimple byte como podra ser un ASCII). Al ser la pila de usoautomatico en las interrupciones este punto debe tenersepresente. Si el dato guardado en la pila tiene menos de 64 bits, elprocesador utiliza 8 bytes para su apilado de todos modosextendiendo a cero su parte mas significativa.

    3 La pila (ss:RSP) se pushea siempre incondicionalmente encada interrupcion.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 34 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Que cambia en 64 bits?

    4 Si a causa de la vectorizacion de la interrupcion o excepcion seeleva el nivel de privilegio, el registro SS se poneautomaticamente en 0 (NULL).

    5 Cambia el comportamiento de la instruccion IRET6 Cambia el mecanismo de cambio de stack7 Cambia el contenido del stack frame.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 35 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    IDT en Modo 64-bit

    Los descriptores de la IDT en el Modo 64-bit ocupaninvariablemente 16 bytesLa direccion logica que debemos almacenar requiere un offset de64 bits (van al registro RIP).Tamano maximo de una IDT es de 4 Kbytes (utilizando los 256vectores de Interrupcion)Hay ademas algun cambio menor en el descriptor.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 36 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Formato de Descriptores de Interrupcion/Excepcion de 64 bits

    12

    8

    4

    0

    0

    0

    0

    0

    31

    31

    31

    31

    16 15

    16 15 8 714 131211 2

    ISTDPLP 0 00

    345

    Tipo 0 0 0Offset 31-16

    Offset 15-0

    Offset 63-32

    Selector de Segmento

    Reservado

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 37 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Las sutiles diferencias

    Para vectorizar una interrupcion en el modo IA-32e, el procesadorescala el Tipo de Interrupcion por 16, ya que el tamano deldescriptor es de 16 bytes en el modo 64-bit.Los 8 primeros bytes de la entrada de la IDT son casi identicos alconocido descriptor de Interrupcion o Excepcion de 32 bits,excepto el campo IST (Interrupt Stack Table) que se emplea paraefectuar el stack switching cuando hay un cambio en el Nivel dePrivilegio en el modo 64-bit.El uso del campo IST, se describira en detalle en la seccionTareas.Los bytes 12 a 15 de estos descriptores permanecen reservadosy no deben ser utilizados, para evitar conflictos con futurasversiones de estos procesadores.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 38 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Cuestiones de proteccion

    El segmento de codigo referenciado por el selector de segmentode estas puertas (bytes 2 y 3 del descriptor de la Figura anterior,debe ser un segmento de 64 bits. De otro modo se genera unaExcepcion #GP guardandose en el stack un codigo de error en elque se almacena el selector de IDT (Tipo de interrupcion)En el modo IA-32e no se puede incluir en la IDT descriptores de32 bits. Solo se pueden incluir en la IDT de 64 bits Descriptoresde Interrupcion o de Excepcion de 64 bits. Cualquier otrodescriptor producira al invocarse esa interrupcion una excepcion#GP.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 39 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Stack Frame en Modo 64-bit

    1 En el modo 64-bit, el tamano del cada elemento que se apila en elstack-frame como resultado de una interrupcion o excepcion esfijo: 8 bytes siempre.

    2 Cuando se vectoriza una Interrupcion o Excepcion en el Modo64-bit, el par de registros SS:RSP se guarda en la pilaincondicionalmente, independientemente de que se hayaproducido o no un cambio en el Nivel de Privilegio de ejecucion(cambio en CPL).

    3 En el modo IA-32e el contenido del RSP se alinea a 16 bytesantes de generar el stack frame para asegurar su alineacion a 16bytes cuando se ingrese al handler de la interrupcion (oexcepcion). El procesador puede alinear el nuevo RSP en formaautomatica en respuesta a una Interrupcion o Excepcion, aun si elviejo RSP (que ahora se guardara incondicionalmente en el stack)no esta alineado a 16 bytes. Cuando se ejecuta iret se recupera elviejo RSP en su valor original (alineado o no).Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 40 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Stack Frame en Modo 64-bit

    4 Las ventajas de este requerimiento de alineacion del stack a 16bytes, son claras a la hora de apilar por ejemplo registros XMM,cuyo tamano es 16 bytes. De otro modo las instrucciones dealmacenamiento de estos registros (MOVAPS y MOVUPS) sedificultan por utilizar mas ciclos de bus para acceder al stackresintiendo la performance del sistema.

    5 Aunque la alineacion a 16 bytes del RSP se realizara siempre siel bit LMA del MSR IA-32 EFER 1 este en 1, esto es solo deinteres para el Modo Kernel en cuyo caso no hay cambio destack, ni se utiliza el contenido del campo IST del descriptor de laInterrupcion o Excepcion. Cuando se deba realizar cambio destack el procesador asume que el Sistema Operativo ha colocadolos valores de RSP en la TSS alineados a 16 bytes.

    1MSR: Model Specific Register. Es un set de registros que se comenzo aincluir a partir del procesador Pentium, y que pueden no estar o cambiar enversiones futuras de estos procesadores. IA-32 EFER es un MSR cuyo bitLMA indica que el procesador esta en Modo IA-32e y se ha configurado elmodo de memoria largoAlejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 41 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    IRET en Modo 64-bit

    1 En el modo de funcionamiento IA-32e iret trabaja con operandosde 8 bytes de tamano. No hay motivo alguno para forzar esterequerimiento, pero dada la alineacion que posee el registro RSP,trabajar con un operando de tamano submultiplo exacto de laalineacion del stack no trae ningun problema.

    2 Los push en el stack frame son siempre de 8 bytes en el ModoIA-32e, por lo tanto iret ejecutara pop de a 8 bytes. Para ello sedebe preceder a iret del prefijo de tamano de operando de 8bytes. De todos modos el tamano del pop se determina con eltamano de la direccion de memoria de la instruccion. El ajuste deltamano a SS/ESP/RSP esta determinado por el tamano del stack.

    3 iret extrae SS:RSP incondicionalmente del stack solo en el modo64-bit. En el modo compatibilidad extrae SS:RSP del stack solo sicambia el CPL a causa de la Interrupcion o Excepcion. Esto esrazonable tratandose del modo Compatibilidad en donde seespera que las aplicaciones de 32 bits puedan funcionar.Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 42 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    IRET en Modo 64-bit

    4 En el Modo IA-32e, iret puede cargar NULL en el registro SS bajociertas condiciones.

    Si el Modo de trabajo del codigo destino es 64-bit y su CPL esmayor de 11, iret puede cargar un NULL selector en SS.Como parte del mecanismo de cambio de stack una Interrupcion oExcepcion puede poner el nuevo SS en NULL, a pesar de buscarun nuevo selector de SS en el TSS y cargar su descriptor de laLDT o GDT. El nuevo selector de SS se pone en NULL a fin deresolver adecuadamente los retornos de subsiguientestransferencias far anidadas.Si el procedimiento llamado es interrumpido por si mismo (unaexcepcion tpicamente) se apila en el stack frame un SS NULL. Enlos iret subsiguientes, el SS NULL en el stack actua como unasuerte de flag para avisarle al procesador que cargue el nuevodescriptor de SS.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 43 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Stack Switching en Modo 64-bit1 Cuando se produce una interrupcion en el Modo 64-bit, se

    produce un cambio de stack, aun si no cambia el CPL.2 No se carga un nuevo descriptor en SS, y RSP se carga con el

    siguiente valor interno de la IST.3 El nuevo SS se fuerza a NULL, (excepto su campo RPL que se

    setea al valor del nuevo CPL), en toda transferencias far anidadas,con CALLF, INT n, Interrupciones de hardware, y Excepciones.

    4 Siempre el par SS:RSP viejo se salva en el nuevo stack.5 Todos estos metodos retornan va iret, que recupera del stack que

    esta a punto de abandonar los valores almacenados previamentede SS:RSP, para volver a ese procedimiento.

    ResumenEl stack switch en modo IA-32e trabaja como en el modo legacyexcepto que el registro SS no se carga con el nuevo selector de laTSS, sino que se pone a NULL.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 44 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Stack Switching en Modo 64-bit1 Cuando se produce una interrupcion en el Modo 64-bit, se

    produce un cambio de stack, aun si no cambia el CPL.2 No se carga un nuevo descriptor en SS, y RSP se carga con el

    siguiente valor interno de la IST.3 El nuevo SS se fuerza a NULL, (excepto su campo RPL que se

    setea al valor del nuevo CPL), en toda transferencias far anidadas,con CALLF, INT n, Interrupciones de hardware, y Excepciones.

    4 Siempre el par SS:RSP viejo se salva en el nuevo stack.5 Todos estos metodos retornan va iret, que recupera del stack que

    esta a punto de abandonar los valores almacenados previamentede SS:RSP, para volver a ese procedimiento.

    ResumenEl stack switch en modo IA-32e trabaja como en el modo legacyexcepto que el registro SS no se carga con el nuevo selector de laTSS, sino que se pone a NULL.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 44 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Stack Frame en Modo 64-bit

    0

    +8

    +16

    +24

    +32

    +40SS

    RSP

    RFLAGS

    CS

    RIP

    Error Code

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 45 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Interrupt Stack Table

    A diferencia de la arquitectura legacy de 32 y 16 bits, en el Modo64 bits, se genera una conmutacion de stack cada vez que elprocesador recibe una Interrupcion de Hardware, o genera unaExcepcion, o ejecuta una instruccion INT n o CALLF.La Interrupt Stack Table (IST) es un mecanismo exclusivo delmodo IA-32e, que permite al procesador conseguir el nuevo stackcada vez que se produce una transferencia far.El mecanismo IST se habilita a nivel de cada Interrupcionindividual, completando el campo homonimo (IST) en aquellosdescriptores de IDT que corresponden a Interrupciones oExcepciones para las que queremos que el procesador activeeste mecanismo.Aquellos vectores de interrupcion cargados en IDT que no tenganeste mecanismo habilitado, trabajan en el modo legacy.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 46 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Interrupt Stack Table

    El mecanismo IST es parte de la TSS de Modo 64-bit.Intel establece en su documentacion que este mecanismo fuepensado para interrupciones que requieran ejecutar siempresobre un stack conocido y seguro. Tal sera el caso de las NMI,Doble Falta, Machine Check, entre otras.En el modo legacy de 32 y 16 bits, esta necesidad se satisfacacolocando una Task Gate en el descriptor correspondiente de laIDT. De este modo al producirse esas interrupciones especficasel procesador genera una conmutacion de tarea que lo lleva a unentorno seguro, pero a costa de una demora adicional que implicaconmutar los contextos de ejecucion en forma automatica.Este mecanismo de conmutacion de tareas no esta disponible enel Modo IA-32e.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 47 / 1

  • Interrupciones en Modo 64 bits Que cambia respecto del Modo Legacy?

    Interrupt Stack Table

    El Mecanismo IST proporciona hasta siete punteros a pilas en elTSS.Estos punteros son referenciados por un Descriptor de Puerta deInterrupcion o Excepcion en la IDT.Este descriptor contiene un campo de 3 bits denominado IST quehace las veces de ndice dentro de la seccion IST del TSS.Mediante este mecanismo de indexacion el procesador puedecargar el valor apuntado por el ndice IST en el registro RSPcuando vectoriza la interrupcion correspondiente al Tipo que llevaa esa entrada de la IDT.Por lo demas el procesamiento de la interrupcion es el habitualdel modo de 32 bits.Cuando el ndice IST esta en 000, se utiliza el modo deconmutacion de stack legacy (32 bits).

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 48 / 1

  • Interrupciones en una PC El PIC

    El PIC: Programable Interrupt Controller

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 49 / 1

  • Interrupciones en una PC El PIC

    Conexionado

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 50 / 1

  • Interrupciones en una PC El PIC

    Secuencia de Inicializacion

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 51 / 1

  • Interrupciones en una PC El PIC

    Inicialization Control Words

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 52 / 1

  • Interrupciones en una PC El PIC

    Inicialization Control Words

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 53 / 1

  • Interrupciones en una PC El PIC

    Inicialization Control Words

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 54 / 1

  • Interrupciones en una PC El PIC

    Inicialization Control Words

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 55 / 1

  • Interrupciones en una PC El PIC

    Operational Control Words

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 56 / 1

  • Interrupciones en una PC El PIC

    Operational Control Words

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 57 / 1

  • Interrupciones en una PC Subsistema de Interrupciones

    Conexionado de los dos PIC en una PC

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 58 / 1

  • Interrupciones en una PC Subsistema de Interrupciones

    Asignacion de las lneas IRQ en una PC

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 59 / 1

  • Interrupciones en una PC El APIC

    Mucho mas que un controlador de Interrupciones...

    En 1990 Intel lanza el procesador Pentium, que introduce entrevarias novedades el Advanced Programmable Interrupt Controller(APIC) cuya principal funcion, consiste en dar soporte a MultiProcesamiento Simetrico (SMP).El APIC tiene dos componentes de Hardware:

    1 El APIC Local que esta incluido en el chip que contiene el Core delprocesador (actualmente hay que hablar de un APIC por cada Coreintegrado en el Chip),

    2 El IO/APIC, que es el concentrador externo de Interrupciones deHardware que reside en el chipset, y que interactua con cada APIClocal, para entre otras cosas enviar a cada core una interrupcionproveniente de un dispositivo de hardware, de acuerdo a diferentescriterios.

    El APIC requiere ser habilitado explcitamente. De otro modo elprocesador no lo usa y requiere una logica externa del tipo 8259A.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 60 / 1

  • Interrupciones en una PC El APIC

    ...Tanto que lo dejamos para tratar especficamente

    El APIC local permite manejar lo que Intel denominaInterrupciones locales.Son las que se generan en los terminales del chip por hardware, yen algunas fuentes adicionales que provee el APIC.Interactuando con el IO/APIC, conecta los terminales externos(LINT0 o LINT1 segun se lo configure) con la senal INTR del core(que ahora no esta disponible hacia el exterior).Si el APIC no esta habilitado, LINT0 corresponde a INTR, y LINT1a NMI.Se trata de un dispositivo cuya funcionalidad excede el manejo deinterrupciones, por lo tanto se lo tratara con mas detalle alabordar el tema SMP.

    Alejandro Furfaro () Procesadores IA-32 e Intel R 64 Gestion de Interrupciones Abril 2012 61 / 1

    InroduccinSistema de Interrupciones de Procesadores x86Identificacin de las fuentes de interrupcinVectorizacin en Modo ProtegidoEstrucuras de datos asociadasUtilizacin de los descriptoresManejo de la PilaExcepcionesClasificacinExcepciones y Cdigo de ErrorImplicancias para el kernelNiveles de privilegioPrioridadesSimultaneidad de requerimientos.Interrupciones en Modo 64 bitsQue cambia respecto del Modo Legacy?Interrupciones en una PCEl PICSubsistema de InterrupcionesEl APIC