那曲檬骨新材料有限公司

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>電腦硬件>臺式機>

向量處理機結(jié)構(gòu)原理教程

2010年04月13日 16:12 www.qldv.cn 作者:佚名 用戶評論(0
關(guān)鍵字:向量處理機(5362)

向量處理機結(jié)構(gòu)原理教程

學(xué)習(xí)目標(biāo):???

?? ?理解向量的三種處理方式及其特點;

??? 掌握CRAY-I的向量處理;

??? 掌握鏈接技術(shù)的基本思想;

??? 掌握鏈接流水線示意圖的畫法及性能計算。

??? 正文:

??? 3.5向量處理機

??? 3.5.1向量處理方式和向量處理機

??? 這里,舉一個簡單的例子來說明向量處理方式。考慮以下向量計算:

??? D = A *(B + C)

??? 其中A、B、C、D是長度為 N 的向量。

??? 水平處理方式也就是逐個求d[i]的方式,為此,先計算:d[1] = a[1]*(b[1] + c[1]);再計算:d[2] = a[2]*(b[2] + c[2]);……;最后計算:d[N] = a[N]*(b[N] + c[N])。一般的計算機就是采用這種方式組成循環(huán)程序進(jìn)行處理的。在每次循環(huán)中,至少要用到如下幾條機器指令:

??? ……

??? ki = bi + ci

??? di = ki * ai

??? ……

??? BE(等于"0"分支成功)

??? 上面程序計算共需N次循環(huán),其中N-1次分支成功,在每次循環(huán)中有一次數(shù)據(jù)相關(guān)。如果用靜態(tài)流水線,則要進(jìn)行2次乘和加的功能轉(zhuǎn)換,所以共出現(xiàn) N 次數(shù)據(jù)相關(guān)和 2N 次功能切換。因此,這種水平處理方式不適合于對向量進(jìn)行流水處理。

2. 垂直(縱向)處理方式

??? 垂直處理方式是將整個向量按相同的運算處理完之后,再去執(zhí)行別的運算。對于上式,則有:

??? K = B + C

??? D = K * A

??? 可以看出,這種處理方式僅用了兩條向量指令,且處理過程中沒有出現(xiàn)分支指令,每條向量指令內(nèi)無相關(guān),兩條向量指令間僅有1次數(shù)據(jù)相關(guān)。如果仍用靜態(tài)多功能流水線,也只需1次功能切換,所以這種處理方式適合于對向量進(jìn)行流水處理。

在這種處理方式中,由于向量長度N是不受限制的,無論N有多大,相同的運算都用一條向量指令完成。因此,向量運算指令的源向量和目的向量都存放在存儲器內(nèi),這使這種處理機流水線運算部件的輸入、輸出端都直接(或經(jīng)向量數(shù)據(jù)緩沖器)與存儲器相聯(lián),從而構(gòu)成所謂存儲器-存儲器型操作的運算流水線,其結(jié)構(gòu)如圖3.5.4所示。這種結(jié)構(gòu)對存儲器帶寬的要求很高。CDC公司的STAR-100、CYBER-205等中央處理機都是采用這種結(jié)構(gòu)。

??? 3. 分組(縱橫)處理方式

分組處理方式是把長度為N的向量,分成若干組,每組長度為 n ,組內(nèi)按縱向方式處理,依次處理各組。

??? 為了減少循環(huán)的影響,每組內(nèi)各用兩條向量指令,各組內(nèi)僅有一次向量指令的數(shù)據(jù)相關(guān)。如果也用靜態(tài)多功能流水線,則各組需2次功能切換,比水平處理方式要少。所以,這種處理方式也適合于對向量進(jìn)行流水處理。

??? 這種處理方式對向量長度N的大小亦不限制,但是,每一組的長度最大不能超過n。因此,可設(shè)置長度為n的向量寄存器,使得每組向量運算的源向量和目的向量都在向量寄存器中,運算流水線的輸入、輸出端都與向量寄存器相聯(lián),從而構(gòu)成所謂寄存器-寄存器型操作的運算流水線。

這種結(jié)構(gòu)要求有容量足夠大的向量寄存器組。它們不但能存放源向量,而且能保留中間結(jié)果,從而大大減少訪問存儲器的次數(shù);此外,可降低對存儲器帶寬的要求,亦可減少因存儲器訪問沖突而引起的等待時間,從而提高處理速度。

??? 3.5.2向量處理機實例分析

??? 七十年代中期問世的CRAY-1向量機是向量處理機的典型代表,其向量流水處理部件簡圖如圖3.5.6所示。可為向量運算使用的功能部件有:整數(shù)加、邏輯運算、移位、浮點加、浮點乘、浮點迭代求倒數(shù)。它們都是流水處理部件,且六個部件可并行工作。向量寄存器組的容量為512個字,分成8塊。每個 Vi 塊可存元素個數(shù)達(dá)64的一個向量。

??? 為了能充分發(fā)揮向量寄存器組和可并行工作的六個功能部件的作用以及加快向量處理, CRAY-1設(shè)計成每個 Vi 塊都有單獨總線可連到六個功能部件,而每個功能部件也各自都有把運算結(jié)果送回向量寄存器組的輸出總線。這樣,只要不出現(xiàn) Vi 沖突和功能部件沖突,各個 Vi 之間和各個功能部件之間都能并行工作,大大加快了向量指令的處理,這是CRAY-1向量處理的顯著特點。

??? 所謂 Vi 沖突指的是并行工作的各向量指令的源向量或結(jié)果向量的 Vi 有相同的。除了相關(guān)情況之外,就是出現(xiàn)源向量沖突,例如:

??? V4 = V1 + V2

??? V5 = V1 ∧ V3

??? 這兩條向量指令不能同時執(zhí)行,需在第一條向量指令執(zhí)行完,釋放 V1 后,第二條指令才能執(zhí)行。這是因為這兩條指令的源向量之一雖然都是取自 V1 ,但二者的首元素下標(biāo)可能不同,向量長度也可能不同,難以由V1同時提供兩條指令所需的源向量。這種沖突和前面所討論的結(jié)構(gòu)相關(guān)是一樣的。所謂功能部件沖突指的是同一個功能部件被一條以上的并行工作向量指令所使用。例如:

??? V4 = V2 * V3

??? V5 = V1 * V6

??? 這兩條向量指令都需用到浮點相乘部件,那就需在第一條指令執(zhí)行完畢,功能部件釋放后,第二條指令才能執(zhí)行。

??? CRAY-1有如圖3.5.7所示的四種向量指令。第1種,每拍從 Vi 、Vj 塊順序取得一對元素送入功能部件。各種功能部件執(zhí)行的時鐘周期數(shù)不同,其輸出也是每拍送進(jìn) Vk 塊一個結(jié)果元素。元素對的個數(shù)由VL(向量長度)寄存器指明。向量屏蔽寄存器(VM)為64位,每位對應(yīng)V的一個元素。在向量合并或測試時,由VM控制對哪些元素進(jìn)行合并和測試。一條指令至多只能處理64對元素(對應(yīng)每塊的容量)。若向量的長度大于64,需用向量循環(huán)程序?qū)⑵浞侄危鞫沃邢蛄吭貍€數(shù)要小于等于64,然后以段為單位從存儲器中調(diào)入并進(jìn)行處理。第2種和第1種的差別只在于它的一個操作數(shù)取自標(biāo)量寄存器 Si 。大多數(shù)向量指令都屬這兩種。由于它們不是由存儲器,而是由向量寄存器取得操作數(shù),所以流水速度可很高,CRAY-1的時鐘周期時間為12.5ns(一拍)。第3、4種是控制存儲器與V向量塊之間的數(shù)據(jù)傳送,Load、Store一個字(元素)需花6拍。

