5.2 指令执行过程
5.2.1 指令周期
指令周期:CPU从主存中取出并执行一条指令的全部时间。
一个指令周期由若干机器周期表示,机器周期也叫CUP周期。
一个机器周期包含若干时钟周期(节拍),时钟周期是CPU操作的最基本单位。
每个指令周期内机器周期可以不相等
每个机器周期内节拍数也可以不相等
完整的指令周期如下图所示:
运行时,通过触发器来判断当前处于指令周期内的哪一个阶段。
5.2.2 指令周期的数据流
1、寻址周期
根据PC的内容从主存中取出指令并存入IR
将当前指令地址送到存储地址寄存器
CU发出控制信号,由控制总线传到主存,标明是读信号
将MAR指向的主存中的内容经数据总线传至MDR
将MDR中的数据送入指令寄存器IR
CU发出控制信号,形成下一条指令的地址
2、间址周期
取操作数的有效地址
将指令的地址码送入MAR
CU发出控制信号,表示读操作
将MAR所指主存中的内容传入MDR
将得到的有效地址送入IR
3、执行周期
取操作数,根据IR中的操作码进行相关运算
执行周期的数据流向视不同指令而定,没有统一的数据流向。
4、中断周期
中断执行前需要保存当前程序的断点。
断点一般采用堆栈保存,SP为栈顶指针,进栈的操作顺序为先修改指针,再存入数据。
CU控制SP减一,并将修改后的栈顶地址存入MAR
CU发出控制信号,表明当前为写操作
将断点内容(PC内容)存入MDR
CU将中断程序的入口地址存入PC
5.2.3 指令执行方案
1、单指令周期
对所有指令都选用相同的执行时间来完成。 指令之间串行执行,指令周期取决于执行时间最长的指令的执行时间。
会降低整个系统的运行速度。
2、多指令周期
对不同类型的指令选用不同的执行步骤来完成。 指令之间串行执行,可选用不同个数的时钟周期来完成不同指令的执行过程。
需要更复杂的硬件设计。
3、流水线方案
在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。 指令之间并行执行。
最后更新于