Está en la página 1de 117

Flujo normal del programa

3. Ejecución de 1. Carga de la
la Instrucción instrucción Excepción:
Cualquier alteración del flujo
normal del programa

2.
Decodificación
de la
Instrucción

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
1 Tema 5: Excepciones y E/S
@John Waldron. https://www.scss.tcd.ie
Tema 5: Excepciones y E/S
E/S = Entrada y Salida

Agradecimiento a Enrique F. Torres y otro profesorado del Área de Arquitectura y


Tecnología de Computadores de la Universidad de Zaragoza, por la elaboración de la
base de parte de material

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
2 Tema 5: Excepciones y E/S
Contenidos
1. Excepciones
2. Entrada y Salida
3. Modos de sincronización

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
3 Tema 5: Excepciones y E/S
5.1 Excepciones

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
4 Tema 5: Excepciones y E/S
Contenidos: 5. 1 Excepciones
• Definición y Clasificación de Excepciones
 Excepciones en ARM
• Mecanismos de Excepción
• Rutina de servicio a una excepción y E/S
• Prioridades
• Tabla vector de excepciones
• Retorno Rutina de servicio
• Algunos ejemplos

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
5 Tema 5: Excepciones y E/S
¿Qué es una excepción?

• Excepciones:
cambios especiales en el PC
que rompen el flujo normal de un proceso
y cambian el estado(modo) del procesador

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
6 Tema 5: Excepciones y E/S
Ejemplos de excepciones
• Eventos esperados que ocurren en tiempo de impredecible (en
relación con la ejecución de nuestro programa)
– Pulsar el teclado, clic en el ratón, pulsar un botón, tocar una pantalla
táctil..
– Recibir datas de la red, acabar de enviar datos a la red,
– Esperar a que un temporizador alcance un valor…
• Eventos inesperados que debemos atender
– Apertura de CD, eliminar un USB, …
– Nivel de batería bajo, …
– Perdida de señal inalámbrica, desconexión cable de red,…
– Leer o escribir en una dirección de memoria no válida
– Intentar ejecutar un código máquina no válido
– Reset
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
7 Tema 5: Excepciones y E/S
Tipos de excepciones
Cualquier instr. ejecutada paso a paso
(tracing)
Instr. específica ejecutada

SÍNCRONAS software traps


Ej: llamadas al sistema
(excepciones s.s.) Fallos
Instr. en ejecución (e.g. @ operando no válida)
hardware traps Abortos
(e.g. error hardware)
Interrupciones s.s.
ASÍNCRONAS traps asíncronos no programables usuario
(AST) programables usuario

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
8 Tema 5: Excepciones y E/S
Clasificación
• Excepciones: Consecuencia de la ejecución de cierta instrucción (Síncrona
con respecto al flujo del programa). Existen varios tipos de excepciones síncronas:
• TRAPs: La instrucción que provoca el trap se ejecuta totalmente y una vez acabada el
procesador pasa a ejecutar una rutina de atención a dicha excepción. Volviendo a la siguiente
instrucción de la que provoco el trap.
• FALLO: La instrucción queda a medio ejecutar, pero el procesador queda en un estado conocido
de forma que, una vez resuelto el fallo, puede reinicializar la ejecución.
• ABORTO: La instrucción queda a medio ejecutar, pero el procesador queda en un estado
desconocido, incapaz de reanudar la ejecución.

• Interrupciones: Son excepciones que se producen independientemente


de la ejecución de un programa, (Asíncronas), como consecuencia de algún
acontecimiento externo al procesador. Tenemos principalmente dos tipos:
• FALLOS HARDWARE: Caída de tensión, Fallo de un Bus......
• ENTRADA/SALIDA: Excepción provocada por un dispositivo de E/S que requiere la atención
del procesador.
• Asynchronous system trap (AST)

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
9 Tema 5: Excepciones y E/S
Excepciones de ARM
Nombre Descripción
Reset Cuando se pulsa el botón reset (power on)
Undefined Instruction Se intenta ejecutar una palabra de instrucción invalida
Software Interrupt (SWI) Causada por la programación de una SWI
Prefetch Abort (MMU) Intenta cargar una instrucción de una dirección invalida
(instrucciones)
Data Abort (MMU) Intenta cargar /almacenar de una dirección invalida (datos)
(Reserved)
IRQ Interrupt ReQuest (Petición de interrupción)
FIQ Fast Interrupt reQuest

Cuando cualquiera de estas excepciones tienen lugar debe tratarse a


través de un proceso de gestión de excepciones (exception handler) que
proceda convenientemente.
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
10 Tema 5: Excepciones y E/S
@John Waldron. https://www.scss.tcd.ie
Modos del Procesador (recordatorio)
ARM tiene siete modos de operación:
• Modo usuario: (usr) CPSR[4:0]=10000
– Sin privilegios, no permite usar los registros de sistema
– Usado típicamente por los sistemas operativos al ejecutar
programas de nivel de aplicación (la mayoría de tareas)
• Modos privilegiados: supervisor(SVC), FIQ, IRQ, abort,
undefined y system
• Según el modo activo del procesador, podremos acceder a
determinados registros. (Los modos privilegiados también pueden acceder
a los registros de estado almacenados :spsr= saved program status register)

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
11
11 Tema 5: Excepciones y E/S
@ Hsung-Pin Chang (NCHU)
Uso de los modos del procesador

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
12
12 Tema 5: Excepciones y E/S
@John Waldron. https://www.scss.tcd.ie
3. Ejecución de 1. Carga de la
la Instrucción instrucción

Se pulsa tecla
Instrucción
Incorrecta

2.
Decodificación
de la
Instrucción

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
13 Tema 5: Excepciones y E/S
¿Que ocurre?
NUESTRO
PROGRAMA
RESPUESTA

█ A LA EXCEPCION










█ █
EXC.
█ █

█ █

█ █






Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
14 Tema 5: Excepciones y E/S
Mecanismo excepción (1/4)
Programa
Rutina
en ejecución
Servicio

Memoria
CPU Programa
IRQ
INT principal
PC
Rutina de
Servicio

• Una rutina de servicio de excepción/interrupción se


