天天看點

【計算機系統結構】第3章 流水線技術第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的多功能流水線

【計算機系統結構】第3章 流水線技術第3章 流水線技術

靜态流水線

在同一時間内,流水線的各段隻能按同一種功能的連接配接方式工作。

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(在前)讀的名相同,則稱指令i和j發生了反相關。反相關指令之間的執行順序是必須嚴格遵守的,以保證i讀的值是正确的。

40. 輸出相關

如果指令j(在後)和指令i(在前)寫相同的名,則稱指令i和j發生了輸出相關。輸出相關指令的執行順序是不能颠倒的,以保證最後的結果是指令j寫進去的。

41. 換名技術

通過改變指令中操作數的名來消除名相關。

42. 寄存器換名

對于寄存器操作數進行換名稱為寄存器換名。這個過程既可以用編譯器靜态實作,也可以用硬體動态完成。

43. 控制相關

由分支指令引起的相關。它需要根據分支指令的執行結果來确定後續指令是否執行。

44. 流水線沖突

指對于具體的流水線來說,由于相關的存在,使得指令流中的下一條指令不能在指定的時鐘周期執行。

45. 結構沖突

因硬體資源滿足不了指令重疊執行的要求而發生的沖突。

46. 資料沖突

當相關的指令靠得足夠近時,它們在流水線中的重疊執行或者重新排序會改變指令讀/寫操作數的順序,使之不同于它們非流水實作時的順序,則發生了資料沖突。

47. 控制沖突

流水線遇到分支指令和其他會改變PC值的指令所引起的沖突。

48. 流水線氣泡

流水線中插入的暫停周期。

49. 定向技術

當流水線中出現資料沖突時,可以将計算結果從其産生的地方直接送到其他指令中需要它的地方,或所有需要它的功能單元,避免暫停。

寫後讀沖突(RAW)

考慮流水線中的兩條指令i 和j,且i在j之前進入流水線中,j的執行要用到i的計算結果,當它們在流水線中重疊執行時,j可能在i寫入其計算結果之前就先行對儲存該結果的寄存器進行讀操作,進而得到錯誤的值。

50. 寫後寫沖突(WAW)

考慮流水線中的兩條指令i和j,且i在j之前進入流水線中,j和i的目的寄存器相同,當它們在流水線中重疊執行時,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. 向量長度臨界值

對于某一計算任務而言,向量方式的處理速度優于标量串行方式處理速度時所需的最小向量長度。