22
INTERRUPCIONES Tres tipos de interrupciones: Internas (TRAPS) Externas (HARDWARE) • Software Existen 256 interrupciones En el modo real cada una tiene un vector asociado Vectores de 4 bytes: segmento + offset 32 F0 50 8A 0000:0000 0000:0002 0000:0004 0000:0006 0000:0008 .... Memoria principal Vector INT 0 = F032:8A50 (dirección donde comienza la rutina de atención) Segmento Offset Número de interrupción: Internas : implícito Externas : Enviado por el periférico solicitante Software : indicado en la propia instrucción

INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

  • Upload
    vudung

  • View
    246

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONES

Tres tipos de interrupciones:

• Internas (TRAPS)• Externas (HARDWARE)• Software

Existen 256 interrupcionesEn el modo real cada una tiene un vector asociadoVectores de 4 bytes: segmento + offset

32 F050 8A

0000:00000000:00020000:00040000:00060000:0008

.... Memoriaprincipal

Vector INT 0 = F032:8A50(dirección donde comienza la rutina de atención)

SegmentoOffset

Número de interrupción:

Internas : implícitoExternas : Enviado por el periférico solicitanteSoftware : indicado en la propia instrucción

Page 2: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONES

INT 0

INT 1

INT 2

INT 3

INT 4

INT 32

INT 33

INT 34

INT 255

Error de división por 0

Ejecución paso a paso

NMI (No enmascarable)

Instrucción INT

Desbordamiento (INTO)

Reservadas por INTEL (modo protegido)

Utilizables por el usuario

Cada vector: 4 bytes

Dirección del vector: 0: INT x 4La tabla ocupa 256x4 = 1024 bytes (1 Kbyte)

Page 3: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONES

Proceso de una interrupción:

1. Guarda registro F en la pila2. IF=0, TF=03. Guarda CS en la pila4. CS = NUM_INT x 4 + 25. Guarda IP en la pila6. IP = NUM_INT x 4

Retorno de interrupción:

IRET

Realiza el proceso inverso

Page 4: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESInternas

0 Error de división por 0 El cociente no cabe en el registro destino

1 Ejecución paso a paso Se produce una interrupción cada vez que se ejecuta una instrucción si el flag T está activado

2 NMI (No enmascarable) Interrupción hardware (NMI)

3 Instrucción INT Produce una interrupción cuando se ejecutala instrucción INT (1 byte) - BREAKPOINTS

4 Desbordamiento (INTO) Si el flag O está activado se dispara al ejecutar la instrucción INTO

Reservadas

Son necesarias en el modo protegido

Fallos de páginaNivel de privilegio insuficienteViolación de límite de segmento

No deben utilizarse en el modo realIBM las utilizó en el PC

Software

Cualquier interrupción se puede disparar mediante la instrucción

INT n

Page 5: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONES

Hardware

CPU

NMI

INTR

NMI activa en flanco de subida

INTR activa a nivel alto

La CPU genera dos impulsos de reconocimiento de interrupción

Lógica

REQ0

....REQ4

INTA

Nº de vector

Reconocimiento Petición vector

INTR

INTA

D0 .. D7

Page 6: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONES

Interconexión de varios dispositivos a la línea de interrupción

El PIC 8259 (“Programmable Interrupt Controller”)

BUFFER

BUS DEDATOS

LÓGICALECTURA/

ESCRITURA

CONTROLDE

CASCADA

LÓGICA DE CONTROL

REG

ISTR

OIN

TER

RU

PCIO

NES

EN S

ERVI

CIO

ÁRBI

TRO

DE

PRIO

RID

ADES

REG

ISTR

O D

EPE

TIC

IÓN

DE

INTE

RR

UPC

IÓN

ISR IRR

IMRREGISTRO DE MÁSCARA

IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

D0..D7

RD#WR#

A0

CS#

Bus interno (8 bits)

