软考之路--小桥流水人家

流水线,从小编生活了二十年的生活经历来看,流水线可以这样理解,从生活中的工厂入手,流水线上每个工人所作的工作都不同,但却是相连的,上面的工人做完了他的事就直接丢给下面的工人,而后一直这样传下去,直到这条流水线结束。 做流水线要眼疾手快,不然你手中的还没做完,上面又丢些下来,到时你就手忙脚乱,全线也就乱套了,总的来说生活中的流水线就是一种工业上的生产方式,指每一个生产单位只专注处理某一个片段的工作,以提高工作效率及产量。流水线,在我们的计算机中也有类似的概念,小编理解中的流水线,和计算机世界中的流水线有哪些不一样的地方呢?计算机中的流水线有着怎样神奇的一面?这篇博文,小编主要和大家来学习一下流水线的相关知识,小编会循着下面这张图的脉络,一一介绍,首先,我们来看一下整体的有关流水线知识点的框架。

接下来,小编就沿着上图的痕迹,对流水线进行一一解剖,有不同意见的小伙伴欢迎讨论交流。

   概念

流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。概念我们说那么多,我们现在深入去理解,光有概念都是一些比较抽象的东西,我们看图,一共有三个步骤:

然后我们来看一下一般情况下我们的指令是一条一条的来处理,第一条指令处理完,再处理第二条,再处理第三条,这种顺序来处理机器里边的设备的利用情况是怎样的呢?我们来看这图:

若我们每个指令的执行时间是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年的两个备考之月,进京赶考倒计时,小伙伴加油!

时间: 2025-01-01 23:33:11

软考之路--小桥流水人家的相关文章

我的软考之路(七)——数据结构与算法(5)之查找

上篇博文我重点介绍了八大内部排序,这篇博文(数据结构与算法的最后一课)重点介绍查找,我们依旧沿用上篇博文的风格,先简单介绍,再以例子重点讲解. 下面我们开始今天的旅行,首先祝你旅行愉快,呵呵. 静态查找 若查找目的是为了查询某个特定的数据是否在表中或检索某个特定数据的各种属性,则此类查找表为静态查找表. 1.顺序查找 基本原理:从表一端开始逐个和关键字进行比较,若找到一个记录和给定值相等,则查找成功,反之失败.再简单点就是,一个一个的比大小,看看是否相等. 例子: 顺序查找更适合于顺序存储结构和

软考之路--数据结构之线性表

数据就是数值,也就是我们通过观察.实验或计算得出的结果.数据有很多种,最简单的就是数字.数据也可以是文字.图像.声音等.数据可以用于科学研究.设计.查证等.结构,组成整体的各部分的搭配和安排,两者完美结合在一起,我们这样需要重新认识她,对她重新审视与定义:数据结构是程序设计的重要理论和技术基础,她所讨论的内容和技术,对从事软件项目的开发有重要作用,通过学习数据结构,我们学会从问题出发,分析和研究计算机加工的数据的特性,以便为应用所设计的数据悬着适当的逻辑结构.存储结构及其相应的操作方法,为提高应

软考之路--开始的开始,我们都是孩子

为了软考,奋力一搏,没钱.没人脉.没背景,在人人自危的竞争中,要靠自己的真实力,这次考试我们积极备考,不打无准备之战,软考的目的,不仅仅是为了软考通过这么简单,在软考的背后还隐藏着一个古老的秘密,那就是为了学习知识,在个人重构,机房合作,牛腩新闻发布系统等学习中,小伙伴们有没有这样的疑问,出现了很多问题,解决了,但是具体的原理自己并不是很理解,这个时候,软考来了,驾着五彩的云霞,翩翩来到你眼前,解决我们计算机体系知识不全的问题.在面临自考,等级考,软考,计算机学习,英语学习等犹如冰糖葫芦的串儿的

软考之路--计算机背后的故事

文法:1.法制:法规. 2.文章的作法. 3.语法.语言的结构方式.包括词的构成和变化﹐词组和句子的组织.文法即文章的书写法规,一般用来指以文字.词语.短句.句子的编排而组成的完整语句和文章的合理性组织.这个是我们小时候接触过的关于文法的概念,那个时候的文法总是会和主语,宾语,谓语等联系在一起. 二十年过去了,今天她再次出现在我面前,还是一样的眼神,藏在记忆深处的"文法"跟眼前的这个"她"有什么不一样呢?在计算机科学中,文法是编译原理的基础,是描述一门程序设计语言和

软考之路--像树一样活着

俞敏洪说:我们每一个人,都应该像树一样的成长,即使我们现在什么都不是,但是只要你有树的种子,即使你被踩到泥土中间,你依然能够吸收泥土的养分,自己成长起来.当你长成参天大树以后,遥远的地方,人们就能看到你:走近你,你能给人一片绿色.活着是美丽的风景,死了依然是栋梁之才,活着死了都有用.这就是我们每一个同学做人的标准和成长的标准,开头小编先罗嗦一下,给各位小伙伴来一段心灵鸡汤,今天我们的知识点就从树开始说起. 树,原指木本植物之总名,主要由根.干.枝.叶.花.果组成.随着计算机的发展,在数据结构中树

软考之路(八)--- 大总结

软考考试伴随着24号完成了,但是学习才真正的开始,从整个准备软考过程,到考完,整体上来说时间对于自己来说还算是充裕的,收获是非常大的,不了解.不会的.模糊的知识越学发现越多啊,当然这期间的得与失,总结总结为Java的学习起到一个促进的作用. 自考PK软考PK专业课 非常重要的是自考的科目这次全部的通过,整个自考的过程对于非计算机系的我来说,算是极大程度上补充了很多计算机相关方面的知识,自考顺利成章的到软考,当看到软考的内容之后,心里多少有些底了,第一感觉:自考中大部分都学习过,解决了不怕不知道就

我的软考之路(九)——总结篇

经过两个月的备战,软考总算结束了.软考虽然结束了,但是还需要简单的总结一下得与失.我从时间安排,到讲课做真题简单的回顾一下软考的整个过程. 时间安排: 对于时间的安排,整个小组成员每个人都有自己的看法,我就不在这里吐槽了.对于我来说,时间安排有点仓促,看书的时间是拿晚上的休息时间补过来的.看书让我将课本的概念性的知识简单的过了一遍,即补充了当初学习的不足,也恶补一下基本知识,不管对于软考,还是对于后面的继续学习都是有帮助的. 时间安排,没有什么合理与不合理.以松散的状态完成一项任务的时间是合理的

软考之路(五)---编译原理 概念篇

从组成原理到编译原理,都是相互联系的,学习的知识都是在层层推进,顺利成章的,整个软考的所有的知识都可以从计算机的发展(组成原理)--->软件的开发(软件工程)--->软件的算法设计(数据结构)-->高级语言写的系统--->在计算机上识别(编译原理)--->各个系统的背后数据的支持--->(数据库)---->---网络知识的应用---->网络基础--,可以把整个所有的软考的课本给串起来,这些都是构成现在丰富世界的必不可少的条件. 当然由于机器语言由0.1组成,

我的软考之路(五)——数据结构与算法(3)之图

图跟树一样,也是非线性结构,咋看起来有点复杂,其实它很简单.树具有层次关系,上层元素可以与下一个多个元素连接,但是只能和上层的一个元素连接.在图结构中,节点间的连接是任意的,任何一个元素都可以与其他元素连接. 图相对而言很简单,我们只介绍的图的遍历和最小生成树,现在我们开始. 遍历 1.概念 从图中某一个顶点出发,访问图中的每一个结点,并要求只能访问一次,不能重复访问. 2.方法 (1)广度优先遍历 基本思想:首先访问顶点,再访问顶点的全部未访问的邻结点,再访问邻结点的所有结点即可(类似树的层次