【計算機系統結構】第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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章