指令周期的基本概念

  计算机之所以能自动地工作是因为CPU能从存放程序的内存中取出一条指令并执行这条指令;紧接着又是取下一条指令,执行下一条指令…,如此周而复始,构成一个封闭的循环。除非遇到停机指令,否则这个循环将一直继续下去。
通常将一条指令从取出到执行完毕所需要的时间称为指令周期。对应指令执行的三个阶段,指令周期一般分为:取指周期、取操作数周期和执行周期三个部分。 
1. 取指周期 
取指周期是取出某条指令所需的时间
在取指周期中CPU主要完成两个操作:(1)按程序计数器PC的内容取指令(2)形成后继指令的地址; 
取指周期=(指令的长度/存储字的长度)×主存的读/写周期 
我们可以用设计指令格式时缩短指令长度、设计主存时增加主存储字字宽和采用快速的主存等措施来缩短取指周期,提高取指的速度。
2. 取操作数周期 
取操作数周期是为执行指令而取操作数所需的时间
取操作数周期的长短与操作数的个数有关、与操作数所处的物理位置有关还与操作数的寻址方式有关。取操作数周期中应完成的操作是,计算操作数地址并取出操作数。操作数有效地址的形成由寻址方式确定。寻址方式不同,有效地址获得的方式不同、过程不同,提供操作数的途径也不同。因此操作数周期所进行的操作对不同的寻址方式是不相同的。 
3. 执行周期 
执行周期是完成指令所规定的操作和送结果所需的时间
它与指令规定的操作复杂程序有关。例如,一条加法指令与一条乘法指令的指令周期亦不相同。执行周期还与目的操作数的物理位置和寻址方式有关。状态信息中的条件码在执行周期中存入程序状态字PSW。若该指令是转移指令,在该周期中还要生成转移地址。
指令周期常常用若干个CPU周期表示,CPU周期也称为机器周期。由于CPU内部的操作速度较快,而CPU访问一次内存所花的时间较长,因此通常用内存中读取一个指令字的最短时间来规定CPU周期。每个机器周期又包含若干个时钟周期。
一个指令周期包含的机器周期个数亦与指令所要求的动作有关,如单操作数指令,只需要一个取操作数周期,而双操作数指令需要两个取操作数周期。实际上,不同的指令可以有不同的机器周期个数,而每个机器周期又可包含不同的时钟脉冲个数。 
在CPU的控制中除了有取指周期、取操作数周期、执行周期外,还有中断周期、总线周期及I/O周期。中断周期用于完成现行程序与中断处理程序间的切换,总线周期用于完成总线操作及总线控制权的转移,I/O周期完成输入输出操作。  
需注意的是,指令周期中所包含的CPU周期的长度并不是相同的,因此指令周期又有定长CPU周期组成的指令周期,不定长CPU周期组成的指令周期。
转自:http://blog.csdn.net/shuiii/article/details/1906447。使用请注明出处,谢谢。