Consideremos la siguiente descomposición de la ejecución de instrucciones en cinco etapas. Estos se dan de la siguiente manera a continuación.
- Obtener instrucción (IF):
lee la siguiente instrucción esperada en el búfer.IR → Mem [PC] ; PC → PC+ 4 ;
- Decodificación de instrucciones (ID):
en esto, hay los siguientes pasos:- Decodificación de instrucciones, en la que determina los códigos de operación y los especificadores de operandos.
- Calcular operando, en el que calcula la dirección efectiva de cada operando de origen.
- Obtener operandos, en el que obtiene cada operando de la memoria.
A → Regs [IR6, 10] ; B → Regs [IR11, ..., 15] ; Immediate → (IR16)16## (IR16, ..., 31)
- Ejecutar Instrucción (EX):
Realiza la operación indicada.Memory ref: ALUoutput → A + Immediate ; Reg-Reg ALU: ALU → A func B ; Reg-Imm ALU: ALUoutput → A op Immediate ; Branch: ALUoutput → PC+ Immediate; Cond * (A op 0)
- Ciclo de acceso a memoria/completado de rama (MEM):
Accede a la memoria.Memory ref: LMD → Mem [ALUoutput] or Mem (ALUoutput) → B Branch: if (cond) PC → ALUoutput
- Escribir Operando (WO):
Almacena el resultado.Reg-Reg ALU: Regs [R16, ...., 20] → ALUoutput ; Reg-Imm ALU: Regs [R11, ..., 15] → ALUoutput ; Reg-Reg ALU: Regs [R11, ...., 15] → LMD ;
Publicación traducida automáticamente
Artículo escrito por rajkumarupadhyay515 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA