计算机中的流水线技术到底是个啥?

写在前面

流水线技术是计算机中的一种相当重要的技术。简单的说,流水线技术的出现使得计算机能够支持并行计算,能够并行执行任务。尽管流水线技术非常重要,但是很多小伙伴对流水线技术还是一知半解,甚至很多小伙伴根本不知道什么是流水线技术,今天,我们就一起来说说什么是流水线技术。

文章已收录到:

https://github.com/sunshinelyz/technology-binghe

https://gitee.com/binghe001/technology-binghe

流水线概念

流水线是指在程序执行时,多条指令重叠进行操作的一种准并行处理的实现技术。各种部件同时处理是针对不同指令而言的,它们同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。

流水线的相关参数计算包括:流水线执行时间计算、流水线吞吐率、流水线加速比、流水线效率。


在计算机中,对于指令的操作主要分为三个部分:取指、分析和执行。如下所示。


如果执行取值、分析和执行各需要1ms的话,则串行执行三条指令的时间总共需要9ms。这是因为一条执行的操作需要经过取指、分析和执行三个步骤,每个步骤需要1ms,执行一条指令的时间为3ms,则串行执行三条指令的时间为9ms。我们可以用下图来表示这个过程。

在上图的表示中,貌似执行三条指令使用9ms是没啥问题的。但是,如果我们把图形改造一下,我们就会发现相应的问题。我们使用下面的图形来表示执行三条指令的情况。


此时,我们发现,在上图执行指令操作的过程中,有很多空白的格子,而空白的格子表示在执行执行的过程中有空余的时间片资源没有利用起来。很显然,没有必要等待指令1完全执行完毕后再执行指令2,同样的,没有必要等待指令2完全执行完毕后再执行指令3。而且,我们发现按照上图执行完三条指令需要9ms时间。

此时,如果将空余的时间片利用起来,则可以使用下图来表示。

此时,在执行三条指令的过程中,取指操作对指令1执行完取指后,马上对指令2进行取指,然后又马上对指令3进行取指;分析操作同样是对指令1执行完分析后,马上对指令2进行分析,然后又马上对指令3进行分析;执行操作也是对指令1执行完毕后,马上对指令2进行执行操作,然后又马上对指令3进行执行操作。期间,将空余的时间片资源充分的利用起来了。而且,我们发现,充分利用空余的时间片后,执行三条指令的时间由原来的9ms变为现在的5ms。

从另一个角度,我们发现执行完第一条指令时,需要3ms,执行完第二条指令时,只需要在执行完第一条指令的基础上增加1ms。同样的,执行完第三条指令时,只需要在执行完第二条指令的基础上增加1ms。以后每增加一条指令,只需要增加1ms的时间便可以执行完此条指令。

这就是计算机中的流水线技术。接下来,我们就说说流水线技术的相关计算问题。

流水线计算

关于流水线计算,我们先来看一个图。

在上图中,我们可以看出,执行完第一条指令时,需要3ms时间,执行完第二条指令时,只需要在执行完第一条指令的基础上增加1ms;执行完第三条指令时,只需要在执行完第二条指令的基础上增加1ms。以此类推,执行完第n条指令时,只需要在执行第n-1条指令的基础上增加1ms。说到这里,不知道小伙伴们有没有思考这样一个问题,流水线技术的这种规律就涉及到一个非常重要的概念,叫作 流水线周期

流水线周期为执行时间最长的一段,上图中的流水线周期为1ms

流水线的计算公式为:

1条指令执行时间 + (指令条数 -1)*  流水线周期

流水线的理论公式如下所示。

(t1 + t2 + ... + tk) + (n-1) * △t

其中t1,t2...tk表示执行一条指令的每个步骤分别需要的时间,n为指令的条数,△t为流水线周期。

流水线的实践公式如下所示。

k*△t + (n-1) * △t

其中,k为执行一条指令的步骤数,n为指令的条数,△t为流水线周期。

这里,给小伙伴们举一个例子。

例如,一条执行的执行过程可以分解为取指,分析和执行三步,在取指时间t取指=3△t,分析时间分析=2△t,执行时间t执行=4△t的情况下,若按照串行方式执行,则10条指令全部执行完需要多少△t?若按照流水线方式执行,流水线周期为多少△t?使用流水线方式时,执行完10条指令需要多少△t?

(1)串行方式比较简单,就是将每条指令的执行时间进行累加。

(3△t + 2△t + 4△t) * 10 = 90△t。

(2)在执行一条指令的过程中,取指为3△t,分析为2△t,执行为4△t。根据流水线中对于流水线周期的定义:流水线周期为执行时间最长的一段,所以,流水线周期为4△t。

(3)使用流水线方式时,执行完10条指令需要的时间可以使用如下方式进行计算。

这里,我们分别计算下理论时间和实践时间。

  • 理论时间

(3△t + 2△t + 4△t) + (10-1) * 4△t = 45△t。

  • 实践时间

3 * 4△t + (10-1) * 4△t = 48△t。

超标量流水线

关于超标量流水线,我们可以使用下图来表示。

在超标量流水线中,有一个概念叫作度。度表示在超标量流水线中,由几条流水线组成。例如上面的图中,超标量流水线由两条流水线组成,所以,度为2。此时的超标量流水线可以同时进行2个操作。也就是说,可以同时执行两个取指操作,可以同时执行两个分析操作,也可以同时执行两个执行操作。

如果此时有10条指令需要执行,使用以上超标量流水线的话,只需要10 / 2 = 5 条指令的时间。

流水线吞吐率计算

流水线的吞吐率(TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。计算流水线吞吐流程的最基本的公式如下所示。

流水线最大吞吐率计算公式如下所示。

流水线的吞吐率计算问题相对来说还是比较简单的。

好了,今天就到这儿吧,我是冰河,大家有啥问题可以在下方留言,一起交流技术,一起进阶,一起牛逼~~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容