計算機體系結(jié)構(gòu)第4章_第1頁
計算機體系結(jié)構(gòu)第4章_第2頁
計算機體系結(jié)構(gòu)第4章_第3頁
計算機體系結(jié)構(gòu)第4章_第4頁
計算機體系結(jié)構(gòu)第4章_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1 1/72/72第4章 向量處理機2 2/72/724.1向量的處理方式4.2向量處理機的結(jié)構(gòu)4.3提高向量處理機性能的常用技術(shù)4.4向量處理機的性能評價 4.5向量處理機實例3 3/72/72向量由一組有序、具有相同類型和位數(shù)的元素組成。 在流水線處理機中,設(shè)置向量數(shù)據(jù)表示和相應(yīng)的向量指令,稱為向量處理機。不具有向量數(shù)據(jù)表示和相應(yīng)的向量指令的流水線處理機,稱為標量處理機。典型的向量處理機q1976年年 Cray-1超級計算機超級計算機 浮點運算速度達到了浮點運算速度達到了每秒每秒1億次億次qCDC Cyber 205,Cray Y-MP,NEC SX-X/44,F(xiàn)ujitsu VP2600

2、等等 性能達到了性能達到了每秒幾十億幾百億每秒幾十億幾百億次浮點運算次浮點運算4 4/72/724.1 向量的處理方式 以計算表達式以計算表達式 D=A(BC)為例)為例 A、B、C、D 長度為長度為 N 的向量的向量5 5/72/724.1 向量的處理方式1. 橫向(水平)處理方式向量計算是按行的方式從左到右橫向地進行。q先計算:先計算: d d1 1aa1 1(b(b1 1c c1 1) )q再計算:再計算: d d2 2aa2 2(b(b2 2c c2 2) )q q最后計算:最后計算: d dN NaaN N(b(bN Nc cN N) )組成循環(huán)程序進行處理。 q qi ibbi i

3、c ci i d di iqqi ia ai iq數(shù)據(jù)相關(guān):數(shù)據(jù)相關(guān):N N次次 功能切換:功能切換:2N2N次次不適合于向量處理機的并行處理。6 6/72/724.1 向量的處理方式 縱向 (垂直)處理方式向量計算是按列的方式從上到下縱向地進行。 q q1 1bb1 1c c1 1 d d1 1qq1 1a a1 1先計算先計算 再計算再計算 q qN NbbN Nc cN N d dN NqqN Na aN N表示成向量指令: Q QB BC C D DQ QA Aq兩條向量指令之間:兩條向量指令之間: 數(shù)據(jù)相關(guān):數(shù)據(jù)相關(guān):1 1次次 功能切換:功能切換:1 1次次7 7/72/724.1

4、 向量的處理方式 縱橫 (分組)處理方式又稱為分組處理方式。把向量分成若干組,組內(nèi)按縱向方式處理,依次處理各組。對于上述的例子,設(shè): N=SN=Sn nr rq其中其中N N為向量長度,為向量長度,S S為組數(shù),為組數(shù),n n為每組的長度,為每組的長度,r r為余為余數(shù)。數(shù)。q若余下的若余下的r r個數(shù)也作為一組處理,則共有個數(shù)也作為一組處理,則共有S+1S+1組。組。運算過程為:8 8/72/724.1 向量的處理方式q先算第先算第1 1組:組: Q Q1 1n nBB1 1n nC C1 1n n D D1 1n nQQ1 1n nA A1 1n nq再算第再算第2 2組:組: Q Q(n

5、+1)(n+1)2n2nBB(n+1)(n+1)2n2nC C(n+1)(n+1)2n2n D D(n+1)(n+1)2n2nQQ(n+1)(n+1)2n2nA A(n+1)(n+1)2n2nq依次進行下去,直到最后一組:第依次進行下去,直到最后一組:第S+1S+1組。組。q每組內(nèi)各用兩條向量指令。每組內(nèi)各用兩條向量指令。 數(shù)據(jù)相關(guān):數(shù)據(jù)相關(guān):1 1次次 功能切換:功能切換:2 2次次9 9/72/72向量處理機的結(jié)構(gòu)因具體機器不同而不同。 由所采用的向量處理方式?jīng)Q定。由所采用的向量處理方式?jīng)Q定。有兩種典型的結(jié)構(gòu)q存儲器存儲器- -存儲器型結(jié)構(gòu)存儲器型結(jié)構(gòu) 縱向處理方式采用縱向處理方式采用q寄

6、存器寄存器- -寄存器型結(jié)構(gòu)寄存器型結(jié)構(gòu) 分組處理方式采用分組處理方式采用4.2 向量處理機的結(jié)構(gòu)1010/72/724.2 向量處理機的結(jié)構(gòu)4.2.1 “存儲器-存儲器”結(jié)構(gòu) 采用縱向處理方式的向量處理機對處理機結(jié)構(gòu)的要求:存儲器存儲器結(jié)構(gòu)向量指令的源向量和目的向量都是存放在存儲器 中,運算的中間結(jié)果需要送回存儲器。 流水線運算部件的輸入和輸出端都直接(或經(jīng)過 緩沖器)與存儲器相聯(lián),從而構(gòu)成存儲器-存儲 器型操作的運算流水線。q例如:例如:STAR-100STAR-100、CYBER-205CYBER-2051111/72/724.2 向量處理機的結(jié)構(gòu)“存儲器存儲器存儲器存儲器”型操作的運算

