目录

一、流水线的概念

二、流水线工作流程

三、未使用流水线执行指令

1、执行过程

2、结论

四、使用流水线执行指令

1、执行过程

2、结论

五、流水线周期

六、流水线计算公式

七、流水线的吞吐率

八、考法1:流水线的相关计算


一、流水线的概念

  • 所谓流水线,是指程序在执行时, 多条指令重叠进行操作的一种准并行处理实现技术。

二、流水线工作流程

  • 一条指令在执行的时候,通常可以分为多个阶段进行,每个阶段由不同的部件来实现;
  • 以分为3个阶段为例: 取指、分析、执行
取指:由取指部件实现,负责内存把指令取到CPU中;
分析:由分析部件进行分析指令;
执行:由执行部件实现,负责将指令进行译码后,执行指令;

三、未使用流水线执行指令

1、执行过程

  • 没有使用流水线时,当第一条指令的取指部件进行取指时,分析部件和执行部件是空闲的;
  • 当取指部件取指完成后,分析部件开始分析指令,这时取指部件和执行部件是空闲的;
  • 当分析部件执行完成后,执行部件开始编译后执行指令,此时取指部件和分析部件又是空闲的;

2、结论

  • 由此可知,不使用流水线执行指令时,取指部件,分析部件,执行部件的利用率并不高; 

四、使用流水线执行指令

1、执行过程

  • 当第一条指令开始执行时,取指部件开始工作,分析部件和执行部件空闲;
  • 当第一条指令取指完成后,分析部件开始工作;此时取指部件就空闲出来了,此时就可以去取第二条指令了;
  • 当第一条指令分析完成后,执行部件开始工作;此时分析部件就空闲出来了,此时就可以对刚取的第二条指令进行分析了;并且由于此时第二条指令取指完成了,所以此时取指部件又空闲出来了,所以此时可以去取第三条指令了;

2、结论

  • 由此可见,使用流水线执行指令,能有效提高部件的使用率,也就有效的提高了指令的执行效率;

五、流水线周期

  • 在指令中各个阶段, 执行时间最长的这一阶段的时间,就是流水线的周期;
解析:
(1)例如流水线上的工人,三个人合作完成一件物品;第一个人需要2秒,第二个人需要4秒,第三个人需要1秒;
(2)如果此时将完成这件物品的周期定为1秒,那么第一、第二个人就无法完成自己的工作;
(3)只有将周期定为4秒的时候,这三个人才都能完成自己的工作;
(4)所以我们一般将 完成一件物品 执行所需时间最长的阶段的时间,定为周期,例子中的周期是4秒;

