Anda di halaman 1dari 20

Pontificia Universidad Catlica de Chile Escuela de Ingeniera Departamento de Ciencia de la Computacin

Arquitectura de Computadores
Clases 14 - 15

Interrupciones de software y hardware

IIC 2342 Semestre 2008-2

Rubn Mitnik

Objetivos
Captulo 4 : Unidad de Procesamiento Central (CPU)

Objetivos

Entender qu son y para qu sirven las interrupciones.

Entender todas las partes del flujo de una interrupcin.

Entender el funcionamiento de un controlador externo de interrupciones.

R.Mitnik

Arquitectura de Computadores

ndice
Captulo 4 : Unidad de Procesamiento Central (CPU)

4.1 Partes de la CPU. 4.2 Conjunto de Instrucciones y tipos de funcionalidad. 4.3 Ciclo de la Instruccin. 4.4 Diseo de una CPU bsica. 4.5 Modos de direccionamiento. 4.6 Instrucciones en lenguaje de mquina. 4.7 Subrutinas y Manejo de Stack. 4.8 Interrupciones de software y hardware. 4.9 CISC/RISC.
R.Mitnik 3 Arquitectura de Computadores

Interrupciones de software y hardware


Captulo 4 : Unidad de Procesamiento Central (CPU)

Interrupciones

Son una forma de alterar externamente el flujo del programa


Interrumpen el flujo para ejecutar otro cdigo

Pueden ocurrir en cualquier momento


No se sabe a priori cuando van a ocurrir Duracin del evento gatillante puede ser muy corto
Necesitan ser atendidas muy pronto

R.Mitnik

Arquitectura de Computadores

Interrupciones de software y hardware


Captulo 4 : Unidad de Procesamiento Central (CPU)

Usos:
I/O

Mejora la eficiencia por que no hay que hacer polling


Polling overhead

Asegura atencin en el momento requerido


Exactitud

Errores
Ej. divisin por cero, Index out of range, page fault Error no previsto, puede ocurrir en cualquier momento.

Timer
Soporte para Sistema Operativo (task switching) Software

R.Mitnik

Arquitectura de Computadores

Interrupciones de software y hardware


Captulo 4 : Unidad de Procesamiento Central (CPU)

Ej. Un computador, adems de estar ejecutando programas, recibe datos por un


puerto usb y los muestra en pantalla

Espera activa no sirve


Se queda pegado. Los otros programas no se siguen ejecutando.

Polling es ineficiente
Pueden ser muchos puertos. Estoy en otro loop y no reviso en el momento adecuado se pierde el dato.

Interrupciones
Programa sigue corriendo y solo busca el dato cuando le avisan que lleg. Busca solo en el puerto que lo interrumpi. No importa donde est en el cdigo.
6 Arquitectura de Computadores

R.Mitnik

Interrupciones de software y hardware


Captulo 4 : Unidad de Procesamiento Central (CPU)

Ej. Qu pasa si estoy guardando un archivo muy pesado y muevo el mouse?

Sin interrupciones: el puntero del mouse no se mueve a tiempo real


Si el buffer est en la CPU
se pierden los datos

Si el buffer est en la tarjeta del mouse


al terminar de guardar el archivo, se ejecutan todos los movimientos seguidos

Con interrupciones
se mueve de inmediato y normalmente

R.Mitnik

Arquitectura de Computadores

Implementacin en Hardware
Captulo 4 : Unidad de Procesamiento Central (CPU)

1 Dispositivo: Teclado

Para conversar con el teclado sin interrupciones necesito:


Conexin con el bus de datos Conexin con el bus de direcciones A ti te hablo y esto te digo

direcciones

datos

Para interrumpir necesito:


Seal de interrupcin

R.Mitnik

Arquitectura de Computadores

Interrupciones de software y hardware


Captulo 4 : Unidad de Procesamiento Central (CPU)

Secuencia:

Teclado interrumpe CPU termina instruccin CPU pide datos al teclado Teclado entrega datos Sigue pidiendo hasta que no queden ms datos CPU le dice que ya no siguen conversando
EOI

I S Interrupt Service Routine R

CPU vuelve a lo que estaba haciendo antes

R.Mitnik

10

Arquitectura de Computadores

Implementacin en Hardware
Captulo 4 : Unidad de Procesamiento Central (CPU)

2 Dispositivos: Teclado & Mouse

Agregamos controlador que nos indica quien interrumpi


