標籤:
一、重疊執行和先行控制
一條指令的執行過程:(1)取指令:按照指令計數器PC的內容訪問主存,取出一條指令送到指令寄存器。(2)分析指令:對指令的作業碼進行解碼,按照給定的定址方式和地址欄位形成運算元的地址,並用這個地址讀取運算元。運算元可能在主存中,也可能在通用寄存器中。(3)執行指令:按照作業碼的要求,完成指令規定的功能。
1.1 重疊執行
當有多條指令要在處理機中執行時,可以有以下三種執行方式
(1)順序執行
取指令k -> 分析指令k -> 執行指令k -> 取指令k+1 -> 分析指令k+1 -> 執行指令k+1 -> ...
執行n條指令所花的時間為
T = ∑ (t取i + t分i + t執行i)
如果取指令、分析指令和執行指令的時間相等,都是t,則
T = 3nt
(2)一次重疊執行方式
把執行第k條指令與取第k+1條指令同時進行,如果取指令、分析指令和執行指令的時間相等,都是t,則執行n條指令所花的時間為
T = (1+2n)t
(3)二次重疊執行方式
把去第k+1條指令提前到與分析第k條指令同時進行,把分析第k+1條指令與執行第k條指令同時進行,如果取指令、分析指令和執行
指令的時間相等,都是t,則執行n條指令所花的時間為
T = (2+n)t
1.2 先行控制
先行控制技術實際上就是緩衝技術和預先處理技術。緩衝技術:在工作速度不固定的兩個功能組件之間設定緩衝器,用以平滑它們的工作。預先處理技術:是指預取指令、對指令進行加工以及預取運算元等。
二、流水線的基本概念
把一個重複的過程分解為若干子過程,每個子過程由專門的功能組件來實現,將多個處理過程在時間上錯開,依次通過個功能段,這樣,每個子過程就可以與其他子過程並行進行。
2.1 流水線的時空圖
如果每個流水段的延遲時間(通過時間)均為Δts,鎖定時間為Δtl,則每功能段的處理時間Δti為:
Δti= Δts+Δtl
流水處理機的最高工作頻率為:
若每個流水段的延遲時間不等,則最高工作頻率為:
2.1 流水技術的特點
⑴ 一條流水線通常由若干個有聯絡的流水段組成。流水線中的段數也稱為 “流水深度”。⑵ 每個流水段有專門的功能組件對指令進行某種加工。⑶ 各流水段所需時間應盡量相等,以減少流水線的瓶頸影響。⑷ 流水線工作階段可分為建立(填入)、滿載和排空三個階段。 ⑸在理想情況下,當流水線充滿後,每隔Δt時間將會有一個結果流出流水線。
2.2 流水線的效能指標
(1)吞吐率
吞吐率TP是指在單位時間內流水線所完成的任務數量或輸出結果的數量。
其中n為任務數,Tk是處理完成n個任務所用的時間。
1)各段時間均相等的流水線
對於一條m段線性流水線來說,在連續輸入n個任務的理想情況下,第一個任務輸入後,經過m個單位時間從輸入端
流出,此後的n-1個單位時間中,每個單位時間完成一個任務。在這種情況下,流水線完成n個連續任務所需的總
時間為
Tm=(n+m-1) Δt
完成n個任務的實際吞吐率:
最大吞吐率
最大吞吐率就是流水線滿載時的吞吐率,因此實際吞吐率為:
2)各段時間不完全相等的流水線
△t1= △t, △t2= △t, △t3=3 △t, △t4= △t;
一般的,各段時間不等的流水線的實際吞吐率為
則最大吞吐率為
(2)加速比
加速比是指採用流水方式後的工作速度與等效的順序串列方式的工作速度之比。
對n個求解任務,若用串列方式完成工作需要時間為Tl,用m段流水線完成工作需要時間為Tm,每個功能段
的延遲時間為Δt,則流水線的加速比為:
最大加速比:
若流水線各功能段的延遲時間不等,則加速比為:
(3)效率
效率是指流水線中的各功能段的利用率。
如果各段時間相等
如果各段時間不等
(3)吞吐率、加速比和效率的關係
E=Tp·Δt=Sp/m效率是實際加速比和最大加速比之比。只有E=1時,才能達到Sp=m當Δt不變時,效率與吞吐率成正比。所以為提高效率所採用的方法,對提高吞吐率也有好處。
三、流水線的相關與衝突
3.1 一個經典的5段流水線
(1)取指令周期(IF)(2)指令解碼/讀寄存器周期(ID)(3)執行/有效地址計算周期(EX)(4)儲存空間訪問/分支完成周期(MEM)(5)寫回周期(WB)
3.2 相關
(1)資料相關
對於兩條指令i(在前)和j(在後),如果下述條件之一成立,則稱指令j與指令i資料相關:1)指令j使用指令i產生的結果。2)指令j與指令k資料相關,而指令k又與指令i資料相關。
(2)名相關
名指的是指令所訪問的寄存器或儲存空間單元的名稱。如果兩條指令使用相同的名,但是它們之間沒有資料流動,則稱這兩條指令存在名相關。1)反相關:如果指令j寫的名與指令i讀的名相同,則稱指令i和j發生了反相關,反相關指令之間的執行順序是必須嚴格遵守的,以保證i讀的值是正確的。2)輸出相關:如果指令j和指令i寫相同的名,則稱指令i和j發生了輸出相關,輸出相關指令的執行順序是不能顛倒的,以保證最後的結果是指令j寫進去的。
(3)控制相關
控制相關是指由分支指令引起的相關。一般來說,為了保證程式應有的執行順序,必須嚴格按控制相關確定的順序執行。
3.3 衝突
流水線衝突是指對於具體的流水線來說,由於相關的存在,使得指令流中的下一條指令不能再指定的刻度執行。
流水線衝突有3種類型
(1)結構衝突:因硬體資源滿足不了指令重疊執行的要求而發生的衝突。(2)資料衝突:當指令在流水線中重疊執行時,因需要用到前面指令的執行結果而發生的衝突。(3)控制衝突:流水線遇到分支指令和其他會改變PC值得指令所引起的衝突。
電腦系統結構 流水線技術-標量