CPU每取出并执行一条指令所需的全部时间叫指令周期,也即CPU完成一条指令的时间叫指令周期,如下图所示。图中的取指阶段完成取指令和分析指令的操作,又叫取指周期;执行阶段完成执行指令的操作,又叫执行周期。在大多数情况下, CPU就是按取指-执行-再取指-再执行……的顺序自动工作的。
由于各种指令操作功能不同,因此各种指令的指令周期是不相同的。例如无条件转移指令JMP X, 在执行阶段不需访问主存,而且操作简单,完全可以在取指阶段的后期将转移地址X送至PC, 以达到转移的目的。这样, JMP X指令的指令周期就是取指周期。又如一地址格式的加法指令ADD X,在执行阶段首先要从X所指示的存储单元中取出操作数,然后和ACC的内容相加,结果存于ACC,故这种指令的指令周期在取指和执行阶段各访问一次存储器,其指令周期就包括两个存取周期。再如乘法指令,其执行阶段所要完成的操作比加法指令多得多,故它的执行周期超过了加法指令,如下图所示。
此外,当遇到间接寻址的指令时,由于指令字中只给出操作数有效地址的地址,因此,为了取出操作数,需先访问一次存储器,取出有效地址,然后再访问存储器,取出操作数。这样,间接寻址的指令周期就包括取指周期、间址周期和执行周期三个阶段,其中间址周期用于取操作数的有效地址,因此间址周期介于取指周期和执行周期之间,如下图所示。
由第五章可知,当CPU采用中断方式实现主机与I/O交换信息时,CPU在每条指令执行阶段结束前, 都要发中断查询信号,以检测是否有某个I/O提出中断请求。如果有请求,CPU则要进入中断响应阶段,又称中断周期。在这阶段, CPU必须将程序断点保存到存储器中。这样,一个完整的指令周期应包括取指、间址、执行和中断4个子周期,如下图所示。由于间址周期和中断周期不一定包含在每个指令周期内,故图中用菱形框判断。
总之,上述4个周期都有CPU访存操作, 只是访存的目的不同。取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数(当指令为访存指令时),中断周期是为了保存程序断点。这4个周期又可叫CPU的工作周期,为了区别它们,在CPU内可设置4个标志触发器,如下图所示。
图中的FE、IND,EX和INT分别对应取指、间址、执行和中断4个周期,并以“1”状态表示有效;它们分别由1→FE、1→IND、1→EX和1→INT4个信号控制。
http://media4.open.com.cn/L603/fushi/0903/jisuanjzcyl/web/lesson/char8/j2.htm
最新评论