关于指令执行周期的细节思考

@(组成原理)

(取自2012.44)五段流水线:取指(IF)、译码/读寄存器(ID)、执行/计算有效地址(EX)、访问存储器(M)、结果写回寄存器(WB)。流水线按序发射,按序完成。不采用数据转发技术,并且同一个寄存器的读和写操作不能在同一个时钟周期内进行。

只看一个方面的问题:若高级语言程序中某赋值语句为:x = a+b,x,a,b均为int型变量,它们的存储单元地址分别为[x],[a],[b]。该语句对应的指令流水线执行过程是:

I1    LOAD    R1,[a]
I2    LOAD    R2,[b]
I3    ADD     R1,R2
I4    STORE   R2,[x]

分析:这样一个简单的指令执行步骤,其实非常值得深入分析,不要跑太快。

首先问,阻塞在指令序列中如何体现的?不连续即阻塞
比如I3的IF段结束后,后面要隔着三个空格才能接上ID,这三个空格就是阻塞,这个指令因为要等到I2写回数据到R2才能继续下去,ID重新开始时就是在I2的WB写完后,被唤醒。很长时间都没有这么分析,也没看到相关的解答这样串联。
再问一个问题,I4的IF为什么不在I3的ID前面执行?根据题干,要顺序执行,在I3阻塞时,I4的指令是不允许执行的。所以I4的IF才在I3的ID下面,即I3开始工作了,才允许I4继续工作。

另外,IF不允许在M下面,是因为M是访问主存,IF也是访问主存。这是隐含性的条件,是作为常识掌握。题干强调了对寄存器的互斥访问,而刻意忽略了主存的互斥访问。

总之,注意IF和M的互斥ID和WB的互斥,再加上对阻塞情况下后序指令不许动的理解,这种绘图型,其实很简洁。

关于指令执行周期的细节思考相关推荐

  1. STM指令周期1.25MIPS/Mhz,1M频率每秒钟执行1.25M指令。72M是72*1.25。每个指令执行周期为1M(us)/72*1.25M=0.011us,8M的AVR单指令周期0.125us

    在keil中编程时,写了一行代码,然后就想知道,执行这句C代码需要多长时间. 时钟周期在这就不解释了,频率的倒数. 指令周期,个人理解就是cpu执行一条汇编指令所需要的时间. 我们知道cm3使用的三级 ...

  2. CPU内部组成结构及指令执行过程

    计算机的基本硬件系统由运算器.控制器.存储器和输入.输出设备五大部件组成.运算器和控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit,CPU). CPU的功能 ...

  3. (计算机组成原理)第五章中央处理器-第二节:指令执行过程(取指周期、间址周期、执行周期和中断周期)

    文章目录 一:指令周期 二:指令周期流程 (1)取指周期 (2)间址周期 (3)执行周期 (4)中断周期 三:指令执行方案 (1)单指令周期 (2)多指令周期 (3)流水线方案 一:指令周期 指令周期 ...

  4. 计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」

    文章目录 1. CPU的功能和基本结构 1.1 CPU的组成 1.1.1 运算器的基本组成 1.2.2 控制器的基本组成 1.2.3 CPU的总图 2. 指令执行过程 2.1 指令周期 2.2 指令的 ...

  5. Risc-V单周期CPU设计思考

    Risc-V单周期CPU设计思考 今年学校课程改革,计算机组成课开始教学Risc-V,写单周期CPU的时候发现网上好像大多都是MIPS的CPU设计,所以就把自己关于设计Verilog的一些思路整理出来 ...

  6. 关于Angularjs中自定义指令一些有价值的细节和技巧

    作者:心叶 时间:2018-04-22 10:58 一:自定义指令常用模板 下面是大致的说明,不是全面的,后面来具体说明一些没有提及的细节和重要的相关知识: angular.module('yello ...

  7. 计算机组成原理 — CPU — 流水线与执行周期

    目录 文章目录 目录 CPU 流水线 时钟周期.机器周期.指令周期和总线周期 CPU 流水线 不同的 CPU 指令集架构在执行指令的过程会有所差别,以经典的 RISC(精简指令集架构)为例,存在以下步 ...

  8. 6 计算机组成原理第五章 中央处理器 CPU功能和结构 指令执行过程

    文章目录 1 CPU功能和基本结构 1.1 CPU的功能 1.2 运算器的基本结构 1.3 控制器的基本结构 1.4 CPU基本结构 1.5 CPU的功能和基本结构小结 2 指令周期和数据流 2.1 ...

  9. 【计算机组成原理】指令执行过程

    机器周期和时钟周期 机器周期:又称CPU周期. 时钟周期:又称CPU时钟周期,是CPU操作的最基本单位. 指令周期 指令周期是CPU从主存中取出并执行一条指令的时间,不同指令的指令周期可能不同. 指定 ...

最新文章

  1. python join()函数
  2. nginx 配置expires
  3. Debian update apache error AH00111: Config vairable ${APACHE_RUN_DIR} is not defined
  4. mysql reflush pri_Mysql Flush privileges命令的功能与使用
  5. Android之Adobe AIR本地扩展
  6. JSP→基本语法/静态内容/指令/动作/表达式/小脚本(Scriptlet)/声明/注释、JSP页面声明周期、代码样例、九大隐式内置对象及方法代码样例
  7. 【SSH】---【Struts2、Hibernate5、Spring4】【SSH框架整合笔记 】
  8. php 126怎么设置发送邮箱验证码,邮箱发送验证码(示例代码)
  9. 内核启动流程分析----内核启动
  10. Rasa对话机器人连载一 第121课:Rasa对话机器人Debugging项目实战之电商零售对话机器人运行流程调试全程演示-1
  11. 倾斜摄影三维模型五种常见格式
  12. SUNLORDINC顺络电子LTCC产品推广资料
  13. sql server 重建索引
  14. 情人节程序员用HTML网页表白【爱心_文字音乐告白】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  15. 防雷器和电涌保护器的区别
  16. win10 系统识别不了移动硬盘
  17. python class namedtuple 效率_菜鸟世界 -python进阶之 namedtuple
  18. Realme GT Neo5 SE ROOT 解锁BL教程
  19. 重现代码时需要注意坑
  20. Mes系统批次管理功能

热门文章

  1. PCD Lesson3:PCD文件的读取
  2. 【学习OpenCV4】图像通道的分离、合并与混合方法(C++)
  3. php if多条件_通过几个案例掌握shell编程条件分支结构
  4. python 自动填excel_使用python自动填充文字.docx从excel fi
  5. 电脑主板跳线_电脑主板跳线连接图
  6. linux拷贝文件时如果想保留文件原有的时间属性,可以使用选项,Linux考试题完整版.doc...
  7. php ci xss_clean,php – codeigniter 2以及如何为TinyMCE禁用xss
  8. cocos bubbles_像Messenger Bubbles这样的Android浮动小部件
  9. java 异常面试问题_Java异常面试问答
  10. Hibernate Tomcat JNDI数据源示例教程