中央处理器CPU——指令周期

指令周期:CPU从主存中取出并执行一条指令所需全部时间
机器周期:也叫CPU周期,多个机器周期组成一个指令周期
时钟周期:也叫节拍/T周期/CPU时钟周期;多个时钟周期组成一个机器周期,是CPU操作的最基本单位
每个指令周期内的机器周期数和时钟周期数可以不相等
空指令周期NOP:只有取指周期
加法指令ADD:取指周期+执行周期
乘法指令MUL:取指周期+执行周期(比加法长)
具有间接寻址的指令:取指周期+间址周期+执行周期
带有中断周期的指令:取指周期+间址周期+执行周期+中断周期
指令周期流程:
四个工作周期都有CPU访存操作,只是访存的目的不同。取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。
数据流向:
取指周期:
1.PC将地址送到MAR
2.CU通过控制总线发送“读信号”到主存
3.MAR通过地址总线将地址送到主存
4.主存按地址找到指令并通过数据总线送到MDR
5.MDR将指令送到IR
6.CU向PC发送控制信号生成下一条指令的地址(PC+1)
间址周期:
1.IR将指令中的形式地址送到MAR
2.CU通过控制总线发送“读信号”到主存
3.MAR通过地址总线将形式地址送到主存
4.主存按形式地址找到有效地址并通过数据总线送到MDR
5.此时有效地址在MDR;有两种思路1.将有效地址送到IR中,开始寻址;2.直接从MDR中取有效地址
执行周期:
执行周期的任务是根据|R中的指令字的操作码和操作数通过U操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向。
中断周期:
中断:暂停当前任务去完成其他任务,为恢复当前任务,要用堆栈SP保存断点地址(进栈操作:先修改指针,选定一个空区域,再存入数据)
1.CU将断点的地址放入MAR中
2.CU通过控制总线发送“写操作”到主存
3.MAR通过地址总线定位到主存中的地址
4.将断点(PC的内容)送到MDR
5.MDR通过数据总线将断点送到主存中
6.CU将向量地址(中断服务程序的入口地址)放到PC中
7.切入到新的程序
指令执行方案:
一个指令周期通常要包括几个时间段(执行步骤),每个步骤完成指令的一部分功能,几个依次执行的步骤完成这条指令的全部功能。
方案1.单指令周期
对所有指令都选用相同的执行时间来完成。指令之间串行执行;指令周期取决于执行时间最长的指令的执行时间。对于那些本来可以在史短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。
方案2.多指令周期
对不同类型的指令选用不同的执行步骤来完成。指令之间串行执行;可选用不同个数的时钟周期来完成不同指令的执行过程。需要更复杂的硬件设计。
方案3.流水线方案
在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行。










浙公网安备 33010602011771号