7、流水線型操作的運算流水線 存存 儲儲 系系 統(tǒng)統(tǒng) 流水處理部件流水處理部件 緩沖器緩沖器 緩沖器緩沖器 1212/72/724.2 向量處理機的結(jié)構(gòu) 要充分發(fā)揮這種結(jié)構(gòu)的流水線效率,存儲器要不斷地提供源操作數(shù),并不斷地從運算部件接收結(jié)果。 (每拍從存儲器讀取兩個數(shù)據(jù),并向存儲器寫回一個結(jié)果)(每拍從存儲器讀取兩個數(shù)據(jù),并向存儲器寫回一個結(jié)果)對存儲器的帶寬以及存儲器與處理部件的通信帶寬提出了非常高的要求。解決方法:一般是通過采用多體交叉并行存儲器和緩沖器技術(shù)。 例如,例如,70年代初問世的年代初問世的Star 100q存儲器:存儲器:32個體個體交叉交叉q每個體的數(shù)據(jù)寬度:每個體的數(shù)據(jù)寬度:8

8、個字個字(字長(字長64位位)q最大數(shù)據(jù)流量:最大數(shù)據(jù)流量:每秒每秒2億字億字1313/72/724.2 向量處理機的結(jié)構(gòu) 在向量的分組處理方式中,對向量長度N沒有限制,但組的長度n卻是固定不變的。對處理機結(jié)構(gòu)的要求:寄存器寄存器結(jié)構(gòu)設(shè)置能快速訪問的向量寄存器,用于存放源向量、目的向量及中間結(jié)果。讓運算部件的輸入、輸出端都與向量寄存器相聯(lián),就構(gòu)成了“寄存器寄存器”型操作的運算流水線。q典型的寄存器寄存器結(jié)構(gòu)的向量處理機典型的寄存器寄存器結(jié)構(gòu)的向量處理機 美國的美國的CRAY-1CRAY-1、我國的、我國的YH-1YH-1巨型機巨型機4.2.2 “寄存器-寄存器”結(jié)構(gòu)1414/72/724.2

9、向量處理機的結(jié)構(gòu)以CRAY-1機為例q美國美國CRAYCRAY公司公司 q19761976年年q每秒每秒1 1億次浮點運算億次浮點運算 q時鐘周期:時鐘周期:12.5ns12.5ns 1. CRAY-1的基本結(jié)構(gòu)功能部件 共有共有1212條條可并行工作的可并行工作的單功能流水線單功能流水線,可分別流,可分別流水地進行地址、向量、標量的各種運算。水地進行地址、向量、標量的各種運算。1616/72/724.2 向量處理機的結(jié)構(gòu)q6 6個單功能流水部件:個單功能流水部件:進行向量運算進行向量運算 n整數(shù)加(整數(shù)加(3 3拍)拍)n邏輯運算(邏輯運算(2 2拍)拍)n移位(移位(4 4拍)拍)n浮點加

10、(浮點加(6 6拍)拍)n浮點乘(浮點乘(7 7拍)拍)n浮點迭代求倒數(shù)(浮點迭代求倒數(shù)(1414拍)拍) 括號中的數(shù)字為其流水經(jīng)過的時間,每拍為一個括號中的數(shù)字為其流水經(jīng)過的時間,每拍為一個時鐘周期,即時鐘周期,即12.5ns12.5ns。1717/72/724.2 向量處理機的結(jié)構(gòu)向量寄存組Vq由由512512個個6464位位的寄存器組成,分成的寄存器組成,分成8 8塊塊。q編號:編號:V V0 0V V7 7q每一個塊稱為一個每一個塊稱為一個向量寄存器向量寄存器,可存放一個長度,可存放一個長度 (即元素個數(shù))不超過(即元素個數(shù))不超過6464的向量。的向量。q每個向量寄存器可以每拍向功能

11、部件提供一個數(shù)據(jù)元每個向量寄存器可以每拍向功能部件提供一個數(shù)據(jù)元素,或者每拍接收一個從功能部件來的結(jié)果元素。素,或者每拍接收一個從功能部件來的結(jié)果元素。標量寄存器S和快速暫存器Tq標量寄存器有標量寄存器有8 8個個:S S0 0S S7 7 64 64位位q快速暫存器快速暫存器T T用于在標量寄存器和存儲器之間提供緩用于在標量寄存器和存儲器之間提供緩 沖。沖。 1818/72/724.2 向量處理機的結(jié)構(gòu)向量屏蔽寄存器VMq6464位位,每一位對應(yīng)于向量寄存器的一個單元。,每一位對應(yīng)于向量寄存器的一個單元。q作用:作用:用于向量的歸并、壓縮、還原和測試操作、用于向量的歸并、壓縮、還原和測試操作

12、、 對向量某些元素的單獨運算等。對向量某些元素的單獨運算等。 CRAY-1向量處理的一個顯著特點每個向量寄存器Vi都有連到6個向量功能部件的單獨總線。每個向量功能部件也都有把運算結(jié)果送回向量寄存器組的總線。 1919/72/724.2 向量處理機的結(jié)構(gòu)只要不出現(xiàn)Vi沖突和功能部件沖突,各Vi之間和各 功能部件之間都能并行工作,大大加快了向量指 令的處理。qV Vi i沖突:沖突:并行工作的各向量指令的源向量或結(jié)果向量并行工作的各向量指令的源向量或結(jié)果向量使用了相同的使用了相同的V Vi i。例如:例如:源向量相同源向量相同 V V3 3V V1 1V V2 2 V V5 5VV4 4V V1

13、1q功能部件沖突:功能部件沖突:并行工作的各向量指令要使用同一個并行工作的各向量指令要使用同一個功能部件。功能部件。例如:例如:都需使用乘法功能部件都需使用乘法功能部件 V V3 3VV1 1V V2 2 V V5 5VV4 4V V6 62020/72/724.2 向量處理機的結(jié)構(gòu) CRAY-1向量指令類型qV Vk k V Vi i op V op Vj jqV Vk k S Si i op V op Vj jqV Vk k 主存主存q主存主存 V Vi i 2121/72/72提高向量處理機性能的方法設(shè)置多個功能部件,使它們并行工作;采用鏈接技術(shù),加快一串向量指令的執(zhí)行;采用循環(huán)開采技術(shù)

14、,加快循環(huán)的處理;采用多處理機系統(tǒng),進一步提高性能。4.3 提高向量處理機性能的常用技術(shù)2222/72/724.3 提高向量處理機性能的常用技術(shù)設(shè)置多個獨立的功能部件。這些部件能并行工作,并各自按流水方式工作,從而形成了多條并行工作的運算操作流水線。例如:例如:CRAY-1CRAY-1向量處理機有向量處理機有4 4組組1212個個單功能流水部件:單功能流水部件:n向量部件:向量加,移位,邏輯運算向量部件:向量加,移位,邏輯運算n浮點部件:浮點加,浮點乘,浮點求倒數(shù)浮點部件:浮點加,浮點乘,浮點求倒數(shù)n標量部件:標量加,移位,邏輯運算,標量部件:標量加,移位,邏輯運算, 數(shù)數(shù)“1”/1”/計數(shù)計

15、數(shù)n地址運算部件:整數(shù)加,整數(shù)乘地址運算部件:整數(shù)加,整數(shù)乘4.3.1 設(shè)置多個功能部件2323/72/724.3 提高向量處理機性能的常用技術(shù)1. 兩條向量指令占用功能流水線和向量寄存器的4種情況 指令不相關(guān)例如:例如:V0V1V2 V6V4*V5q這兩條指令分別使用各自所需的流水線和向量寄存器,這兩條指令分別使用各自所需的流水線和向量寄存器,可以并行執(zhí)行。可以并行執(zhí)行。 功能部件沖突例如:例如:V3V1V2 V6V4V54.3.2 鏈接技術(shù)2424/72/724.3 提高向量處理機性能的常用技術(shù)q這兩條指令都要使用加法流水線,發(fā)生了功能部件沖這兩條指令都要使用加法流水線,發(fā)生了功能部件沖突

16、(但向量寄存器不沖突)。當?shù)谝粭l指令流出時,突(但向量寄存器不沖突)。當?shù)谝粭l指令流出時,占用加法流水線。第二條指令要等加法流水線變成空占用加法流水線。第二條指令要等加法流水線變成空閑后,才能流出。閑后,才能流出。 源寄存器沖突例如:例如:V3V1V2 V6V1*V4q這兩條向量指令的源向量之一都取自這兩條向量指令的源向量之一都取自V1。由于兩者。由于兩者的首元素下標可能不同,向量長度也可能不同,所以的首元素下標可能不同,向量長度也可能不同,所以難以由難以由V1同時提供兩條指令所需要的源向量。同時提供兩條指令所需要的源向量。q這兩條向量指令不能同時執(zhí)行。只有等第一條向量指這兩條向量指令不能同時