CAS0CAS1CAS2

ESQUEMA INTERNO DE BLOQUES

INT INTA

SP/EN

Page 7: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESProceso de una interrupción en el PIC

0 0 0 1 0 0 0 0IRR

INT

REG

ISTR

O D

EPE

TIC

IÓN

DE

INTE

RR

UPC

IÓN

IRR IRQ0IRQ1IRQ2

IRQ3IRQ4IRQ5IRQ6IRQ7

1. Un periférico solicita interrupción

2. El PIC solicita interrupción a la CPU (INT)

3. La CPU reconoce la petición con un primer pulso de INTA

4. Se activa el bit correspondiente de ISR y se desactiva en IRR

5. La CPU envía el segundo pulso de INTA

6. El PIC coloca un puntero de 8 bits en el bus de datos

7. A partir de entonces comienza a ejecutarse la rutina de atención

Se activa el bitcorrespondiente en ISR

0 0 0 0 0 0 0 0IRR

0 0 0 1 0 0 0 0ISR

El valor del puntero es distinto para cada entrada IRQ

Es programable

Page 8: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONES

Fin de interrupción (EOI)

Los bits activos de ISR bloquean futuras peticiones por esa línea

Deben ponerse a 0 al terminar la rutina de servicio: (EOI)

Formas de poner a 0 el bit de ISR:

1. Programar el modo automático (AEOI)

El bit se pone a 0 automáticamente al colocar el punteroen el bus de datos

2. Enviar al PIC el comando EOI:

No específico : pone a 0 el de más prioridad

Específico: pone a 0 el que se le indica

Generalmente se envía el EOI justo antes del IRET

0 0 0 1 0 1 0 0ISR

Líneasactivas

Líneasbloqueadas

Page 9: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONES

PERMITIDASTODAS LAS

INTERR.

STIPERMITIDAS

IRQ2IRQ1IRQ0

STI

STI

EOI

IRET

EOI

IRET

IRQ3

IRQ1

PROGRAMAPRINCIPAL

RUTINA SERV.A IRQ3

RUTINA SERV.A IRQ1

0 0 0 0 0 0 0 0

ISR0 0 0 0 1 0 0 0

ISR0 0 0 0 1 0 1 0

ISR

PONEA 0 PONE

A 0

Page 10: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESGestión de prioridades

1. Modo ANIDADO

2. Modo de ROTACIÓN AUTOMÁTICA

3. Modo de ROTACIÓN ESPECÍFICA

• IR0 prioridad más alta• IR7 prioridad más baja• Peticiones de menor prioridad que la que está siendo atendida se ignoran

• Útil cuando todos los dispositivos tienen idéntica prioridad• Cuando se atiende una IRQ se le asigna la prioridad menor• En el caso peor se espera que se atiendan a los otros 7

0 0 0 1 0 0 0 0

7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 0

2 1 0 7 6 5 4 3

ISR ISR

Prioridad Prioridad

menor mayor mayor menor

• Se le indica en el EOI cuál es el dispositivo que adquiere la menor prioridad

Page 11: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONES

PICMAESTRO

PICESCLAVO 1

PICESCLAVO 2

DIR

ECC

ION

ES

CO

NTR

OL

DAT

OS

INTA#A0CS#INT

INTA#A0CS#INT

INTA#A0CS#INT

IRQ0IRQ1

IRQ3IRQ4

IRQ6IRQ7

IRQ2

IRQ5

IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

VccSP/EN

SP/EN

SP/EN

CAS0 CAS1 CAS2

CAS0 CAS1 CAS2

CAS0 CAS1 CAS2

Lógi

ca d

ese

lecc

ión

MODO CASCADA

Page 12: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESGestión de prioridades

Modo ANIDADO ESPECIAL

Cuando se conectan varios PIC en cascadaPermite gestionar las prioridades de forma correcta

PICMAESTRO

PICESCLAVO

INT

