前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机组成原理之指令周期[通俗易懂]

计算机组成原理之指令周期[通俗易懂]

作者头像
全栈程序员站长
发布2022-11-04 09:54:36
2K0
发布2022-11-04 09:54:36
举报
文章被收录于专栏:全栈程序员必看

指令周期

基本概念

  1. 指令周期 取出并执行一条指令所需的全部时间
  2. 每条指令的周期不同 由于各指令的功能不同,他们的周期也是不尽相同的。 eg: NOP(空操作):只有取指周期
在这里插入图片描述
在这里插入图片描述

ADD(加操作):指令周期有取指周期和执行周期两个阶段

在这里插入图片描述
在这里插入图片描述
  1. 具有间址寻址的指令周期
在这里插入图片描述
在这里插入图片描述

取指周期:把指令地址从内存中取出 间址周期:把操作数地址从内存中取出 执行周期:把操作数从内存中取出

  1. 指令周期流程
在这里插入图片描述
在这里插入图片描述
  1. CPU工作周期的标志 CPU访存有四种性质对应CPU的四个工作周期
  • 取指令:取指周期
  • 取地址:间址周期
  • 存取操作数或者结果:执行周期
  • 存程序断点:中断周期

指令周期的数据流

取指周期的数据流

在这里插入图片描述
在这里插入图片描述

取指周期从PC开始,因为PC知道要取的指令的内存单元的地址,PC要把地址传送给存储器,要先把地址传给MAR,再由MAR传给地址总线,再由地址总线传给存储器。CU把读操作这个控制信号送到控制总线上,再由控制总线送到存储器,存储器执行读操作,把相应的数据送到数据总线,数据总线再送到MDR,最后送到IR当中,此时,我们还要为取下一条指令做准备,要把下一条指令的地址保存在PC里,由CU控制PC进行PC+1操作,使PC指向下一条要取的指令的地址。这样一个完整的取值周期就完成了。(注意:这里的+1操作不是单纯的+1而是是加上下一条指令的地址)

间址周期的数据流

在这里插入图片描述
在这里插入图片描述

操作数所在的内存单元的地址IR和MDR中都有,所以间址周期可以从IR开始,也可以从MDR开始,假设从MDR开始,MDR会把操作数中的地址码部分发送给MAR,MAR会把地址送给地址总线,再由地址总线送给存储器,然后CU发出读操作,操作信号先送给控制总线,再由控制总线送到存储器当中,存储器完成读操作,把数据送到数据总线上,再由数据总线送到MDR当中,这个时候MDR才真正保存了我们所需要的操作数的真正的地址。

执行周期数据流

不同指令的执行周期数据流不同。

中断周期的数据流

在这里插入图片描述
在这里插入图片描述

因为CU知道程序断点应该保存在哪个位置,所以中断周期从CU开始,CU给出地址,把地址放进MAR中,MAR再送到地址总线,地址总线送到存储器,因为保存断点是一个写操作,所以CU会发出一个写命令,并把写命令送到控制总线,再由控制总线送到存储器,保存断点即返回到程序中断之后的那个位置,也即中断之后要执行的下一个命令地址,中断之后的下一条命令保存在PC当中,所以保存断点即保存当前PC的值,PC会把值送到MDR当中,MDR送到数据总线,数据总线再保存到存储器中。中断服务程序的入口地址是由CU给出,CU会把这个地址写入PC,中断服务程序的入口就给了PC,

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182323.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 指令周期
  • 基本概念
  • 指令周期的数据流
    • 取指周期的数据流
      • 间址周期的数据流
        • 执行周期数据流
          • 中断周期的数据流
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档