指令周期是取出一条指令并执行这条指令的时间。一般由若干个机器周期组成,是从取指令、分析指令到执行完所需的全部时间。
指令周期类型有非访内指令的指令周期、取数指令的指令周期、存数指令的指令周期、空操作指令和转移指令的指令周期。
指令不同,所需的机器周期数也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
从指令的执行速度看,单字节和双字节指令一般为单机器周期和双机器周期,三字节指令都是双机器周期,只有乘、除指令占用4个机器周期。
因此在进行编程时,在完成相同工作的情况下,选用占用机器周期少的命令会提高程序的执行速率,尤其是在编写大型程序程序的时候,其效果更加明显。
指令周期的四个阶段
非访内指令的指令周期
cla是一条非访内指令,它需要两个cpu 周期,其中取指令阶段需要一个cpu周期,执行指令阶段需要一个cpu周期。
1、取指令阶段
(1)程序计数器pc的内容20(八进制)被装入地址寄存器ar;
(2)程序计数器内容加1,变成21,为取下一条指令做好准备;
(3)地址寄存器的内容被放到地址总线上;
(4)所选存储器单元20的内容经过数据总线,传送到数据缓冲寄存器dr;
(5)缓冲寄存器的内容传送到指令寄存器ir;
(6)指令寄存器中的操作码被译码或测试;
(7)cpu识别出是指令cla,至此,取指令阶段即告结束。
2、执行指令阶段
(1)操作控制器送一控制信号给算术逻辑运算单元alu;
(2)alu响应该控制信号,将累加寄存器ac的内容全部清零,从而执行了cla指令。
取数指令的指令周期
1.送操作数地址
第二个cpu周期主要完成送操作数地址。在此阶段,cpu的动作只有一个,那就是把指令寄存器中的地址码部分(30)装入地址寄存器,其中30为内存中存放操作数的地址。
2.两操作数相加
第三个cpu周期主要完成取操作数并执行加法操作中。在此阶段,cpu完成如下动作:
(1)把地址寄存器中的操作数的地址发送到地址总线上。
(2)由存储器单元30中读出操作数,并经过数据总线传送到缓冲寄存器。
(3)执行加操作:由数据缓冲寄存器来的操作数可送往alu 的一个输入端,已等候在累加器内的另一个操作数(因为cla指令执行结束后累加器内容为零)送往alu的另一输入端,于是alu将两数相加,产生运算结果为0+6=6。这个结果放回累加器,替换了累加器中原先的数0 。
存数指令的指令周期
sta指令的指令周期由三个cpu周期组成。
1.送操作数地址
在执行阶段的第一个cpu周期中,cpu完成的动作是把指令寄存器中地址码部分的形式地址40装到地址寄存器。其中数字40是操作数地址。
2.存储和数
执行阶段的第二个cpu周期中,累加寄存器的内容传送到缓冲寄存器,然后再存入到所选定的存储单元(40)中。cpu完成如下动作:
(1)累加器的内容被传送到数据缓冲寄存器dr;
(2)把地址寄存器的内容发送到地址总线上,即为将要存入的数据6的内存单元号;
(3)把缓冲寄存器的内容发送到数据总线上;
(4)数据总线上的数写入到所选中的存储器单元中,即将数6写入到存储器40号单元中。注意 在这个操作之后,累加器中仍然保留和数6,而存储器40号单元中原先的内容被冲掉 。
空操作指令和转移指令的指令周期
第四条指令即“nop”指令,这是一条空操作指令。其中第一个cpu周期中取指令,cpu把23号单元的“nop”指令取出放到指令寄存器,第二个cpu周期中执行该指令。因译码器译出是“nop”指令,第二个cpu周期中操作控制器不发出任何控制信号。nop指令可用来调机之用。
1.第一个cpu周期(取指令阶段)
cpu把24号单元的“jmp 21”指令取出放至指令寄存器,同时程序计数器内容加1,变为25,从而取下一条指令做好准备。
2.第二个cpu周期(执行阶段)
cpu把指令寄存器中地址码部分21送到程序计数器,从而用新内容21代替pc原先的内容25。这样,下一条指令将不从25单元读出,而是从内存21单元开始读出并执行,从而改变了程序原先的执行顺序。
注意 执行“jmp 21”指令时,我们此处所给的四条指令组成的程序进入了死循环,除非人为停机,否则这个程序将无休止地运行下去,因而内存单元40中的和数将一直不断地发生变化。当然,我们此处所举的转移地址21是随意的,仅仅用来说明转移指令能够改变程序的执行顺序而已
华为Mate 20到底蕴含着怎样的黑科技
基于COM Express Mini和Qseven设计系统
“All in AI”的百度是怎样度过“水逆期”的
美军“敏捷作战部署”(ACE)信息技术研究分析
未来网络借助Wi-Fi6和5G融合,连接体验将完全无缝
指令周期的四个阶段详解
关于堆栈最经典的讲解
东芝推出采用新型封装的车载40V N沟道功率MOSFET,有助于汽车设备实现高散热和小型化
浅谈微软Azure Cobalt 100内核关键技术
智能穿戴热潮持续升温,第三届智能穿戴峰会上海举行
为什么在IC的VCC入口串联一个小电阻?
三星成为了失败者,在中国这个全球最大智能机市场的份额已不到1%
如何查看模块的诊断信息
Linux小项目-数码相册设计
破裂强度试验机/爆破强度试验机
颜水成:360拥有领先的人工智能技术
美高森美通过战略性收购和创新在2017年继续实现增长
如何选择电源才是最适合系统的?电源的摆放和走线有什么注意事项?
PCB制板设计有什么要求和设计规范详细说明
拆开一把智能锁,我们能看到哪些东西