17、執(zhí)行。只有等第一條向量指令執(zhí)行完、釋放令執(zhí)行完、釋放V1之后,第二條向量指令才能開始之后,第二條向量指令才能開始執(zhí)行。執(zhí)行。2525/72/724.3 提高向量處理機性能的常用技術(shù)結(jié)果寄存器沖突 兩條向量指令使用了相同的結(jié)果向量寄存器。例如:例如:V4V1V2 V4V3*V5q這兩條指令都要訪問目的寄存器這兩條指令都要訪問目的寄存器V4。由于第一條指。由于第一條指令在先,所以它先占用令在先,所以它先占用V4直到運算完成,然后再流直到運算完成,然后再流出后一條指令。出后一條指令。 當前一條指令的結(jié)果寄存器是后一條指令的源寄存器、且不存在任何其他沖突時,就可以用鏈接技術(shù)來提高性能。例如:例如:V3

18、V1V2 V6V3*V42626/72/724.3 提高向量處理機性能的常用技術(shù)向量流水線鏈接:具有先寫后讀相關(guān)的兩條指令,在不出現(xiàn)功能部件沖突和源向量沖突的情況下,可以把功能部件鏈接起來進行流水處理,以達到加快執(zhí)行的目的。qCray-1向量處理的一個顯著特點向量處理的一個顯著特點 q鏈接特性的鏈接特性的實質(zhì)實質(zhì) 把流水線把流水線定向定向的思想引入到向量執(zhí)行過程的結(jié)果的思想引入到向量執(zhí)行過程的結(jié)果。2727/72/724.3 提高向量處理機性能的常用技術(shù)鏈接時,Cray-1中把向量數(shù)據(jù)元素送往向量功能部件以及把結(jié)果存入向量寄存器都需要一拍時間,從存儲器中把數(shù)據(jù)送入訪存功能部件也需要一拍時間。

19、(同步的要求)(同步的要求)2828/72/724.3 提高向量處理機性能的常用技術(shù) 例例4.1 考慮在考慮在Cray-1上利用鏈接技術(shù)執(zhí)行以下上利用鏈接技術(shù)執(zhí)行以下4條指令:條指令: V0存儲器存儲器/ 訪存取向量:訪存取向量:7拍拍 V2V0V1/ 向量加:向量加:3拍拍 V3V2A3 / 按(按(A3)左移:)左移:4拍拍 V5V3V4/ 與操作:與操作:2拍拍 畫出鏈接示意圖,并求該鏈接流水線的通過時間。如果向量長畫出鏈接示意圖,并求該鏈接流水線的通過時間。如果向量長度為度為64,則需要多少拍才能得到全部結(jié)果。,則需要多少拍才能得到全部結(jié)果。 解解 對這對這4條指令進行分析可知:它們既

