指令周期
编辑指令周期(也称为获取-解码-执行周期,或简称为获取-执行周期)是中央处理器 (CPU) 从启动到计算机关闭以处理指令所遵循的周期 . 它由三个主要阶段组成:取指阶段、解码阶段和执行阶段。
在更简单的 CPU 中,指令周期是按顺序执行的,每条指令在下一条指令开始之前被处理。 在大多数现代 CPU 中,指令周期是通过指令流水线并发执行的,而且通常是并行执行的:下一条指令在前一条指令完成之前开始处理,这是可能的,因为周期被分解成单独的步骤。
组件的作用
编辑程序计数器(PC)是一个特殊的寄存器,保存着下一条要执行的指令的内存地址。 在获取阶段,PC 中存储的地址被复制到内存地址寄存器 (MAR) 中,然后 PC 递增以指向下一条要执行的指令的内存地址。 然后,CPU 在 MAR 描述的内存地址处获取指令,并将其复制到内存数据寄存器 (MDR) 中。 MDR 还充当双向寄存器,用于保存从内存中获取的数据或等待存储在内存中的数据(因此也称为内存缓冲寄存器 (MBR))。 最终,MDR 中的指令被复制到当前指令寄存器 (CIR) 中,该寄存器充当刚刚从内存中获取的指令的临时存放地。
在解码阶段,控制单元(CU)将解码 CIR 中的指令。 然后,CU 将信号发送到 CPU 内的其他组件,例如算术逻辑单元 (ALU) 和浮点单元 (FPU)。 ALU 执行算术运算,例如加法和减法,还可以通过重复加法进行乘法运算,通过重复减法进行除法运算。 它还执行逻辑运算,例如 AND、OR、NOT 和二进制移位。 FPU 保留用于执行浮点运算。
阶段总结
编辑每台计算机的CPU根据不同的指令集可以有不同的周期,但都会类似下面的周期:
- 取指阶段:从程序计数器当前存储的内存地址中取下一条指令,存入指令寄存器。 在获取操作结束时,PC 指向将在下一个周期读取的下一条指令。
- 解码阶段:在此阶段,指令寄存器中的编码指令由解码器解释。
- 读取有效地址:在内存指令(直接或间接)的情况下,执行阶段将在下一个时钟脉冲期间。 如果指令有间接地址,则从主存中读取有效地址,并从主存中取出任何需要处理的数据,然后放入数据寄存器(时钟脉冲:T3)。 如果指令是直接指令,则在此时钟脉冲期间不执行任何操作。 如果这是 I/O 指令或寄存器指令,则操作在时钟脉冲期间执行。
- 执行阶段:CPU的控制单元将解码后的信息作为控制信号序列传递给CPU的相关功能单元,以执行指令所需的动作,例如从寄存器中读取值,将它们传递给 ALU 对它们执行数学或逻辑函数,并将结果写回寄存器。 如果涉及 ALU,它会将条件信号发送回 CU。 运算产生的结果存储在主存储器中或发送到输出设备。 根据 ALU 的反馈,PC 可能会更新到一个不同的地址,下一条指令将从该地址获取。
- 重复循环
此外,在大多数处理器上都可能发生中断。 这将导致 CPU 跳转到中断服务程序,执行该程序然后返回。 在某些情况下,一条指令可以在中途被中断,该指令不会有任何效果,但会在从中断返回后重新执行。
启动
编辑通常,此地址指向只读存储器 (ROM) 中的一组指令,这些指令开始加载(或引导)操作系统的过程。
获取阶段
编辑每条指令的获取步骤都是相同的:
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/196064/