【计算机系统结构】第3章 流水线技术

 

第3章 流水线技术

 

1.   一次重叠执行方式

把执行第k条指令与取第k+l条指令同时进行。

 

2.   二次重叠执行方式

为了进一步提高执行速度,可以增加指令重叠执行的程度。把取第k+l条指令提前到与分析第k条指令同时进行,把分析第k+l条指令与执行第k条指令同时进行。

 

3.   哈佛结构

程序空间和数据空间相互独立,因而具有独立的指令总线和数据总线的系统结构。

 

4.   先行控制技术

缓冲技术和预处理技术的结合。

 

5.   缓冲技术

在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作。

 

6.   预处理技术

指预取指令、对指令进行加工以及预取操作数等。

 

7.   流水线技术

将一个重复的时序过程分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其他子过程同时执行。

 

8.   时(间)空(间)图

用来描述流水线的工作,横座标表示时间,纵座标代表流水线的各段。

 

9.   流水线的深度

流水线的段数。

 

10. 通过时间

流水线中第一个任务流出结果所需的时间。

 

11. 单功能流水线

只能完成一种固定功能的流水线。

 

12. 功能流水线

流水线的各段可以进行不同的连接,从而使流水线在不同的时间,或者在同一时间完成不同的功能。

 

 

13. TI ASC的多功能流水线

静态流水线

在同一时间内,流水线的各段只能按同一种功能的连接方式工作。

 

14. 动态流水线

在同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算。

 

15.    部件级流水线(运算操作流水线)

把处理机的算术逻辑部件分段,以便为各种数据类型进行流水操作。

 

16. 处理机级流水线(指令流水线)

把解释指令的过程按照流水方式处理。

 

17. 处理机间流水线(宏流水线)

由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。

 

18. 标量流水处理机

不具有向量数据表示,仅对标量数据进行流水处理的处理机。

 

19. 向量流水处理机

具有向量数据表示,并通过向量指令对向量的各元素进行处理的流水处理机。

 

20. 线性流水线

流水线的各段串行连接,没有反馈回路。

 

21. 非线性流水线

流水线中除有串行连接的通路外,还有反馈回路。

 

22. 非线性流水线的调度

在非线性流水线中,确定什么时候向流水线引进新的任务,才能使该任务不会与先前进入流水线的任务发生冲突——争用流水段。

 

23. 顺序流水线

流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。每一个任务在流水线的各段中是一个跟着一个顺序流动的。

 

24. 乱序流水线

流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成(从输出端流出)。又称为无序流水线、错序流水线、异步流水线。

 

25. 吞吐率

在单位时间内流水线所完成的任务数或输出结果的数量。

 

26. 最大吞吐率

流水线在连续流动达到稳定状态后所得到的吞吐率。

27. 流水线的瓶颈

流水线中最慢的一段。

 

28. 消除瓶颈段的两种方法

细分瓶颈段、重复设置瓶颈段

 

29. 加速比

流水线的速度与等功能的非流水线的速度之比。

 

30. 效率

流水线的设备利用率。

 

31. 排空时间

流水线中最后一个任务通过流水线所需的时间。

 

32. 流水寄存器建立时间

在触发写操作的时钟信号到达之前,寄存器输入必须保持稳定的时间。

 

33. 流水寄存器传输延迟

时钟信号到达后到寄存器输出可用的时间。

 

34. 时钟偏移开销

流水线中,时钟到达各流水寄存器的最大差值时间(时钟到达各流水寄存器的时间不是完全相同)。

35. 相关

指两条指令之间存在某种依赖关系。确定程序中指令之间存在什么样的相关,对于充分发挥流水线的效率有重要的意义。

 

36. 数据相关

对于两条指令i(在前)和j(在后),如果下述条件之一成立,则称指令j与指令i数据相关:

1)指令j使用指令i产生的结果;

(2)指令j与指令k数据相关,而指令k又与指令i数据相关。

 

37. 名

指指令所访问的寄存器或存储器单元的名称。

 

38. 名相关

如果两条指令使用相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。

 

39. 反相关

如果指令j(在后)写的名与指令i(在前)读的名相同,则称指令ij发生了反相关。反相关指令之间的执行顺序是必须严格遵守的,以保证i读的值是正确的。

 

40. 输出相关

如果指令j(在后)和指令i(在前)写相同的名,则称指令ij发生了输出相关。输出相关指令的执行顺序是不能颠倒的,以保证最后的结果是指令j写进去的。

 

41. 换名技术

通过改变指令中操作数的名来消除名相关。

 

42. 寄存器换名

对于寄存器操作数进行换名称为寄存器换名。这个过程既可以用编译器静态实现,也可以用硬件动态完成。

 

43. 控制相关

由分支指令引起的相关。它需要根据分支指令的执行结果来确定后续指令是否执行。

 

44. 流水线冲突

指对于具体的流水线来说,由于相关的存在,使得指令流中的下一条指令不能在指定的时钟周期执行。

 

45. 结构冲突