20、沒有部件沖突,也沒有條指令進行分析可知:它們既沒有部件沖突,也沒有寄存器沖突,相鄰兩條指令之間都存在先寫后讀相關(guān),因而可以把寄存器沖突,相鄰兩條指令之間都存在先寫后讀相關(guān),因而可以把訪存流水線、向量加流水線、向量移位流水線以及向量邏輯運算流訪存流水線、向量加流水線、向量移位流水線以及向量邏輯運算流水線鏈接成一個較長的流水線。水線鏈接成一個較長的流水線。 1 2 3 V V0 0 1 2 4 6 1 2 3 5 a a 7 存儲器讀取流水線存儲器讀取流水線 存儲器存儲器 V V1 1 V V2 2 V V3 3 V V4 4 V V5 5 向量加向量加 c c 流水線流水線 d d d d f

21、f 1 2 3 4 左移流水線左移流水線 g g i i 向量與向量與 流水線流水線 j j j j l l Cray-1的流水線鏈接舉例的流水線鏈接舉例 3030/72/724.3 提高向量處理機性能的常用技術(shù)鏈接操作的時間圖:鏈接操作的時間圖: t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 V5-0 V5-1 V5-2 V5-3 V5-4 V5-5 V5-6 V5-7 V5-8 a b c d

22、e f g h i j k l 3131/72/724.3 提高向量處理機性能的常用技術(shù)a:存儲字到存儲字到“讀功能部件讀功能部件”的傳送時間的傳送時間 b:存儲字經(jīng)過存儲字經(jīng)過“讀功能部件讀功能部件”的通過時間的通過時間c:存儲字從存儲字從“讀功能部件讀功能部件”到到V0分量的傳送時間分量的傳送時間 d:V0和和V1中操作數(shù)到整數(shù)加功能部件的傳送時間中操作數(shù)到整數(shù)加功能部件的傳送時間e:整數(shù)加功能部件的通過時間整數(shù)加功能部件的通過時間 f:和從整數(shù)加功能部件到和從整數(shù)加功能部件到V2分量的傳送時間分量的傳送時間g:V2中的操作數(shù)分量到移位功能部件的傳送時間中的操作數(shù)分量到移位功能部件的傳送時

23、間 h:移位功能部件的通過時間移位功能部件的通過時間i:結(jié)果從移位功能部件到結(jié)果從移位功能部件到V3分量的傳送時間分量的傳送時間 j:V3和和V4中的操作數(shù)分量到邏輯部件的傳送時間中的操作數(shù)分量到邏輯部件的傳送時間k:邏輯功能部件的通過時間邏輯功能部件的通過時間 l:最后結(jié)果到最后結(jié)果到V5分量的傳送時間分量的傳送時間3232/72/724.3 提高向量處理機性能的常用技術(shù) 例例4.24.2 在在CRAY-1CRAY-1上用鏈接技術(shù)進行向量運算上用鏈接技術(shù)進行向量運算 D=AD=A(B+CB+C) 假設(shè)向量長度假設(shè)向量長度N64N64,向量元素為浮點數(shù),且向量,向量元素為浮點數(shù),且向量B B、

24、C C已存已存放在放在V V0 0和和V V1 1中。中。 畫出鏈接示意圖,并分析非鏈接執(zhí)行和鏈接執(zhí)行兩種情況下畫出鏈接示意圖,并分析非鏈接執(zhí)行和鏈接執(zhí)行兩種情況下的執(zhí)行時間。的執(zhí)行時間。 解解 用以下三條向量完成上述運算:用以下三條向量完成上述運算: V V3 3 存儲器存儲器/ / 訪存取向量訪存取向量A A V V2 2 V V0 0 V V1 1 / / 向量向量B B和向量和向量C C進行浮點加進行浮點加 V V4 4 V V2 2 V V3 3/ / 浮點乘,結(jié)果存入浮點乘,結(jié)果存入V V4 4 V4 V2 1 2 3 6 V0 V1 浮點加浮點加 1 2 3 7 V3 訪訪 存存

25、 4 6 1 2 3 5 存儲器存儲器 浮點乘浮點乘 鏈接示意圖鏈接示意圖 3434/72/724.3 提高向量處理機性能的常用技術(shù)3條指令全部用串行方法執(zhí)行,則執(zhí)行時間為: (1 16 61 1)N N11 (1 16 61 1)N N11 (1 17 71 1)N N1 = 3N 1 = 3N 22 22 (拍)(拍)前兩條指令并行執(zhí)行,然后再串行執(zhí)行第3條指令,則執(zhí)行時間為: (1 16 61 1)N N11 (1 17 71 1)N N1 1 = 2N = 2N 15 15 (拍)(拍)第1、2條向量指令并行執(zhí)行,并與第3條指令鏈接執(zhí)行。 (1 16 61 1) (1 17 71 1)

26、 (N N1 1) = N= N16 16 (拍)(拍)3535/72/724.3 提高向量處理機性能的常用技術(shù)進行向量鏈接的要求保證:無向量寄存器使用沖突和無功能部件使用沖突保證:無向量寄存器使用沖突和無功能部件使用沖突q只有在前一條指令的第一個結(jié)果元素送入結(jié)果向量只有在前一條指令的第一個結(jié)果元素送入結(jié)果向量寄存器的那一個時鐘周期才可以進行鏈接。寄存器的那一個時鐘周期才可以進行鏈接。q當一條向量指令的兩個源操作數(shù)分別是兩條先行指當一條向量指令的兩個源操作數(shù)分別是兩條先行指令的結(jié)果寄存器時,要求先行的兩條指令產(chǎn)生運算結(jié)果令的結(jié)果寄存器時,要求先行的兩條指令產(chǎn)生運算結(jié)果的時間必須相等,即要求有關(guān)