comporta como una subrutina que no es activada por el
programa principal, sino por un proceso externo.
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
15 Tema 5: Excepciones y E/S
Mecanismo excepción (2/4)
• Veamos con más detalle cual es la secuencia de acontecimientos
que tienen lugar durante la atención a una petición.
• A grandes rasgos, estos acontecimientos son:
• Detección de la petición.
• Salvar estado del programa interrumpido. (Contexto)
• Cambio modo excepción
• Identificación de la rutina de servicio a ejecutar,
(según la razón que interrumpe).
• Ejecución de la rutina de atención a la interrupción.
• Volver
• Restaurar contexto &
• Restaurar modo ejecución &
• Retorno al programa interrumpido

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
16 Tema 5: Excepciones y E/S
Mecanismo excepción (3/4)
• Los procesadores ARM segmentados , tienen las siguientes etapas:
– Fetch: Se busca la instrucción en memoria
– Decode: Se decodifica y se preparan las señales de control para el próximo
ciclo.
– Execute: La instrucción se ejecuta en el camino de datos; se lee el banco
de registros, se desplaza el operando, la ALU genera el resultado y se
almacena en el registro de destino

• Las excepciones son consideradas al finalizar la ejecución de


la instrucción actual (salvo reset)

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
17 Tema 5: Excepciones y E/S
Program Status Register (CPSR)
31 28 27 24 23 16 15 8 7 6 5 4 0

N Z C V Q J U n d e f i n e d I F T mode
f s x c

• Condition code flags • Interrupt Disable bits.


– N = Negative result from ALU – I = 1: Disables the IRQ.
– Z = Zero result from ALU – F = 1: Disables the FIQ.
– C = ALU operation Carried out
– V = ALU operation oVerflowed • T Bit
– Architecture xT only
• Sticky Overflow flag - Q flag – T = 0: Processor in ARM state
– Architecture 5TE/J only – T = 1: Processor in Thumb state
– Indicates if saturation has occurred
• Mode bits
• J bit – Specify the processor mode
– Architecture 5TEJ only
– J = 1: Processor in Jazelle state

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
18 Tema 5: Excepciones y E/S
The ARM Architecture. ARM©
Registros visibles de ARM
r0
usable in user mode
r1
r2
r3 system modes only
r4
r5
r6
r7
r8_fiq
r8
r9 r9_fiq
r10_fiq
r10
r11 r11_fiq
r12_fiq r13_irq r13_und
r12 r13_abt
r13_fiq r13_svc r14_irq r14_und
r13 r14_svc r14_abt
r14 r14_fiq
r15 (PC)

SPSR_abt SPSR_irq SPSR_und


CPSR SPSR_fiq SPSR_svc

fiq svc abort irq undefined


user mode mode mode mode mode mode

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
19 Tema 5: Excepciones y E/S
ARM System-on Chip Architecture. Steve Furber © Addison Wesley 2000
¿Qué ocurre al producirse una excepción?
Programa Rutina
En ejecución Servicio
PCrut_serv

PC EXC.

Modo USR Cambio de modo Modo Privilegiado


Salva CPSR en SPSR_modo y PC en LR_modo

Modo USR Cambio de modo Modo Privilegiado


Restaira CPSR desde SPSR_modo y PC en LR_modo

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
20 Tema 5: Excepciones y E/S
Se produce una excepción
¿Cuándo se atiende?
¿y si llega otra a la vez?
¿Quién modifica PC?
¿Dónde está la rutina de servicio?
¿Qué PC se guarda?
¿Cuándo se cambia de modo?
¿Cómo se vuelve al modo USR?
¿Cuándo se restaura PC?

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
21 Tema 5: Excepciones y E/S
Mecanismo excepción (4/4)
• Cuando se produce una excepción, el procesador ARM:
– Copia el CPSR en el SPSR_<mode>
– Activa los valores de los bits correspondientes de CPSR
• Cambia a estado ARM (si estaba en Thumb)
• Cambia a modo excepción
• Deshabilita interrupciones (si procede)
– Almacena la dirección de retorno en LR_<mode>
– Coloca PC en la tabla de direcciones

• Para volver, el gestor de excepciones requiere


– Restaurar CPSR desde SPSR_<mode>
– Restaurar PC desde LR_<mode>
– Restaurar modo USR
Sólo se puede hacer en estado ARM (ARM state).
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
22 Tema 5: Excepciones y E/S
The ARM Architecture ©
Excepciones y modos del procesador

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
23 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
Prioridad de las excepciones
• Las excepciones pueden ocurrir simultáneamente, por ello el procesador
debe disponer de mecanismos de priorización. Algunas excepciones incluso
deshabilitan interrupciones, activando los flags I o F del CPSR.

¿Qué ocurre si se está ejecutando una rutina de


servicio y se produce otra excepción?
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
24 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
Tabla de vectores de excepción
Exception vector table
Es una tabla en memoria que contiene la dirección de la
primera instrucción a ejecutar de la rutina de servicio,
para cada tipo de excepción, en una dirección
determinada.
Ex cepti o n Mo de Vecto r addres s
Reset SVC 0x00000000
Undefined instruction UND 0x00000004
Software interrupt (SWI) SVC 0x00000008
Prefetch abort (instruction fetch memory fault) Abort 0x0000000C
Data abort (data access memory fault) Abort 0x00000010
IRQ (normal interrupt) IRQ 0x00000018
FIQ (fast interrupt) FIQ 0x0000001C

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
25 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
Tabla de vector de excepciones
@ de memoria Contenido
0x00000000 Salto a Rut. Serv RESET
0x00000004 Salto a Rut. ServInstrucción Indefinida
0x00000008 Software interrupt (SWI)
0x0000000C Salto a Rut. Serv. Prefetch Abort (MMU)
0x00000010 Salto a Rut. Serv Data Abort (MMU)
0x00000014 (Reserved)
0x00000018 Salto a Rut. Serv IRQ
0x0000001C Inicio rutina FIQ
….

