流水線技術(shù)向量處理機(jī)_第1頁(yè)
流水線技術(shù)向量處理機(jī)_第2頁(yè)
流水線技術(shù)向量處理機(jī)_第3頁(yè)
流水線技術(shù)向量處理機(jī)_第4頁(yè)
流水線技術(shù)向量處理機(jī)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

流水線技術(shù)向量處理機(jī)第一頁(yè),共四十三頁(yè),編輯于2023年,星期日(1)水平(橫向)處理方式

Ki=bi+ci

Di=Ki×ai

相關(guān):N次

功能切換:2N次虛擬存儲(chǔ)器的特點(diǎn)第二頁(yè),共四十三頁(yè),編輯于2023年,星期日(2)垂直(縱向)處理方式

K=B+C

D=K×A相關(guān):1次功能切換:1次對(duì)處理機(jī)結(jié)構(gòu)的要求:存儲(chǔ)器-存儲(chǔ)器型操作的運(yùn)算流水線對(duì)存儲(chǔ)器的帶寬要求很高。例如:STAR-100,CYBER-2053.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第三頁(yè),共四十三頁(yè),編輯于2023年,星期日3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第四頁(yè),共四十三頁(yè),編輯于2023年,星期日(3)分組(縱橫)處理方式

把向量分成長(zhǎng)度為某個(gè)固定值的若干組,

組內(nèi)按縱向方式處理,依次處理各組。每組內(nèi):

相關(guān):1次

功能切換:2次

3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第五頁(yè),共四十三頁(yè),編輯于2023年,星期日3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第六頁(yè),共四十三頁(yè),編輯于2023年,星期日對(duì)處理機(jī)結(jié)構(gòu)的要求:

寄存器-寄存器型操作的運(yùn)算流水線。舉例虛擬存儲(chǔ)器的特點(diǎn)第七頁(yè),共四十三頁(yè),編輯于2023年,星期日2.向量處理機(jī)的速度評(píng)價(jià)方法◆標(biāo)量處理機(jī):通常用每秒執(zhí)行多少指令

MIPS(MillionInstructionsPerSecond)

來(lái)衡量機(jī)器的運(yùn)算速度?!粝蛄刻幚頇C(jī):常用每秒取得多少個(gè)浮點(diǎn)運(yùn)算

結(jié)果表示機(jī)器速度,以MFLOPS(Millionof

FloatingPointPerSecond)作為測(cè)量單位。另一種評(píng)定計(jì)算機(jī)速度的方法:比較法。

(選擇一臺(tái)速度指標(biāo)得到公認(rèn)的機(jī)器作為標(biāo)準(zhǔn)機(jī),給定一些典型的基準(zhǔn)程序。)3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第八頁(yè),共四十三頁(yè),編輯于2023年,星期日3.5.2提高向量處理機(jī)性能的主要技術(shù)1.CRAY-I簡(jiǎn)介

美國(guó)CRAY公司

1976年

每秒億次浮點(diǎn)運(yùn)算

主頻:80MHz

字長(zhǎng):64位2.CRAY-1的基本結(jié)構(gòu)

向量運(yùn)算部件:6個(gè)

整數(shù)加,邏輯運(yùn)算,移位

浮點(diǎn)加,浮點(diǎn)乘,求倒數(shù)3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第九頁(yè),共四十三頁(yè),編輯于2023年,星期日◆

向量寄存器組:8×64V0~V7◆

每個(gè)Vi

每個(gè)向量運(yùn)算部件◆

向量長(zhǎng)度寄存器VL◆

向量屏蔽寄存器VM

CRAY-1向量處理的顯著特點(diǎn):只要不出現(xiàn)Vi

沖突和向量功能部件沖突,各個(gè)Vi之間和各個(gè)向

量功能部件之間都能并行工作,大大加快了向量

指令的處理。3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第十頁(yè),共四十三頁(yè),編輯于2023年,星期日3.CRAY-1向量指令類型

Vk←ViopVj

Vk←SiopVj

Vk←主存

主存←ViVi沖突:指的是并行工作的各向量指令的源向