27、功能部件的通過時間相的時間必須相等,即要求有關(guān)功能部件的通過時間相等。等。q要進行鏈接執(zhí)行的向量指令的向量長度必須相等,要進行鏈接執(zhí)行的向量指令的向量長度必須相等,否則無法進行鏈接。否則無法進行鏈接。3636/72/724.3 提高向量處理機性能的常用技術(shù) 如果向量的長度大于向量寄存器的長度,該如何處理呢? 當向量的長度大于向量寄存器的長度時,必須把長向量分成長度固定的段,然后循環(huán)分段處理,每一次循環(huán)只處理一個向量段。這種技術(shù)稱為分段開采技術(shù)。q由系統(tǒng)硬件和軟件控制完成,對程序員是透明的。由系統(tǒng)硬件和軟件控制完成,對程序員是透明的。 4.3.3 分段開采技術(shù)3737/72/724.3 提高向量

28、處理機性能的常用技術(shù) 例例4.34.3 設(shè)設(shè)A A和和B B是長度為是長度為N N的向量,考慮在的向量,考慮在Cray-1Cray-1向量處理器上向量處理器上實現(xiàn)以下的循環(huán)操作:實現(xiàn)以下的循環(huán)操作: DO 10 I = 1DO 10 I = 1,N N 10 A 10 A(I I)= 5.0 = 5.0 * * B B(I I) + C+ C3838/72/724.3 提高向量處理機性能的常用技術(shù)S S1 1 5.0 5.0 ;將常數(shù);將常數(shù)5.05.0送入標量寄存器送入標量寄存器S S1 1S S2 2 C C ;將常數(shù);將常數(shù)C C送入標量寄存器送入標量寄存器S S2 2VL NVL N

29、;在;在VLVL中設(shè)置向量長度中設(shè)置向量長度N NV V0 0 B B ;從將向量;從將向量B B讀入向量寄存器讀入向量寄存器V V0 0V V1 1 S S1 1 V V0 0 ;向量;向量B B中的每個元素分別和常數(shù)中的每個元素分別和常數(shù)S S1 1相乘相乘V V2 2 S S2 2 + V+ V1 1 ;向量;向量V V1 1中的每個元素分別和常數(shù)中的每個元素分別和常數(shù)S S2 2 相加相加A VA V2 2 ;將結(jié)果向量存入;將結(jié)果向量存入A A數(shù)組數(shù)組 當當N N 64 64時,可以用以下指令序列:時,可以用以下指令序列:3939/72/724.3 提高向量處理機性能的常用技術(shù)當N

30、64時,就需要進行分段開采。q循環(huán)次數(shù)循環(huán)次數(shù)K K :q余數(shù)余數(shù)L L:q在進入循環(huán)前,先對余數(shù)個元素進行計算,然后用循在進入循環(huán)前,先對余數(shù)個元素進行計算,然后用循環(huán)的方式計算向量環(huán)的方式計算向量A的其他部分,每次循環(huán)計算的其他部分,每次循環(huán)計算64個個元素,而循環(huán)體則是由上述第元素,而循環(huán)體則是由上述第4條到第條到第7條向量指令組條向量指令組成。成。 64NK6464NNL4040/72/724.3 提高向量處理機性能的常用技術(shù) 許多新型向量處理機系統(tǒng)采用了多處理機系統(tǒng)結(jié)構(gòu)。例如:qCRAY-2CRAY-2n包含了包含了4 4個向量處理機個向量處理機n浮點運算速度最高可達浮點運算速度最高

