精简版 · 小杯2026-08 冻结,已停止更新(发布前修订了 4 处已知错误)。后续勘误与新增内容只在正式版。看正式版(中杯)→
Skip to content

指令执行过程 ​

大纲定位 ​

五(二)指令执行过程

要求:能把一条指令的执行拆成取指、间址、执行、中断四个子周期,并写出每个子周期的微操作序列与数据流向。

考情分析 ​

指令执行过程在选择题和综合题里都出现过,问法如"某微操作属于哪个周期""写出某指令的微操作序列",理解每个阶段的数据流是解题关键。

指令周期的四个阶段 ​

一条指令的完整执行经过以下阶段(并非每条指令都有全部四个阶段):

取指周期→间址周期(可选)→执行周期→中断周期(可选)

每个阶段称为一个机器周期(也叫CPU周期),每个机器周期由若干个时钟周期(节拍)组成。

取指周期(Fetch Cycle) ​

任务:从内存中读取指令,送入 IR。

微操作序列:

步骤操作说明
1PC→MAR将 PC 内容(指令地址)送入 MAR
21→R(读命令)启动存储器读操作
3MDR←M[MAR]从内存读指令到 MDR
4MDR→IR将指令送入指令寄存器
5OP(IR)→CU操作码送控制单元译码
6(PC)+1→PCPC 自增,指向下一条指令

间址周期(Indirect Addressing Cycle) ​

任务:当指令采用间接寻址时,从内存中取出有效地址。

触发条件:指令中的寻址特征位 I=1(表示间接寻址)。

微操作序列:

步骤操作说明
1Ad(IR)→MAR将指令中的形式地址送 MAR
21→R读内存
3MDR←M[MAR]读出的内容就是有效地址
4MDR→MAR有效地址送 MAR(准备执行周期访存)

多重间接寻址时重复上述过程,直至取到最终有效地址。

执行周期(Execute Cycle) ​

任务:执行指令规定的操作。不同指令的执行周期微操作完全不同。

以几类典型指令为例:

加法指令 ADD X(直接寻址) ​

ACC←ACC+M[X]
步骤操作
1Ad(IR)→MAR
2M[MAR]→MDR
3ACC+MDR→ACC

存数指令 STA X(将 ACC 内容写入内存 X) ​

M[X]←ACC
步骤操作
1Ad(IR)→MAR
2ACC→MDR
31→W(写命令),MDR→M[MAR]

转移指令 JMP X(无条件转移) ​

PC←X
步骤操作
1Ad(IR)→PC

转移指令的执行周期最简单,只需修改 PC 即可。

条件转移指令 BZ X(结果为零时转移) ​

步骤操作
1若 ZF=1,则 Ad(IR)→PC;否则不操作

中断周期(Interrupt Cycle) ​

任务:在每条指令执行结束后,检查是否有中断请求。若有,则保护断点并转入中断服务程序。

微操作序列:

步骤操作说明
10→EINT关中断(防止保存断点过程被打断)
2SP−1→SP,SP→MAR堆栈指针减1,准备压栈
31→W写内存
4PC→MDR,MDR→M[MAR]将 PC(断点地址)压入栈
5向量地址 →PC转入中断服务程序

指令周期流程图 ​

图 8.5 指令周期示意图
图 8.5 指令周期示意图
(唐朔飞《计算机组成原理》第 3 版,见文末教材出处)

注意四个子周期里只有取指周期是每条指令都有:间址周期只在采用间接寻址时出现,中断周期只在本条指令结束时有中断请求才进入。

机器周期与时钟周期 ​

  • 时钟周期(节拍):CPU 最小时间单位,T=1/f
  • 机器周期:完成一个基本操作(如一次访存)所需的时间,通常包含若干时钟周期
  • 指令周期:执行一条完整指令所需时间,通常包含 2~5 个机器周期
指令周期≥机器周期≥时钟周期

考点清单 ​

  • 四个周期的顺序:取指 → 间址(可选)→ 执行 → 中断(可选)
  • 取指周期结束时 PC 已完成 +1
  • 间址周期只在间接寻址时才有
  • 中断周期的核心动作:关中断 + 保存断点 + 跳转
  • 执行周期的微操作因指令不同而不同,转移指令只需修改 PC
  • MAR 和 MDR 是 CPU 与主存之间的接口,所有访存操作都经过它们

真题练习 ​

教材出处 ​

  • 指令周期的四个子周期划分(图 8.5):唐朔飞《计算机组成原理》第 3 版 §8.2 指令周期,印刷页 p342