因硬件资源满足不了指令重叠执行的要求而发生的冲突。

 

46. 数据冲突

当相关的指令靠得足够近时,它们在流水线中的重叠执行或者重新排序会改变指令读/写操作数的顺序,使之不同于它们非流水实现时的顺序,则发生了数据冲突。

47. 控制冲突

流水线遇到分支指令和其他会改变PC值的指令所引起的冲突。

 

48. 流水线气泡

流水线中插入的暂停周期。

 

49. 定向技术

当流水线中出现数据冲突时,可以将计算结果从其产生的地方直接送到其他指令中需要它的地方,或所有需要它的功能单元,避免暂停。

 

写后读冲突(RAW)

考虑流水线中的两条指令ij,且ij之前进入流水线中,j的执行要用到i的计算结果,当它们在流水线中重叠执行时,j可能在i写入其计算结果之前就先行对保存该结果的寄存器进行读操作,从而得到错误的值。

 

50. 写后写冲突(WAW)

考虑流水线中的两条指令ij,且ij之前进入流水线中,ji的目的寄存器相同,当它们在流水线中重叠执行时,j可能在i写入其计算结果之前就先行对该结果寄存器进行写操作,从而导致写入顺序错误,在目的寄存器中留下的是i写入的值,而不是j写入的值。

 

51. 读后写冲突(WAR)

考虑流水线中的两条指令i 和j,且i在j之前进入流水线中,j可能在i读取某个源寄存器的内容之前就先对该寄存器进行写操作,导致i后来读取到的值是错误的。

 

52. 流水线调度或指令调度

当流水线中出现冲突时,编译器通过重新排列代码的顺序来消除流水线中的暂停,这种技术称为流水线调度。

 

53. 冻结或排空流水线

在流水线中,处理分支最简单的方法,保持或清除流水线在分支指令之后读入的任何指令,直到知道分支指令的目标地址以及分支转移是否成功为止。

 

54. 分支延迟

由分支指令引起的延迟。

 

55. 预测分支失败的方法

当流水线译码到一条分支指令时,流水线继续取指令,并允许该分支指令后的指令继续在流水线中流动。当流水线确定分支转移成功与否以及分支的目标地址之后,如果分支转移成功,流水线必须将在分支指令之后取出的所有指令转化为空操作,并在分支的目标地址处重新取出有效的指令;如果分支转移失败,那么可以将分支指令看作是一条普通指令,流水线正常流动,无需将在分支指令之后取出的所有指令转化为空操作。

 

56. 预测分支成功的方法

一旦流水线译码到一条指令是分支指令,且完成了分支目标地址的计算,我们就假设分支转移成功,并开始在分支目标地址处取指令执行。

 

57. “延迟分支”方法

其主要思想是从逻辑上“延长”分支指令的执行时间。设延迟长度为n的分支指令后面有n个分支延迟槽,选择n条有效和有用的指令放入分支延迟槽中,无论分支成功与否,流水线都会执行这些指令。处于分支延迟槽中的指令“掩盖”了流水线原来必须插入的暂停周期。

 

58. 水平(横向)处理方式

在横向处理方式中,向量计算是按行的方式从左到右横向地进行。若向量长度为N,则水平处理方式相当于执行N次循环。若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。

 

59. 垂直(纵向)处理方式

将整个向量按相同的运算处理完毕之后,再去执行其他运算。

 

60. 存储器-存储器型操作的运算流水线

向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成MM型的运算流水线。

 

61. 分组(纵横)处理方式

把长度为N的向量分为若干组,每组长度为n,组内按纵向方式处理,依次处理各组,组数为「N/n」,适合流水处理。

 

62. 寄存器-寄存器型操作的运算流水线

可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成RR型运算流水线。

 

63. Vi冲突

并行工作的各向量指令的源向量或结果向量的Vi有相同的。

 

64. 功能部件冲突

向量功能部件冲突指的是同一个向量功能部件被一条以上的并行工作向量指令所使用。

 

65. 链接技术

两条向量指令出现“写后读”相关时,若它们不存在功能部件冲突和向量寄存器(源或目的)冲突,就有可能把它们所用的功能部件头尾相接,形成一条链接流水线,进行流水处理。

 

66. 链接流水线的流水时间

在链接流水线中,从第一个操作数开始流动到第一个结果产生并存入向量寄存器所需的时间。

 

67. 向量循环或分段开采技术

当向量的长度大于向量寄存器的长度时,就必须把长向量分成固定长度的段,然后循环分段处理,一次循环只处理一个向量段。

 

68. 向量处理机的峰值性能R¥:

当向量长度为无穷大时,向量处理机的最高性能,也称为峰值性能。

 

69. 半性能向量长度

向量处理机的运行性能达到其峰值性能的一半时所必须满足的向量长度。

 

70. 向量长度临界值

对于某一计算任务而言,向量方式的处理速度优于标量串行方式处理速度时所需的最小向量长度。


发布了45 篇原创文章 · 获赞 89 · 访问量 6万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章