2024-04-22
藏龙卧虎
00
请注意,本文编写于 213 天前,最后修改于 144 天前,其中某些信息可能已经过时。

目录

考点
流水线技术概念
处理器应用
参数计算
流水线执行时间
拓展:实践公式
流水线吞吐率
拓展:最大吞吐率
总结

考点

软考中关于计算机流水线技术出题方式一般有两种:

  1. 概念性理论知识题目;
  2. 流水线相关参数计算题目。

关注公众号“月上老狗”,发送“软件设计师”,获取历年软件设计师软考真题。

image

流水线技术概念

  • 基本概念:流水线是将一个复杂的任务分解成一系列简单的子任务,并将它们按照顺序依次执行的处理方式。在计算机中,流水线将指令执行过程划分为多个阶段,如取指令、译码、执行、访存和写回等。
  • 流水线的优势:提高指令执行速度、提高系统吞吐量、提高资源利用率等。
  • 流水线的工作原理:流水线的工作原理类似于工厂中的生产线,将一个复杂任务划分成多个简单的子任务,并在多个工作站上并行执行。

处理器应用

在处理器中,流水线技术被广泛应用于指令执行过程中:处理器会将指令执行过程分解成取指、译码、执行、访存和写回等多个阶段,并将这些阶段连接起来形成一个流水线。这样,在同一时刻,处理器可以同时执行多条指令的不同阶段,从而提高了指令执行的效率。

PS:计算机中流水线技术并不是真的并行,而是伪并行,因为取指、译码、执行三个步骤还是需要串行执行,计算机中的流水线技术只不过是在第一条指令没有执行完之前,就已经开始了第二条指令的取指、译码。

参数计算

可能涉及到的相关参数计算:

  • 流水线执行时间
  • 流水线吞吐率
  • 流水线加速比
  • 流水线效率

其中需要重点了解的参数是 流水线执行时间流水线吞吐率

流水线执行时间

将指令的执行过程,抽象为空图,大概是这个样子:

时间12345678
取指c1c2c3c·n
译码c1c2c3c·n
执行c1c2c3c·n
其他c1c2c3c·n

上面的时空图我们将一条指令的执行过程分成了四个步骤,根据时空图可以推导出流水线执行 n 条指令的理论执行时间是:一条指令的耗时 + (n-1)*流水线周期。以上面的时空图为例,可以推出理论公式:(t1+t2+t3+t4)+(n1)Δt(t1+t2+t3+t4) + (n-1) * Δt

其中:t1+t2+t3+t4 分别是一条指令对应的取指、译码、执行、其他所需时间;Δt是流水线周期。

流水线周期:由时空图可知,一条指令的结束时间和上一条指令的结束时间中间有个差值,也就是 c2 的结束时间和 c1 的结束时间的差值。为了便于计算,我们假设所有指令的耗时相同,将最长耗时的步骤作为两条指令结束时间的差值,然后假设所有指令的结束时间差值都是一样的,将其称为 流水线周期

  • 例题

问:一条指令的执行过程分为三部分:取指、译码、执行,他们分别耗时:3s、3s、4s;采用流水线方式执行100条指令的总耗时是多少?这条流水线的流水线周期是多少?

解题思路:指令执行分为三步,最长的一步耗时为 4s,一般将最长的耗时看作流水线周期,所以流水线周期是 4s,然后代入公式可以计算出 N 条指令的总耗时。

总耗时 = (3 + 3 + 4) + (100 -1) * 4 = 406s
流水线周期 = 4s

拓展:实践公式

关于计算流水线执行时间的题目,我们一般才用上面的公式就足够了,但可能有时会发现算出来的结果并不是正确答案,这时可以使用实践公式计算,看看有没有正确答案。

将上面的理论公式整理一下,设一条指令会分为 K 个步骤执行,则公式可写为:

(t1+t2++tK)+(n1)Δt(t1+t2+……+tK) + (n-1) * Δt

实践公式是将所有步骤的执行时间扩大,增加容错(冗余)时间,认为每个步骤的实际执行时间都是最长步骤的时间(流水线周期),所以可以将公式改写为:

KΔt+(n1)ΔtKΔt + (n-1) * Δt,提公因式得:(K+n1)Δt(K + n-1) * Δt

流水线吞吐率

流水线吞吐率是衡量流水线性能的重要指标之一,它表示单位时间内流水线所能处理的指令数目,通常以每时钟周期执行的指令数目来衡量。流水线吞吐率越高,表示流水线能够更快地处理指令,从而提高了系统的性能和效率。

采用小学知识推导出计算公式:

吞吐率 = 吞吐量 / 吞吐耗时

所以根据上面的流水线执行时间公式(实践公式!!!),可得到吞吐率公式为:

n(K+n1)Δt\frac{n}{(K + n-1) * Δt}

其中 n 是指令条数。

拓展:最大吞吐率

采用高中知识,将 n趋近于无穷大,则 K1 可以忽略不记,得到新公式:

nnΔt\frac{n}{nΔt} 约分可得:1Δt\frac{1}{Δt}

总结

  1. 掌握流水线概念和作用;
  2. 理解流水线技术在处理器中的应用逻辑(时空图);
  3. 会计算流水线执行时间(理论公式、实践公式)、吞吐率、最大吞吐率。
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!