软考知识点6:流水线技术
## 考点 软考中关于计算机流水线技术出题方式一般有两种: 1. 概念性理论知识题目; 2. 流水线
渲染中...
## 考点
软考中关于计算机流水线技术出题方式一般有两种:
1. 概念性理论知识题目;
2. 流水线相关参数计算题目。
> 关注公众号“**月上老狗**”,发送“**软件设计师**”,获取历年软件设计师软考真题。
>
> 
<!-- more -->
## 流水线技术概念
- **基本概念**:流水线是将一个复杂的任务分解成一系列简单的子任务,并将它们按照顺序依次执行的处理方式。在计算机中,流水线将指令执行过程划分为多个阶段,如取指令、译码、执行、访存和写回等。
- **流水线的优势**:提高指令执行速度、提高系统吞吐量、提高资源利用率等。
- **流水线的工作原理**:流水线的工作原理类似于工厂中的生产线,将一个复杂任务划分成多个简单的子任务,并在多个工作站上并行执行。
### 处理器应用
在处理器中,流水线技术被广泛应用于指令执行过程中:处理器会将指令执行过程分解成取指、译码、执行、访存和写回等多个阶段,并将这些阶段连接起来形成一个流水线。这样,在同一时刻,处理器可以同时执行多条指令的不同阶段,从而提高了指令执行的效率。
PS:计算机中流水线技术并不是真的并行,而是伪并行,因为取指、译码、执行三个步骤还是需要串行执行,计算机中的流水线技术只不过是在第一条指令没有执行完之前,就已经开始了第二条指令的取指、译码。
## 参数计算
可能涉及到的相关参数计算:
- 流水线执行时间
- 流水线吞吐率
- 流水线加速比
- 流水线效率
其中需要重点了解的参数是 `流水线执行时间` 和 `流水线吞吐率` 。
### 流水线执行时间
将指令的执行过程,抽象为空图,大概是这个样子:
|时间|1|2|3|4|5|6|7|8|
|--|-|-|-|-|-|-|-|-|
|取指|c1|c2|c3|…|c·n||||
|译码||c1|c2|c3|…|c·n|||
|执行|||c1|c2|c3|…|c·n||
|其他||||c1|c2|c3|…|c·n||
上面的时空图我们将一条指令的执行过程分成了四个步骤,根据时空图可以推导出流水线执行 `n` 条指令的理论执行时间是:`一条指令的耗时` + `(n-1)*流水线周期`。以上面的时空图为例,可以推出理论公式:$$(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) + (n-1) * Δt$$
实践公式是将所有步骤的执行时间扩大,增加容错(冗余)时间,认为每个步骤的实际执行时间都是最长步骤的时间(流水线周期),所以可以将公式改写为:
> $$KΔt + (n-1) * Δt$$,提公因式得:$$(K + n-1) * Δt$$
### 流水线吞吐率
流水线吞吐率是衡量流水线性能的重要指标之一,它表示单位时间内流水线所能处理的指令数目,通常以每时钟周期执行的指令数目来衡量。流水线吞吐率越高,表示流水线能够更快地处理指令,从而提高了系统的性能和效率。
采用小学知识推导出计算公式:
> 吞吐率 = 吞吐量 / 吞吐耗时
所以根据上面的流水线执行时间公式(`实践公式!!!`),可得到吞吐率公式为:
>$$\frac{n}{(K + n-1) * Δt}$$
其中 `n` 是指令条数。
#### 拓展:最大吞吐率
采用高中知识,将 `n`趋近于无穷大,则 `K` 和 `1` 可以忽略不记,得到新公式:
>$$\frac{n}{nΔt}$$ 约分可得:$$\frac{1}{Δt}$$
## 总结
1. 掌握流水线概念和作用;
2. 理解流水线技术在处理器中的应用逻辑(时空图);
3. 会计算流水线执行时间(理论公式、实践公式)、吞吐率、最大吞吐率。END
评论
登录后查看和发表评论
前往登录