版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2021-7-2213.6 3.6 向量流水技術向量流水技術(第(第3章章 續(xù))續(xù))2021-7-222 向量處理機是向量處理機是具有向量數據表示和向量指令具有向量數據表示和向量指令系統(tǒng)的處理機。系統(tǒng)的處理機。 向量處理機是解決數值計算問題的一種高性向量處理機是解決數值計算問題的一種高性能計算機。能計算機。 向量處理機屬向量處理機屬大型或巨型機大型或巨型機,也可以用微機,也可以用微機加一臺加一臺向量協(xié)處理器向量協(xié)處理器組成。組成。 向量處理機一般都采用流水線結構,向量處理機一般都采用流水線結構,通常有通常有多條并行工作的流水線。多條并行工作的流水線。 必須把要解決的問題轉化為向量運算,才能必須
2、把要解決的問題轉化為向量運算,才能發(fā)揮向量處理機的效率。發(fā)揮向量處理機的效率。2021-7-2233. 6.1 向量流水機的基本系統(tǒng)結構向量流水機的基本系統(tǒng)結構 1. 標量流水線的局限性標量流水線的局限性 處理機不具有向量數據表示,僅對標量數據進行流水處理機不具有向量數據表示,僅對標量數據進行流水處理。向量的處理通過標量循環(huán)程序完成。所以,處理。向量的處理通過標量循環(huán)程序完成。所以, (1) 流水線工作的時鐘周期不可能取得很短。流水線工作的時鐘周期不可能取得很短。 (2) 取指令及譯碼的速率受限。取指令及譯碼的速率受限。 即在一個時鐘周期內最多只能啟動一條指令,通常即在一個時鐘周期內最多只能啟
3、動一條指令,通常稱為稱為Flynn瓶頸。瓶頸。 2. 向量流水線向量流水線 處理機具有向量數據表示,可通過向量指令對向量中處理機具有向量數據表示,可通過向量指令對向量中的各元素進行流水處理。的各元素進行流水處理。2021-7-2243.6.1.1 向量流水處理的主要特點向量流水處理的主要特點 (1) 在向量操作中,每個當前結果向量元素的計在向量操作中,每個當前結果向量元素的計算與以前結果向量元素的計算是相互獨立的,算與以前結果向量元素的計算是相互獨立的,有利于發(fā)揮流水線的性能,允許向量流水線有有利于發(fā)揮流水線的性能,允許向量流水線有較深的深度。較深的深度。 (2) 一條向量指令相當于一個標量循
4、環(huán),可降低一條向量指令相當于一個標量循環(huán),可降低對指令訪問帶寬的要求,也消除了由循環(huán)轉移對指令訪問帶寬的要求,也消除了由循環(huán)轉移可能引起的控制相關??赡芤鸬目刂葡嚓P。 (3) 若向量指令所要訪問的向量元素均相鄰,則若向量指令所要訪問的向量元素均相鄰,則可利用多模塊、交叉存取的方法加快向量元素可利用多模塊、交叉存取的方法加快向量元素的存取速度,減少訪存等待時間的開銷。的存取速度,減少訪存等待時間的開銷。2021-7-225 在對相同數量的數據項進行操作時,在對相同數量的數據項進行操作時,向量操作要比一串標量指令操作更向量操作要比一串標量指令操作更快??臁?向量流水機可使訪存和有效地址計向量流水
5、機可使訪存和有效地址計算流水化。算流水化。 高檔的向量機允許多個向量操作同高檔的向量機允許多個向量操作同時進行,從而可開發(fā)對不同元素進時進行,從而可開發(fā)對不同元素進行多個向量操作的并行性。行多個向量操作的并行性。2021-7-2263.6.1.2 3.6.1.2 向量機的基本系統(tǒng)結構向量機的基本系統(tǒng)結構 向量機系統(tǒng)結構的分類向量機系統(tǒng)結構的分類 存儲器存儲器 存儲器工作方式向量機存儲器工作方式向量機 向量操作的源向量和目的向量都取自或向量操作的源向量和目的向量都取自或存放到主存中。存放到主存中。 寄存器寄存器 寄存器工作方式向量機寄存器工作方式向量機 向量操作的源向量和目的向量都取自或向量操作
6、的源向量和目的向量都取自或存放到向量寄存器中。存放到向量寄存器中。2021-7-227典型的向量機基本系統(tǒng)結構典型的向量機基本系統(tǒng)結構 向量機主要由向量機主要由標量流水部件和標量流水部件和向量流水部件向量流水部件組成,包含了組成,包含了向向量功能部件、向量取存部件、量功能部件、向量取存部件、向量寄存器或向量緩沖部件、向量寄存器或向量緩沖部件、標量寄存器、標量處理部件以標量寄存器、標量處理部件以及向量控制器及向量控制器等部件。等部件。2021-7-228向量處理機的典型結構圖向量處理機的典型結構圖2021-7-229 例:一個典型向量求解問題:例:一個典型向量求解問題: YaXY 其中其中X和和
7、Y為向量,初始值存放在存儲為向量,初始值存放在存儲器中,器中,a為標量。為標量。 采用雙精度運算時的算法:采用雙精度運算時的算法:a乘乘X后再后再加加Y。2021-7-2210 若用標量機運算,需要用標量指令對向若用標量機運算,需要用標量指令對向量中的每個元素進行一次乘、加和存儲量中的每個元素進行一次乘、加和存儲操作,并且為了實現循環(huán)操作,每次必操作,并且為了實現循環(huán)操作,每次必須要指明對須要指明對X和和Y中元素位置的下標變中元素位置的下標變量進行增量,并使操作次數每次減量進行增量,并使操作次數每次減1,以判別循環(huán)是否結束。以判別循環(huán)是否結束。 設設X和和Y向量的首地址分別存放在向量的首地址分
8、別存放在Rx和和Ry中,當向量元素長度為中,當向量元素長度為64時,用標時,用標量機處理的循環(huán)程序段為:量機處理的循環(huán)程序段為:2021-7-2211 LD F0,a ;標量;標量a裝入裝入F0 ADDI R4,Rx,#512 ;將向量元素的末地址裝;將向量元素的末地址裝 ;入;入R4中中 LOOP:LD F2,0(Rx) ;取向量元素;取向量元素X(i) MULD F2,F0,F2 ;a與與X(i)相乘相乘 LD F4,0(Ry) ;取向量元素;取向量元素Y(i) ADDD F4,F2,F4 ;aX(i)與與Y(i)相加相加 SD 0(Ry),F4 ;存結果向量元素;存結果向量元素 ADDI
9、 Rx,Rx,#8 ;增量向量元素;增量向量元素X下標下標 ADDI Ry,Ry,#8 ;增量向量元素;增量向量元素Y下標下標 SUB R20,R4,Rx ;R4RxR20,計算是,計算是 ;否到達限界值;否到達限界值 BNZ R20,LOOP ;若循環(huán)未結束,轉;若循環(huán)未結束,轉LOOP2021-7-2212 用向量機完成同樣操作:用向量機完成同樣操作: LD F0,a ;標量;標量a裝入裝入F0 LV V1,Rx ;裝入向量;裝入向量X,LV為向為向 量取指令量取指令 MULTV V2,F0,V1 ;向量;向量X與標量與標量a相乘相乘 LV V3,Ry ;裝入向量;裝入向量Y ADDV V
10、4,V2,V3 ;向量加;向量加aXY SV Ry,V4 ;存結果向量,;存結果向量,SV為為向量存指令向量存指令2021-7-2213 因為向量指令是對因為向量指令是對64個元素進行操作,個元素進行操作,且沒有對元素下標變量增量和判循環(huán)是且沒有對元素下標變量增量和判循環(huán)是否結束的指令,所以向量機只需執(zhí)行否結束的指令,所以向量機只需執(zhí)行6條指令即可完成操作,從而大大降低了條指令即可完成操作,從而大大降低了對指令帶寬的要求。對指令帶寬的要求。2021-7-2214標量機與向量機計算標量機與向量機計算YaXY的比較的比較標量機標量機向量機向量機編程方式編程方式 采用標量指令,采用標量指令,循環(huán)程序
11、循環(huán)程序采用向量采用向量指令指令指令條數指令條數96425786聯鎖頻率聯鎖頻率高高低低對指令帶對指令帶寬的要求寬的要求高高不高不高2021-7-22153.6.1.3 3.6.1.3 向量啟動時間和啟動率向量啟動時間和啟動率 一條向量指令執(zhí)行所需時間一條向量指令執(zhí)行所需時間Tvp: TvpTstnIr Tst:向量流水線的啟動時間,包括流水:向量流水線的啟動時間,包括流水線固有的延遲時間,用于設置為完成向線固有的延遲時間,用于設置為完成向量操作所需的相應參數量操作所需的相應參數(如向量長度等如向量長度等)。 n:向量中元素長度:向量中元素長度 Ir:啟動率,表示向量流水線填滿后,:啟動率,表
12、示向量流水線填滿后,每流出一個結果所需時間。每流出一個結果所需時間。2021-7-2216 例:一個向量乘法流水部件的啟動時間為例:一個向量乘法流水部件的啟動時間為l0個時鐘個時鐘周期。啟動后的啟動率為周期。啟動后的啟動率為1。對于長度為。對于長度為64的向量的向量乘法,產生每個向量元素結果所需時鐘周期數為:乘法,產生每個向量元素結果所需時鐘周期數為: 對于運行速度較慢的向量流水操作,啟動時間的對于運行速度較慢的向量流水操作,啟動時間的大小對它的影響不大,但對于啟動率為大小對它的影響不大,但對于啟動率為1的高速向的高速向量流水操作,啟動時間的增加就將使性能受到較量流水操作,啟動時間的增加就將使
13、性能受到較大影響。大影響。 16. 164641064I64Trst向量長度總的執(zhí)行時間每個結果所需時鐘周期2021-7-2217寄存器寄存器 寄存器工作方式的影響因素寄存器工作方式的影響因素 向量功能部件流水線的深度向量功能部件流水線的深度 流水線的啟動時間主要取決于功能部件流水線的流水線的啟動時間主要取決于功能部件流水線的深度。因為這是獲取第一個流水結果所需的時間。深度。因為這是獲取第一個流水結果所需的時間。 向量功能部件接收一個操作數的頻率向量功能部件接收一個操作數的頻率 流水線的啟動率主要取決于相應的向量功能部件流水線的啟動率主要取決于相應的向量功能部件接收一個操作數的頻率。當流水線處
14、于充分流水接收一個操作數的頻率。當流水線處于充分流水狀態(tài)時,就能在每個時鐘周期開始時立即對一個狀態(tài)時,就能在每個時鐘周期開始時立即對一個新操作數進行運算,從而可使啟動率達到新操作數進行運算,從而可使啟動率達到1。2021-7-22183.6.2 向量操作長度控制和向量訪問步長向量操作長度控制和向量訪問步長 1. 向量操作長度控制向量操作長度控制 實際程序中的向量長度往往并不與實際程序中的向量長度往往并不與向量機的自然向量長度相同。向量機的自然向量長度相同。 自然向量長度:向量寄存器型的向量機自然向量長度:向量寄存器型的向量機中,每個向量寄存器可存放的向量元素中,每個向量寄存器可存放的向量元素個
15、數。個數。2021-7-2219 程序中一個具體的向量操作長度在程序中一個具體的向量操作長度在編譯時經常是未知的,因為在一個代碼編譯時經常是未知的,因為在一個代碼段中可能需要不同的向量長度。段中可能需要不同的向量長度。 例如求解單精度向量循環(huán)例如求解單精度向量循環(huán)SAXPY的代的代碼段為:碼段為: for (i=0;in;i+) Yia*XiYi;2021-7-2220 可見向量操作長度依賴于可見向量操作長度依賴于n值,而這個值,而這個n值通常在編譯時無法知道,往往要在運值通常在編譯時無法知道,往往要在運行時才可確定,而且這個長度也可能是行時才可確定,而且這個長度也可能是過程的參數,因此在執(zhí)行
16、時很易改變。過程的參數,因此在執(zhí)行時很易改變。 解決方法:解決方法:采用一個向量長度寄存器,采用一個向量長度寄存器,存放某一代碼段操作的長度,由它來控存放某一代碼段操作的長度,由它來控制向量操作的長度以及向量的裝載和存制向量操作的長度以及向量的裝載和存儲。儲。2021-7-2221 在向量長度寄存器中存放的向量長度值在向量長度寄存器中存放的向量長度值不能超過向量寄存器的長度不能超過向量寄存器的長度(MVL)。 向量長度小于向量寄存器長度時,均可向量長度小于向量寄存器長度時,均可放入向量寄存器。放入向量寄存器。 向量長度大于向量寄存器長度時,需將向量長度大于向量寄存器長度時,需將向量長度按向量寄
17、存器長度分段,分段向量長度按向量寄存器長度分段,分段后的向量長度即是每次向量操作的長度,后的向量長度即是每次向量操作的長度,它必須等于或小于向量寄存器長度。它必須等于或小于向量寄存器長度。2021-7-2222 采用分段技術后,采用分段技術后, SAXPY循環(huán)可寫成如下形式:循環(huán)可寫成如下形式: low0; VLn % MVL; *找出零頭長度值找出零頭長度值 for ( j0; jn/MVL; j+) *外循環(huán)外循環(huán) for ( ilow; ilowVL;i+) *以長度以長度VL操作操作 Yia*XiYi ; *主要操作主要操作 lowlowVL ; *下一向量的開始下一向量的開始 VLM
18、VL ; *將長度值恢復成將長度值恢復成MVL ; 經分段處理后,第一段長度為經分段處理后,第一段長度為n mod MVL,而以,而以后各段的長度均為后各段的長度均為MVL。2021-7-22232. 向量訪問步長向量訪問步長 存儲器是一維線性空間,當需要在其中存放存儲器是一維線性空間,當需要在其中存放二維或多維數組時,必須將其各元素映射到二維或多維數組時,必須將其各元素映射到一維線性空間中。一維線性空間中。 以行為主的存儲方式:以行為主的存儲方式: 當按行進行元素訪問時,要訪問的元素的地當按行進行元素訪問時,要訪問的元素的地址是相鄰連續(xù)的。當按列進行元素訪問時,址是相鄰連續(xù)的。當按列進行元素
19、訪問時,要訪問的元素的地址是不連續(xù)的,需要采用要訪問的元素的地址是不連續(xù)的,需要采用向量跨步方式進行訪問。向量跨步方式進行訪問。2021-7-2224 例:元素為例:元素為100100的的ABC矩陣乘法的程序矩陣乘法的程序段為:段為: for ( i0; i100;i+) for ( j0; j100;j+) Ai,j0.0; for ( k0; k75%時,時,1億次億次/秒秒 主存系統(tǒng)主存系統(tǒng) 模模31體交叉訪問,存儲周期體交叉訪問,存儲周期400ns I/O通道通道 20個,接外圍系統(tǒng)個,接外圍系統(tǒng)2021-7-2263 (3)中央處理機結構)中央處理機結構 三部分組成:三部分組成:Re
20、gs、流水部件和指令緩沖部件、流水部件和指令緩沖部件 操作寄存器和后援寄存器操作寄存器和后援寄存器 兩組向量寄存器:兩組向量寄存器: (8x64x64b)x2 V, V 向量長度寄存器:向量長度寄存器:VL ( 7b, 128, 即最多可傳即最多可傳64對向量元素)對向量元素) 向量控制寄存器向量控制寄存器 VM(64b), VM(64b) (屏蔽寄存器,(屏蔽寄存器,用于向量的測試、歸并、壓縮和還原)用于向量的測試、歸并、壓縮和還原) 標量寄存器標量寄存器S(8x64b)和標量后援寄存器和標量后援寄存器T(64x64b) M 地址寄存器地址寄存器A(8x24b)和地址后援寄存器和地址后援寄存
21、器B(64x64b)2021-7-2264 功能部件功能部件 1818個獨立的專用功能部件個獨立的專用功能部件 一組地址部件一組地址部件- -24b24b的短整運算的短整運算 AAAA(1 1), AM, AM(3 3) 一組標量部件一組標量部件- -64b64b整數和邏輯運算整數和邏輯運算 對對S S運算運算SA SA (1 1), SS, SS左右移位左右移位(1 1), , SLg SLg (0 0),SP,SP計數計數(1 1,2 2) 二組浮點部件二組浮點部件- -向量、標量運算(分別與向量、標量運算(分別與V, VV, V接)接) FA FA (5 5), FM , FM (6 6
22、), FR, FR倒數近似值倒數近似值(6 6) 二組向量部件二組向量部件- -6464位的非浮點數向量運算(位的非浮點數向量運算(V,VV,V) VA VA (1 1), VS, VS左右移位左右移位(3 3,2 2), VLg , VLg (1 1)2021-7-2265V V寄存器與功能部件的使用寄存器與功能部件的使用向量功能部件,浮點功能部件VkVjVi向量功能部件,浮點功能部件VkVjVi2021-7-2266 指令控制部件指令控制部件 程序字計數器程序字計數器P(24b)P(24b) 指令緩沖站指令緩沖站IB(4IB(4個站個站x16x16b)x16x16b) 指令字緩沖寄存器指令
23、字緩沖寄存器BIP (16b)BIP (16b) 下一指令字寄存器下一指令字寄存器NIP (16b)NIP (16b) 現行指令字寄存器現行指令字寄存器CIP (16b)CIP (16b) 低部指令字寄存器低部指令字寄存器LIP (16b)LIP (16b) 指令流出控制部件指令流出控制部件 ICIC 4 4類向量指令格式與類向量指令格式與Cray-1Cray-1相似,但訪存流水相似,但訪存流水m=16m=162021-7-2267向量與標量性能的平衡實際的應用問題實際的應用問題中通常既有中通常既有向量計算又有又有標 量計算,而且兩類計算有一定的比例,而且兩類計算有一定的比例 向量平衡點向量平
24、衡點(vector balance point):為了使向為了使向 量硬件設備和標量硬件設備的利用率相等,量硬件設備和標量硬件設備的利用率相等, 一個程序中向量代碼所占的百分比。一個程序中向量代碼所占的百分比。 關鍵問題是:關鍵問題是:希望向量硬件和標量硬件都能 夠充分利用,不要空閑。,不要空閑。2021-7-2268例如:一個系統(tǒng)的向量運算速度為一個系統(tǒng)的向量運算速度為90Mflops, 標量運算速度為標量運算速度為10Mfolps。如果程序的。如果程序的90 是向量運算,是向量運算,10是標量運算。則向量平衡是標量運算。則向量平衡 點為點為0.9。硬件利用率最高。硬件利用率最高。 向量處理
25、機的向量平衡點向量處理機的向量平衡點必須與用戶程序的必須與用戶程序的 向量化程度相匹配。向量化程度相匹配。IBM向量計算機的設計思想向量計算機的設計思想與上述方法不同,與上述方法不同,它維持較低的向量與標量比例,定在它維持較低的向量與標量比例,定在35的的范圍之間。這種做法能夠適應通用應用問題范圍之間。這種做法能夠適應通用應用問題對標量和向量處理要求。對標量和向量處理要求。2021-7-2269機器型號Fujitsu VP400Cray ISCray 2SCray X-MPCray Y-MPHitachi S820NEC SX2向量性能Mflops標量性能Mflops向量平衡點85.09.80
26、.90151.511.20.93143.313.10.92201.617.00.92737.317.80.98424.29.50.98207.16.60.972021-7-22703.6.4.2 3.6.4.2 鏈接技術鏈接技術 鏈接特性:鏈接特性: 當相鄰兩條指令存在先寫后讀相關時,當相鄰兩條指令存在先寫后讀相關時,只要前一條指令的結果向量的第一個元只要前一條指令的結果向量的第一個元素產生并存入結果向量寄存器,就可以素產生并存入結果向量寄存器,就可以將它作為下一條指令的源操作數,啟動將它作為下一條指令的源操作數,啟動下一條指令的運算,從而將兩個或兩個下一條指令的運算,從而將兩個或兩個以上的功
27、能部件鏈接起來。以上的功能部件鏈接起來。2021-7-2271 鏈接技術:鏈接技術:當從一個流水線部件得到的當從一個流水線部件得到的結果直接送入另一個功能流水線的操作結果直接送入另一個功能流水線的操作數寄存器時所發(fā)生的連接過程。換句話數寄存器時所發(fā)生的連接過程。換句話說,中間結果不必送回存儲器或寄存器,說,中間結果不必送回存儲器或寄存器,并在向量操作完成以前就使用它。并在向量操作完成以前就使用它。 2021-7-2272 在寄存器在寄存器寄存器系統(tǒng)結構中,所寄存器系統(tǒng)結構中,所有的向量操作數在把它們送入流水有的向量操作數在把它們送入流水線之前,都要預先裝入向量寄存器線之前,都要預先裝入向量寄存
28、器中。中間和最后結果中。中間和最后結果( (流水線輸出流水線輸出) )在把它們存入主存儲器以前,也要在把它們存入主存儲器以前,也要把它們裝入向量寄存器中。把它們裝入向量寄存器中。 2021-7-2273 鏈接技術是利用向量指令間存在的鏈接技術是利用向量指令間存在的先寫后讀的數據相關性來加快向量先寫后讀的數據相關性來加快向量指令序列執(zhí)行速度的技術。指令序列執(zhí)行速度的技術。 鏈接技術的實質是標量鏈接技術的實質是標量流水定向流水定向傳傳送方法在向量寄存器中的應用。送方法在向量寄存器中的應用。2021-7-2274 當發(fā)出向量指令時,所要求的功能流水當發(fā)出向量指令時,所要求的功能流水線和操作數寄存器便
29、要預定若干個時鐘線和操作數寄存器便要預定若干個時鐘周期,其值取決于向量長度。使用同一周期,其值取決于向量長度。使用同一組功能部件或操作數寄存器的后繼向量組功能部件或操作數寄存器的后繼向量指令在預定被釋放之前是不能發(fā)出的。指令在預定被釋放之前是不能發(fā)出的。兩個或更多的向量指令如果是不相關的,兩個或更多的向量指令如果是不相關的,便可以同時使用不同功能流水線和不同便可以同時使用不同功能流水線和不同的向量寄存器。這種并發(fā)的指令能以相的向量寄存器。這種并發(fā)的指令能以相繼的時鐘周期發(fā)出。繼的時鐘周期發(fā)出。 2021-7-2275 結果寄存器可能成為后繼指令的操作數寄存結果寄存器可能成為后繼指令的操作數寄存
30、器。在器。在Cray 1中,這種技術稱為兩條流水線中,這種技術稱為兩條流水線的鏈接的鏈接(chaining)。鏈接是從流水線的內部。鏈接是從流水線的內部定向概念發(fā)展而來的。定向概念發(fā)展而來的。 鏈接允許當第一個鏈接允許當第一個結果剛剛可用時就馬上發(fā)出相繼的操作。當結果剛剛可用時就馬上發(fā)出相繼的操作。當然,所需要的功能流水線和操作數寄存器必然,所需要的功能流水線和操作數寄存器必須恰當地預定,否則,鏈接操作就不得不掛須恰當地預定,否則,鏈接操作就不得不掛起直到所需要的資源變?yōu)榭捎脼橹埂F鹬钡剿枰馁Y源變?yōu)榭捎脼橹埂?2021-7-2276功能部件和操作數寄存器的預定(沖突)功能部件和操作數寄存器
31、的預定(沖突)2021-7-2277 例:向量加和向量乘的操作例:向量加和向量乘的操作 ADDV V1,V2,V3 ;V1V2V3 MULTV V4,V1,V5 ;V4V1V5 這兩條指令間對這兩條指令間對V1向量寄存器存在先寫后讀相關,向量寄存器存在先寫后讀相關,如果使向量寄存器如果使向量寄存器V1在同一時鐘周期內,既接收在同一時鐘周期內,既接收一個功能部件送來的運算結果,又可把這一結果一個功能部件送來的運算結果,又可把這一結果作為下一個向量指令運算所需的源操作數送給另作為下一個向量指令運算所需的源操作數送給另一個功能部件,就可使這兩個部件鏈接起來進行一個功能部件,就可使這兩個部件鏈接起來進
32、行操作。通常把這種鏈接稱為超級向量操作。操作。通常把這種鏈接稱為超級向量操作。 當鏈接進入充分流水操作狀態(tài)后,在一個時鐘周當鏈接進入充分流水操作狀態(tài)后,在一個時鐘周期內就可同時獲取兩個操作結果。期內就可同時獲取兩個操作結果。2021-7-2278 例:以下例:以下4條向量指令序列鏈接在一起執(zhí)行一種復條向量指令序列鏈接在一起執(zhí)行一種復合的功能:合的功能: V0存儲器存儲器 ;讀存儲器;讀存儲器 V2V0+V1 ;向量加;向量加 V3V2A3 ;右移;右移 V5V3V4 ;求邏輯積;求邏輯積 下圖給出的圖解說明表示把存儲器讀流水線、向下圖給出的圖解說明表示把存儲器讀流水線、向量加流水線、向量移位流
33、水線和向量邏輯乘流水量加流水線、向量移位流水線和向量邏輯乘流水線鏈接成一個較長的流水線。寄存器線鏈接成一個較長的流水線。寄存器A3的內容決的內容決定移位計數值。定移位計數值。2021-7-22792021-7-2280時間特征時間特征2021-7-22812021-7-2282 例:要進行向量運算例:要進行向量運算 DA(BC) 設向量長度設向量長度64,且,且B和和C已由存儲器取至已由存儲器取至V0和和V1,則完成運算的向量指令為:則完成運算的向量指令為: LD V3,A ;V3A ADDV V2,V0,V1 ;V2V0V1 MULTV V4,V2,V3 ;V4V2V3 第一、二條指令因既無
34、向量寄存器使用沖突,也無第一、二條指令因既無向量寄存器使用沖突,也無功能部件使用沖突,因而可并行執(zhí)行。第三條指令功能部件使用沖突,因而可并行執(zhí)行。第三條指令與第一、二條指令均存在先寫后讀相關沖突,因而與第一、二條指令均存在先寫后讀相關沖突,因而可將第三條指令與第一、二條指令鏈接執(zhí)行??蓪⒌谌龡l指令與第一、二條指令鏈接執(zhí)行。2021-7-22832021-7-2284 采用并行和鏈接加速技術后,當被加工向量長度采用并行和鏈接加速技術后,當被加工向量長度為為N時,執(zhí)行所需時間為:時,執(zhí)行所需時間為: (161)(171)(N1)17N1N16拍拍 若這三條指令全部用串行方法則所需時間為:若這三條指
35、令全部用串行方法則所需時間為: (161)N1(161)N1(171)N13N22拍拍 若前兩條指令并行執(zhí)行,第三條指令串行執(zhí)行,若前兩條指令并行執(zhí)行,第三條指令串行執(zhí)行,則所需時間為:則所需時間為: (161)N1(171)N12N15拍拍 注意:由于同步的要求,數據進入和流出每個功注意:由于同步的要求,數據進入和流出每個功能部件,包括訪存都需要能部件,包括訪存都需要1拍時間。拍時間。2021-7-2285 實現鏈接的時間上的要求:實現鏈接的時間上的要求: 只有當前一指令的第一個結果分量送入結果向只有當前一指令的第一個結果分量送入結果向量寄存器的那一個時鐘周期方可鏈接量寄存器的那一個時鐘周期
36、方可鏈接,若錯過該,若錯過該時刻就無法進行鏈接,只有等前一向量指令全部時刻就無法進行鏈接,只有等前一向量指令全部執(zhí)行完畢,釋放向量寄存器資源后才能執(zhí)行后面執(zhí)行完畢,釋放向量寄存器資源后才能執(zhí)行后面指令。指令。 在上面的例子中,當一條向量指令的兩個源操作在上面的例子中,當一條向量指令的兩個源操作數分別是兩條先行指令的結果寄存器時,數分別是兩條先行指令的結果寄存器時,要求先要求先行的兩條指令產生運算結果的時間必須相等,即行的兩條指令產生運算結果的時間必須相等,即要求有關功能部件的延遲時間相等要求有關功能部件的延遲時間相等(如上例中的訪如上例中的訪存和浮點加功能部件延時均為存和浮點加功能部件延時均為
37、6個時間單位個時間單位)。 進行進行鏈接的向量指令的向量長度必須相等鏈接的向量指令的向量長度必須相等,否,否則就不可能鏈接。則就不可能鏈接。2021-7-2286 例:在例:在CRAY1機中,浮點功能部件中各功能段機中,浮點功能部件中各功能段的執(zhí)行時間為:的執(zhí)行時間為: 浮點加法:浮點加法:6拍;浮點乘法:拍;浮點乘法:7拍;求倒數:拍;求倒數:14拍;拍;存儲器存存儲器存/取:?。?拍;啟動功能部件:拍;啟動功能部件: 1拍;打入結拍;打入結果:果: 1拍。拍。 分析任務數為分析任務數為50時,下列指令段的完成時間:時,下列指令段的完成時間: V0存儲器存儲器 V3V1V2 V4V0V3 V
38、0V4V52021-7-2287 分析:分析: 與與無功能和寄存器沖突,可并行。無功能和寄存器沖突,可并行。 與與先寫后讀數據相關,可以鏈接。先寫后讀數據相關,可以鏈接。 與與有功能沖突,必須在有功能沖突,必須在與與執(zhí)行完后,才執(zhí)行完后,才能啟動能啟動,即,即只能串行工作只能串行工作 。 V0存儲器存儲器 V3V1V2 V4V0V3 V0V4V5 執(zhí)行時間:執(zhí)行時間: (161)(171)(501)(161)(501) 123拍拍并行并行鏈接鏈接串行串行2021-7-2288 例:分析在例:分析在CRAY1機中,任務數為機中,任務數為50時,下列時,下列指令段的完成時間。指令段的完成時間。 V
39、0存儲器存儲器 V1V2V3 V6V4V5 分析:三條指令均無功能沖突,可采用全并行的分析:三條指令均無功能沖突,可采用全并行的方式,指令段的完成時間為:方式,指令段的完成時間為: (171)(501)58拍拍2021-7-2289 例:分析在例:分析在CRAY1機中,任務數為機中,任務數為50時,下列時,下列指令段的完成時間,設浮點求倒數的執(zhí)行時間為指令段的完成時間,設浮點求倒數的執(zhí)行時間為14拍。拍。 V2 V0V1 V3存儲器存儲器 V4V2V3 V51/ V4 分析:分析: 與與無功能和寄存器沖突,可并行。無功能和寄存器沖突,可并行。 與與節(jié)拍不一致,節(jié)拍不一致, 不能與不能與、鏈接,
40、只能鏈接,只能串行執(zhí)行。串行執(zhí)行。 與與先寫后讀數據相關,可以鏈接。先寫后讀數據相關,可以鏈接。 執(zhí)行時間:執(zhí)行時間: (171)(501) (161)(1141)(501)131拍拍并行并行鏈接鏈接串行串行2021-7-22903.6.5 3.6.5 向量處理性能的評估參數和方法向量處理性能的評估參數和方法 衡量向量處理機的性能主要是向量衡量向量處理機的性能主要是向量指令的處理時間指令的處理時間Tvp、向量長度為無、向量長度為無窮大時的向量處理機的最大性能窮大時的向量處理機的最大性能R、半性能向量長度半性能向量長度n1/2和向量方式的工和向量方式的工作速度優(yōu)于標量串行方式工作時所作速度優(yōu)于標
41、量串行方式工作時所需的向量長度臨界值需的向量長度臨界值nv等。下面討等。下面討論這些參數。論這些參數。 2021-7-2291 在向量處理機上,執(zhí)行一條向量長度為在向量處理機上,執(zhí)行一條向量長度為n的的向量指令的時間向量指令的時間Tvp可表示為:可表示為: TvpTsTvf(n-1)Tc 其中,其中,Ts為向量流水線的建立時間,它包括為向量流水線的建立時間,它包括向量起始地址的設置、計數器加向量起始地址的設置、計數器加1,條件轉,條件轉移指令執(zhí)行等。移指令執(zhí)行等。Tvf為向量流水線的流過時為向量流水線的流過時間,它是一條指令從開始譯碼到流過流水線間,它是一條指令從開始譯碼到流過流水線得到第一個
42、結果的時間。得到第一個結果的時間。Tc為流水線為流水線“瓶頸瓶頸”段的執(zhí)行時間。段的執(zhí)行時間。1. 向量指令的處理時間向量指令的處理時間Tvp 2021-7-2292 如果不存在如果不存在“瓶頸瓶頸”流水段,每段的執(zhí)流水段,每段的執(zhí)行時間都等于一個時鐘周期,則上式也行時間都等于一個時鐘周期,則上式也可以寫成:可以寫成: Tvpse(n-1) 其中,其中,s為向量流水線建立時間所需的為向量流水線建立時間所需的時鐘周期數,時鐘周期數,e為向量流水線流過時間為向量流水線流過時間所需的時鐘周期數,所需的時鐘周期數,n為向量長度,為向量長度,為為時鐘周期。時鐘周期。 2021-7-2293向量編隊向量編
43、隊 一組向量操作的執(zhí)行時間主要取決于下面三一組向量操作的執(zhí)行時間主要取決于下面三個因素:向量的長度、向量操作之間是否存?zhèn)€因素:向量的長度、向量操作之間是否存在流水功能部件的沖突和數據的相關性。在流水功能部件的沖突和數據的相關性。 1)能在一個時鐘周期內一起開始執(zhí)行的向)能在一個時鐘周期內一起開始執(zhí)行的向量指令稱為一個編隊。(一定不存在流水功量指令稱為一個編隊。(一定不存在流水功能部件的沖突和數據的相關性能部件的沖突和數據的相關性RAW除外除外) 2)有沖突和相關的指令分在不同的編隊。)有沖突和相關的指令分在不同的編隊。 3)一個編隊的運行時間為隊中耗時最長的)一個編隊的運行時間為隊中耗時最長的
44、指令運行時間指令運行時間2021-7-2294 例例3.6.5.1:假設每種流水功能部件只有一:假設每種流水功能部件只有一個,則下面一組向量操作能分成個,則下面一組向量操作能分成4個編隊:個編隊: LV V1, Rx ;取向量;取向量x MULTSV V2,F0,V1 ;向量和標量相乘;向量和標量相乘 LV V3,Ry ;取向量;取向量Y ADDV V4,V2,V3 ;加法;加法 SV Ry,V4 ;存結果;存結果 第一條指令第一條指令LV為第一個編隊。為第一個編隊。MULTSV指令因為指令因為與第一條與第一條LV指令相關,它們不能在同一個編隊中。指令相關,它們不能在同一個編隊中。2021-7
45、-2295 MULTSV指令和第二條指令和第二條LV指令之間不存在功能部指令之間不存在功能部件沖突和數據相關,所以這兩條指令為第二個編件沖突和數據相關,所以這兩條指令為第二個編隊。隊。ADDV指令與第二條指令與第二條LV指令數據相關,所以指令數據相關,所以ADD為第三個編隊。為第三個編隊。SV指令與指令與ADDV指令數據相指令數據相關,所以它為第四個編隊。所以這一組向量操作關,所以它為第四個編隊。所以這一組向量操作劃分為以下四個編隊劃分為以下四個編隊: 1LV 2MULTSV LV 3ADDV 4SV 2021-7-2296 一個編隊計算一個元素的執(zhí)行時間記為一個編隊計算一個元素的執(zhí)行時間記為
46、Tchime,它與向量長度無關(,它與向量長度無關( 1拍)。因拍)。因此,一組由此,一組由m個編隊組成的向量操作的執(zhí)個編隊組成的向量操作的執(zhí)行時間為行時間為m個個Tchime。如果向量長度為。如果向量長度為n,則整個程序的向量操作的執(zhí)行時間為則整個程序的向量操作的執(zhí)行時間為mn個時鐘周期。上述例子中,因為整個時鐘周期。上述例子中,因為整個程序分為個程序分為4個編隊,所以要花費個編隊,所以要花費4個個Tchime。2021-7-2297 除了上述向量操作的真正執(zhí)行時間除了上述向量操作的真正執(zhí)行時間外,還需要考慮向量的啟動時間外,還需要考慮向量的啟動時間Tstart,Tstart是向量操作流水線
47、的延是向量操作流水線的延遲,它等于流水功能部件的流水段遲,它等于流水功能部件的流水段數,也即流水線的深度。它和上述數,也即流水線的深度。它和上述的向量流水線的流過時間幾乎相等。的向量流水線的流過時間幾乎相等。2021-7-2298 例例3.6.5.2 :假設一臺向量處理機中功能:假設一臺向量處理機中功能部件的啟動開銷為:取數和存數部件為部件的啟動開銷為:取數和存數部件為12個時鐘周期、乘法部件為個時鐘周期、乘法部件為7個時鐘周個時鐘周期、加法部件為期、加法部件為6個時鐘周期。則例個時鐘周期。則例6.5.1中每個編隊的開始時間、獲得第一中每個編隊的開始時間、獲得第一個結果元素的時間和獲得最后一個
48、結果個結果元素的時間和獲得最后一個結果元素的時間如下表所示。元素的時間如下表所示。 (未考慮鏈接情況)(未考慮鏈接情況)2021-7-2299 如果向量長度如果向量長度n為為64,則得到一個結果元素的平均,則得到一個結果元素的平均時間為:時間為:4+(41/64)=4.64個時鐘周期。個時鐘周期。編隊編隊開始開始t第第1個結果個結果t最后最后1個結果個結果t1. LV01212+(n-1)2. MULTSV LV11+n+112+n+1224+n+ (n-1)3. ADDV24+2n24+2n+630+2n+ (n-1)4. SV30+3n30+3n+1242+3n+ (n-1)2021-7-
49、22100程序段的執(zhí)行時間程序段的執(zhí)行時間 考慮向量長度大于向量寄存器長度時,則需考慮向量長度大于向量寄存器長度時,則需要分段開采。分段開采的開銷由執(zhí)行標量代要分段開采。分段開采的開銷由執(zhí)行標量代碼的開銷碼的開銷Tloop和每個編隊的向量啟動開銷和每個編隊的向量啟動開銷Tstart組成。所以向量長度為組成。所以向量長度為n的向量操作的向量操作(程序段)的整個執(zhí)行時間為:(程序段)的整個執(zhí)行時間為:chimestartloopnTnm)TT(MVLnT2021-7-22101 為了簡單起見,我們把為了簡單起見,我們把Tloop看作是看作是一個常數,一個常數,Cray 1機器的機器的Tloop約等
50、約等于于15。 下面我們用例子來說明下面我們用例子來說明Tn和和Tstart的計算。的計算。2021-7-22102 例例3.6.5.3:在一臺向量處理機上實:在一臺向量處理機上實現現ABs操作,其中操作,其中A和和B是長度是長度為為200的向量,的向量,s是一個標量。向量是一個標量。向量寄存器長度為寄存器長度為64。各功能部件的啟。各功能部件的啟動時間見本動時間見本PPT50。求總的執(zhí)行時。求總的執(zhí)行時間。間。2021-7-22103 解:因為向量長度超過了向量寄存器的長度,解:因為向量長度超過了向量寄存器的長度,所以要采取分段開采方法。每次循環(huán)主要由所以要采取分段開采方法。每次循環(huán)主要由下
51、面下面3條向量指令組成條向量指令組成: LV V1,Rb MULTSV V2,V1,F0 (s已預存入已預存入F0) SV Ra ,V2 3條指令相關,條指令相關,m=3; n=200 n/64=4 (取整,(取整,零頭算零頭算1組)組)2021-7-22104 Tn=4(15+Tstart)+32001 =660+4 Tstart 又又3組串行工作,組串行工作, Tstart=7(load)+7(mul)+6(store)=20 Tn=660+80=740 節(jié)拍節(jié)拍 一個結果元素的平均執(zhí)行時間一個結果元素的平均執(zhí)行時間(包括啟包括啟動開銷動開銷)為為740/200=3.7。 下面討論編隊中考慮鏈接的情況下面討論編隊中考慮鏈接的情況2021-7-22105 例例3.6.5.4:在某臺向量處理機上執(zhí)行:在某臺向量處理機上執(zhí)行DAXPY (Double-Precisio n a* X plus Y)代碼,即完成代碼,即完成YaX+Y,其中其中X和和Y是向量,最初存放在內存。是向量,最初存放在內存。a是一是一個標量。它們的向量指令如下:個標量。它們的向量指令如下: (MVL=64)LV V1, Rx ;12MULTSV V2,F0,V1 ;7 LV V3,R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度消防設備定期檢修與保養(yǎng)服務協(xié)議3篇
- 2025年度物業(yè)服務企業(yè)資產讓與擔保范本3篇
- 2024暑假兼職人員勞動合同協(xié)議6篇
- 2025場地租賃及廠房設備維護一體化服務合同范本3篇
- 2025年度能源管理服務合同節(jié)能措施與效果評估3篇
- 2024年科技產品租賃中介擔保合同模板解析3篇
- 2024版基礎設施建設安全環(huán)保合同書綱要版B版
- 2025年全球及中國旅行筆記本行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 二零二五年度深圳房地產開發(fā)商股權收購合同2篇
- 2025年度復印機設備綠色采購及回收利用合同3篇
- 人教版七年級下冊數學全冊完整版課件
- 初中生物人教七年級上冊(2023年更新) 生物圈中的綠色植物18 開花和結果
- 水電解質及酸堿平衡的業(yè)務學習
- 統(tǒng)編版一年級語文上冊 第5單元教材解讀 PPT
- CSCEC8XN-SP-安全總監(jiān)項目實操手冊
- 口腔衛(wèi)生保健知識講座班會全文PPT
- 成都市產業(yè)園區(qū)物業(yè)服務等級劃分二級標準整理版
- 最新監(jiān)督學模擬試卷及答案解析
- ASCO7000系列GROUP5控制盤使用手冊
- 污水處理廠關鍵部位施工監(jiān)理控制要點
- 財政投資評審中心工作流程
評論
0/150
提交評論