软考之路--小桥流水人家
流水线,从小编生活了二十年的生活经历来看,流水线可以这样理解,从生活中的工厂入手,流水线上每个工人所作的工作都不同,但却是相连的,上面的工人做完了他的事就直接丢给下面的工人,而后一直这样传下去,直到这条流水线结束。 做流水线要眼疾手快,不然你手中的还没做完,上面又丢些下来,到时你就手忙脚乱,全线也就乱套了,总的来说生活中的流水线就是一种工业上的生产方式,指每一个生产单位只专注处理某一个片段的工作,以提高工作效率及产量。流水线,在我们的计算机中也有类似的概念,小编理解中的流水线,和计算机世界中的流水线有哪些不一样的地方呢?计算机中的流水线有着怎样神奇的一面?这篇博文,小编主要和大家来学习一下流水线的相关知识,小编会循着下面这张图的脉络,一一介绍,首先,我们来看一下整体的有关流水线知识点的框架。
接下来,小编就沿着上图的痕迹,对流水线进行一一解剖,有不同意见的小伙伴欢迎讨论交流。
概念
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。概念我们说那么多,我们现在深入去理解,光有概念都是一些比较抽象的东西,我们看图,一共有三个步骤:
然后我们来看一下一般情况下我们的指令是一条一条的来处理,第一条指令处理完,再处理第二条,再处理第三条,这种顺序来处理机器里边的设备的利用情况是怎样的呢?我们来看这图:
若我们每个指令的执行时间是1ms,如下图:
那么三条指令执行完需要9ms的时间,我们还可以看得出来的是:取值这个设备只有在1ms,4ms,7ms的时候工作,第一条指令只有三分之一的时间进行工作,别的时间就空闲了,对于这样子中间就产生了很多设备的空闲。所以我们引入了流水线。用流水线所用的时间:
取值设备只要完成第一条指令的取值,就立即进入第二条指令的取值,第二条指令完成之后,就马上执行第三条;分析这个操作也是一样,我们看的出来,在5ms的时间就完成了。当然我们也能观察的出,单个指令的运行时间都是3ms。所以流水线对单条指令的执行是无效的。流水线除了指令流水线,还有一种就是运算操作流水线,运算操作流水线就是计算机在执行各种运算操作时也可以应用流水线来提高运算速度,这是操作都是分阶段运行的,所以我们用流水线来提高运算速度。
流水线指令运行时间的计算
小试牛刀
我们光看公式就几个变量,不好理解,我们来看例题:
例题1
很简单的一道题目,我们看的出来,很容易我们就计算的出来:(2+2+1)+(100-1)*2=203
我们接下来看一个图,来深刻的理解一下:
从这个图中我们假设:取值5ns,分析 2ns,执行 5ns;那么我们执行完一条指令应该是:
若分析在取值之后执行的话,只需要7ns就能完成分析阶段,那么执行完成只需要12ns,而不需要15ns。我们为什么说分析能在取值之后马上执行呢?我们再来看一下这个执行步骤:
第一条指令的取值完成之后,这两条线就去掉了,就是说阻碍I2和C1发展的线就断了,他们就能运行:
我们很清楚的看到分析就和下一条指令的取值就能进行了,接下来,我们来看一道有点儿奇怪的题:
例题2
我们要是按照之前的那个公式,能很快的算出来:周期=100ns(时间最长的),然后得到第一条指令的结果是:60ns+100ns+50ns+70ns=280ns。然后完成这段程序需:280+(20-1)*100=2180。我们按照这个公式来算,一点问题都没有。但是我们看一下答案:
但是当我们的选项里边没有这个答案,我们应该怎么办?想想,我们没有错,我们是按照公式来的,肯定错不了。但是有时候我们为了得分,所以我们必须要向另一种方向转变,就是我们的周期是100ns,那么我们都按照周期来算,那么我们第一条指令的完成时间就是:4*100=400,然后完成100条指令的时间就是:100*4+(20-1)*100=2300。那么这个题目我们就能拿分了。
小编寄语:该博文,小编主要从三个方面对流水线的相关知识点进行简单的回顾和总结,第一,简单的介绍了一下流水线的概念,第二,指令运行时间的计算,第三,巩固理论知识,讲解了两个例题。初次接触流水线,小编的理解也不是很深,有不同意见的小伙伴欢迎讨论交流, 软考准备的日子即将接近尾声,在十月的末尾,十一月的指尖绽放,谢谢博客陪我走过 2014年的两个备考之月,进京赶考倒计时,小伙伴加油!
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
软考之路--小桥流水人家相关推荐
- 我的软考之路(九)——总结篇
经过两个月的备战,软考总算结束了.软考虽然结束了,但是还需要简单的总结一下得与失.我从时间安排,到讲课做真题简单的回顾一下软考的整个过程. 时间安排: 对于时间的安排,整个小组成员每个人都有自己的看法 ...
- 我的软考之路(六)——数据结构与算法(4)之八大排序
排序是编程的基础,在程序中会经常使用,好的排序方法可以帮助你提高程序运行的效率,所以学好排序,打好基础,对于程序的优化会手到擒来.无论你的技术多么强,如果没有基础也强不到哪去. 不多说了,我们直接进入 ...
- 我的软考之路(四)——数据结构与算法(2)之树与二叉树
上篇博文主要介绍的是数据结构的线性结构,我们这篇博文介绍非线性结构-树与二叉树,我先介绍树的一些基本概念,树的遍历,再介绍二叉树相关概念和特性,以及二叉树的遍历,最后再树与二叉树的对比,总结. 树为了 ...
- 【系统分析师之路】我的软考修行路(写在2019年最后一周)
[系统分析师之路] 我的软考修行路(写在2019年最后一周) [摘要] 本文首先交代了博主参加软考的背景,然后结合自己高项的实际经验,总结了自己在高项中良好的方法论和实践上的不足,针对接下来的软考高级 ...
- 【软考之路】关于上周参加的软考的几点感想
上周参加了软考初级的程序员,由于平时没怎么看,所以考试前半个月特别忙.每天早上上班前,晚上下班后都会刷真题.刷题的同时还怕领导看到,毕竟我们公司不认这些证书,还要考这些难免不会让人联想. 上半年决定考 ...
- 我的软考之路——软考心得
软考?是什么东西,可能大多数人跟我一样,刚听到这个词语觉得很陌生,但当我走进社会,面临到工作的压力,要求自己必须学习进步的时候,认识了它! 那时候参加工作也几年了,工作的压力是一天天涨,工资却没多 ...
- 软考之路(一)千里之行始于足下
"看看这面(监狱的)灰色高墙,起初你厌恶它.逃避它,然后你逐渐习惯于它,最后你彻底依附于它,这时你已成为整个体制的一部分了". 2015-3-18号打响了软考的第一枪.软考的学习安 ...
- 软考之路(一):考试题型和考试时间
考试题型和考试时间 1.前言 2.考试时间 3.题型 1.前言 在浑浑噩噩的终日无聊工作中幡然醒悟,决定今年考一个高级职称,一方面是为了未来的发展,另一方面是为了让自己能够沉下心来学习.我报考的是高级 ...
- 软考之路(1)——浅解网络基础知识
对网络这一块的基础知识理解例如以下,以图文并茂的形式展出.便于分析和理解.解析与图例如以下: 物理层: 功能: 提供为建立.维护和拆除物理链路所需的机械.电气.功能和规程的特性: 提供有关在传输介质上 ...
最新文章
- 2016.04.09 使用Powerdesigner进行创建数据库的概念模型并转为物理模型
- P1515 旅行(简单搜索)
- Scalaz(12)- Monad:再述述flatMap,顺便了解MonadPlus
- 设置 HTTP HEADER 字段来提高 Web 安全性
- AIR720串口2收发数据问题
- ECMAScript 实现继承的几种方式
- python tableview 列宽_QTableView设置列宽
- Don’t Worry.Be Scruffy.
- QT widget宽高比
- 画虎画皮难画骨,编程编码难编译
- 【转】江枫:在ubuntu10.04上安装oracle 10g(学习一下)
- html横幅设置,如何控制HTML横幅的宽度和高度?
- 来个模态kuang_使用 React 制作一个模态框
- jdk8在win10的安装,添加JAVA_HOME环境变量
- mmo中匹配机制的思考与实现
- 嵌入式linux开发04-roottfs移植
- 今天,你开发了吗?有成为这1/1000000了吗
- Python从无到有搭建接口(API)自动化测试框架
- Hystrix线程池隔离与接口限流
- Cadence Allegro如何制作椭圆形通孔焊盘?
热门文章
- 计算机英语 crash,英语笑话 - 技术类:455 Computer Crash 电脑崩溃
- 让电商运营10倍提效的自动化工具,你get了吗?
- xe7 mysql_XE7Datasnap使用dbExpress连接MySQL数据库_MySQL
- 易拉罐增强WiFi信号
- 最新微软薪资曝光,Run去美国还是好选择吗?
- Office2007打开word和excel文件速度慢,在两个打开的word文件之间切换的速度慢,如何处理?...
- VBA 收集 Word关键字批量处理
- 信号与传输介质和计算机进制转换
- 24个提高你的知识和技能极限的数据科学(机器学习)项目(免费)
- BZOJ 4589 Hard Nim