量或結(jié)果向量的Vi有相同的。向量功能部件沖突:指同一個(gè)向量功能部件被

一條以上的并行工作向

量指令所使用。3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第十一頁(yè),共四十三頁(yè),編輯于2023年,星期日3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第十二頁(yè),共四十三頁(yè),編輯于2023年,星期日4.鏈接技術(shù)

當(dāng)兩條指令出現(xiàn)“寫后讀”相關(guān)時(shí),若它們

不存在功能部件沖突和向量寄存器(源或目的)

沖突,就有可能把它們所用的功能部件頭尾相

接,形成一個(gè)鏈接流水線,進(jìn)行流水處理。

鏈接特性實(shí)質(zhì)上是把流水線“定向”的思想

引入到向量執(zhí)行過(guò)程的結(jié)果。3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第十三頁(yè),共四十三頁(yè),編輯于2023年,星期日虛擬存儲(chǔ)器的特點(diǎn)第十四頁(yè),共四十三頁(yè),編輯于2023年,星期日例3.7

對(duì)上述向量運(yùn)算D=A*(B+C),若向量

長(zhǎng)度N≤64,向量元素為浮點(diǎn)數(shù),則在B、C取到

V0、V1后,就可用以下三條向量指令求解:(1)V3←存儲(chǔ)器(訪存,載入A)

(2)V2←V0+V1(浮點(diǎn)加)

(3)V4←V2*V3(浮點(diǎn)乘,存D)解:鏈接過(guò)程如圖3.44所示:3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第十五頁(yè),共四十三頁(yè),編輯于2023年,星期日◆三條向量指令全部用串行方法執(zhí)行,則總

的執(zhí)行時(shí)間為:[(1+6+1)+N-1]+[(1+6+1)+N-1]

+[(1+7+1)+N-1]=3N+22拍3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第十六頁(yè),共四十三頁(yè),編輯于2023年,星期日◆前兩條向量指令并行執(zhí)行之后,再執(zhí)行第

三條向量指令,則總的執(zhí)行時(shí)間為:

[(1+6+1)+N-1]+[(1+7+1)+N-1]

=2N+15拍◆采用向量鏈接技術(shù),所需拍數(shù)(亦稱為鏈接

流水線的流水時(shí)間)為:

[(1+6+1)]+[(1+7+1)]=17拍

則三條向量指令總執(zhí)行時(shí)間為:

[(1+6+1)]+[(1+7+1)]+(N-1)=N+16拍3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第十七頁(yè),共四十三頁(yè),編輯于2023年,星期日5.向量鏈接的一些主要要求:

(除了要保證無(wú)向量寄存器使用沖突和無(wú)向

量功能部件使用沖突的條件之外)◆在進(jìn)行鏈接的時(shí)候,只有在前一條向量指令

的第一個(gè)結(jié)果元素送入結(jié)果向量寄存器的那

一個(gè)時(shí)鐘周期才可以進(jìn)行鏈接,若錯(cuò)過(guò)該時(shí)

刻就不能進(jìn)行鏈接。◆只有當(dāng)前一條向量指令全部執(zhí)行完畢,釋放

相應(yīng)的向量寄存器資源后才能執(zhí)行后面的向

量指令。3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第十八頁(yè),共四十三頁(yè),編輯于2023年,星期日◆當(dāng)一條向量指令的兩個(gè)源操作數(shù)分別是兩條

先行向量指令的結(jié)果寄存器時(shí),要求先行的

兩條向量指令產(chǎn)生運(yùn)算結(jié)果的時(shí)間必須相等,

即要求有關(guān)向量功能部件的延遲時(shí)間相等?!糁挥兴锌梢枣溄訄?zhí)行的向量指令的向量長(zhǎng)

度相等時(shí),它們之間才能鏈接執(zhí)行,否則它

們之間也不能鏈接執(zhí)行。3.5向量處理機(jī)第十九頁(yè),共四十三頁(yè),編輯于2023年,星期日6.向量循環(huán)或分段開采技術(shù)

