0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

指令周期的四个阶段详解

PoisonApple 来源:网络整理 2022-03-09 13:46 次阅读

指令周期是取出一条指令并执行这条指令的时间。一般由若干个机器周期组成,是从取指令、分析指令到执行完所需的全部时间。

指令周期类型有非访内指令的指令周期、取数指令的指令周期、存数指令的指令周期、空操作指令和转移指令的指令周期。

指令不同,所需的机器周期数也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。

从指令的执行速度看,单字节和双字节指令一般为单机器周期和双机器周期,三字节指令都是双机器周期,只有乘、除指令占用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是随意的,仅仅用来说明转移指令能够改变程序的执行顺序而已

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10338

    浏览量

    206238
收藏 人收藏

    评论

    相关推荐

    半导体发展的四个时代

    交给代工厂来开发和交付。台积电是这一阶段的关键先驱。 半导体的第四个时代——开放式创新平台 仔细观察,我们即将回到原点。随着半导体行业的不断成熟,工艺复杂性和设计复杂性开始呈爆炸式增长。工艺技术
    发表于 03-13 16:52

    半导体发展的四个时代

    代工厂来开发和交付。台积电是这一阶段的关键先驱。 半导体的第四个时代——开放式创新平台 仔细观察,我们即将回到原点。随着半导体行业的不断成熟,工艺复杂性和设计复杂性开始呈爆炸式增长。工艺技术、EDA
    发表于 03-27 16:17

    详细解读|时钟周期、机器周期指令周期、总线周期

    ,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一基本操
    发表于 12-01 12:15

    UI设计的四个方向

    UI设计的四个方向
    发表于 04-16 14:24

    移动通信标准发展大致分成四个阶段

    在谈这个问题之前,首先我们来谈谈另一问题:为什么我们需要一新的移动通信标准?一定是出现了现有标准无法解决的新问题。总体上看,一标准的诞生,从整个流程来看应该会大致分成四个
    发表于 07-12 08:09

    嵌入式系统发展的四个阶段

      嵌入式系统发展的四个阶段  从上个世纪70年代单片机的出现到今天,应用,嵌入式系统少说也有近30年的历史了。可以说嵌入式系统经历了发展的4阶段。今天小编就为大家分享一下嵌入式系统
    发表于 06-23 15:51

    单片机 时间周期、机器周期指令周期详解

    周期(用S表示)。机器周期 计算机中,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项
    发表于 01-19 10:34

    四个阶段来描述嵌入式系统的大致启动流程

    作为一嵌入式新手,阅读资料之后做一下笔记还是很有必要的,下面从四个阶段来描述嵌入式系统的大致启动流程。如下图所示:图片引用自OMAPpedia的WIKI
    发表于 12-14 06:45

    指令周期是什么意思

    努力了3月,终于考过了!把这阶段的心得和笔记分享到网上 指令周期若干个即周期组成,是取指令、分
    发表于 12-22 06:37

    单片机指令周期

    单片机指令周期:时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期指令
    发表于 09-03 09:07 28次下载

    ARM指令详解

    ARM指令详解 内容提要 ARM指令集 ARM指令集分类与指令格式 ARM指令的寻址方
    发表于 03-09 09:39 261次下载
    ARM<b class='flag-5'>指令</b>集<b class='flag-5'>详解</b>

    CPU周期与微指令周期的关系

    CPU周期与微指令周期的关系 在串行方式的微程序控制器中:       微指令周期
    发表于 03-26 16:16 35次下载

    指令周期,什么是指令周期

    指令周期,什么是指令周期 指令周期的基本概念   CPU从内存取出一条
    发表于 03-24 17:08 6339次阅读

    单片机指令周期怎么计算

     指令周期指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。传统的80C51单片机的
    发表于 12-05 16:01 1.5w次阅读
    单片机<b class='flag-5'>指令</b><b class='flag-5'>周期</b>怎么计算

    PIC中的振荡周期、时钟周期、机器周期指令周期

    :(C51)单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。机器周期:计算机中,常把一条指令的执行过程划分为若干个
    发表于 11-16 13:06 5次下载
    PIC中的振荡<b class='flag-5'>周期</b>、时钟<b class='flag-5'>周期</b>、机器<b class='flag-5'>周期</b>、<b class='flag-5'>指令</b><b class='flag-5'>周期</b>