PDF de programación - Interrupciones y entrada/salida

<<>>
Imágen de pdf Interrupciones y entrada/salida

Interrupciones y entrada/salidagráfica de visualizaciones

Publicado el 14 de Junio del 2019
664 visualizaciones desde el 14 de Junio del 2019
350,0 KB
15 paginas
Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Interrupciones y entrada/salida

Departamento de Automática

Sistemas Operativos

Interrupciones y entrada/salida

1 / 15

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Índice

● Mapa de entrada/salida
Instrucciones IN/OUT
● El temporizador periódico



● Modo de operación

● El controlador de interrupciones

● Registros
● Habilitación de interrupciones

● Manejadores de interrupción

● Marco de interrupción


Procesamiento de una interrupción

● Ejercicios propuestos

Sistemas Operativos

Interrupciones y entrada/salida

2 / 15

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Instrucciones IN/OUT

Mapa de entrada/salida
Descripción general

● Mapa de registros de 16 bits de

los dispositivos hardware

● Cada registro tiene una
dirección fija de 16 bits



El acceso al mapa de registros se
realiza mediante instrucciones
específicas

MOV

IN / OUT

Sistemas Operativos

Interrupciones y entrada/salida

3 / 15

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Instrucciones IN/OUT

Instrucciones IN/OUT

Instrucción IN




Lee el valor de un registro de entrada/salida
La dirección del registro se obtiene del primer y único operando
El resultado se almacena siempre en el Registro A

Instrucción
privilegiada



El primer operando puede ser:

opcode

Operando

Ejemplo

135 (0x87)

REGISTER_16BITS

IN B

136 (0x88)

REGADDRESS

IN [C+100]

137 (0x89)

ADDRESS

IN [0x0300]

138 (0x8A)

WORD

IN 0x2

Sistemas Operativos

Interrupciones y entrada/salida

4 / 15

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Instrucciones IN/OUT

Instrucciones IN/OUT

Instrucción OUT




Escribe un valor en un registro de entrada/salida
La dirección del registro se obtiene del primer y único operando
El valor a escribir siempre se obtiene del Registro A

Instrucción
privilegiada



El primer operando puede ser:

opcode

Operando

Ejemplo

139 (0x8B)

REGISTER_16BITS

OUT C

140 (0x8C)

REGADDRESS

OUT [B+100]

141 (0x8D)

ADDRESS

OUT [0x0200]

142 (0x8E)

WORD

OUT 0x1

Sistemas Operativos

Interrupciones y entrada/salida

5 / 15

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Modo de operación

El temporizador periódico
Descripción general

Temporizador

(timer)

Controlador de
Interrupciones

Procesador

Bus de entrada/salida







Temporizador (timer) de 16 bits
Permite generar interrupciones periódicas

Implementa dos registros:




TMRPRELOAD: almacena el valor de pre-carga del contador
TMRCOUNTER: contiene el valor actual del contador

Inicialmente el temporizador está desactivado

Sistemas Operativos

Interrupciones y entrada/salida

6 / 15

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Modo de operación

Modo de operación

Timer Preload
Register
(TMRPRELOAD)

Cuenta inicial

Cuenta actual

Timer Counter
Register
(TMRCOUNTER)

1.

2.

Se escribe en el registro TMRPRELOAD el valor inicial de la cuenta

En el siguiente ciclo, se vuelca el valor de TMRPRELOAD en el
registro TMRCOUNTER

3. Cada ciclo de ejecución se decrementa en una unidad el valor de

TMRCOUNTER

4. Cuando el valor de TMRCOUNTER llega a 0 se dispara la interrupción

5.

En el siguiente ciclo se vuelve a cargar la cuenta inicial de
TMRPRELOAD en TMRCOUNTER

Sistemas Operativos

Interrupciones y entrada/salida

7 / 15

Probar el siguiente ejemplo:

MOV A, 20
OUT 3
HLT

A continuación, ir ejecutando paso a paso las instrucciones para ver cómo se
decrementa el valor del contador.

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Registros
Habilitación de interrupciones

El controlador de interrupciones
Descripción general

Teclado
numérico

Temporizador

(timer)

IRQ0

IRQ1

IRQ2

.
.
.

IRQ15

Controlador de
interrupciones

IRQ

Procesador

● Permite controlar hasta 16 fuentes de

interrupción

distintas

● Las fuentes se pueden habilitar (desenmascarar) o

deshabilitar (enmascarar) de forma independiente

Sistemas Operativos