如果向量的長(zhǎng)度大于向量寄存器的長(zhǎng)度,該如何處理呢?◆向量循環(huán):長(zhǎng)向量循環(huán)分段處理的程序結(jié)構(gòu)。把長(zhǎng)向量分成固定長(zhǎng)度的段,然后循環(huán)分 段處理,一次循環(huán)只處理一個(gè)向量段。◆這種分段向量處理技術(shù)也稱為分段開采?!魧㈤L(zhǎng)向量循環(huán)分段處理是由系統(tǒng)硬件和軟件控 制完成的,對(duì)程序員透明。3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第二十頁(yè),共四十三頁(yè),編輯于2023年,星期日

例3.8

設(shè)A和B是長(zhǎng)度為N的向量,考慮在Cray-1向量處理器上實(shí)現(xiàn)如下的循環(huán)操作。

DO10I=1,N10A(I)=5.0*B(I)+1.0

◆當(dāng)N≤64時(shí),可以用如下指令序列實(shí)現(xiàn)上 述循環(huán)操作:S1←5.0

;將常數(shù)5.0送入標(biāo)量寄存器S1S2←1.0

;將常數(shù)1.0送入標(biāo)量寄存器S2VL←N

;在向量長(zhǎng)度寄存器VL中設(shè)置向量長(zhǎng)度N3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第二十一頁(yè),共四十三頁(yè),編輯于2023年,星期日V0←B

;從存儲(chǔ)器中將向量B讀入向量寄存器V0V1←S1*V0

;向量B中的每個(gè)元素分別和常數(shù)S1

相乘V2←S2+V1

;向量V1中的每個(gè)元素分別和常數(shù)

S2相加A←V2

;將計(jì)算結(jié)果從向量寄存器V2存入存 儲(chǔ)器的向量A3.5向量處理機(jī)虛擬存儲(chǔ)器的特點(diǎn)第二十二頁(yè),共四十三頁(yè),編輯于2023年,星期日

◆當(dāng)N

>64時(shí),就需要進(jìn)行分段開采。在進(jìn)行分段開采時(shí),首先必須根據(jù)向量長(zhǎng)度計(jì)算出循環(huán)次數(shù)K

:一般來(lái)說(shuō),N并不一定總是64的倍數(shù),所以如果N/64有余數(shù),那么余數(shù)L為:3.5向量處理機(jī)64K=NL=N

-64×64N虛擬存儲(chǔ)器的特點(diǎn)第二十三頁(yè),共四十三頁(yè),編輯于2023年,星期日S1←5.0

;將常數(shù)5.0送入標(biāo)量寄存器S1S2←1.0

;將常數(shù)1.0送入標(biāo)量寄存器S2VL←L

;在向量長(zhǎng)度寄存器VL中設(shè)置向量長(zhǎng)度LV0←B

;從存儲(chǔ)器中將向量B[0..L-1]讀入向量 寄存器V0V1←S1*V0

;向量B中的每個(gè)元素分別和常數(shù)S1相乘;V2←S2+V1

;向量V1中的每個(gè)元素分別和常數(shù)S2相加A←V2

;將計(jì)算結(jié)果從向量寄存器V2存入存儲(chǔ)器的向量A[0..L-1]處理余數(shù)部分,計(jì)算L個(gè)元素虛擬存儲(chǔ)器的特點(diǎn)第二十四頁(yè),共四十三頁(yè),編輯于2023年,星期日For(I=0toK-1){V0←B

;從存儲(chǔ)器中將向量B[L+I*64…L+I*64+63]

讀入向量寄存器V0V1←S1*V0

;向量B中的每個(gè)元素分別和常數(shù)S1相乘;V2←S2+V1

;向量V1中的每個(gè)元素分別和常數(shù)S2相加A←V2

;將計(jì)算結(jié)果V2存入存儲(chǔ)器的向量

A[L+I*64…L+I*64+63]}循環(huán)K次,分段處理

第二十五頁(yè),共四十三頁(yè),編輯于2023年,星期日衡量向量處理機(jī)性能的主要參數(shù):1.向量指令的處理時(shí)間

◆執(zhí)行一條向量長(zhǎng)度為n的向量指令所需的時(shí)間為:3.5.3向量處理機(jī)的性能評(píng)價(jià)

