Está en la página 1de 17

Universidad Católica de Córdoba

Ingeniería Electrónica

Esp. Ing. José Ducloux


Procesador ARM de un ciclo o
ciclo único
Procesador completo: datapath+control
Instrucciones que soporta: LDR, STR, ADD,
SUB, AND, ORR, B.
Unidad de control
La unidad de control obtiene las señales
de control en base a los campos de la
instrucción
cond: Instr31:28
op: Instr27:26
funct: Instr25:20
También de los flags y si el registro
destino es el PC.
Instrucciones de procesamiento
de datos
Formato de instrucción de procesamiento de
datos
La operación que la instrucción realiza está
codificada en los campos
○ op (llamado opcode o código de operación). op=002
para instrucciones de procesamiento de datos.
○ funct o código de función
○ cond codifica la ejecución condicional en base a los
flags. Cuando cond=11102 se utiliza instrucciones no
condicionales.
Los operandos son codificados en tres campos: Rn,
Rd y Src2. Rn es el primer registro fuente y Src2 es
la segunda fuente; Rd es el registro destino.
Unidad de control
Dos partes principales:
Decodificador: genera señales de control en base a la instrucción.
Lógica condicional: gestiona los flags de estado y controla la ejecución
condicional.
Decodificador
Compuesto por:
Decodificador principal:
produce la mayoría de
las señales de control.
Decodificador de ALU:
usa el campo Funct para
determinar el tipo de
instrucción de
procesamiento.
Lógica de PC:
determinar si el PC
necesita actualizarse
debido a un salto o una
escritura de R15.
Decodificador principal
Comportamiento
Determina el tipo de instrucción: procesamiento de datos
por registro, procesamiento de datos por inmediato, STR,
LDR, y B.
Produce las señales de control apropiadas para el
datapath.
○ Envía MemtoReg, ALUSrc, ImmSrc1:0, y RegSrc1:0
directamente al datapath. Estas señales pueden ser
bloqueadas por el bloque de lógica condicional si la
condición no se satisface.
Genera las señales de Branch y ALUOp, las cuales son
usadas dentro del controlador para indicar que la
instrucción es B o de procesamiento de datos,
respectivamente.
Decodificador de ALU
Comportamiento
Elige ALUControl en base al tipo de instrucción (ADD,
SUB, AND, ORR).
Chequea el FlagW para actualizar los flags de estado
cuando el bit S está habilitado.
FlagsW1:0 es borrado por el bloque de lógica condicional
cuando la condición no se satisface (CondEx=0).
Lógica del PC
Comportamiento
Chequea si la instrucción es una escritura
de R15 o un salto tal que el PC deba ser
actualizado.
El bloque de lógica condicional puede
bloquear la señal si la condición no se
cumple.
Lógica condicional
Determina si la
instrucción debe ser
ejecutada (CondEx) en
base al campo cond y el
valor actual de los flags
N, Z, C y V (Flags3:0).
Actualiza algunos o
todos los flags de
ALUFlags cuando FlagW
se habilita por el
decodificador de la ALU y
la condición de
instrucción se satisface
(CondEx=1).
Operación del procesador
Ejecución de la instrucción ORR con el
modo de direccionamiento por registro.
El PC apunta a la ubicación de memoria que
contiene la instrucción, y la memoria de
instrucción retorna esta instrucción.
Operación del procesador
Ejecución de la instrucción ORR con el
modo de direccionamiento por registro.
El archivo de registro lee los dos operandos
fuente especificados por Instr19:16 y Instr3:0,
así RegSrc debe ser 00.
Operación del procesador
Ejecución de la instrucción ORR con el
modo de direccionamiento por registro.
SrcB debería provenir del segundo puerto
del archivo de registro, así ALUSrc debe ser
0.
Operación del procesador
Ejecución de la instrucción ORR con el
modo de direccionamiento por registro.
La ALU realiza la operación OR a nivel de
bit, así ALUControl debe ser 11. El resultado
proviene de la ALU, así MemtoReg es 0.
Operación del procesador
Ejecución de la instrucción ORR con el
modo de direccionamiento por registro.
El resultado se escribe al archivo de
registro, así RegWrite es 1. La instrucción
no escribe en memoria, así MemWrite es 0.
Operación del procesador
Ejecución de la instrucción ORR con el
modo de direccionamiento por registro.
Se realiza la actualización del PC con
PCPlus4. PCSrc es 0 para seleccionar el PC
incrementado.
Universidad Católica de Córdoba
Ingeniería Electrónica

Esp. Ing. José Ducloux

También podría gustarte