Por que no 2 lneas de int?
No es escalable Pierde eficiencia CPU resuelve todo

R.Mitnik

12

Arquitectura de Computadores

Implementacin en Hardware
Captulo 4 : Unidad de Procesamiento Central (CPU)

Teclado interrumpe CPU termina instruccin CPU ejecuta ISR asociado pregunta quien interrumpi al teclado Controlador lo que CPU vuelve ale responde por el haciendo antes estababus de datos

EOI al controlador Pasa a la siguiente interrupcin Cuando se acaben

R.Mitnik

13

Arquitectura de Computadores

Implementacin en Hardware
Captulo 4 : Unidad de Procesamiento Central (CPU)

Teclado interrumpe CPU termina instruccin CPU pregunta quien interrumpi Controlador le responde por el bus de datos CPU ejecuta ISR asociado al teclado EOI al controlador Pasa a la siguiente interrupcin Cuando se acaben CPU vuelve a lo que estaba haciendo antes
14 Arquitectura de Computadores

Si no quiero que alguien interrumpa lo enmascaro

R.Mitnik

Implementacin en Hardware
Captulo 4 : Unidad de Procesamiento Central (CPU)

8 Dispositivos

Agregamos controlador 8259 PIC


(Programable Interrupt Controller)

IMR: Interrupt Mask Register IRR: Interrupt Request Register ISR: In Service Register
R.Mitnik 15 Arquitectura de Computadores

Implementacin en Hardware
Captulo 4 : Unidad de Procesamiento Central (CPU)

PIC Dispositivo interrumpe CPU termina instruccin CPU pregunta quien manda INTA interrumpi PIC pone valor de por bus Controlador le dice la interrupcin en el bus de datos de datos CPU busca direccin de ISR en CPU ejecuta ISR asociado el teclado de interrupciones al vector EOI al controlador Pasa a la siguiente dispositivo interrupcin PIC Cuando se acaben

Vector de interrupciones

IRQ0 IRQ1 IRQ2 IRQ3 . . .

ISR IRQ3

Determinar enmascaramiento Resolver Prioridad Almacenar int a procesar

CPU vuelve a lo que estaba haciendo antes

R.Mitnik

17

Arquitectura de Computadores

Implementacin en Hardware
Captulo 4 : Unidad de Procesamiento Central (CPU)

PIC interrumpe CPU termina instruccin CPU manda INTA PIC pone valor de la interrupcin en el bus de datos CPU busca direccin de ISR en vector CPU ejecuta ISR asociado al dispositivo EOI al PIC Pasa a la siguiente interrupcin Cuando se acaben CPU vuelve a lo que estaba haciendo antes
18 Arquitectura de Computadores

Determinar enmascaramiento Resolver Prioridad Almacenar int a procesar

R.Mitnik

Implementacin en Hardware
Captulo 4 : Unidad de Procesamiento Central (CPU) Int Int a IRQ0 IRQ1

CPU

8259 PIC

0x20

IRQ7

IRQ8 IRQ9
8259 8259

PIC 0xA0

PIC

IRQ15

R.Mitnik

19

Arquitectura de Computadores

Implementacin en Hardware
Captulo 4 : Unidad de Procesamiento Central (CPU)

Vector de interrupciones

Contiene 256 direcciones 00 FF Cada direccin ocupa 4 bytes

CPU pide valor de interrupcin

PIC1: 0000 1xxx xxx : IRQ0-7 08 0F PIC2: 0111 0xxx xxx : IRQ8-15 70 77

CPU busca direccin de ISR en vector de interrupciones


R.Mitnik 20 Arquitectura de Computadores

Implementacin en Hardware
Captulo 4 : Unidad de Procesamiento Central (CPU)

Vector de interrupciones x86

R.Mitnik

21

Arquitectura de Computadores

Implementacin en Software
Captulo 4 : Unidad de Procesamiento Central (CPU)

Sin int

Con int

Fetch

Exe
int

INT

Cuando el programa se interrumpe, antes de ejecutar el ISR correspondiente se debe:


Terminar instruccin. Guardar:

PC Registros Condition Codes o Status word

R.Mitnik

22

Arquitectura de Computadores

Resumen
Captulo 4 : Unidad de Procesamiento Central (CPU)

Resumen

Interrupciones
Qu son Usos Ventajas

Secuencia de procesamiento de una interrupcin Uso e importancia del PIC 8259

R.Mitnik

23

Arquitectura de Computadores