Tvp

=Ts

+Tvf

+(n-1)Tc

Ts:向量處理單元流水線的建立時(shí)間,包括:向量起始地址的設(shè)置、計(jì)數(shù)器加1、條件轉(zhuǎn)移指令執(zhí)行等。3.5向量處理機(jī)第二十六頁(yè),共四十三頁(yè),編輯于2023年,星期日

Tvf

:向量處理單元流水線的流過(guò)時(shí)間,它是從向量指令開始執(zhí)行到得到第一個(gè)計(jì)算結(jié)果(向量元素)所需的時(shí)間。

Tc

:向量處理單元流水線“瓶頸”段的執(zhí)行時(shí)間?!羧绻蛄刻幚韱卧魉€不存在“瓶頸”段,每 段的執(zhí)行時(shí)間等于一個(gè)時(shí)鐘周期,則上式也可 以寫為:Tvp

=[s

+e

+(n-1)]Tclk3.5向量處理機(jī)第二十七頁(yè),共四十三頁(yè),編輯于2023年,星期日

s:向量處理單元流水線建立所需的時(shí)鐘周期數(shù);

e:向量流水線流過(guò)所需的時(shí)鐘周期數(shù);

Tclk:時(shí)鐘周期時(shí)間?!艨梢栽俑膶憺椋篢vp

=(Tstart

+n)Tclk

Tstart:向量功能部件啟動(dòng)所需的時(shí)鐘周期數(shù);

n:向量元素個(gè)數(shù)。3.5向量處理機(jī)第二十八頁(yè),共四十三頁(yè),編輯于2023年,星期日◆對(duì)于一組向量指令,其執(zhí)行時(shí)間主要取決于 三個(gè)因素:向量的長(zhǎng)度向量操作之間是否鏈接向量功能部件的沖突和數(shù)據(jù)的相關(guān)性◆把幾條能在同一個(gè)時(shí)鐘周期內(nèi)一起開始執(zhí)行的 向量指令集合稱為一個(gè)編隊(duì)。

3.5向量處理機(jī)第二十九頁(yè),共四十三頁(yè),編輯于2023年,星期日例3.9

假設(shè)每種向量功能部件只有一個(gè),那么下面的一組向量指令能分成幾個(gè)編隊(duì)?LVV1,RxMULTSVV2,R0,V1LVV3,RyADDVV4,V2,V3SVRy,V43.5向量處理機(jī)第三十頁(yè),共四十三頁(yè),編輯于2023年,星期日解:第一編隊(duì):LV

第二編隊(duì):MULTSV;LV

第三編隊(duì):ADDV

