Está en la página 1de 22

Registros en la estructura de

microprocesador y micro control


Universidad Dr. José Matías Delgado
Sistemas Electrónicos Digitales-SED0
Objetivos
• Describir la operación de los registros
• Describir los tipos de registros por
arquitectura
• Describir los registros en la tecnología ARM
T2

Formato de las instrucciones

•Las informaciones de las instrucciones se codifican siguiendo un formato preestablecido.

•El formato determinará la longitud en bits de las instrucciones así como el significado y
longitud de cada uno de sus campos.

• En general una instrucción se compone de los siguientes campos:

 Código de operación (CO)


 Operandos fuente (OP1, OP2,...)
 Operando destino o resultado (OPd)
 Dirección de la instrucción siguiente (IS)

CO OP1 OP2 .......... OPd IS

• Clasificación de los conjuntos de instrucciones:

 Clasificación según el número de operandos explícitos por instrucción

 Clasificación según la forma de almacenar operandos en la CPU


EC - IS

5
T2

Diseño del repertorio de instrucciones (3)


Clasificación según la forma de almacenar operandos en la
CPU
• Arquitectura tipo pila (HP 3000/70)
• Arquitectura de acumulador (Motorola 6809)
• Arquitectura de registros de propósito general (IBM 360)
Arquitectura tipo pila Arquitectura Acumulador Arquitectura Registros de propósito
pila ← <cima pila> + <cima pila ‐ 1> Acumulador ←<Acumulador> + B general
C←A+B
EC - IS

8
T2

Diseño del repertorio de instrucciones


Código para la operación C=A+B en cada una de las
arquitecturas
EC - IS

9
T2

Diseño del repertorio de instrucciones (5)


Arquitecturas de registros de propósito general

Clasificación según el número máximo de operandos (2 ó 3) que pueden


tener las instrucciones de la ALU y cuantos de ellos se pueden ubicar en memoria:

(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

Diseño del repertorio de instrucciones (6)


Ventajas y desventajas de las arquitecturas de registros de propósito
general
Tipo Ventajas Desventajas
Registro‐ Instrucciones simples, de longitud fija. Las Hay que traer operandos de memoria a
registro (0/3) instrucciones tardan un número de ciclos registros  Programas más largos
similar en ejecutarse

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.

• El registro r15 es el contador de programa (PC, Program Counter).

• 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.

• Tienen el siguiente significado:


ƒ N: Negative; negativo, la última operación de la ALU que cambió
los indicadores produjo un resultado negativo (el bit más
significativo del resultado de 32 bits fue un uno).
ƒ Z: Zero, cero, la última operación de la ALU que cambió los
indicadores produjo un resultado cero (cada bit de los 32 bits del
resultado fue cero).
ƒ C: Carry. Acarreo, la última operación de la ALU que cambió los
indicadores generó un acarreo de salida, tanto como resultado de
una operación aritmética en la ALU como por un desplazamiento.
ƒ V: Overflow, desborde, la última operación de la ALU que cambió
los indicadores generó un desborde en el bit de signo.
Bits remanentes
• Son los bits de la parte baja del registro. Están protegidos
contra cambios
a nivel del programa del usuario. Tienen el siguiente
significado:
• ƒ “I”, Normal Interrupt Disable, inhabilitación de
interrupciones normales, cuando I=1
• ƒ “F”, Fast Interrupt Disable, inhabilitación de
interrupciones de mayor prioridad, cuando F=1
• ƒ “T”, Instruction Set, set comprimido de instrucciones de
16 bits
FPU
• Este bloque opcional agrega un conjunto extra de treinta y dos registros
para números en coma flotante de simple precisión (32-bits), de S0 a S31.
• A su vez, cada par de estos registros puede verse como un registro de 64-
bits, es decir, una double-word.
• Un registro adicional, el FPSCR (Floating-Point Status and Control Register)
contiene los bits de estado (N, Z, C, V) y las excepciones ocurridas (por
ejemplo una división por cero).
• El set de instrucciones reserva una serie de opcodes para ser utilizados
por coprocesadores.
• En la arquitectura, existen además espacios de registros asignados acorde
al identificador del coprocesador.
• En ARMv7-M se encuentran permitidos sólo dos
coprocesadores, CP10 y CP11, mediante los cuales se
accede a la FPU. De este modo, accedemos a los
registros mediante instrucciones adicionales.
• La FPU provee entonces más de treinta instrucciones
adicionales para soportar números en coma flotante,
entre las cuales encontramos suma y multiplicación en
un ciclo de clock, división en catorce ciclos, y
multiplicación y acumulación en tres ciclos de clock.
Curiosidad
El primer correo electronico fue enviado por Raymond Samuel Tomlinson. Este
programador, nacido en Ámsterdam (Estados Unidos), implementó un programa en el
sistema ARPANET (el precursor de internet), que permitió enviar correos electrónicos
entre dos usuarios ubicados en diferentes servidores. Para separar el nombre de usuario
del nombre de la máquina, usó el símbolo @. Tomlinson no recuerda qué contenía el
primer correo porque tan solo se trató de una prueba. Sin embargo, en una entrevista dijo
que había sido algo como 'QWERTYUIOP'

También podría gustarte