IRQ0IRQ1IRQ2IRQ3IRQ4

IRQ6IRQ7

IRQ5

IRQ0IRQ1IRQ2IRQ3

IRQ5IRQ6IRQ7

VccSP/EN

SP/ENCAS0 CAS1 CAS2

CAS0 CAS1 CAS2

INTIRQ4

0 0 0 1 0 0 0 0ISR esclavo

0 0 1 0 0 0 0 0ISR Maestro

PICMAESTRO

PICESCLAVO

INT

IRQ0IRQ1IRQ2IRQ3IRQ4

IRQ6IRQ7

IRQ5

IRQ0

IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

VccSP/EN

SP/ENCAS0 CAS1 CAS2

CAS0 CAS1 CAS2

INTIRQ1

0 0 0 1 0 0 1 0ISR esclavo

0 0 1 0 0 0 0 0ISR Maestro

?

Page 13: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESGestión de prioridades

Comando de sondeo (“POLL”)

1. Cuando se activa no se pasan las peticiones de interrupción a la CPU

2. El procesador debe interrogar al PIC para saber si se ha producido petición de interrupción

3. La gestión de las interrupciones, y las prioridades se lleva a cabo mediante software.

PICMAESTRO

SP/EN

CAS0 CAS1 CAS2

0 1 0 0 0 1 0 0ISR Maestro

IRQ0IRQ1

IRQ3IRQ4IRQ5

IRQ7

INTIRQ2

INTIRQ6

INT

No se envían las peticiones

Page 14: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESEl registro de máscara

REG

ISTR

OIN

TER

RU

PCIO

NES

EN S

ERVI

CIO

ÁRBI

TRO

DE

PRIO

RID

ADES

REG

ISTR

O D

EPE

TIC

IÓN

DE

INTE

RR

UPC

IÓN

ISR IRR

IMRREGISTRO DE MÁSCARA

IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

Permite enmascarar individualmente cada entrada:

1 Prohibe interrupciones por esa línea

0 Permite interrupciones por esa línea

Page 15: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESLa programación del PIC 8259

Solamente 2 puertos de E/S disponibles

(A0=0, A0=1) Posición par e impar respectivamente

Existen un total de 7 comandos

4 ICW Palabras de inicialización3 OCW Palabras de operación

COMANDO DIRECCIÓNCOMANDO DIRECCIÓN Se distingue porSe distingue por

ICW1ICW2ICW3ICW4

OCW1OCW2OCW3

PARIMPARIMPARIMPAR

IMPARPARPAR

Bit 4 = 1Sigue a ICW1Sigue a ICW2Sigue a ICW3

-Bit 3 = 0 , Bit 4 = 0Bit 3 = 1 , Bit 4 = 0

Palabra que se escribe (8 bits)

Page 16: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESLa programación del PIC 8259

Palabras de inicialización (ICW)

Se utilizan en el reinicio del sistema para configurar el PIC

ICW1 da comienzo a la secuencia de inicialización

ICW1 ⇒ A0 = 0 D4 = 1

Automáticamente, al recibirlo, el PIC:

• Pone a 0 el registro de máscara

• Asigna prioridad 7 a IRQ7

• Pone a 0 los registros IRR e ISR

• Espera por las siguientes palabras de inicialización

Generalmente se utilizan cuando el sistema arranca

Page 17: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESLa programación del PIC 8259

Secuencia de inicialización

Escribir ICW1

Escribir ICW2

Escribir ICW3

Escribir ICW4

¿Modocascada?

Esnecesaria

ICW4

FIN

ICW1 se escribe en la dirección PARcon A0 = 0 y D4 = 1

ICW1, ICW2 e ICW3 se escriben enla dirección IMPAR

Si hay varios PIC en cascada es necesario escribir ICW3, en casocontrario puede omitirse

En sistemas basados en procesadoresIntel XX86 siempre es necesaria ICW4

