9 计算机组成原理第五章 中央处理器 指令流水线
文章目錄
- 1 指令流水線基本概念性能指標
- 1.1 指令流水的定義
- 1.1.1 指令分法
- 1.1.2 指令執行時間
- 1.2 流水線的表示方法
- 1.3 流水線的性能指標
- 2 指令流水線影響因素分類
- 2.1 機器周期的設置
- 2.2 影響流水線的因素
- 2.2.1 數據相關(數據沖突)三種類型
- 2.2.2 流水線影響因素小結
- 2.3 流水線的分類
- 2.4 流水線的多發技術
- 2.5 指令流水線小結
1 指令流水線基本概念性能指標
1.1 指令流水的定義
1.1.1 指令分法
一條指令的執行過程可以分成多個階段(或過程)。
根據計算機的不同,具體的分法也不同。
- 取指:根據PC內容訪問主存儲器,取出一條指令送到IR中。
- 分析:對指令操作碼進行譯碼,按照給定的尋址方式和地址字段中的內容形成操作數的有效地址EA,并從有效地址EA中取出操作數。
- 執行:根據操作碼字段,完成指令規定的功能,即把運算結果寫到通用寄存器或主存中。
以上分法特點是:每個階段用到的硬件不一樣。
1.1.2 指令執行時間
設取指、分析、執行3個階段的時間都相等,用t表示,按以下幾種執行方式分析n條指令的執行時間:
傳統馮·諾依曼機采用順序執行方式,又稱串行執行方式。
優點:控制簡單,硬件代價小。
缺點:執行指令的速度較慢,在任何時刻,處理機中只有一條指令在執行,各功能部件的利用率很低。
優點:程序的執行時間縮短了1/3,各功能部件的利用率明顯提高。
缺點:需要付出硬件上較大開銷的代價,控制過程也比順序執行復雜了。
與順序執行方式相比,指令的執行時間縮短近2/3。這是一種理想的指令執行方式,在正常情況下,處理機中同時有3條指令在執行。
注:也可以把每條指令的執行過程分成4個或5個階段,分成5個階段是比較常見的做法。
1.2 流水線的表示方法
不同的階段占用不同的資源,有幾個階段,縱坐標就有幾個位置
1.3 流水線的性能指標
(1)吞吐率
(2)加速比
(3)效率
- 吞吐率是指在單位時間內流水線所完成的任務數量,或是輸出結果的數量。
- 設任務數為n;處理完成n個任務所用的時間為Tk
- 則計算流水線吞吐率(TP)的最基本的公式為TP=n/Tk
理想情況下,流水線的時空圖如下:
理想情況:
各階段花費時間相同
每個階段結束后能立即進入下一階段
一條指令的執行分為k個階段,每個階段耗時Δt,一般取Δt=一個時鐘周期
Tk=(k+n-1)Δt
第一條指令kΔt時間結束,其余n-1條指令每隔Δt時間執行
流水線的實際吞吐率為TP=n /(k+n-1)Δt
當連續輸入的任務n→oo時,得最大吞吐率為TPmax=1/Δt
- 第一條指令執行的時間→裝入時間
- 最后一條指令從輸入到執行完成的時間→排空時間
- 裝入時間和排空時間中間的那塊時間,流水線是最理想的狀態,每一個時刻,每個功能部件都被占用,并且可以保證每隔Δt時間就有一個任務被提交
- 加速比表示完成同樣一批任務,不使用流水線所用的時間與使用流水線所用的時間之比。
設 To 表示不使用流水線時的執行時間,即順序執行所用的時間;
Tk 表示使用流水線時的執行時間
則計算流水線加速比(S)的基本公式為S=To / Tk
單獨完成一個任務耗時為kΔt,則順序完成n個任務耗時To=nkΔt
Tk=(k+n-1)Δt
實際加速比為S=knΔt/(k+n-1)Δt =kn/ k+n-1
當連續輸入的任務n→oo時,最大加速比為Smax=k。
表示一個充分流動的流水線,它的工作能力是原來不使用流水線的k倍
- 流水線的設備利用率稱為流水線的效率。
- 在時空圖上,流水線的效率定義為完成n個任務占用的時空區有效面積與n個任務所用的時間與k個流水段所圍成的時空區總面積之比。
效率轉化為:順序完成n個任務耗時To=nkΔt/k倍使用流水線的時間
- 效率=紅/藍 表示使用的設備占所有總設備的比率
總=長TkX寬k
當連續輸入的任務n→oo時,最高效率為Emax=1。
2 指令流水線影響因素分類
2.1 機器周期的設置
為方便流水線的設計,將每個階段的耗時取成一樣,以最長耗時為準。
即此處應將機器周期設置為100ns。
流水線每一個功能段部件后面都要有一個緩沖寄存器,或稱為鎖存器,其作用是保存本流水段的執行結果,提供給下一流水段使用。
設置鎖存器的目的:設計流水線時,在這條指令處于當前階段時,另一條指令是在用下一階段的資源,如果這條指令這一階段數據提前流入下一階段,會破壞當前指令的指令
2.2 影響流水線的因素
(1)結構相關(資源沖突)
(2)數據相關(數據沖突)
(3)控制相關(控制沖突)
由于多條指令在同一時刻爭用同一資源而形成的沖突稱為結構相關。
解決辦法:
數據相關指在一個程序中,存在必須等前一條指令執行完才能執行后一條指令的情況,則這兩條指令即為數據相關。
解決辦法:
數據相關(數據沖突)例題:
假設某指令流水線采用“按序發射(即不能把后面的指令移到前面執行,如果發生沖突,只能等待),按序完成”方式,沒有采用轉發技術(也叫數據旁路技術)處理數據相關,并且同一寄存器的讀和寫操作不能在同一個時鐘周期內進行。若高級語言程序中某賦值語句為x=a+b,x、a和b均為int型變量,它們的存儲單元地址分別表示為[x]、[a]和[b]。該語句對應的指令序列及其在指令流中的執行過程如下圖所示。
I1 I2 I3 I4指令表示含義:
解答:I3與I1和I2存在數據相關,I4和I3存在數據相關
說明:對于相關的指令而言,只有等到相關的數據寫回之后,才可以開始這條指令的譯碼,取指有序進行,取指結束發現相關,是譯碼階段被延遲
2.2.1 數據相關(數據沖突)三種類型
數據的基本操作:讀(R)、寫(W)
沖突的基本類型:RAW(A代表after,倒過來念,寫后讀)、WAR(讀后寫)、WAW(寫后寫)
注:“按序發射,按序完成”時,只可能出現RAW相關。
當流水線遇到轉移指令和其他改變PC值的指令而造成斷流時,會引起控制相關。
解決辦法:
2.2.2 流水線影響因素小結
2.3 流水線的分類
- 根據流水線使用的級別的不同,流水線可分為部件功能級流水線、處理機級流水線和處理機間流水線。
- 部件功能級流水就是將復雜的算術邏輯運算組成流水線工作方式。例如,可將浮點加法操作分成求階差、對階、尾數相加以及結果規格化等4個子過程。
- 處理機級流水是把一條指令解釋過程分成多個子過程,如前面提到的取指、譯碼、執行、訪存及寫回5個子過程。
- 處理機間流水是一種宏流水,其中每一個處理機完成某一專門任務,各個處理機所得到的結果需存放在與下一個處理機所共享的存儲器中。
- 按流水線可以完成的功能、流水線可分為單功能流水線和多功能流水線。
- 單功能流水線指只能實現一種固定的專門功能的流水線;
- 多功能流水線指通過各段間的不同連接方式可以同時或不同時地實現多種功能的流水線。
- 按同一時間內各段之間的連接方式,流水線可分為靜態流水線和動態流水線。
- 靜態流水線指在同一時間內,流水線的各段只能按同一種功能的連接方式工作。
- 動態流水線指在同一時間內,當某些段正在實現某種運算時,另一些段卻正在進行另一種運算。這樣對提高流水線的效率很有好處,但會使流水線控制變得很復雜。
4.線性流水線和非線性流水線
- 按流水線的各個功能段之間是否有反饋信號,流永線可分為線性流水線與非線性流水線。
- 線性流水線中,從輸入到輸出,每個功能段只允許經過一次,不存在反饋回路。
- 非線性流水線存在反饋回路,從輸入到輸出過程中,某些功能段將數次通過流水線,這種流水線適合進行線性遞歸的運算。
2.4 流水線的多發技術
每個時鐘周期內可并發多條獨立指令
要配置多個功能部件
不能調整指令的執行順序
通過編譯優化技術,把可并行執行的指令搭配起來
在一個時鐘周期內再分段(3段)
在一個時鐘周期內一個功能部件使用多次(3次)
不能調整指令的執行順序
靠編譯程序解決優化問題
超流水技術特點:流水線速度是原來速度的3倍
由編譯程序挖掘出指令間潛在的并行性,
將多條能并行操作的指令組合成一條
具有多個操作碼字段的超長指令(可達幾百位)
2.5 指令流水線小結
總結
以上是生活随笔為你收集整理的9 计算机组成原理第五章 中央处理器 指令流水线的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 毕业设计-人脸表情识别系统、人工智能
- 下一篇: 【大数据学习-hadoop1】大数据如何