….

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
26 Tema 5: Excepciones y E/S
Especificación del contenido
de la tabla de vectores de excepciones
• b <direccion> : salto relativo a PC, con la dirección destino dentro de 32MB
• ldr pc,[pc,#offsett]: Esta instrucción carga de la memoria al PC la
dirección del gestor de interrupciones.
Se cargan los 32 bits de la posición de memoria, lo cual puede causar un pequeño retraso
en comparación con el salto a una dirección de memoria, caso anterior. La ventaja es que
se puede acceder así a cualquier dirección de memoria.
• ldr pc,[pc,#-0xFF0]: Esta instrucción carga la dirección de una rutina de
servicio específica de la dirección 0xFFFFF030 al PC.
Solo se utiliza cuando existe controlador del vector de interrupciones(VIC PL190).
• mov pc, #inm_8: Esta instrucción copia un valor inmediato al PC,
Permite acceder a todo el espacio de direcciones, pero con limitación en el alineamietno.
La dirección debe ser un inmediato de 8 bits, rotado a la derecha por un número par de
bits.
• Para FIQ, la primera instrucción de la rutina de servicio o una de las anteriores
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
27 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
Ejemplo típico de tabla de
vectores

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
28 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
Ejemplo de mapa de memoria

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
29 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
@ de retorno y Segmentado

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
30 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
Retorno de la Rutina de Servicio (1/2)

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
31 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
Retorno de la Rutina de Servicio (2/2)

• Se pueden utilizar PUSH y POP (en vez STM/LDM)


Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
32 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
Ejemplo 1:RESET ( I = F = 1 y svc)
• Power-on o señal externa
• Bus de direcciones buscar primera instrucción
0x00000000
– normalmente un salto a la primera instrucción de la rutina de servicio
a reset
• iniciación del microcontrolador
– por ejemplo
• inicializar vector excepciones
• inicializar memoria (MMU)
• inicializar modos (pilas y registros)
• iniciar dispositivos I/O críticos
• iniciar periféricos (clock, PLL, etc)
• habilitar interrupciones
• cambiar modo / estado
• saltar a primera instrucción programa principal

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
33 Tema 5: Excepciones y E/S
Ejemplo 2: SWI ( I = 1 y svc)
• Software Interrupt
– genera excepción y fuerza el paso a supervisor

• Programa solicita servicios al S.O.


– System Calls
– identificador codificado en opcode
• la rutina servicio debe buscarlo
– se retorna con:
movs pc, lr

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
34 Tema 5: Excepciones y E/S
Instrucciones de soporte a
excepciones
• <ldm|stm>{<cond>}<addressing_mode> Rb{!}, <register list>^
• Se transfieren registros en modo usuario, cuando se está en modo privilegiado

• <msr>{<cond>}<cpsr>, Rm
• CPSR:=Rm
• <msr>{<cond>}<spsr>, Rm
• SPSR:=Rm
• No válido en modos usuario ni de sistema
• <msr>{<cond>}<cpsr>, #Inm8
• CPSR:=#Inm8r (solo byte seleccionado)
• <msr>{<cond>}<spsr>, #Inm8
• SPSR:=#Inm8r (solo byte seleccionado)
• No válido en modos usuario ni de sistema

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
35 Tema 5: Excepciones y E/S
5.2 Entrada y Salida
Material basado en transparencias de Enrique F. Torres y otro profesorado del Área de
Arquitectura y Tecnología de Computadores de la Universidad de Zaragoza

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
36 Tema 5: Excepciones y E/S
Contenidos: 7.2 Entrada y Salida
• Introducción
– Periféricos
• Controladores E/S
– Introducción
– Mapeo de los registros de los controladores

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
37 Tema 5: Excepciones y E/S
Introducción
Sistema Interconexión

CPU M E/S

Pantalla Disco Teclado ........

La Entrada/Salida (E/S) es una unidad básica de un computador a través de la


que se realiza la comunicación con el exterior
Cargar programas, introducción de datos para ser procesados,
visualizar resultados...

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
38 Tema 5: Excepciones y E/S
Dispositivos de E/S : Periféricos
Características útiles para la clasificación de los periféricos
• Comportamiento
• Entrada (teclado, ratón,...)
• Salida (impresora, pantalla, ...)
• Modificadores entorno (electroválvulas, motores)
• Lectura y escritura o almacenamiento (discos y cintas magnéticas)
• Pareja (según quien introduzca o lea los datos en el otro
extremo del periférico)
• Máquina
• Persona
• Frecuencia de datos
• Frecuencia máxima a la que pueden ser transferidos datos entre
procesador y periférico o entre memoria y periférico

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
39 Tema 5: Excepciones y E/S
Ejemplos de periféricos
Frecuencia de
Dispositivo Comportamiento Pareja
Datos kB/s
Teclado Entrada Persona 0’01
Ratón Entrada Persona 0’02
Entrada de voz Entrada Persona 400
Escáner Entrada Persona 0’6
Impresora de línea Salida Persona 1
Impresora láser Salida Persona 200
Pantalla gráfica Salida Persona 60.000
Red LAN Entrada/Salida Máquina 500-6.000
Módem Entrada/Salida Máquina 2-8
Disco Flexible Almacenamiento Máquina 100
Disco Óptico Almacenamiento Máquina 1.000
Cinta magnética Almacenamiento Máquina 2.000
Disco magnéico Almacenamiento Máquina 2.000-10.000

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
40 Tema 5: Excepciones y E/S
¿Qué es un BUS?
• Un enlace de comunicación compartido
• Un conjunto de cables simples usados para conectar multiples
subsistemas

Processor
Input
Control
Memory

Datapath Output

• Es también una herramienta fundamental para formar sistemas


grandes y complejos
– Sistemáticamente significa abstracción
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
41 Tema 5: Excepciones y E/S
Ventajas de los Buses

I/O I/O I/O


Processor Device Device Device Memory

• Versatilidad:
– Nuevos dispositivos pueden conectarse facilmente
– Los periféricos pueden moverse entre sistemas de
computadores, porque usan el mismo standard de bus
• Bajo coste:
– Un conjunto de cables es compartido en multiples caminos.
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
42 Tema 5: Excepciones y E/S
Desventajas de los buses

I/O I/O I/O


Processor Device Device Device Memory

• Crea un cuello de botella en las comunicaciones


– El ancho de banda del bus puede limitar el rendimiento máximo de E/S
• La velocidad máxima del bus está en gran medida limitada
por:
– La longitud del bus
– El número de dispositivos conectados al bus
– La necesidad de dar soporte a un amplio número de dispositivos con
• Amplio rango de latencias
• Amplio rango de ratios de transferencia de datos
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
43 Tema 5: Excepciones y E/S
Main components of

Intel X58 Chipset

Nehalem (core i7)

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
44 Tema 5: Excepciones y E/S
¿Qué define un bus?

Transaction Protocol

Timing and Signaling Specification

Bunch of Wires

Electrical Specification

Physical / Mechanical Characterisics


– the connectors

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
45 Tema 5: Excepciones y E/S
Maestro-Esclavo: Master vs.Slave
Master issues command
Bus Bus
Master Data can go either way Slave

• Una trasnmisión de bus tiene dos partes:


• A bus transaction includes two parts:
– Petición (Request): Lanzamiento de comandos (y de dirección)
– Acción: Transferencia de datos
• Maestro es quien empieza la transmisión en el bus:
– Lanzamiento de comandos (y dirección)
• Esclavo es quien responde a la dirección:
– Manda los datos al maestro, si el maestro pide datos
– Recibiendo datos del maestro, si el maestro quiere enviar datos.

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
46 Tema 5: Excepciones y E/S
En forma gráfica! CPU vs BUS
1.2 Ghz
64 bits

Velocidad CPU
Prestaciones

5 Mhz
16 bits Velocidad Bus
133 Mhz
64 bits
8 Mhz 8 bits

1981 2001

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
47 Tema 5: Excepciones y E/S
Una paloma mensajera, más rápida que el
ADSL (18.09.2009)

• Winston recorrió 80 kilómetros con una tarjeta de 4GB atada a su pata


• En el tiempo que llegó la paloma, por la red solo se transmitieron el 4% de
los datos
• Incluído el tiempo de descarga llevó dos horas, seis minutos y 57 segundos.

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
48 Tema 5: Excepciones y E/S
¿Cómo se comunica en realidad
el procesador con el dispositivo?

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
49 Tema 5: Excepciones y E/S
Modos de interacción
Comandos – Programas de Usuario
1 Lenguajes de AN / Aplicaciones 1
2 Librerías Llamadas al Sistema 2
(entorno, compilador) L/E directa de los registros del 3
2 controlador
3
Servicios SO
del
sistema Gestión controladores
de
recursos

drivers

periféricos

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
50 Tema 5: Excepciones y E/S
Introducción al problema E/S
• Necesidad de los
controladores de E/S
– Distintas velocidades
– Distintos
modos de comunicación
– Distintos
protocolos de control
– Distintos
modos de operación

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
51 Tema 5: Excepciones y E/S
Estructura en Niveles

Conjunto de Comandos PostScript

Modelo de Dispositivo Impresora

Protocolo
USB / WiFi

Interfase Físico

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
52 Tema 5: Excepciones y E/S
Un teclado
• Pulsadores dispuestos en una matriz de filas y columnas.
poner a 1 todas las columnas

Señales de rastreo
fila <> 0 NO

SI
Señales de muestreo

esperar fin rebotes


No hay contacto, este se Algoritmo?
produce al pulsar una
tecla. barrer columnas

fila a 1 NO

SI
Este seria un teclado de 16 teclas (calculadora) generar código tecla

• Por ejemplo, si las señales de rastreo valen 0100 y las de muestreo son
0010, se habrá pulsado la tecla señalada.
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
53 Tema 5: Excepciones y E/S
Un disco
• Superficie magnetizable
Cabezal de
lectura/escritura

Lc: Levantar cabezal


D: Desplazar el cabezal en la dir de I/E
I/E: Interior/Exterior
Disco
Mpp: Girar un cierto ángulo
Ds Datos en serie, leídos o escritos según L/E
L/E
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
54 Tema 5: Excepciones y E/S
Comunicación Periférico-Procesador
PROCESADOR-MEMORIA E/S (PERIFERICOS)
• Eléctricamente  Eléctricamente
 Muy variable
– CMOS (o TTL)
 Electromecánica
– 5V  Temporalmente
– 0,1 mA  Síncrono (ethernet)
• Temporalmente  o asíncrono (teclado)
– Síncrono  Flujo de información
 Paralelo o serie
• Flujo de información
 Desde 8 bits a bloques de
– Paralelo 1,2 o 4 Kbytes
– 8,16,32 bits

CONTROLADOR PERIFERICO

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
55 Tema 5: Excepciones y E/S
Controladores de E/S
• Controlan la comunicación entre el sistema procesador /
memoria y los periféricos.
– Poseen doble interfaz.

Diálogo
Diálogo
con BUS
Sistema con BUS Electromecánica
BUS periferico
Procesador del Periférico
Memoria
Control+Almacén
Temporal

Reloj
Bus
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
56 Tema 5: Excepciones y E/S
Controladores de E/S
• Tipos de arquitectura:
– Modelo simplificado
• Registros de datos, estado y control
– Modelo complejo
• Con intérprete de comandos
• Alternativa: Procesador de E/S

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
57 Tema 5: Excepciones y E/S
Contador mod 4
clk
osc Controladores

Teclado
Datos

clk
Contador mod 4 osc
Estado

1
Gs

Control

Teclado
Rom
par/impar

Datos
8
Gen. Par
Estado 8 Gs

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
58 Tema 5: Excepciones y E/S
Arquitectura:
Modelo más Simple
– Registro de datos
• Periférico Entrada-> Lectura
• Periférico Salida -> Escritura
– Registro de estado (sólo lectura)
• Periférico Entrada-> Dato disponible
• Periférico Salida -> Se acepta un nuevo dato
– Registro de control (Lectura o escritura)
• Para saber como está programado (lectura)
• Programar el modo de trabajo (escritura)
• Indicaciones o notificaciones (escritura)
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
59 Tema 5: Excepciones y E/S
3. Controlador de E/S

CPU Programa L.M. Ki Kn controladores


Interface con el Bus


Di … Dn dispositivos

Controlador Control Funciones de un módulo de E/S


Comunicación con la CPU
Control y temporización
Interface con el Disp. Comunicación con los dispositivos
Control del dispositivo
n
Almacenamiento temporal de datos
(databuffering)
Dispositivos Interface Control
Detección de errores
Multiplexación
Periféricos Interface Usuario

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
60 Tema 5: Excepciones y E/S
3. Controlador de E/S (II)

CPU Programa L.M. Ki Kn controladores


Interface con el Bus


Di … Dn dispositivos

Controlador Control
Registros de estado: información del
estado del dispositivo
Interface con el Disp. Registros de control: reciben
información de control del procesador, la
n
operación a realizar
Dispositivos Registro de datos: almacena datos
Interface Control
temporalmente. La CPU deja y coge los
Periféricos Interface Usuario datos necesarios.

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
61 Tema 5: Excepciones y E/S
Señales Externas de los Controladores
• Acceso a los registros del controlador del periférico:

– L/E: selecciona el tipo de acceso (lectura o escritura).


– CS: Señal de selección del controlador. si vale 0, la salida
hacia el Bus esta en alta impedancia. Si vale 1, se hace el
acceso al registro seleccionado.
CS – A1:0: Selección del registro del controlador al que se
quiere acceder. Si tenemos por ejemplo 3 registros:
Controlador L/E A1 A0 L/E acceso
0 0 0 lectura registro de datos
0 0 1 escritura registro de datos
de 0 1 0 lectura registro de estado
0 1 1 (no utilizado)
Periféricos 1 0 0 (no utilizado)
D 7:0 1 0 1 escritura del registro control
1 1 X (no utilizado)
A 1:0
– D7:0: Bus de datos, si consideramos que los registros
son de tamaño byte.

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
62 Tema 5: Excepciones y E/S
Registros Mapeados En Memoria
Cada uno de los registros del controlador tiene asociada una
dirección, al igual que ocurre con cada posición de memoria.
Los registros se leen o se escriben exactamente igual que si
fuesen memoria.
• Ventajas:
– Se pueden mapear el mismo numero de reg. de e/s que de memoria.
(Dif en 1 o 0 el msb)
– Con un load/store se puede acceder a los registros
– Se puede utilizar cualquier tipo de direccionamiento
• Desventajas:
– Perdemos memoria.
– Es difícil impedir que un usuario normal acceda a los registros de E/S,
lo cual es responsabilidad del SO.
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
63 Tema 5: Excepciones y E/S
Registros No Mapeados En Memoria
Cuando el Procesador ejecuta una instrucción que accede a memoria
como load/store, activa la señal M/P (M/P=1), de forma que iremos a
memoria física.
– Si el programa quiere acceder a los registros ha de ejecutar una
instrucción especial:
• IN nºregistro, nºpuerto ( dir de e/s)
• OUT nºpuerto, nºregistro
– Ambas instrucciones hacen que M/P =0. Tienen como parámetro un
registro de e/s, también llamado puerto, que sale por el Bus de
direcciones. Dependiendo de la instrucción, ( In, Out), se lee o escribe.

• Ventajas:
– No utilizamos espacio de memoria
– Es fácil impedir que un usuario acceda al espacio de e/s
• Desventajas:
– Se necesitan dos instrucciones más (In, Out)
– Hay más señales en el Bus, complicando la lógica del procesador

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
64 Tema 5: Excepciones y E/S
Direccionamiento de E/S
 Ejemplo
Espacio Espacio Espacio
@memoria @memoria @E/S

Lectura de un registro del controlador:


Mapeado No mapeado
ldr r0, =0xE0028000 in r1,[0x0300]
ldr r1, [r0]
 The ARM handles I/O peripherals as memory-mapped devices with interrupt support.
 The internal registers in these devices appear as addressable locations within the ARM’s
memory map and may be read and written using the same (load-store) instructions as
any other memory location

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
65 Tema 5: Excepciones y E/S
Ejemplo: Controlador de pantalla
mapeado en memoria
• Memory-Mapped: 0x80020000
Graphics
– Hardware maps control registers and display Command
memory into physical address space Queue
• Addresses set by hardware jumpers or programming at boot
time 0x80010000
– Simply writing to display memory (also called Display
the “frame buffer”) changes image on screen Memory
• Addr: 0x8000F000—0x8000FFFF
0x8000F000
– Writing graphics description to command-
queue area
• Say enter a set of triangles that describe some scene
• Addr: 0x80010000—0x8001FFFF 0x0007F004 Command
– Writing to the command register may cause on- 0x0007F000 Status
board graphics hardware to do something
• Say render the above scene
• Addr: 0x0007F004
• Can protect with page tables
Physical Address
Space
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
66 Tema 5: Excepciones y E/S
ejemplo
ARM
LPC2105

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
67 Tema 5: Excepciones y E/S
ejemplo ARM LPC2105

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
68 Tema 5: Excepciones y E/S
ejemplo ARM LPC2105

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
69 Tema 5: Excepciones y E/S
ejemplo ARM LPC2105

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
70 Tema 5: Excepciones y E/S
LPC2105

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
71 Tema 5: Excepciones y E/S
Arquitectura: Modelo Complejo
– Registro(s) de comandos (Lectura/Escritura)
– Registro(s) de datos y estado
– Para saber como está programado (lectura)
+
Interprete de comandos
+
Concepto “Programación de Controlador

Lectura
Procesador Comando estado

Controlador
“Como
Acción ha ido”

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
72 Tema 5: Excepciones y E/S
5.3 Sincronización
Material basado en transparencias de Enrique F. Torres y otro profesorado del Área de
Arquitectura y Tecnología de Computadores de la Universidad de Zaragoza

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
73 Tema 5: Excepciones y E/S
Contenidos: 7.3 Sincronización
• Sincronización
– Encuesta
– Interrupciones
– Controlador de interrupciones

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
74 Tema 5: Excepciones y E/S
Comunicación y Sincronización
En Las Operaciones De E/S
¿Cómo se realiza la trasferencia de información?

Dependerá del periférico, habrá que conocer la secuencia de operaciones a


realizar para llevar a cabo la trasferencia.

¿Cuándo se realiza la trasferencia?

Cuando quiera la CPU


Por encuesta
Interrupciones

¿Quién realiza la trasferencia?

La CPU realiza toda la trasferencia.


CPU hace parte, el resto lo hace un circuito externo.
DMA
Coprocesador (Canal)

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
75 Tema 5: Excepciones y E/S
Sincronización Encuesta
(Poolling)
La CPU ha de detectar la disponibilidad del dispositivo mediante la
consulta constante del registro de estado del dispositivo.

Encuesta continua: Cuando el programa principal realiza una


operación de e/s siguiendo un algoritmo de este estilo:

leer estado
mientras no preparado hacer
leer estado
fmientras
realizar la operación de e/s

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
76 Tema 5: Excepciones y E/S
Controladores
clk
Contador mod 4 osc

Control

Teclado
Rom
par/impar

7
Datos

8
Gen. Par
8 Gs
Estado

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
77 Tema 5: Excepciones y E/S
Sincronización Por Encuesta
(Poolling)
Encuesta periódica: En este caso el programa principal ejecutaría el
siguiente código:
leer estado
mientras no preparado hacer
esperar un cierto tiempo o hacer otras cosas
leer estado
fmientras
realizar la operación de e/s
Ejemplo encuesta periódica: USB
Si se realiza una encuesta periódica existe la posibilidad de que el programa
principal detecte tarde que se puede realizar la operación.
Una alternativa a la encuesta por estado es la encuesta por tiempo, siempre y
cuando se pueda utilizar.
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
78 Tema 5: Excepciones y E/S
Clasificación
• Excepciones: Consecuencia de la ejecución de cierta instrucción (Sincrona
con respecto al flujo del programa). Existen varios tipos de excepciones sincronas:
• TRAPs: La instrucción que provoca el trap se ejecuta totalmente y una vez acabada el
procesador pasa a ejecutar una rutina de atención a dicha excepción. Volviendo a la siguiente
instrucción de la que provoco el trap.
• FALLO: La instrucción queda a medio ejecutar, pero el procesador queda en un estado conocido
de forma que, una vez resuelto el fallo, puede reinicializar la ejecución.
• ABORTO: La instrucción queda a medio ejecutar, pero el procesador queda en un estado
desconocido, incapaz de reanudar la ejecución.

• Interrupciones: Son excepciones que se producen independientemente


de la ejecución de un programa, (Asincronas), como consecuencia de algún
acontecimiento externo al procesador. Tenemos principalmente dos tipos:
• FALLOS HARDWARE: Caída de tensión, Fallo de un Bus......
• ENTRADA/SALIDA: Excepción provocada por un dispositivo de E/S que requiere la atención
del procesador.
• Asynchronous system trap (AST)
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
79 Tema 5: Excepciones y E/S
¿Qué ocurre al producirse una excepción?
Programa Rutina
En ejecución Servicio
PCrut_serv

PC EXC.

Modo USR Cambio de modo Modo Privilegiado


Salva CPSR en SPSR_modo y PC en LR_modo

Modo USR Cambio de modo Modo Privilegiado


Restaira CPSR desde SPSR_modo y PC en LR_modo

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
80 Tema 5: Excepciones y E/S
Mecanismo Interrupción (1/2)
Programa
Rutina
Usuario
Servicio @, datos, control

Memoria
IRQ
CPU Programa
K
principal
INT PC
Rutina de
P
Servicio
La señal irq también se
SUELE incluir en el Bus de
control.

• Una rutina de servicio de interrupción se comporta


como una subrutina que no es activada por el
programa principal sino por un proceso externo.
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
81 Tema 5: Excepciones y E/S
Técnicas de E/S
 Comparativa (entrada de un bloque de datos)

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
82
82 Tema 5: Excepciones y E/S
Mecanismo Interrupción (2/2)
• Veamos con más detalle cual es la secuencia de acontecimientos
que tienen lugar durante la atención a una petición.

– A grandes rasgos, estos acontecimientos son:


• Detección de la petición.
• Salvar estado del programa interrumpido. (Contexto)
• Cambio modo excepción
• Identificación de la rutina de servicio a ejecutar,
(según la razón que interrumpe).
• Ejecución de la rutina de atención a la
interrupción.
• Volver
– Restaurar contexto &
– Restaurar modo ejecución &
– Retorno al programa interrumpido
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
83 Tema 5: Excepciones y E/S
Mecanismo Interrupción
1. Detección de la petición. Tabla VectInt:
IRQ 0x0018
2. Salvar estado del programa interrumpido. FIQ 0x001C
3. Cambio modo excepción.
4. Identificación de RSI a ejecutar.
5. Ejecución de la RSI.
6. Restaurar contexto y modo ejecución
7. Retorno al programa interrumpido
MEMORIA
INT

CPU IRQ VIC


FIQ
… Tabla VectInt:
VICVEcADDr
2,3 PUSH,…SPSR,.. VIQIRQStatus,

2,3 POP{r..}^, CPSR,…

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
84 Tema 5: Excepciones y E/S
Rutina servicio simple

r_servicio
sub r14, r14, #4 ; r14 - 4
PUSH {r0-r3, r14} ; contexto
...
<code>
...
POP {r0-r3, pc}^ ; retorno

;^ fuerza copiar spsr a cpsr (y


Arquitectura y Organización de Computadores 1. cambiar modo)
Grado en Ingeniería Informática
85 Tema 5: Excepciones y E/S
Controlador de Interrupciones
Sistema Interconexión

CPU M K E/S P

IRQ

• habilitar / deshabilitar
• múltiples periféricos
– múltiples líneas de int
– ORed software poll
– daisy chain
– controlador de interrupciones
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
86 Tema 5: Excepciones y E/S
Controlador de Interrupciones
Sistema Interconexión

CPU M K E/S P

IRQ
Sistema Interconexión

CPU M I K E/S P

IRQ

– recibe peticiones K
– decide interrupción
Arquitectura y Organización de Computadores 1.

87
– identifica
Grado en Ingeniería Informática
Tema 5: Excepciones y E/S
la rutina de servicio
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
88 Tema 5: Excepciones y E/S
Vectored Interrupt Controller (VIC)
• 32 líneas de int.
– FIQ
– 16 IRQ vectorizadas
VICVectAddr n
VICVectCntl n
– IRQ no vectorizadas
VICDefVectAddr

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
89 Tema 5: Excepciones y E/S
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
90 Tema 5: Excepciones y E/S
Secuencia que siguen las interrupciones
vectorizadas
1. Se produce la interrupción
2. El procesador ARM salta al vector de interrupciones IRQ o FIQ
3. Si se trata de una interrupción IRQ, se lee el registro VICVectAddry se
slata a la rutina de servicio. Se puede salrtar usando
LDR PC,instruccion . Leyendo el registro VICVectorAddr
se actualiza el registro de prioridad del controlador de interrupciones
4. Se apila el contexto, para que se puedan reactivar las interrupciones IRQ.
5. Se activan las interrupciones IRQ, así las de mayor prioridad se pueden servir.
6. Se ejecuta la rutina de servicio de interrupción (RSI)
7. Se desactiva la petición de interrupción del periférico
8. Se deshabilitan las interrupciones y se restaura el contexto.
9. Se escribe el registro VICVectAddr. Así se desactiva la correspondiente
interrupción en el hardware interno de prioridad de interrupción
10.Se retorna de la interrupción, se re-habilitan las interrupciones
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
91 Tema 5: Excepciones y E/S
Ejemplo de mapa de memoria

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
92 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
Conseguir @rutina servicio
• Con controlador de interrupciones vectorizado

0x00000018 LDR pc,[pc,#-0xff0]


; IRQ pc=mem32[0xfffff030]

(IRQ @ = 0x00000018 + 8 segmentado) pc desplazado - 0xFF0 la resta wrapsaround y la @ es 0xFFFFF030,


ó VICVectAddr)

– la lectura del VICVectAddr actualiza la prioridad


(nivel de la int. de la rutina de servicio)

• sin controlador o rutina servicio múltiple


– buscar

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
93 Tema 5: Excepciones y E/S
Stack: salvar contexto
• donde y cuanta
– stackoverflow
• depende de:
– S.O.
– target hardware
• init. antes de IRQ
• A vs B

mirar startup.s

sub lr, lr, #4 ; resta 4 a lr preparar @retorno int.


PUSH {lr}
mrs r14, sprs
PUSH {r14}
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
94 Tema 5: Excepciones y E/S
PSR Transfer Instructions
31 28 27 24 23 16 15 8 7 6 5 4 0

N Z C V Q J U n d e f i n e d I F T mode
f s x c
• MRS and MSR allow contents of CPSR/SPSR to be transferred to/from a
general purpose register.
• Syntax:
– MRS{<cond>} Rd,<psr> ; Rd = <psr>
– MSR{<cond>} <psr[_fields]>,Rm ; <psr[_fields]> = Rm
where
– <psr> = CPSR or SPSR
– [_fields] = any combination of ‘fsxc’
• Also an immediate form
– MSR{<cond>} <psr_fields>,#Immediate
• In User Mode, all bits can be read but only the condition flags (_f) can be
written.
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
95 Tema 5: Excepciones y E/S
The ARM Architecture ©

cont.
Ejecutar rutina de servicio
secuencia
PUSH registros a usar (incluso r0-r3)
– limpiar interrupción en el periférico
POP registros
• deshabilitar interrupciones
• recuperar estado
POP {r14}
msr spsr , r14
• EIO
– escribir en el vector de dirección para actualizar el nivel de la rutina de int servida
(prioridades)
LDR r14, =VICVectAddr
str r14, [r14]
• retorno (vuelve estado habilitar interrupciones)
POP {pc}^

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
96 Tema 5: Excepciones y E/S
Programación de interrupciones vectorizadas
A. Programa principal
1. Modificar el VI
2. Habilitar Interrupciones
3. Código del programa-bucle de espera
4. Deshabilitar interrupciones

B. Rutina de servicio
1. Actualiza valor del LR y lo salva
2. Salva SPSR
3. Salva contexto
4. Habilita interrupciones
5. Tratamiento y código específico de la rutina
6. Desactiva petición de interrupción del periférico (escribiendo en el VICVEctAddr)
7. Deshabilita interrupciones
8. Se restaura contexto

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
97 Tema 5: Excepciones y E/S
@ de retorno y Segmentado

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
98 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
Activación y desactivación de IRQ
• Habilitar interrupciones
LDR r0, = VICBaseAddr; VICBaseAddr is a predefined constant
; for example, VICBaseAddr EQU 0xFFFFF000
mov r1, #<interrupt to enable>
str r1, [r0, #IntEnableOffset] ; VICINTENABLE 0x10

• Deshabilitar
LDR r0, = VICBaseAddr
mov r1, #<interrupt to disable>
str r1, [r0, #IntEnableClearOffset] ; VICINTENCLEAR 0x14

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
99 Tema 5: Excepciones y E/S
Activar Interrupciones : Modificar CPSR
 Cómo habilitar…

 …y deshabilitar interrupciones

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
100 Tema 5: Excepciones y E/S
ARM System Developer’s Guide. Sloss et al.
IRQ_ON
ejemplo rutina servicio
equ 0x00 ; enable interrupts
IRQ32md equ 0x52 ; IRQ mode F=1 (usr_mode = 0x10)
IRQ_OFF equ 0x80
VICBaseAddr equ 0xfffff000 ; addr of VIC ctrl
VICVectorAddr equ VICBaseAddr+0x30 ; isr address of int
vector_service_routine
sub lr, lr, #4 ; r14-4 dirección de retorno int.
PUSH {lr}
mrs r14, sprs ; copy spsr
PUSH {r14} ; save context incluido sprs
msr cpsr_c, #IRQ_ON|IRQ32md ; cpsr_c=ift_irq
PUSH {r0-r3} ; save context por ejemplo
<interrupt service code> <clear the interrupt source>
POP {r0-r3} ; restore contexto
msr cpsr_c, #IRQ_OFF|IRQ32md ; cpsr_c=Ift_irq
POP {r14} ; restore contexto (spsr_irq)
msr spsr_cxsf, r14 ; restore spsr
ldr r14,=VICVectorAddr ; load VectorAddress
str r14, [r14] ; servicing complete
POP {pc}ˆ ; return
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
101 Tema 5: Excepciones y E/S
ejemplo
ARM
LPC2105

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
102 Tema 5: Excepciones y E/S
@UM10275 LPC2104/2105/2106 User manual
Diagrama de bloques del VIC
Petición de
interrupción,
máscara y
selección Tratamiento
FIQ o IRQ

Arquitectura y Organización de Computadores 1. Selección de prioridad


Grado en Ingeniería Informática
103 Tema 5: Excepciones y E/S
@UM10275 LPC2104/2105/2106 User manual
Distribución de la memoria LPC2105

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
104 Tema 5: Excepciones y E/S
@UM10275 LPC2104/2105/2106 User manual
Periféricos en el LPC2105

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
105 Tema 5: Excepciones y E/S
@UM10275 LPC2104/2105/2106 User manual
Vectored Interrupt Controller (VIC)
• 32 líneas de int.
– FIQ
– 16 IRQ vectorizadas
VICVectAddr n
VICVectCntl n
– IRQ no vectorizadas
VICDefVectAddr

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
106 Tema 5: Excepciones y E/S
@UM10275 LPC2104/2105/2106 User manual
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
107
107 Tema 5: Excepciones y E/S
@UM10275 LPC2104/2105/2106 User manual
Arquitectura y Organización de Computadores 1.
Grado en Ingeniería Informática
108
108 Tema 5: Excepciones y E/S
@UM10275 LPC2104/2105/2106 User manual
GPIO (LPC2105)

Practica 5

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
109 Tema 5: Excepciones y E/S
@UM10275 LPC2104/2105/2106
LPC2105

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
110 Tema 5: Excepciones y E/S
UART

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
111 Tema 5: Excepciones y E/S
Ejemplo
Para ARMv4 y para el microcontrolador LPC
2105 el programa cuenta 500 interrupciones del
timer0, se modifica el programa principal, se
habilitan las interrupciones IRQ pertinentes y se
programa la rutina de servicio a la interrupción.

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
112 Tema 5: Excepciones y E/S
;EJEMPLO DE CONTADOR DE 500 INTERRUPCIONES TIMER0 PARA EL MICROCONTROLADOR LPC2105
;María Villarroya Gaudó, mayo 2012

;Suponemos que las pilas están inicializadas y no hay sistema operativo, de ahí que
;no se recuperen las rutinas de servicio

AREA datos,DATA
; variables y constantes
contador DCD 500 ;inicializamos el valor máximo
fin DCD 0

VICBaseEnabl EQU 0xFFFFF000 ;base para activar IRQ


IntEnableOffset EQU 0x10 ;selecciona activar IRQ4
IRQ_Index EQU 4 ;Nº de IRQ del Timer 0

VICIntEnable EQU 0xFFFFF010


VICIntEnClr EQU 0xFFFFF014 ;desactivar IRQs (solo bits 1)

VICVectAddr0 EQU 0xFFFFF100


;Registro con la @ de la 1ª instr de la RSI_IRQ0 vectorizada
VICVectAddr EQU 0xFFFFF030 ;Registro @VI
T0_IR EQU 0xE0004000
Arquitectura y Organización de Computadores
I_Bit EQU1. 0x80 ;bit7 de la CPSR, si a 1 inhibe
Grado en Ingeniería Informática ;interrupciones IRQ
113 Tema 5: Excepciones y E/S
AREA codigo,CODE
EXPORT inicio ; forma de enlazar con el startup.s
inicio

; Actualizar vector de interrupciones para que apunte a nuestra RSI


ldr r0,=VICVectAddr0 ;carga en r0 la dirección de la 1ª instr de
;RSI_IRQ0
ldr r1,=RSI_crono ;carga en r1 la dirección de la RSI del programa
mov r2, #IRQ_Index ;pongo el índice de la IRQ en un registro
str r1,[r0,r2,LSL #2] ;modifica el VI de la IRQ

;Habilita interrupciones
ldr r0, =VICIntEnable ;carga el registro que activa interrupciones
ldr r1,[r0]
orr r1,r1,#1<<IRQ_Index ;Pone a 1 el bit IRQ Index del VIC
;carga un 1 que lo desplaza a la izda IRQ_Index veces
str r1,[r0] ;guarda el registro máscara de interrupciones modificado

;código a ejecutar
bucle ldr r0,=fin ;compara la variable fin con 1, si no es 1 sigue
ldr r1,[r0]
cmp r1,#1
bne bucle

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
114
114 Tema 5: Excepciones y E/S
;deshabilita interrupciones
ldr r0, =VICIntEnClr ;carga el registro para
;desactivar interrupciones (máscara)
ldr r1,[r0]
orr r1,r1,#1<<IRQ_Index ;Pone a 1 el bit IRQ Index del
; VIC, desactivando IRQ del timer1

;carga un 1 que lo desplaza a la izda IRQ_Index veces


str r1,[r0] ;guarda el registro modificado

terminar b terminar

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
115 Tema 5: Excepciones y E/S
RSI_crono

;guarda dirección de retorno, palabra de estado,


sub lr, lr,#4 ;actualiza el PC de retorno para que
;apunte a la @siguiente
push {lr}
mrs r14,spsr
push {r14} ;se guarda la spsr en la pila (usando lr)

;salva registros a usar


push {r0,r1}

;activa IRQ
mrs r1,cpsr ;para habilitar IRQ de la palabra de estado
;del modo activo
bic r1,r1,#I_Bit ;pone a 0 el bit de las IRQ
msr cpsr_c,r1 ;_c indica se copian el byte menos significativo

;deactiva del VIC la petición


ldr r0,=T0_IR
mov r1,#1
str r1,[r0]

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
116 Tema 5: Excepciones y E/S
;tratamiento interrupción
ldr r0,=contador ;carga la variable contador
ldr r1,[r0]
subs r1,r1,#1 ;decrementa la cuenta
str r1,[r0] ;almacena el valor en contador
moveq r1,#1 ;si llega a 0 pone 1 en terminar
streq r1,[r0,#4]

;desactiva IRQ
mrs r1,cpsr
orr r1,r1,#I_Bit
msr cpsr_cxsf,r1

;restaura registros
pop {r0,r1}

;desapila spsr y retorna al programa principal


pop {r14}
msr spsr_cxsf,r14 ;restaura el spsr dela pila
ldr r14,=VICVectAddr
str r14,[r14]
pop {pc}^

END

Arquitectura y Organización de Computadores 1.


Grado en Ingeniería Informática
117 Tema 5: Excepciones y E/S

También podría gustarte