31、可達1800MFLOPS1800MFLOPSqCRAY Y-MPCRAY Y-MP、C90C90 最多可包含最多可包含1616個向量處理機個向量處理機 4.3.4 采用多處理機系統(tǒng)4141/72/72衡量向量處理機性能的主要參數(shù) :向量指令的處理時間向量長度為無窮大時的向量處理機的最大性能半性能向量長度向量長度臨界值4.4 向量處理機的性能評價R4242/72/724.4 向量處理機的性能評價1. 一條向量指令的處理時間Tvp 執(zhí)行一條向量長度為n的向量指令所需的時間為:qTs :向量處理部件流水線的建立時間:向量處理部件流水線的建立時間 為了使處理部件流水線能開始工作(即開始流入數(shù)為了使處理

32、部件流水線能開始工作(即開始流入數(shù)據(jù))所需要的準備時間。據(jù))所需要的準備時間。 qTe :向量流水線的通過時間:向量流水線的通過時間第一對向量元素通過流水線并產(chǎn)生第一個結(jié)果所花的時間第一對向量元素通過流水線并產(chǎn)生第一個結(jié)果所花的時間 。qTc :流水線的時鐘周期時間:流水線的時鐘周期時間 4.4.1 向量指令的處理時間TvpcesvpTnTTT) 1( 4343/72/724.4 向量處理機的性能評價把上式中的參數(shù)都折算成時鐘周期個數(shù) :qs s:Ts所對應(yīng)的時鐘周期數(shù)所對應(yīng)的時鐘周期數(shù)qe: Te所對應(yīng)的時鐘周期數(shù)所對應(yīng)的時鐘周期數(shù)不考慮Ts,并令Tstart=e1 qTstart:從一條向

33、量指令開始執(zhí)行到還差一個時鐘周期從一條向量指令開始執(zhí)行到還差一個時鐘周期就產(chǎn)生第一個結(jié)果所需的時鐘周期數(shù)。可稱之為該就產(chǎn)生第一個結(jié)果所需的時鐘周期數(shù)??煞Q之為該向向量指令的啟動時間量指令的啟動時間。此后,便是每個時鐘周期流出一。此后,便是每個時鐘周期流出一個結(jié)果,共有個結(jié)果,共有n個結(jié)果。個結(jié)果。 cvpTnesT)1(cstartvpTnTT4444/72/724.4 向量處理機的性能評價 一組向量指令的處理時間對于一組向量指令而言,其執(zhí)行時間主要取決于三個因素:q向量的長度向量的長度q向量操作之間是否存在流水功能部件的使用沖突向量操作之間是否存在流水功能部件的使用沖突 q數(shù)據(jù)的相關(guān)性數(shù)據(jù)的

34、相關(guān)性把能在同一個時鐘周期內(nèi)一起開始執(zhí)行的幾條向量指令稱為一個編隊。4545/72/724.4 向量處理機的性能評價q可以看出:同一個編隊中的向量指令之間一定不可以看出:同一個編隊中的向量指令之間一定不存在流水向量功能部件的沖突和數(shù)據(jù)的沖突。存在流水向量功能部件的沖突和數(shù)據(jù)的沖突。 編隊后,這個向量指令序列的總的執(zhí)行時間為各編隊的執(zhí)行時間的和 。qT(i)vp :第:第i個編隊的執(zhí)行時間個編隊的執(zhí)行時間qm:編隊的個數(shù):編隊的個數(shù) miivpallTT1)(4646/72/724.4 向量處理機的性能評價當一個編隊是由若干條指令組成時,其執(zhí)行時間就應(yīng)該由該編隊中各指令的執(zhí)行時間的最大值來確定。

35、 T(i)start:第第i編隊中各指令的啟動時間的最大值編隊中各指令的啟動時間的最大值 該組指令總的啟動時間(時鐘周期個數(shù))該組指令總的啟動時間(時鐘周期個數(shù)) q表示成時鐘周期個數(shù)表示成時鐘周期個數(shù) Tall = Tstart + mn(拍)(拍) cstartcmiistartcmiistartmiivpallTmnTTmnTTnTTT)()()(1)(1)(1)(miistartstartTT1)(4747/72/724.4 向量處理機的性能評價 例例4.44.4 假設(shè)每種向量功能部件只有一個,假設(shè)每種向量功能部件只有一個,而且不考慮向量而且不考慮向量鏈接,鏈接,那么下面的一組向量指令

36、能分成幾個編隊?那么下面的一組向量指令能分成幾個編隊? LV V1LV V1,Rx Rx / 取向量取向量x MULTSV V2 MULTSV V2,R0R0,V1 V1 / 向量向量x和標量(和標量(R0)相乘)相乘 LV V3LV V3,Ry Ry / 取向量取向量y ADDV V4 ADDV V4,V2V2,V3 V3 / 相加,結(jié)果保存到相加,結(jié)果保存到V4中中 SV RySV Ry,V4 V4 / 存結(jié)果存結(jié)果 解:解:分為四個編隊分為四個編隊p第一編隊:第一編隊:LVLVp第二編隊:第二編隊:MULTSVMULTSV; LVLVp第三編隊:第三編隊:ADDVADDVp第四編隊:第四

37、編隊:SVSV4848/72/724.4 向量處理機的性能評價 分段開采時一組向量指令的總執(zhí)行時間 當向量長度n大于向量寄存器長度MVL時,需要分段開采。引入一些額外的處理操作(假設(shè):這些操作所引入的額外時間為(假設(shè):這些操作所引入的額外時間為Tloop個時鐘周期)個時鐘周期)p設(shè)設(shè) q:余數(shù):余數(shù)q共有共有m個編隊個編隊 對于最后一次循環(huán)來說,所需要的時間為: Tlast = Tstart +Tloop+ mq pMVLn4949/72/724.4 向量處理機的性能評價其他的每一次循環(huán)所要花費的時間為: Tstep = Tstart +Tloop+ mMVL總的執(zhí)行時間為: Tall = T

38、stepp+ Tlast=(Tstart +Tloop+ mMVL)p +(Tstart +Tloop+ mq )=(p +1)(Tstart +Tloop)+ m(MVLp+q)mnTTMVLnloopstart)(5050/72/724.4 向量處理機的性能評價 例例4.54.5 在某向量處理機上執(zhí)行在某向量處理機上執(zhí)行DAXPYDAXPY的向量指令序列,也即的向量指令序列,也即完成:完成: 其中其中X X和和Y Y是向量,最初保存在主存中,是向量,最初保存在主存中,是一個標量,已存放是一個標量,已存放在寄存器在寄存器F0F0中。它們的向量指令序列如下:中。它們的向量指令序列如下: YXa

39、YLV V1LV V1,RxRxMULTFV V2MULTFV V2,F(xiàn)0F0,V1V1LV V3LV V3,RyRyADDV V4ADDV V4,V2V2,V3V3SV V4SV V4,RyRy5151/72/724.4 向量處理機的性能評價 假設(shè)向量寄存器的長度假設(shè)向量寄存器的長度MVL=64,Tloop=15,各功能部件的啟,各功能部件的啟動時間為:動時間為: 取數(shù)和存數(shù)部件為取數(shù)和存數(shù)部件為12個時鐘周期;個時鐘周期; 乘法部件為乘法部件為7個時鐘周期;個時鐘周期; 加法部件為加法部件為6個時鐘周期。個時鐘周期。 分別對于不采用向量鏈接技術(shù)和采用鏈接技術(shù)的兩種情況,分別對于不采用向量鏈

40、接技術(shù)和采用鏈接技術(shù)的兩種情況,求完成上述向量操作的總執(zhí)行時間。求完成上述向量操作的總執(zhí)行時間。 解:解:當不采用向量鏈接技術(shù)時,當不采用向量鏈接技術(shù)時,可以把上述五條向量指令分成可以把上述五條向量指令分成4個編隊:個編隊:q第一編隊:第一編隊:LV V1LV V1,RxRx;q第二編隊:第二編隊:MULTFV V2MULTFV V2,F(xiàn)0F0,V1V1;LV V3LV V3,RyRy;q第三編隊:第三編隊:ADDV V4ADDV V4,V2V2,V3V3;q第四編隊:第四編隊:SV V4SV V4,RyRy。 Tstart=12+12+6+12,m=4 可知,對可知,對n個向量元素進行個向量

41、元素進行DAXPY表達式計算所需的時鐘周表達式計算所需的時鐘周期個數(shù)為:期個數(shù)為:nnnnmnTTMVLnTstartloopn457644)126121215(64)(5353/72/724.4 向量處理機的性能評價 采用向量鏈接技術(shù),那么上述采用向量鏈接技術(shù),那么上述5條向量指令的編隊結(jié)果如下(條向量指令的編隊結(jié)果如下(m=3) p第一編隊:第一編隊:LV V1,Rx;MULTFV V2,F0,V1;p第二編隊:第二編隊:LV V3,Ry;ADDV V4,V2,V3;p第三編隊:第三編隊: SV V4SV V4,RyRy 。 前兩個編隊中各自的兩條向量指令都可以鏈接執(zhí)行。根據(jù)鏈接的前兩個編

42、隊中各自的兩條向量指令都可以鏈接執(zhí)行。根據(jù)鏈接的含義可知:含義可知: q第一編隊啟動需要第一編隊啟動需要12+7=1912+7=19個個時鐘周期時鐘周期q第二個編隊啟動需要第二個編隊啟動需要12+6=1812+6=18個個時鐘周期時鐘周期q第三個編隊啟動仍然需要第三個編隊啟動仍然需要1212個個時鐘周期時鐘周期 5454/72/724.4 向量處理機的性能評價對對n個向量元素進行計算所需的時鐘周期數(shù)為:個向量元素進行計算所需的時鐘周期數(shù)為: nnnnmnTTMVLnTstartloopn364643)12181915(64)(5555/72/724.4 向量處理機的性能評價1. 向量處理機的峰

43、值性能 RR 表示當向量長度為無窮大時,向量處理機的最高性能,也稱為峰值性能。對于上述例題4.5向量指令序列中的操作而言,只有“MULTFV V2,F0,V1”和“ADDV V4,V2,V3”兩條浮點操作向量指令。的時鐘周期數(shù)向量指令序列執(zhí)行所需時鐘頻率算次數(shù)向量指令序列中浮點運nRlim4.4.2 最大性能R和半性能向量長度n1/25656/72/724.4 向量處理機的性能評價的時鐘周期數(shù)的時鐘周期數(shù)向量指令序列執(zhí)行所需向量指令序列執(zhí)行所需時鐘頻率時鐘頻率算次數(shù)算次數(shù)向量指令序列中浮點運向量指令序列中浮點運 nRlim 2 2 n n 200 200nlimn n6464 6464 3 3

44、 n n 2 2 n n 200 200nlim4 4 n n 100100 MFLOPS假設(shè)該向量處理機的時鐘頻率為200MHz,那么:5757/72/724.4 向量處理機的性能評價 半性能向量長度n n1/21/2半性能向量長度n n1/21/2是指向量處理機的性能為其最大性能的一半時所需的向量長度。評價向量流水線的建立時間對性能影響的重要參數(shù)。 例例4.64.6 對于例對于例4.5,假設(shè)時鐘頻率為,假設(shè)時鐘頻率為200MHz,求半性能向量,求半性能向量長度長度n1/2。 假設(shè)該向量處理機的峰值性能假設(shè)該向量處理機的峰值性能R100 MFLOPS,所以根據(jù)半所以根據(jù)半性能向量長度的定義有

45、:性能向量長度的定義有: 5858/72/724.4 向量處理機的性能評價假設(shè)假設(shè) 6464,那么有:,那么有: n n1/21/2643n1/2 2n1/2 20050 8n1/2 5n1/2 64,n1/2 12.8n1/2 132n1/2 200643n1/2n1/264 505959/72/724.4 向量處理機的性能評價 向量長度臨界值n nv v向量長度臨界值n nv v是指:對于某一計算任務(wù)而言,向量方式的處理速度優(yōu)于標量串行方式處理速度時所需的最小向量長度。對于上述DAXPY的例子p假設(shè),在標量串行工作方式假設(shè),在標量串行工作方式下實現(xiàn)下實現(xiàn)DAXPYDAXPY循環(huán)的開循環(huán)的開

46、銷為銷為1010個個時鐘周期。那么在標量串行方式下,計算時鐘周期。那么在標量串行方式下,計算DAXPYDAXPY循環(huán)所需要的時鐘周期數(shù)為:循環(huán)所需要的時鐘周期數(shù)為: T Ts s =( 10 =( 10121212127 76 612 )12 )n nv v = 59n = 59nv v6060/72/724.4 向量處理機的性能評價q在向量方式下,計算在向量方式下,計算DAXPYDAXPY循環(huán)所需要的時鐘周期數(shù)為:循環(huán)所需要的時鐘周期數(shù)為: T Tv v = 64 = 643n3nv v q根據(jù)向量長度臨界值的定義,有:根據(jù)向量長度臨界值的定義,有: T Tv v = T = Ts s 64

47、643n3nv v = 59n = 59nv v=6456= 2nv6161/72/72美國和日本生產(chǎn)的一些向量處理機的簡要信息 4.5 向量處理機實例4.5.1 具有代表性的向量處理機6262/72/72系統(tǒng)型號系統(tǒng)型號推出時間推出時間最大配置,時鐘周期,最大配置,時鐘周期,操作系統(tǒng)操作系統(tǒng)/編譯系統(tǒng)編譯系統(tǒng)特色和要點特色和要點Cray 1S1976年年有有10條流水線的單處理機,條流水線的單處理機,12.5ns,COS/CF7 2.1第一臺基于第一臺基于ECL的超級的超級計算機計算機Cray 2S/4-2561985年年256M字存儲器的字存儲器的4臺處理機,臺處理機,4.1ns,COS或

48、或UNIX/CF77 3.016K字的本地存儲器,字的本地存儲器,移植了移植了UNIX VCray X-MP 4161983年年16M字存儲器的字存儲器的4臺處理機,臺處理機,128M字字SSD,8.5ns,COS/CF77 5.0使用共享寄存器組用于使用共享寄存器組用于IPCCray Y-MP 8321988年年128M字存儲器的字存儲器的8臺處理機,臺處理機,6ns,CF77 5.0X-MP的改進型的改進型Cray Y-MP C-901991年年每臺處理機每臺處理機2條向量流水線,條向量流水線,16臺處理臺處理機,機,4.2ns,UNICOS/CF77 5.0最大的最大的Cray機器機器C

49、DC Cyber 2051982年年有有4條流水線的單處理機,條流水線的單處理機,20ns,虛擬虛擬OS/FTN200存儲器存儲器-存儲器系統(tǒng)結(jié)存儲器系統(tǒng)結(jié)構(gòu)構(gòu)4.5 向量處理機實例6363/72/724.5 向量處理機實例系統(tǒng)型號系統(tǒng)型號推出時間推出時間最大配置,時鐘周期,最大配置,時鐘周期,操作系統(tǒng)操作系統(tǒng)/編譯系統(tǒng)編譯系統(tǒng)特色和要點特色和要點ETA 10E1985年年單處理機,單處理機,10.5ns,ETAV/FTN 200Cyber 205的后繼型號的后繼型號NEC SX-X/441991年年每臺處理機每臺處理機4組流水線,組流水線,4臺處理機,臺處理機,2.9ns,F(xiàn)77SXFuji

50、tsu VP2600/101991年年5條流水線的單處理機和雙標量處理條流水線的單處理機和雙標量處理機,機,3.2ns,MSP.EX/F77 EX/VP使用可重構(gòu)微向量寄使用可重構(gòu)微向量寄存器和屏蔽存器和屏蔽Hitachi 820/801988年年512MB存儲器,存儲器,18個流水線功能部個流水線功能部件的單處理機,件的單處理機,4ns,F(xiàn)ORT 77/HAP V23-OC64個個I/O通道,最大傳通道,最大傳輸率為輸率為288MB/秒秒6464/72/724.5 向量處理機實例1. Cray Y-MP 816 1991年問世 系統(tǒng)結(jié)構(gòu)圖q可以配置可以配置1臺、臺、2臺、臺、4臺或臺或8臺處

51、理機臺處理機q8個個CPU共享中央存儲器、共享中央存儲器、I/O 子系統(tǒng)、處理機通信子系統(tǒng)、處理機通信子系統(tǒng)和實時時鐘子系統(tǒng)和實時時鐘qCPU的時鐘周期:的時鐘周期:6ns中央存儲器q分成分成256個交叉訪問的存儲體個交叉訪問的存儲體 通過每個通過每個CPU對對4個存儲器端口的交叉訪問可以個存儲器端口的交叉訪問可以實現(xiàn)對存儲器的重疊存取。實現(xiàn)對存儲器的重疊存取。 4.5.2 Cray Y-MP和C-90 CPU2CPU2 處理機之間通信處理機之間通信 實時鐘(實時鐘(64 位)位) 中央存儲器中央存儲器 V寄存器 8 個寄存器 每個 V 寄存器 有64個64位 分量寄存器 發(fā)送寄存器 加/減、

52、移位、 向量功能部件 向量部分向量部分 T 寄存器 邏輯(64 位運算) 屏蔽寄存器 (64 位) 向量長度 (8 位) 加/減、倒數(shù)、乘、 浮點功能部件 近似(64 位運算) (8 個 64 位 寄存器) S 寄存器 寄存器) (8 個 64 位 (8 個 32 位 寄存器) B 寄存器 A 寄存器 寄存器) (8 個 32 位 CPU1CPU1 加/減、移位、 標量功能部件 邏輯(32 位運算) 加/減、乘 地址功能部件 (32 位運算) 指令緩沖區(qū) (512 個 16 位 指令區(qū)) 指令輸出 交換參數(shù) 寄存器 可編程時鐘(32 位) I/O 控制 性能監(jiān)控器 狀態(tài)寄存器 控制部分控制部分 標量部分標量部分 地址部分地址部分 I/OI/O 部分部分 外部設(shè)備外部設(shè)備 CPU3CPU3 CPU4CPU4 CPU5CPU5 CPU6CPU6 CPU7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論