Page 18: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONES

1 = Se necesita ICW40 = No se necesita ICW4

1 = Modo SINGLE0 = Modo CASCADA

1 = Entradas activas al NIVEL0 = Entradas activas al FLANCO

1 LTIM SINGL ICW4

T7 T6 T5 T4 T3

Número INT de interrupción quese asigna a IRQ0

S2 S1 S0S7 S6 S5 S4 S3

1 = Esta entrada tiene PIC esclavo0 = Esta entrada no tiene esclavo

ID2 ID1 ID00 0 0 0 0

Entrada IRQ del maestro a la que se encuentra conectado

M/S AEOI 860 0 0 SFNM BUF

Debe estar a “1” para indicar funcionamiento en modo 8086

1 = fin de interrupción automático0 = fin de interrupción normal

Control del modo BUFFER

Control de anidamiento especial

ICW1

ICW2

ICW3(Maestro)

ICW3(Esclavo)

ICW4

Page 19: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESLa programación del PIC 8259

Palabras de operación (OCW)

Se pueden enviar en cualquier momento

Son tres : OCW1, OCW2 y OCW3

OCW1 ⇒ se corresponde con el registro IMR

Se detecta porque:

A0 = 1 (escritura o lectura en posición IMPAR)

Mediante OCW1 se pueden activar o desactivar los bits de la máscara de interrupción

M2 M1 M0M7 M6 M5 M4 M3

1 = Activar máscara0 = Desactivar máscara

IMRA0 = 1

Page 20: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESLa programación del PIC 8259

Palabra de operación OCW2

Se detecta cuando:

Se escribe en posición PAR (A0 = 0)El byte que se escribe tiene D4 = 0 y D3 = 0

Controla los modos de:

Fin de interrupción

Gestión de prioridades

Específico

No específico

Rotación automática

Rotación específica

L2 L1 L0H SL EOI 0 0

0 0 1 EOI no específico0 1 1 EOI específico1 0 1 No válido1 0 0 0 0 01 1 1 Rotación1 1 00 1 0 No válido

Número de IRQ al que se refiere

Page 21: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESLa programación del PIC 8259

Palabra de operación OCW3

Se detecta cuando:

Se escribe en posición PAR (A0 = 0)

El byte que se escribe tiene D4 = 0 y D3 = 1

Permite el sondeo y la lectura de STATUS

P RR RIS0 0 1

1 = Comando Poll

1. Primero se escribe en posición PAR

2. A continuación se lee en posición PAR

RR RIS Acción

1 0 Lee IRR1 1 Lee ISR

W2 W1 W0I

En comando POLL

En otros:

Lectura de IRR o ISR directamente

Page 22: INTERRUPCIONES - ecaths1.s3.amazonaws.comecaths1.s3.amazonaws.com/comelec/1384996122.interrupciones.pdf · Tres tipos de interrupciones: • Internas ... la máscara de interrupción

INTERRUPCIONESLas interrupciones en el PC

PICMAESTRO

PICESCLAVO

INT

IRQ0IRQ1

IRQ3IRQ4IRQ5IRQ6IRQ7

IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15

VccSP/EN

SP/ENCAS0 CAS1 CAS2

CAS0 CAS1 CAS2

IRQ2

Desde la arquitectura AT hay dos PIC

PIC MAESTRO Dir E/S = 20h, 21hPIC ESCLAVO Dir E/S = A0h, A1h

Interrupciones reservadas:

IRQ0 Temporizador (Timer)IRQ1 TecladoIRQ8 Reloj de tiempo realIRQ13 Errores del coprocesadorIRQ14 Controlador de disco duroIRQ3 Puerto serie COM1IRQ4 Puerto serie COM2IRQ6 Controlador de disketteIRQ7 Puerto paralelo

Al inicio del sistema se especifica:

PIC MAESTRO INT = IRQ + 8PIC ESCLAVO INT = IRQ + 70h