0 calificaciones0% encontró este documento útil (0 votos)
10 vistas17 páginas
Este documento describe la arquitectura de un procesador ARM de un solo ciclo. Explica que el procesador consta de una unidad de control y una unidad de datos. La unidad de control decodifica las instrucciones y genera las señales de control apropiadas. También incluye lógica condicional para manejar la ejecución condicional de instrucciones. La unidad de datos ejecuta las operaciones especificadas por las instrucciones bajo el control de la unidad de control.
Este documento describe la arquitectura de un procesador ARM de un solo ciclo. Explica que el procesador consta de una unidad de control y una unidad de datos. La unidad de control decodifica las instrucciones y genera las señales de control apropiadas. También incluye lógica condicional para manejar la ejecución condicional de instrucciones. La unidad de datos ejecuta las operaciones especificadas por las instrucciones bajo el control de la unidad de control.
Este documento describe la arquitectura de un procesador ARM de un solo ciclo. Explica que el procesador consta de una unidad de control y una unidad de datos. La unidad de control decodifica las instrucciones y genera las señales de control apropiadas. También incluye lógica condicional para manejar la ejecución condicional de instrucciones. La unidad de datos ejecuta las operaciones especificadas por las instrucciones bajo el control de la unidad de control.
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