Interrupciones y entrada/salida

8 / 15

La CPU tiene una única fuente de interrupción. El controlador de interrupciones es el
encargado de activar y desactivar la señal de interrupción general del procesador en
función del estado de las fuentes de interrupción. Cada fuente de interrupción propia
del control se puede habilitar o deshabilitar de forma independiente. Si se produce
una señal de interrupción por una de las fuentes del control, únicamente se
propagará hacia el procesador si la fuente correspondiente está habilitada.

Los términos desenmascarar y enmascarar son sinónimos de habilitar y deshabilitar
respectivamente.

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Registros
Habilitación de interrupciones

Registros del controlador de interrupciones
Interrupt Controller Mask Register (IRQMASK)

Interrupt
Controller Mask
Register
(IRQMASK)

Tim er

Teclado

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

16 bits

El registro máscara del controlador de
interrupciones
(IRQMASK) permite habilitar y deshabilitar las fuentes de
interrupción:




Si el bit correspondiente a la fuente está a 1 ⇒ habilitada
Si el bit correspondiente a la fuente está a 0 ⇒ deshabilitada

Sistemas Operativos

Interrupciones y entrada/salida

9 / 15

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Registros
Habilitación de interrupciones

Registros del controlador de interrupciones
Interrupt Controller Status Register (IRQSTATUS)

Interrupt
Controller Status
Register
(IRQSTATUS)

Tim er

Teclado

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

16 bits

● El registro de estado del controlador de

interrupciones

(IRQSTATUS) indica si una fuente de interrupción está activada:




Si el bit correspondiente a la fuente está a 1 ⇒ activada
Si el bit correspondiente a la fuente está a 0 ⇒ desactivada

● Es un registro de sólo lectura
● Para que se propague la interrupción, la fuente debe estar

activada y habilitada

Sistemas Operativos

Interrupciones y entrada/salida

10 / 15

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Registros
Habilitación de interrupciones

Registros del controlador de interrupciones
End of Interrupt Register (IRQEOI)

End of Interrupt
Register
(IRQEOI)

Tim er

Teclado

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

16 bits

● El registro de fin de interrupción (IRQEOI) se emplea para

indicar al controlador que ya ha atendido la interrupción

● Es necesario escribir un 1 en el bit correspondiente a la

fuente para desactivar la interrupción



Si la interrupción queda correctamente desactivada, el bit
correspondiente del IRQSTATUS quedará a 0

Sistemas Operativos

Interrupciones y entrada/salida

11 / 15

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Registros
Habilitación de interrupciones

Habilitación de interrupciones

1.

Poner a 1 los bits del registro IRQMASK correspondientes a la/s
fuente/s que se desean habilitar

2. Habilitar las interrupciones en el procesador

➢ La CPU implementa dos instrucciones para habilitar y deshabilitar

las interrupciones de forma global

Instrucción STI

Habilita las interrupciones en el procesador

Instrucción CLI

Deshabilita las interrupciones en el procesador

Sistemas Operativos

Interrupciones y entrada/salida

12 / 15

Por ejemplo, para habilitar la interrupción del timer periódico habría que codificar las
siguientes instrucciones:

MOV A, 2
OUT 0
STI

El procesador siempre comienza con las interrupciones deshabilitadas.

El estado de las interrupciones se puede comprobar en el bit M (Interrupt Mask Bit)
del Registro de Estado.

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Marco de interrupción
Procesamiento de una interrupción

Manejadores de interrupción
Descripción general

● El manejador es la rutina que se ejecuta cuando se dispara

una interrupción

● Cuando se produce la interrupción, el procesador realiza

las siguientes operaciones:

Si la CPU estaba en modo usuario ⇒ modo supervisor


○ Guarda el marco de interrupción (interrupt frame)
○ Modifica el registro puntero de instrucción

Instruction
Pointer

Valor previo

0x0003

Sistemas Operativos

Interrupciones y entrada/salida

13 / 15

Mapa de entrada/salida
El temporizador periódico
El controlador de interrupciones
Manejadores de interrupción
Ejercicios propuestos

Descripción general
Marco de interrupción
Procesamiento de una interrupción

Marco de interrupción

El marco de interrupción contiene la información necesaria poder
retornar al estado previo al disparo:









El valor previo del puntero de instrucción

El valor previo del puntero de pila

El valor previo del registro de esta
  • Links de descarga
http://lwp-l.com/pdf16123

Comentarios de: Interrupciones y entrada/salida (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad