Title: Arquitectura de Computadoras II
1Arquitectura de Computadoras II
- Unidad 4.- INTERRUPCIONES
Instructor Héctor M. Quej Cosgaya
2Interrupción.
Una interrupción es un mecanismo que permite
ejecutar un bloque de instrucciones
interrumpiendo la ejecución de un programa, y
luego restablecer la ejecución del mismo sin
afectarlo directamente. Cada interrupción tiene
asignada un número único. El PC está diseñado de
manera que la interrupción tiene asignada 4 bytes
de memoria RAM. La dirección de los cuatro bytes
en la memoria corresponde al número de la
interrupción multiplicado por 4.
3Ejemplo.
Por ejemplo la interrupción IRQ 5 tiene asignada
4 bytes en la dirección 0x00014 (00000014). El
contenido de los 4 bytes de memoria RAM asignados
a una interrupción contiene a su vez una
dirección que es un puntero a un bloque de
instrucciones de máquina que realiza el
procedimiento correspondiente. De este modo al
iniciar la ejecución de una interrupción de los
cuatro bytes que tiene asignados se obtiene la
dirección del bloque de instrucciones que
efectivamente se ejecutan.
4Tipos de interrupciones
- requeridas por hardware
- requerida por software para interactuar con
periféricos
5requeridas por hardware
- Es aquella iniciada por un periférico que demanda
atención ya que ha ocurrido un evento relativo a
este periférico que demanda algún procedimiento
de parte de la CPU. - En un PC las primeras 16 interrupciones son de
este tipo por lo que los primeros 64 bytes de la
memoria RAM son direcciones que apuntan bloques
de instrucciones residentes en otras áreas de la
memoria RAM. - Cabe notar que estas 16 primeras interrupciones
que son generadas por hardware que necesita
atención rápida por lo que debe interrumpirse a
la brevedad cualquier cosa que la CPU esté
haciendo en ese momento.
6requeridas por hardware
7requerida por software para interactuar con
periféricos
Están jerarquizadas para resolver conflictos
entre las múltiples interrupciones. Esto puede
ser necesario por ejemplo mientras una
interrupción está siendo ejecutada para atender
un dispositivo y en en ese momento un segundo
dispositivo pide una interrupción. Se debe tener
un mecanismo para decidir que acción tomar. Este
mecanismo está basado en la priorización de
interrupciones de modo que una interrupción de
mayor prioridad puede interrumpir una de menor
prioridad pero no al revés.
8requerida por software para interactuar con
periféricos
La administración del sistema de interrupciones
mediante este esquema de priorizaciones es muy
eficiente de tal manera que su uso se extiende a
la interacción con periféricos. De tal manera
que si necesita interactuar con un periférico
entonces la CPU actúa a través del sistema de
interrupciones solicitandose a sí mismo una
interrupción. De este modo previene que el
periférico esté ocupado o bien no disponible.
9requerida por software para interactuar con
periféricos
Las interrupciones para comunicarse con los
periféricos forman la base de lo que se conoce
como las interrupciones BIOS (Basic Input-Output
System).
10Puertos
- Cualquier dispositivo (distinto de la memoria
RAM) que intercambie datos con el sistema lo hace
a través de un "puerto", por esto se denominan
también puertos de E/S ("I/O ports"). - Desde el punto de vista del software, un puerto
es una interfaz con ciertas características se
trata por tanto de una abstracción (no nos
referimos al enchufe con el que se conecta
físicamente un dispositivo al sistema), aunque
desde el punto de vista del hardware, esta
abstracción se corresponde con un dispositivo
físico capaz de intercambiar información (E/S)
con el bus.
11Puertos
- Al tratar de las E/S hemos indicado que puerto es
sinónimo de periférico un dispositivo externo
que comunica con el sistema a través de una
dirección. Sin embargo no todos son dispositivos
externos a la placa-base, de hecho algunos
dispositivos hardware incluidos en ella tienen la
característica de "Puertos".
12Direcciones de puertos
- El modelo de direccionamiento del PC ha adoptado
dos modelos, según la naturaleza del dispositivo
a conectar - Direccionamiento dedicado para dispositivos de
media/baja velocidad. Por ejemplo, puertos serie
y paralelo (impresora), teclado, Etc. y - Direccionamiento mapeado en memoria para
dispositivos rápidos (típicamente los adaptadores
gráficos).
13(No Transcript)
14(No Transcript)
15La primera lee un byte del registro de salida del
puerto y lo sitúa en un registro del procesador
la segunda escribe el contenido de un registro
del procesador en un registro del puerto. Ambas
instrucciones permiten dos variaciones
sintácticas
IN acumulador-destino, direccion-de-puerto-origen
IN acumulador-destino, acumulador-origenOUT
dirección-de-puerto-destino, acumulador-origenOUT
acumulador-destino, acumulador-origen
16Funcionamiento
- Las dos primeras sitúan el dato contenido en el
puerto origen en el acumulador-destino, que puede
ser AX o AL. Observe que el puerto puede ser
expresado directamente mediante una dirección
(hexadecimal) o mediante un acumulador-origen,
que debe ser DX en este caso, su contenido se
toma como dirección del puerto que se lee. - Las instrucciones OUT sitúan el valor contenido
en el acumulador-origen, que puede ser AX o AL,
en el puerto destino, que puede ser identificado
directamente mediante su dirección hexadecimal, o
por el valor señalado por el acumulador-destino,
que debe ser DX.
17IOR Orden de lectura para dispositivo E/S
conectado al bus, que debe colocar un dato en el
bus de datos. IOW Orden de escritura para
dispositivo E/S, que debe leer el dato situado en
el bus. MEMR Esta señal indica a los
dispositivos de memoria que deben colocar un dato
en el bus de datos. MEMW Señal que indica a los
dispositivos de memoria que deben almacenar el
dato colocado en el bus de datos.
18(No Transcript)
19(No Transcript)
20(No Transcript)