Sei sulla pagina 1di 19

ARQUITECTURA DE COMPUTADORAS

UNIDAD II FUNCIONAMIENTO INTERNO DE LA COMPUTADORA

Interrupcin (tambin conocida como corrupcin del hardware o peticin de interrupcin) es una seal recibida por el procesador de un ordenador, indicando que debe "interrumpir" el curso de ejecucin actual y pasar a ejecutar cdigo especfico para tratar esta situacin.

Las interrupciones surgen de las necesidades que tienen los dispositivos perifricos de enviar informacin al procesador principal de un sistema de computacin.
La primera tcnica que se emple fue que el propio procesador se encargara de sondear (polling) el dispositivo cada cierto tiempo para averiguar si tena pendiente alguna comunicacin para l.

Este mtodo presentaba el inconveniente de ser muy ineficiente, ya que el procesador constantemente consuma tiempo en realizar todas las instrucciones de sondeo. El mecanismo de interrupciones fue la solucin que permiti al procesador desentenderse de esta problemtica, y delegar en el dispositivo la responsabilidad de comunicarse con el procesador cuando lo necesitaba.

Cada dispositivo que desea comunicarse con el procesador por interrupciones debe tener asignada una lnea nica capaz de avisar a ste de que le requiere para una operacin. Esta lnea es la llamada IRQ ("Interrupt ReQuest", peticin de interrupcin).

1) Terminar la ejecucin de la instruccin mquina en curso.

2) Salva el valor de contador de programa, IP, en la pila, de manera que en la CPU, al terminar el proceso, pueda seguir ejecutando el programa a partir de la ltima instruccin.

3) La CPU salta a la direccin donde est almacenada la rutina de servicio de interrupcin (ISR, Interrupt Service Routine) y ejecuta esa rutina que tiene como objetivo atender al dispositivo que gener la interrupcin.

4) Una vez que la rutina de la interrupcin termina, el procesador restaura el estado que haba guardado en la pila en el paso 2 y retorna al programa que se estaba usando anteriormente.