第四編隊(duì):SV一個(gè)編隊(duì)內(nèi)所有向量指令執(zhí)行完畢所需要的時(shí)間為:clkistartclkijstartjicTnTTnTT)(][max+=+=3.5向量處理機(jī)第三十一頁(yè),共四十三頁(yè),編輯于2023年,星期日假設(shè)第i個(gè)編隊(duì)中所有向量指令處理的向量元素個(gè)數(shù)均為n。

:第i個(gè)編隊(duì)的執(zhí)行時(shí)間;

:第i個(gè)編隊(duì)中第條指令所使用向量功能部件的啟動(dòng)時(shí)鐘周期數(shù)。icTijstartT經(jīng)過(guò)編隊(duì)后的向量指令序列總的執(zhí)行時(shí)間為:

clkstartclkmiistartmiclkistartmiicvTmnTTmnTTnTTT)()()(111+=+=+==∑∑∑===3.5向量處理機(jī)第三十二頁(yè),共四十三頁(yè),編輯于2023年,星期日編隊(duì)并采用分段開采技術(shù)后,向量指令序列執(zhí)行所需的總的時(shí)鐘周期數(shù)為:MVL:向量處理機(jī)的向量寄存器長(zhǎng)度。

mnTTMVLnMVLMVLnnmTTMVLmTTMVLnTstartloopstartloopstartloopn++×=×-×+++×++=)()]([)(×3.5向量處理機(jī)第三十三頁(yè),共四十三頁(yè),編輯于2023年,星期日例3.10

在某向量處理機(jī)上執(zhí)行DAXPY的向量指令序列,也即計(jì)算雙精度浮點(diǎn)向量表達(dá)式。其中和是雙精度浮點(diǎn)向量,最初保存在外部存儲(chǔ)器中,是一個(gè)雙精度浮點(diǎn)常數(shù),已存放在浮點(diǎn)寄存器F0中。計(jì)算該表達(dá)式的向量指令序列如下:LVV1,RxMULTFVV2,F(xiàn)0,V1LVV3,RyADDVV4,V2,V3SVRy,V43.5向量處理機(jī)第三十四頁(yè),共四十三頁(yè),編輯于2023年,星期日解:第一編隊(duì):LVV1,Rx

第二編隊(duì):MULTFVV2,F(xiàn)0,V1;LVV3,Ry

第三編隊(duì):ADDVV4,V2,V3

第四編隊(duì):SVRy,V4假設(shè)向量存儲(chǔ)部件的啟動(dòng)需要12個(gè)時(shí)鐘周期,向量乘法部件的啟動(dòng)需要7個(gè)時(shí)鐘周期,向量加法部件的啟動(dòng)需要6個(gè)時(shí)鐘周期,向量寄存器長(zhǎng)度MVL=64,那么對(duì)n個(gè)向量元素進(jìn)行DAXPY表達(dá)式計(jì)算所需的時(shí)鐘周期數(shù)為:3.5向量處理機(jī)第三十五頁(yè),共四十三頁(yè),編輯于2023年,星期日如果考慮采用向量鏈接技術(shù),那么DAXPY的向

量指令序列可以編隊(duì)為:第一編隊(duì):LVV1,Rx;MULTFVV2,F0,V1

第二編隊(duì):LVV3,Ry;ADDVV4,V2,V3

第三編隊(duì):SVRy,V4nnnnmnTTMVLnTstartloopn457644)126121215(64)(+×=+++++×=++×=3.5向量處理機(jī)第三十六頁(yè),共四十三頁(yè),編輯于2023年,星期日第一編隊(duì)啟動(dòng)需要12+7=19個(gè)時(shí)鐘周期;第二編隊(duì)啟動(dòng)需要12+6=18個(gè)時(shí)鐘周期;第三編隊(duì)啟動(dòng)仍然需要12個(gè)時(shí)鐘周期。

采用鏈接技術(shù)后,對(duì)n個(gè)向量元素進(jìn)行DAXPY表達(dá)式計(jì)算所需的時(shí)鐘周期數(shù)為:

nnnnmnTTMVLnTstartloopn364643)12181915(64)(+=++++=++=×3.5向量處理機(jī)第三十七頁(yè),共四十三頁(yè),編輯于2023年,星期日2.向量處理機(jī)的峰值性能R

R表示當(dāng)向量長(zhǎng)度為無(wú)窮大時(shí),向量處理機(jī)的最高性能,也稱為峰值性能。

向量處理機(jī)的峰值性能可以表示為:的時(shí)鐘周期數(shù)向量指令序列執(zhí)行所需時(shí)鐘頻率算次數(shù)向量指令序列中浮點(diǎn)運(yùn)×=∞∞nRlim對(duì)于例題3.10向量指令序列中的操作而言,只有“MULTFVV2,F0,V1”和“ADDVV4,V2,V3”兩條浮點(diǎn)操作向量指令。假設(shè)該向量處理機(jī)的時(shí)鐘頻率為200MHz,那么:3.5向量處理機(jī)第三十八頁(yè),共四十三頁(yè),編輯于2023年,星期日的時(shí)鐘周期數(shù)向量指令序列執(zhí)行所需時(shí)鐘頻率算次數(shù)向量指令序列中浮點(diǎn)運(yùn)×=∞∞nRlim

2×n×200=∞nlimMFLOPSn64

×64+3nMFLOPS

2×n×200=∞nlim4nMFLOPS=100MFLOPS3.5向量處理機(jī)第三十

溫馨提示

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

評(píng)論

0/150

提交評(píng)論