六、流水线计算公式

  • 单条指令所需时间+(n-1)*(流水线周期
(1)由图可知,执行第一条指令时,需要3个阶段;
(2)执行完第一条指令时,第二条指令zh已经执行完分析阶段了,只需要有一个执行阶段就可完成第二条指令的执行;
(3)当第二条指令执行完成时,第三条指令已经执行完分析阶段了,也只需要一个执行阶段就可以完成第三条指令的执行;
(4)所以执行n条指令时,只需要用单条指令的时间(第一条指令的三个阶段的时间的和)+(n-1)条指令执行所需要的时间;

  • 注意:n表示指令的数量;

七、流水线的吞吐率

八、考法1:流水线的相关计算

1.14 - 流水线相关推荐

  1. VLDB论文解读:阿里云超大规模实时分析型数据库AnalyticDB

    1.背景 随着数据量的快速增长,越来越多的企业迎来业务数据化时代,数据成为了最重要的生产资料和业务升级依据.伴随着业务对海量数据实时分析的需求越来越多,数据分析技术这两年也迎来了一些新的挑战和变革: ...

  2. 【系统分析师之路】2017年系统分析师上午综合知识历年真题

    [系统分析师之路]2017年系统分析师上午综合知识历年真题 [系统分析师之路]2017年系统分析师上午综合知识历年真题 [系统分析师之路]2017年系统分析师上午综合知识历年真题 第三章 企业信息化战 ...

  3. 计算机组成原理 复习笔记(已完结)

    前言 本文参考书是白中英第六版<计算机组成原理>和机械工业出版社<计算机组成>.本文为期末复习参考,非考研,侧重知识点可能有所差异.如有错误烦请指出. 重点在 二.三.四.五章 ...

  4. 【计算机体系结构】名词解释

    第一章 计算机体系结构的基本概念 (1)层次结构:按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征. (2)翻译:先用转换程序把高一级机器上的程序转 ...

  5. 使用Go模板生成文本

    总览 作为软件开发人员,文本无处不在. 代码是文本,HTML是文本,XNL / JSON / YAML / TOML是文本,Markdown是文本,CSV是文本. 所有这些文本格式旨在满足人类和机器的 ...

  6. Python 模块大全(很详细!)

    转载:.... Python的模块大全,很全,有详细介绍! 另外附Python两个教程 1. Python详细教程(廖雪峰的官方网站,语言简洁!) 2. Python 进阶教程 (Vamei) 3. ...

  7. 【五级流水线CPU】—— 5. 转移指令(14条)

    转移指令(14) 一共14条指令,分为两类: 跳转指令(绝对转移):jr.jalr.j.jal 分支指令(相对转移):b.bal.beq.bgez.bgezal.bgtz.blez.bltzal.bn ...

  8. 富士康14跳被我赶上了,流水线车间真的没有梦想|十年系列

    一个不太安分的人. 01.写在前面 十年前,我还是象牙塔中数学系的一名普通的大三学生. 九年前,我是富士康流水线工厂的一名工人. 六年前,我包里揣着3000元RMB来北漂. 三年前,我在一家互联网金融 ...

  9. ab st语言编程手册_木兰编程语言 0.0.14.7:功能覆盖初版用户手册;Gitee Go 流水线尝鲜...

    木兰编程语言 在 2020 年度 OSC 中国开源项目评选 中已获得 26 票,请投票支持! 年初对原始木兰可执行文件 ulang-0.2.2.exe 作了些功能上的摸索尝试,将基本功能写在初版用户手 ...

最新文章

  1. XXX管理平台系统——会议管理
  2. dede php 循环,织梦怎么循环调用多级子栏目如二级栏目下三级栏目
  3. MyBatis01 Idea中搭建MyBatis开发环境
  4. 复旦教授发现400+安卓漏洞,最严重可使手机变砖,谷“鸽”16个月后才修复
  5. 网站SEO优化中该如何解决网站改版问题?
  6. 七牛大数据平台的演进与大数据分析实践--转
  7. php gd 缩略图,[PHP GD库]①0--缩略图封装
  8. 【Coursera课程笔记】Web智能和大数据Week3_MapReduce
  9. What is the usage of Transfer field in Text determine procedure customizing
  10. 详细解读css中的浮动以及清除浮动的方法
  11. 入门monkeyrunner7-monkeyrunner demo3 EasyMonkeyDevice+hierarchyviewer +monkeyrunner+截图对比
  12. Linux 主机超全渗透测试命令汇总
  13. 直播防盗链,域名设置
  14. C语言语法错误与语义错误的区别
  15. python 批量视频转换成图片
  16. OneNote无法粘贴图片
  17. 如何获取微信好友的地理位置信息
  18. 作为一名视觉工程师该怎么学习?
  19. 【思维导图】大数据发展历程2005~2017
  20. Win\Linux 双系统,如何删除linux的grub引导

热门文章

  1. 做技术要有一颗平常心
  2. 安卓通讯录管理软件_安卓系统50个你不知道的使用窍门!每个都值得你去收藏!...
  3. 基于ssh羽毛球馆管理系统mysql
  4. 2007年春晚点评(小生精选荟萃版)
  5. 基于OpenCV的AR图像合成
  6. 文本标注平台 doccano 安装教程
  7. VMware安装Centos7联网
  8. python legend位置_matplotlib中legend位置调整解析
  9. 多开夜神模拟器使用adb命令进行连接
  10. 【爬虫】关于爬取彼岸图网4K壁纸的分析