Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
• Excepciones:
cambios especiales en el PC
que rompen el flujo normal de un proceso
y cambian el estado(modo) del procesador
Se pulsa tecla
Instrucción
Incorrecta
2.
Decodificación
de la
Instrucción
█ █
█ █
█
█
█
█
█
█
█
Memoria
CPU Programa
IRQ
INT principal
PC
Rutina de
Servicio
N Z C V Q J U n d e f i n e d I F T mode
f s x c
PC EXC.
….
• <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
CPU M E/S
Processor
Input
Control
Memory
Datapath Output
• 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
Transaction Protocol
Bunch of Wires
Electrical Specification
Velocidad CPU
Prestaciones
5 Mhz
16 bits Velocidad Bus
133 Mhz
64 bits
8 Mhz 8 bits
1981 2001
drivers
periféricos
Protocolo
USB / WiFi
Interfase Físico
Señales de rastreo
fila <> 0 NO
SI
Señales de muestreo
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
CONTROLADOR PERIFERICO
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
Teclado
Datos
clk
Contador mod 4 osc
Estado
1
Gs
Control
Teclado
Rom
par/impar
Datos
8
Gen. Par
Estado 8 Gs
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.
• 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
Lectura
Procesador Comando estado
Controlador
“Como
Acción ha ido”
leer estado
mientras no preparado hacer
leer estado
fmientras
realizar la operación de e/s
Control
Teclado
Rom
par/impar
7
Datos
8
Gen. Par
8 Gs
Estado
PC EXC.
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.
r_servicio
sub r14, r14, #4 ; r14 - 4
PUSH {r0-r3, r14} ; contexto
...
<code>
...
POP {r0-r3, pc}^ ; retorno
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
mirar startup.s
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}^
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
• Deshabilitar
LDR r0, = VICBaseAddr
mov r1, #<interrupt to disable>
str r1, [r0, #IntEnableClearOffset] ; VICINTENCLEAR 0x14
…y deshabilitar interrupciones
Practica 5
;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
;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
terminar b terminar
;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
;desactiva IRQ
mrs r1,cpsr
orr r1,r1,#I_Bit
msr cpsr_cxsf,r1
;restaura registros
pop {r0,r1}
END