En sistemas ms modernos se utiliza la arqitectura APIC de Intel con 24 lneas y 8 extra para enrutar las interrupciones PCI.
Nombre NMI 0 1 IRQ2 IRQ3 Int (hex) --08 09 0A 0B XT: Descripcin Paridad* Temporizador* Teclado* Reservado Puertos serie COM2/COM4 Puertos serie COM1/COM3 Disco duro Disquete AT: Descripcin Paridad* Temporizador* Teclado* Interrupciones 8 a 15 (PIC#2) Puerto serie COM2/COM4 Puertos serie COM1/COM3 Impresora secundaria LPT2 Disquete

IRQ4 IRQ5 IRQ6 IRQ7 8 9 IRQ10 IRQ11 IRQ12 13 IRQ14 IRQ15

0C 0D 0E 0F 70 71 72 73 74 75 76

Impresora primaria LPT1 Impresora primaria LPT1 No aplicable No aplicable No aplicable No aplicable No aplicable No aplicable No aplicable Reloj de tiempo real* Redirigido a IRQ2* no asignado no asignado Ratn PS2 Coprocesador 80287* Contr. disco IDE primario

Son interrupciones que se producen como resultado de, normalmente, una operacin de E/S. No son producidas por ninguna instruccin sino que son seales que producen los dispositivos para indicarle al procesador que necesitan ser 'atendidos'. Las interrupciones hardware son interesantes en cuanto a que permiten mejorar la productividad del procesador ya que este ltimo puede ordenar una operacin de E/S y en lugar de tener que esperar a que el dispositivo acabe realizando una espera activa, es decir, sin hacer ningn trabajo til, se puede dedicar a atender a otro proceso o aplicacin y cuando el dispositivo este de nuevo disponible ser el encargado de notificarle al procesador mediante la lnea de interrupcin ya que est preparado para continuar/terminar la operacin de E/S.

Existe un hardware especfico, para que los dispositivos puedan interrumpir lo que est haciendo la CPU. La propia CPU, tiene entradas especficas para ser interrumpida INT, cuando se activa esta entrada INT, la CPU para lo que est haciendo y activa la salida para reconocer la interrupcin INTA, y comienza a ejecutar el cdigo especial que maneja la interrupcin.

La placa base del computador utiliza un controlador para decodificar las interrupciones que no son mas que seales elctricas producidas por los dispositivos, coloca en el bus de datos informacin de que dispositivo interrumpi y activa la entrada INT de interrupcin de la CPU. Este chip controlador protege a la CPU y la asla de los dispositivos que interrumpen, adems de proporcionar flexibilidad al diseo del sistema. El controlador de interrupciones tiene un registro de estado para permitir o inhibir las interrupciones en el sistema.

Existe diverso hardware para implementar un controlador de interrupciones, los computadores IBM PC o compatibles, utilizan el controlador de interrupciones programable de Intel 82C59A-2 Cmos o sus chips compatibles. Este controlador ha sido utilizado desde los comienzos del IBM PC, y es bien conocido el espacio de direccionamiento de sus registros en la arquitectura ISA. Incluso en chips ms modernos se ha mantenido la misma localizacin.

Significa que, bajo control del software, el procesador puede aceptar o ignorar (enmascarar) la seal de interrupcin. Para ello se enva una seal a la patilla INTR, y el procesador la atiende o la ignora en funcin del contenido de un bit (IF) en un registro (FLAGS) que puede estar habilitado o deshabilitado ( H3.2). En el primer caso, cuando se recibe la seal, el procesador concluye la instruccin que estuviese en proceso y a continuacin responde con una combinacin de seales en algunas de sus patillas componiendo una sucesin de dos seales INTA ("Interrupt Acknowledge.

La primera seal es simplemente un aviso; la segunda es una peticin para que el PIC coloque en el bus de datos un Byte con el nmero de interrupcin, de forma que el procesador pueda localizar el servicio solicitado.

El valor recibido (0-255) es multiplicado por 4 para calcular la direccin del vector correspondiente en la tabla de vectores de interrupcin, lo que se realiza mediante un desplazamiento binario de dos posiciones a la izquierda.

A continuacin, el procesador salva en la pila los valores del registro de estado, del contador de programa (PC) y del segmento de cdigo (CS); deshabilita el bit IF del registro de estado, para que la interrupcin no pueda ser molestada con una nueva interrupcin enmascarable hasta que sea especficamente permitido, y finalmente ejecuta el servicio.

La penltima secuencia de la rutina de servicio es enviar una seal de que la interrupcin ha terminado (EOI) para que el PIC pueda seguir enviando interrupciones. A continuacin debe restaurar los registros a su estado inicial (existente antes de que se produjera la interrupcin).

Para facilitar el manejo de interrupciones, el 8088 y sucesores disponen de algunas instrucciones especficas: IRET Retorno de interrupcin ("Interrupt Return"). Recupera de la pila el contador de programa PC; el segmento de cdigo CS (lo que supone devolver el programa al punto de ejecucin original), y el registro de estado FLAGS (lo que supone devolver las interrupciones enmascarables al estado inicial). CLI Limpiar la interrupcin ("Clear Interrupt"); pone a cero el registro IF, deshabilitando las interrupciones enmascarables.

STI Es la instruccin opuesta ("Set Interrupt") pone a 1 el registro IF habilitando las interrupciones enmascarables.

Significa que la interrupcin no puede ser deshabilitada por software. Este tipo de interrupciones ocurren cuando se recibe una seal en la patilla NMI ("Nonmaskable Interrupt" 5 ) del procesador. Se reservan para casos en que es crtica la respuesta, por ejemplo que se detecte un error de paridad en la memoria. Adems son de prioridad ms alta que las enmascarables.

Cuando el procesador recibe una de estas instrucciones no se genera ningn ciclo de reconocimiento de la instruccin (INTA), y el procesador le asigna un 2 como nmero de excepcin.

Potrebbero piacerti anche