5.2 指令执行过程
5.2.1 指令周期
指令周期:CPU从主存中取出并执行一条指令的全部时间。

一个指令周期由若干机器周期表示,机器周期也叫CUP周期。
一个机器周期包含若干时钟周期(节拍),时钟周期是CPU操作的最基本单位。
每个指令周期内机器周期可以不相等
每个机器周期内节拍数也可以不相等
完整的指令周期如下图所示:

运行时,通过触发器来判断当前处于指令周期内的哪一个阶段。
5.2.2 指令周期的数据流
1、寻址周期
根据PC的内容从主存中取出指令并存入IR

将当前指令地址送到存储地址寄存器
(PC)→MAR
CU发出控制信号,由控制总线传到主存,标明是读信号
1→R
将MAR指向的主存中的内容经数据总线传至MDR
M(MAR)→MDR
将MDR中的数据送入指令寄存器IR
(MDR)→IR
CU发出控制信号,形成下一条指令的地址
(PC)+1→PC
2、间址周期
取操作数的有效地址

将指令的地址码送入MAR
Ad(IR)→MAR
CU发出控制信号,表示读操作
1→R
将MAR所指主存中的内容传入MDR
M(MAR)→MDR
将得到的有效地址送入IR
(MDR)→Ad(IR)
3、执行周期
取操作数,根据IR中的操作码进行相关运算
执行周期的数据流向视不同指令而定,没有统一的数据流向。
4、中断周期

中断执行前需要保存当前程序的断点。
断点一般采用堆栈保存,SP为栈顶指针,进栈的操作顺序为先修改指针,再存入数据。
CU控制SP减一,并将修改后的栈顶地址存入MAR
(SP)-1→SP
(SP)→MAR
CU发出控制信号,表明当前为写操作
1→W
将断点内容(PC内容)存入MDR
(PC)→MDR
CU将中断程序的入口地址存入PC
向量地址→PC
5.2.3 指令执行方案
1、单指令周期
对所有指令都选用相同的执行时间来完成。 指令之间串行执行,指令周期取决于执行时间最长的指令的执行时间。
会降低整个系统的运行速度。
2、多指令周期
对不同类型的指令选用不同的执行步骤来完成。 指令之间串行执行,可选用不同个数的时钟周期来完成不同指令的执行过程。
需要更复杂的硬件设计。
3、流水线方案
在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。 指令之间并行执行。
1、指令和数据都存放在存储器中CPU如何区分
答:CPU根据指令周期的不同阶段判断取出的二进制的类型
2、中断周期前后是CPU的什么工作周期
答:
Last updated