Documentos de Académico
Documentos de Profesional
Documentos de Cultura
•El formato determinará la longitud en bits de las instrucciones así como el significado y
longitud de cada uno de sus campos.
5
T2
8
T2
9
T2
(memoria ‐ operandos )
(0 ‐ Arquitectura registro‐registro (carga‐almacenamiento).
3) ‐Utilizan 3 operandos en total, y 0 en memoria.
‐ Formato de longitud fija y codificación simple.
‐ Las instrucciones se ejecutan en un número similar de
ciclos.
‐ SPARC, MIPS, PowerPC
(1 ‐ 2) Arquitectura registro‐memoria.
‐ Utilizan dos operandos en total, uno ubicado en la memoria.
‐ Intel 80X86, Motorola 68000
(3 ‐ 3) Arquitectura memoria‐memoria.
‐ 3 operandos en total, pudiendo ser ubicados los 3 en memoria.
‐ VAX
EC - IS
10
T2
Registro‐ Se puede acceder a los datos sin una carga Se pierde un operando fuente en la
memoria (1/2) (load) previa. El formato de instrucción instrucción. Como la dirección de memoria
suele ser fácil de codificar es grande podemos estar limitando el
campo de registro y con ello el número de
registros. Los ciclos de reloj por instrucción
dependen de la ubicación de los operandos
Memoria‐memoria Mas compacta . No gasta registros para Gran variación en tamaños de instrucción.
(2/2) ó (3/3) datos temporales. Además, gran variación en trabajo por
instrucción. Los accesos a memoria crean
cuello de botella en la misma (esta opción
no se usa hoy en día)
EC - IS
1
1
Registros del Procesador.
ARM
• Existen trece registros de propósito general todos de 32 bits, otra
gran diferencia con micro controladores menores donde solo existen
un registro de trabajo y la interacción de nuestras aplicaciones con
este registro es fácilmente predecible, con trece registros la historia
se complica y ya
no es tan claro como el procesador usará estos registros cuando
programamos en lenguajes como C
donde la independencia con el hardware es importante.
• ARM tiene 37 registros, 31 de ellos son registros de 32 bits de
propósitos generales, los 6 restantes son registros de estado. Estos
registros también son de 32 bits pero solo necesitan implementarse 12
bits.
• Los registros se ubican en bancos parcialmente superpuestos, con un
banco diferente para cada modo del procesador.
• El conjunto de registros a los cuales el usuario tiene acceso está
determinado por el modo de funcionamiento del procesador.
• En cualquier momento se puede acceder por software a 16 registros,
que van de r0 a r15, o sea que 16 registros son visibles. Los otros
registros se usan para acelerar el proceso de excepción. Todos los
registros especificados en una instrucción ARM se pueden
“direccional” con cualquiera de los 16 registros visibles.
Banco principal de registros
• Todos los códigos del modo usuario usan el banco
principal de 16 registros Son los registros del
modo usuario. Este modo es diferente de los otros
modos porque no tiene privilegios, esto significa:
– Es el único modo que no puede conmutar en otro
modo del procesador sin generar una excepción
– Tiene menos acceso a la memoria del sistema y
funciones del coprocesador que los modos
privilegiados.
Registros en ARM
• Dos registros para el manejo del Stack, Main Stack Pointer (MSP) que es cargado con el
valor 0x00000000 luego de un Reset, y el Procesador Pointer (PSP.
• El Link Register (LR), registro R14 : además de usarse como registro de propósitos
generales se usa para guardar la dirección de la siguiente instrucción cuando se lleva a
cabo una instrucción de salto y link (instrucción que se ejecuta cuando se llama a una
subrutina). es decir almacena la información de declaraciónes de subrutinas, llamadas a
funciones y excepciones, valores de retorno. Luego de un reset el valor LR es
0xFFFFFFFF.
• Otro registro visible para el usuario es el registro de estado del programa (CPSR, Current
Program Status Register) En general, a los registros que guardan los estados del
programa, se los llama, registros de estado del programa el Program Status Register
(PSR) se usa para para monitorear el estado del programa en ejecución, por ejemplo si
un número es negativo o cero entre otras cosas. En total hay 6 de estos registros. Luego
de un RESET el PC se carga con el valor 0x00004 y el M4 puede dirección hasta un límite
teórico de 4GB.
Registros especiales en ARM
• Cuando se escriben programas a nivel de usuario,
solamente se deben considerar los 15 registros de 32
bits, de propósitos generales, el contador de programa
y el registro de estado actual del programa, es decir:
r0 … r13
r14 (LR, Link Register)
r15 (PC, Program Counter)
CPSR (Current Program Status Register)
Registro de estado actual del Programa,
CPSR
• Current Program Status Register. Este registro se usa en
programas a nivel de usuario para almacenar los bits
de condición del código.
• Estos bits se usan, por ejemplo, para registrar el
resultado de una operación de comparación y
controlar si tendrá o no lugar un salto condicional.
• Normalmente, a los programadores a nivel de usuario
no les concierne cómo está configurado este registro,
de todos modos se lo exhibe en la siguiente figura.
Indicadores de condiciones
del código
• Condition code flags Son los 4 bits de la parte alta del registro. El procesador puede
modificar estos indicadores del CPSR (Current Program Status Register) como
resultado de una operación aritmética o lógica y todas las instrucciones
pueden verificarlos para determinar si se debe o no ejecutar la instrucción.