? CRAY-1向量處理的另一個顯著特點是,只要不出現(xiàn)功能部件沖突和源向量沖突,通過鏈接結(jié)構(gòu)可使相關(guān)的向量指令也能并行處理。

??? 例如,對上述向量運算 D = A * (B + C),若 N ≤64,向量為浮點數(shù),則在B、C取到 V0 、V1 后,就可用以下三條向量指令求解:

??? 1、V3 ← 存儲器(訪存,載入A)

??? 2、V2 ← V0 + V1(浮點加)

??? 3、V4 ← V2 * V3(浮點乘,存D)

??? 第1、2條指令無任何沖突,可以并行執(zhí)行。第3條指令與第1、2條指令之間存在數(shù)據(jù)相關(guān),不能并行執(zhí)行,但是如果能夠?qū)⒌?、2條指令的結(jié)果元素直接鏈接到第3條指令所用的功能部件,那么第3條指令就能與第1、2條指令并行執(zhí)行。其鏈接過程如圖3.5.8所示。

??? 由此可見,所謂鏈接特性,實質(zhì)上是把流水線“定向”的思想引入到向量執(zhí)行過程的結(jié)果。 CRAY-1在把元素送往功能部件及把結(jié)果存入 Vi 時都需一拍。由于第1、2條指令之間沒有任何沖突,可以同時執(zhí)行,而“訪存”拍數(shù)正好與“浮加”的一樣,因此,從訪存開始,直至把第一個結(jié)果元素存入 V4 ,所需拍數(shù)(亦稱為鏈結(jié)流水線的流水時間)為:

??? 1(送) + 6(訪存) + 1(入) + 1(送) + 7(浮乘) + 1(入) = 17拍

此后,就是每拍取得一個結(jié)果元素存入V4。顯然,這要比第1、2條指令全執(zhí)行完,所有元素全進(jìn)入V2、V3后,才開始執(zhí)行第3條指令要快得多。通過這種鏈接技術(shù)使得 CRAY-1 流水線能靈活組織,從而更能發(fā)揮流水技術(shù)的效能。

??? CRAY-1 的向量指令還可做到“源V”和“結(jié)果V”是同一個,這種向量遞歸操作和前述的鏈接特性對于實現(xiàn)諸如求向量點積等是很有好處的。

??? 上面我們結(jié)合 CRAY-1 介紹了向量流水機器的結(jié)構(gòu)特點。然而,要使軟件能充分發(fā)揮硬件所提供的這些特點卻是很不容易的,它必然要對語言結(jié)構(gòu)和編譯程序提出新的要求。例如,它希望高級語言能增設(shè)向量運算符(如向量加、向量乘等),不然,程序設(shè)計者在編制高級語言程序時,要把向量運算通過 DO LOOP 實現(xiàn),而編譯程序反過來卻又要把 DO LOOP 型語句變換成向量型的機器語言去執(zhí)行。例如

??? C = A + B

??? 的向量運算,程序設(shè)計者是用

??? DO 20 I = 1,N

??? 20  C(I) = A(I) + B(I)

??? 實現(xiàn),但編譯程序卻又要把它編譯成

??? VECT_BEGIN

??? A,B,C = VECTOR(1…N)

??? C = A + B

??? VECT_END

??? 去執(zhí)行。

?

??? 另外,優(yōu)化的目標(biāo)程序必然要和向量流水機器的具體結(jié)構(gòu)特點密切相關(guān),這會使編譯程序的設(shè)計復(fù)雜化。例如,對圖3.1.7所示的 ASC 結(jié)構(gòu),那就要求把目標(biāo)程序中的相加指令和相乘指令分別集中在一起,以減少流水線功能切換所費時間。然而,CRAY-1 卻無此要求,因為它有獨立的能并行執(zhí)行的相乘、相加功能部件。但是,它卻要求編譯程序能充分發(fā)揮多功能部件和上述鏈接能力所能提供的多條向量指令可并行執(zhí)行的特點。

?

非常好我支持^.^

(489) 97.2%

不好我反對

(14) 2.8%

相關(guān)閱讀:

( 發(fā)表人:admin )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?
      百家乐官网大小技巧| 真人百家乐官网输钱惨了| 大发888娱乐城破解软件| 百家乐娱乐网会员注册| 百家乐官网l23| 新宝百家乐官网网址| bet365娱乐城| 大发888bocai官方下载| 皇家百家乐出租平台| 百家乐保单破解方法| 百家乐官网赌博详解| 精英百家乐官网现金网| 狮威娱乐城| 蜀都棋牌游戏| 百家乐电子| 免费百家乐奥| 百家乐桌布橡胶| 网络百家乐官网金海岸| 至尊百家乐官网qvod| 百家乐官网是赌博吗| 赌场大轮盘| 体球网足球比分| 真钱的棋牌游戏| 大发888娱乐场下载co| 赌球网站排名| sz新全讯网xb112| 威尼斯人娱乐城惊喜| 百家乐特殊计| V博百家乐的玩法技巧和规则| 网上的百家乐是假的吗| 百家乐龙虎台布作弊技巧| 真人百家乐轮盘| 百家乐翻天腾讯视频| 新手百家乐指点迷津| 百家乐声音不印网| 百家乐庄闲分布概率| 天地人百家乐现金网| 百家乐娱乐城新闻| 百家乐是咋玩法| 高手百家乐赢钱法| 宝龙百家乐娱乐城|