版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
3.6向量流水技術(shù)(第3章續(xù))3/8/20231向量處理機(jī)是具有向量數(shù)據(jù)表示和向量指令系統(tǒng)的處理機(jī)。向量處理機(jī)是解決數(shù)值計(jì)算問(wèn)題的一種高性能計(jì)算機(jī)。向量處理機(jī)屬大型或巨型機(jī),也可以用微機(jī)加一臺(tái)向量協(xié)處理器組成。向量處理機(jī)一般都接受流水線結(jié)構(gòu),通常有多條并行工作的流水線。必需把要解決的問(wèn)題轉(zhuǎn)化為向量運(yùn)算,才能發(fā)揮向量處理機(jī)的效率。3/8/202323.6.1向量流水機(jī)的基本系統(tǒng)結(jié)構(gòu)1.標(biāo)量流水線的局限性處理機(jī)不具有向量數(shù)據(jù)表示,僅對(duì)標(biāo)量數(shù)據(jù)進(jìn)行流水處理。向量的處理通過(guò)標(biāo)量循環(huán)程序完成。所以,(1)流水線工作的時(shí)鐘周期不行能取得很短。(2)取指令及譯碼的速率受限。即在一個(gè)時(shí)鐘周期內(nèi)最多只能啟動(dòng)一條指令,通常稱(chēng)為Flynn瓶頸。2.向量流水線處理機(jī)具有向量數(shù)據(jù)表示,可通過(guò)向量指令對(duì)向量中的各元素進(jìn)行流水處理。3/8/202333.6.1.1向量流水處理的主要特點(diǎn)(1)在向量操作中,每個(gè)當(dāng)前結(jié)果向量元素的計(jì)算與以前結(jié)果向量元素的計(jì)算是相互獨(dú)立的,有利于發(fā)揮流水線的性能,允許向量流水線有較深的深度。(2)一條向量指令相當(dāng)于一個(gè)標(biāo)量循環(huán),可降低對(duì)指令訪問(wèn)帶寬的要求,也消退了由循環(huán)轉(zhuǎn)移可能引起的限制相關(guān)。(3)若向量指令所要訪問(wèn)的向量元素均相鄰,則可利用多模塊、交叉存取的方法加快向量元素的存取速度,削減訪存等待時(shí)間的開(kāi)銷(xiāo)。3/8/20234在對(duì)相同數(shù)量的數(shù)據(jù)項(xiàng)進(jìn)行操作時(shí),向量操作要比一串標(biāo)量指令操作更快。向量流水機(jī)可使訪存和有效地址計(jì)算流水化。高檔的向量機(jī)允很多個(gè)向量操作同時(shí)進(jìn)行,從而可開(kāi)發(fā)對(duì)不同元素進(jìn)行多個(gè)向量操作的并行性。3/8/202353.6.1.2向量機(jī)的基本系統(tǒng)結(jié)構(gòu)向量機(jī)系統(tǒng)結(jié)構(gòu)的分類(lèi)①存儲(chǔ)器—存儲(chǔ)器工作方式向量機(jī)向量操作的源向量和目的向量都取自或存放到主存中。②寄存器—寄存器工作方式向量機(jī)向量操作的源向量和目的向量都取自或存放到向量寄存器中。3/8/20236典型的向量機(jī)基本系統(tǒng)結(jié)構(gòu)向量機(jī)主要由標(biāo)量流水部件和向量流水部件組成,包含了向量功能部件、向量取存部件、向量寄存器或向量緩沖部件、標(biāo)量寄存器、標(biāo)量處理部件以及向量限制器等部件。3/8/20237向量處理機(jī)的典型結(jié)構(gòu)圖3/8/20238例:一個(gè)典型向量求解問(wèn)題:Y=a×X+Y其中X和Y為向量,初始值存放在存儲(chǔ)器中,a為標(biāo)量。接受雙精度運(yùn)算時(shí)的算法:a乘X后再加Y。3/8/20239若用標(biāo)量機(jī)運(yùn)算,須要用標(biāo)量指令對(duì)向量中的每個(gè)元素進(jìn)行一次乘、加和存儲(chǔ)操作,并且為了實(shí)現(xiàn)循環(huán)操作,每次必須要指明對(duì)X和Y中元素位置的下標(biāo)變量進(jìn)行增量,并使操作次數(shù)每次減1,以判別循環(huán)是否結(jié)束。設(shè)X和Y向量的首地址分別存放在Rx和Ry中,當(dāng)向量元素長(zhǎng)度為64時(shí),用標(biāo)量機(jī)處理的循環(huán)程序段為:3/8/202310LDF0,a;標(biāo)量a裝入F0ADDIR4,Rx,#512;將向量元素的末地址裝
;入R4中LOOP:LDF2,0(Rx);取向量元素X(i)MULDF2,F(xiàn)0,F(xiàn)2;a與X(i)相乘LDF4,0(Ry);取向量元素Y(i)ADDDF4,F(xiàn)2,F(xiàn)4;aX(i)與Y(i)相加SD0(Ry),F(xiàn)4;存結(jié)果向量元素ADDIRx,Rx,#8;增量向量元素X下標(biāo)ADDIRy,Ry,#8;增量向量元素Y下標(biāo)SUBR20,R4,Rx;R4-Rx→R20,計(jì)算是
;否到達(dá)限界值BNZR20,LOOP;若循環(huán)未結(jié)束,轉(zhuǎn)LOOP3/8/202311用向量機(jī)完成同樣操作:LDF0,a;標(biāo)量a裝入F0LVV1,Rx;裝入向量X,LV為向量取指令MULTVV2,F(xiàn)0,V1;向量X與標(biāo)量a相乘LVV3,Ry;裝入向量YADDVV4,V2,V3;向量加aX+YSVRy,V4;存結(jié)果向量,SV為向量存指令3/8/202312因?yàn)橄蛄恐噶钍菍?duì)64個(gè)元素進(jìn)行操作,且沒(méi)有對(duì)元素下標(biāo)變量增量和判循環(huán)是否結(jié)束的指令,所以向量機(jī)只需執(zhí)行6條指令即可完成操作,從而大大降低了對(duì)指令帶寬的要求。3/8/202313標(biāo)量機(jī)與向量機(jī)計(jì)算Y=a×X+Y的比較標(biāo)量機(jī)向量機(jī)編程方式采用標(biāo)量指令,循環(huán)程序采用向量指令指令條數(shù)9×64+2=5786聯(lián)鎖頻率高低對(duì)指令帶寬的要求高不高3/8/2023143.6.1.3向量啟動(dòng)時(shí)間和啟動(dòng)率一條向量指令執(zhí)行所需時(shí)間Tvp:Tvp=Tst+n×IrTst:向量流水線的啟動(dòng)時(shí)間,包括流水線固有的延遲時(shí)間,用于設(shè)置為完成向量操作所需的相應(yīng)參數(shù)(如向量長(zhǎng)度等)。n:向量中元素長(zhǎng)度Ir:?jiǎn)?dòng)率,表示向量流水線填滿后,每流出一個(gè)結(jié)果所需時(shí)間。3/8/202315例:一個(gè)向量乘法流水部件的啟動(dòng)時(shí)間為l0個(gè)時(shí)鐘周期。啟動(dòng)后的啟動(dòng)率為1。對(duì)于長(zhǎng)度為64的向量乘法,產(chǎn)生每個(gè)向量元素結(jié)果所需時(shí)鐘周期數(shù)為:對(duì)于運(yùn)行速度較慢的向量流水操作,啟動(dòng)時(shí)間的大小對(duì)它的影響不大,但對(duì)于啟動(dòng)率為1的高速向量流水操作,啟動(dòng)時(shí)間的增加就將使性能受到較大影響。3/8/202316寄存器—寄存器工作方式的影響因素⑴向量功能部件流水線的深度流水線的啟動(dòng)時(shí)間主要取決于功能部件流水線的深度。因?yàn)檫@是獲得第一個(gè)流水結(jié)果所需的時(shí)間。⑵向量功能部件接收一個(gè)操作數(shù)的頻率流水線的啟動(dòng)率主要取決于相應(yīng)的向量功能部件接收一個(gè)操作數(shù)的頻率。當(dāng)流水線處于充分流水狀態(tài)時(shí),就能在每個(gè)時(shí)鐘周期起先時(shí)馬上對(duì)一個(gè)新操作數(shù)進(jìn)行運(yùn)算,從而可使啟動(dòng)率達(dá)到1。3/8/2023173.6.2向量操作長(zhǎng)度限制和向量訪問(wèn)步長(zhǎng)1.向量操作長(zhǎng)度限制⑴實(shí)際程序中的向量長(zhǎng)度往往并不與向量機(jī)的自然向量長(zhǎng)度相同。自然向量長(zhǎng)度:向量寄存器型的向量機(jī)中,每個(gè)向量寄存器可存放的向量元素個(gè)數(shù)。3/8/202318⑵程序中一個(gè)具體的向量操作長(zhǎng)度在編譯時(shí)常常是未知的,因?yàn)樵谝粋€(gè)代碼段中可能須要不同的向量長(zhǎng)度。例如求解單精度向量循環(huán)SAXPY的代碼段為:for(i=0;i<n;i++)Y[i]=a*X[i]+Y[i];3/8/202319可見(jiàn)向量操作長(zhǎng)度依靠于n值,而這個(gè)n值通常在編譯時(shí)無(wú)法知道,往往要在運(yùn)行時(shí)才可確定,而且這個(gè)長(zhǎng)度也可能是過(guò)程的參數(shù),因此在執(zhí)行時(shí)很易變更。解決方法:接受一個(gè)向量長(zhǎng)度寄存器,存放某一代碼段操作的長(zhǎng)度,由它來(lái)限制向量操作的長(zhǎng)度以及向量的裝載和存儲(chǔ)。3/8/202320在向量長(zhǎng)度寄存器中存放的向量長(zhǎng)度值不能超過(guò)向量寄存器的長(zhǎng)度(MVL)。向量長(zhǎng)度小于向量寄存器長(zhǎng)度時(shí),均可放入向量寄存器。向量長(zhǎng)度大于向量寄存器長(zhǎng)度時(shí),需將向量長(zhǎng)度按向量寄存器長(zhǎng)度分段,分段后的向量長(zhǎng)度即是每次向量操作的長(zhǎng)度,它必需等于或小于向量寄存器長(zhǎng)度。3/8/202321接受分段技術(shù)后,SAXPY循環(huán)可寫(xiě)成如下形式:low=0;VL=n%MVL;*找出零頭長(zhǎng)度值for(j=0;j<n/MVL;j++){*外循環(huán)for(i=low;i<low+VL;i++)*以長(zhǎng)度VL操作Y[i]=a*X[i]+Y[i];*主要操作low=low+VL;*下一向量的起先VL=MVL;*將長(zhǎng)度值復(fù)原成MVL};經(jīng)分段處理后,第一段長(zhǎng)度為nmodMVL,而以后各段的長(zhǎng)度均為MVL。3/8/2023222.向量訪問(wèn)步長(zhǎng)存儲(chǔ)器是一維線性空間,當(dāng)須要在其中存放二維或多維數(shù)組時(shí),必需將其各元素映射到一維線性空間中。以行為主的存儲(chǔ)方式:當(dāng)按行進(jìn)行元素訪問(wèn)時(shí),要訪問(wèn)的元素的地址是相鄰連續(xù)的。當(dāng)按列進(jìn)行元素訪問(wèn)時(shí),要訪問(wèn)的元素的地址是不連續(xù)的,須要接受向量跨步方式進(jìn)行訪問(wèn)。3/8/202323例:元素為100×100的A=B×C矩陣乘法的程序段為:for(i=0;i<100;i++)for(j=0;j<100;j++){A[i,j]=0.0;for(k=0;k<100;k++)A[i,j]=A[i,j]+B[i,k]*C[k,j];}在執(zhí)行內(nèi)循環(huán)k時(shí),若以行為主存放矩陣元素,則B矩陣中元素是連續(xù)存放的,C矩陣中元素是以跨步方式進(jìn)行訪問(wèn)的,相鄰元素的間距為100。3/8/202324支持完全的一維數(shù)據(jù)顯式訪問(wèn)的向量機(jī)是指能支持對(duì)向量跨步訪問(wèn)的向量機(jī)。當(dāng)向量由存儲(chǔ)器裝入向量寄存器后,原來(lái)在存儲(chǔ)器中間隔存放的元素在向量寄存器中便成為邏輯上相連續(xù)的。能支持完全的一維數(shù)據(jù)顯式訪問(wèn)的向量機(jī)能以行、列,甚至沿對(duì)角線訪問(wèn)這些方向上的向量元素。3/8/202325CRAY—1巨型機(jī)屬于能支持完全的一維數(shù)據(jù)顯式訪問(wèn)的向量機(jī)。CYBER—205巨型機(jī)接受存儲(chǔ)器—存儲(chǔ)器工作方式,它不支持完全的一維數(shù)據(jù)顯式訪問(wèn),只能以連續(xù)方式訪存。假如要進(jìn)行跨步訪問(wèn)運(yùn)算,則必需先將這些在存儲(chǔ)器中不連續(xù)存放的向量元素,先經(jīng)過(guò)運(yùn)算部件進(jìn)行依次排序,然后再送入存儲(chǔ)器使它們相鄰連續(xù)存放,最終再?gòu)拇鎯?chǔ)器中連續(xù)取出進(jìn)行運(yùn)算,明顯這將大大降低運(yùn)算性能。3/8/202326在向量機(jī)中,向量的取、存操作除了須要說(shuō)明起始地址外,還應(yīng)說(shuō)明訪問(wèn)元素的跨步。元素的跨步須要存放在一個(gè)寄存器中,并在向量操作過(guò)程中始終保持此參數(shù)值。向量機(jī)中通常接受一個(gè)專(zhuān)用地址流部件來(lái)生成跨步向量元素訪問(wèn)。3/8/202327支持二維數(shù)據(jù)顯式訪問(wèn)
除了支持一維數(shù)據(jù)顯式訪問(wèn)外,還可干脆支持對(duì)子矩陣的訪問(wèn),上、下三角矩陣元素的訪問(wèn),平行四邊行圖形元素的訪問(wèn)等。支持二維數(shù)據(jù)顯式訪問(wèn)須要更多的訪問(wèn)參數(shù),如每組序列長(zhǎng)度,組間跨步等參數(shù)。3/8/202328向量機(jī)的訪存沖突向量機(jī)為了增加訪存速率,大都接受低地址位的多體交叉存儲(chǔ)器。當(dāng)向量機(jī)支持跨步長(zhǎng)度訪問(wèn)時(shí),就可能出現(xiàn)對(duì)同一存儲(chǔ)體的訪問(wèn)間隔時(shí)間小于訪存周期時(shí)間,使得上一次對(duì)某一存儲(chǔ)體的訪問(wèn)還未結(jié)束前,又對(duì)同一存儲(chǔ)體提出了新的訪問(wèn)要求,從而將加劇訪存沖突。3/8/202329例:設(shè)有16個(gè)存儲(chǔ)體,訪問(wèn)時(shí)間為12個(gè)時(shí)鐘周期,共要訪問(wèn)64個(gè)向量元素。對(duì)于步長(zhǎng)為1的訪問(wèn),將須要12+64=76個(gè)時(shí)鐘周期。但當(dāng)步長(zhǎng)為16的倍數(shù)時(shí),由于每次對(duì)存儲(chǔ)器訪問(wèn)將與前一次訪問(wèn)相沖突,因此,每個(gè)元素訪問(wèn)都須要12個(gè)周期,這樣64個(gè)元素訪問(wèn)就須要64×12=768個(gè)時(shí)鐘周期。(注:交叉存儲(chǔ)體流水訪問(wèn))3/8/202330防止訪存沖突的方法⑴使跨步和存儲(chǔ)體數(shù)互為質(zhì)數(shù)如使存儲(chǔ)體為17而跨步步長(zhǎng)為16。⑵增加存儲(chǔ)體數(shù)目如對(duì)于64個(gè)存儲(chǔ)體,步長(zhǎng)為32的訪問(wèn),若每隔一次訪問(wèn)就會(huì)發(fā)生訪問(wèn)沖突,而當(dāng)訪問(wèn)步長(zhǎng)為8時(shí),每隔八次訪問(wèn)才會(huì)發(fā)生訪問(wèn)沖突。當(dāng)向量機(jī)中有多條存儲(chǔ)器流水線時(shí),就須要有更多存儲(chǔ)體以防止發(fā)生沖突,因此,當(dāng)代的向量巨型機(jī)中,存儲(chǔ)體數(shù)都大于64,有的甚至多達(dá)512個(gè)。3/8/2023313.6.3向量處理方法向量機(jī)中對(duì)向量的加工方式的要求:盡量避開(kāi)出現(xiàn)數(shù)據(jù)相關(guān)和盡量削減對(duì)向量操作功能的轉(zhuǎn)換。3/8/2023321.橫向加工方式方式:逐個(gè)求出結(jié)果向量的各個(gè)元素。例:設(shè)A、B、C和D都是長(zhǎng)度為N的向量,需進(jìn)行向量運(yùn)算D=A×(B+C),接受橫向加工方式時(shí)是按向量依次計(jì)算的。d1=a1×(b1+c1)d2=a2×(b2+c2)…dN=aN×(bN+cN)3/8/202333處理過(guò)程:逐個(gè)求D中的N個(gè)重量,先進(jìn)行相加k←b1+c1,其中k為暫存單元,然后相乘d1←k×a1。這樣,在每個(gè)向量元素的加乘運(yùn)算中,都會(huì)發(fā)生數(shù)據(jù)相關(guān)的狀況,而且當(dāng)接受靜態(tài)流水線時(shí),還要進(jìn)行2次乘和加功能的轉(zhuǎn)換。這樣共會(huì)出現(xiàn)N次相關(guān)和2N次功能轉(zhuǎn)換。因此,這種橫向加工方式只適合于標(biāo)量循環(huán)算法,不適合于向量流水處理。3/8/2023342.縱向(垂直)加工方式縱向(垂直)加工方式:先對(duì)全部元素執(zhí)行一種相同的運(yùn)算,再對(duì)全部元素執(zhí)行另一種相同的運(yùn)算。例如上例中,先縱向加工全部B和C向量中元素對(duì)的相加操作,中間結(jié)果暫存到k1~kN中,然后再縱向加工全部對(duì)應(yīng)元素的乘法操作。3/8/202335先算:k1=b1+c1k2=b2+c2…kN=bN+cN再算:d1=a1×k1d2=a2×k2…dN=aN×kN3/8/202336用向量指令形式表示時(shí)為:K=B+CD=K×A此時(shí),在兩條向量指令間僅有一次數(shù)據(jù)相關(guān),流水線功能的切換只需一次。3/8/202337縱向加工方式的特點(diǎn)⑴縱向加工方式可獲得較高的吞吐率。由于元素個(gè)數(shù)N不受限制,且須要有一個(gè)暫存中間向量K(由k1~kN個(gè)重量組成),所以縱向加工方式適合于存儲(chǔ)器—存儲(chǔ)器工作方式的向量機(jī)。3/8/202338⑵縱向加工方式對(duì)主存帶寬要求高。為減輕主存的負(fù)擔(dān),可在主存與流水部件之間設(shè)置緩沖器。主存先行讀數(shù)緩沖器后行寫(xiě)數(shù)緩沖器流水功能部件3/8/2023393.縱橫向加工方式縱橫向加工方式:對(duì)向量元素分組,每個(gè)組內(nèi)接受縱向加工方式,組之間接受橫向加工方式。縱橫向加工方式適合于接受寄存器—寄存器方式工作的向量機(jī)。3/8/202340因?yàn)橄蛄考拇嫫鞯拈L(zhǎng)度有限。當(dāng)向量長(zhǎng)度超過(guò)向量寄存器可表示的最大限度n時(shí),就必需分組加以處理。設(shè)向量長(zhǎng)度為N,則:N=s×n+r其中n≤N,r<n,n、s、r均為正整數(shù),s為組數(shù),r為余數(shù)(余下的部分也作為一組處理)。3/8/202341第一組計(jì)算:k1~n=b1~n+c1~nd1~n=a1~n×k1~n其次組計(jì)算:kn+1~2n=bn+1~2n+cn+1~2ndn+1~2n=an+1~2n×kn+1~2n…每組內(nèi)各有兩條向量指令,各組內(nèi)有一次數(shù)據(jù)相關(guān),需2次流水功能切換,需n個(gè)中間向量寄存器單元。3/8/202342接受縱橫向加工方式,組內(nèi)的元素計(jì)算均在寄存器中完成,可大大削減訪存次數(shù),降低了對(duì)主存帶寬的要求,削減了因存儲(chǔ)器沖突而引起的等待。提高了處理速度。3/8/2023433.6.4增加向量處理性能的方法3.6.4.1多功能部件的并行操作向量機(jī)接受獨(dú)立的多個(gè)功能部件并行工作。并行約束條件①不存在向量寄存器運(yùn)用沖突。向量寄存器運(yùn)用沖突指并行工作的向量指令中的源向量或結(jié)果向量運(yùn)用相同的向量寄存器。②不存在功能部件運(yùn)用沖突。功能部件沖突是指同一功能部件為多條并行工作向量指令所運(yùn)用。3/8/202344例:①V0←V1+V2無(wú)沖突狀況,可以并行處理V5←V3×V4②V0←V1+V2運(yùn)算時(shí)發(fā)生向量寄存器運(yùn)用V3←V1×V4沖突,不行以并行處理兩條指令不能同時(shí)執(zhí)行,必需在第一條指令執(zhí)行完,將V1釋放后,其次條指令方可起先執(zhí)行。這是因?yàn)閮蓷l指令中運(yùn)用V1時(shí)的首元素下標(biāo)可能不同,向量長(zhǎng)度也可能不同,從而難以由V1同時(shí)向兩條指令供應(yīng)所需的源向量。3/8/202345③V3←V1+V2運(yùn)算時(shí)發(fā)生功能部件沖突,V6←V4+V5不行以并行處理在志向狀況下,若有m個(gè)部件并行工作,可使運(yùn)算速度提高m倍,但事實(shí)上由于程序本身并行度有限和可能發(fā)生上述的沖突狀況,因此能完全并行工作的功能部件數(shù)總是小于m的。3/8/2023461.Cray-1向量機(jī)Cray-1系統(tǒng)是美國(guó)Cray公司于1976年供應(yīng)的產(chǎn)品。它是一臺(tái)運(yùn)算速度達(dá)億次/秒以上的巨型機(jī)。速度這么高的一個(gè)緣由是它接受了層次結(jié)構(gòu)的存儲(chǔ)器系統(tǒng)。向量處理實(shí)例3/8/202347Cray-1處理機(jī)結(jié)構(gòu)圖8個(gè)向量寄存器(V)8×64×64主存
儲(chǔ)器8MB64個(gè)
個(gè)體12個(gè)流水線結(jié)構(gòu)的運(yùn)算部件緩沖寄存器(T)64×64標(biāo)量寄存器(S)8×64緩沖寄存器(B)64×24地址寄存器(A)8×24指令緩沖寄存器256×163/8/2023483/8/2023493/8/202350(1)主存與流水結(jié)構(gòu)運(yùn)算器之間有一級(jí)或兩級(jí)的中間存儲(chǔ)器。對(duì)于向量運(yùn)算來(lái)說(shuō),中間存儲(chǔ)器是V寄存器,它是向量寄存器,它由8個(gè)64個(gè)重量的寄存器組成,每個(gè)重量為一個(gè)64位寄存器。向量指令能對(duì)向量寄存器的重量進(jìn)行連續(xù)的重復(fù)處理。3/8/202351(2)執(zhí)行向量指令時(shí),流水結(jié)構(gòu)運(yùn)算器在一個(gè)時(shí)鐘周期內(nèi)從兩個(gè)V寄存器得到一對(duì)操作數(shù),完成某種操作后用一個(gè)時(shí)鐘周期的時(shí)間把結(jié)果送入另一個(gè)V寄存器。3/8/202352(3)主存儲(chǔ)器與V寄存器之間的數(shù)據(jù)傳送以成組傳送的方式進(jìn)行。向量流水線是從向量寄存器而不是從主存儲(chǔ)器取數(shù)據(jù)。同樣,從流水線輸出的結(jié)果向量也是送回向量寄存器。3/8/202353CRAY-I指令3/8/202354Cray-1處理機(jī)的4類(lèi)向量指令第1類(lèi)向量指令3/8/202355第2類(lèi)向量指令3/8/202356第3類(lèi)向量指令3/8/202357第4類(lèi)向量指令3/8/202358第一類(lèi)指令從一個(gè)或二個(gè)向量寄存器取得操作數(shù)并把結(jié)果回送到另一個(gè)向量寄存器中去。其次類(lèi)向量指令從Si寄存器取得一個(gè)標(biāo)量操作數(shù),又從Vk寄存器取得一個(gè)向量操作數(shù),并且把向量結(jié)果回送給另一個(gè)向量寄存器Vi。第三類(lèi)以及第四類(lèi)指令分別是把數(shù)據(jù)從存儲(chǔ)器傳送到一個(gè)向量寄存器中以及反過(guò)來(lái)把數(shù)據(jù)從向量寄存器傳送到存儲(chǔ)器中。存儲(chǔ)器和工作寄存器之間的數(shù)據(jù)通路可以看成是具有固定時(shí)間延遲的數(shù)據(jù)傳送流水線。3/8/2023592.YH-1向量機(jī)(銀河-1機(jī))83年底交付運(yùn)用(參見(jiàn)國(guó)防科大的李勇編寫(xiě)的教材)(1)系統(tǒng)組成3/8/202360(2)主要性能①字長(zhǎng)64位,4種數(shù)據(jù)類(lèi)型浮點(diǎn):1+15+48長(zhǎng)整:64短整:24邏輯:64,128②指令格式單字長(zhǎng)g(4)+h(3)+i(3)+j(3)+k(3)算術(shù)、邏輯指令,gh-OP碼,ijk-向量Regs雙字長(zhǎng)g(4)+h(3)+i(3)+j(3)+k(3)+m(16)標(biāo)量訪存指令,g-OP碼,h-變址寄存器Ai-結(jié)果或源寄存器,jkm22位的形式地址主存地址(A)+jkm3/8/202361③中心處理機(jī)主頻20MHz,每拍50ns④運(yùn)算速度向量運(yùn)算>75%時(shí),>1億次/秒⑤主存系統(tǒng)模31體交叉訪問(wèn),存儲(chǔ)周期400ns⑥I/O通道20個(gè),接外圍系統(tǒng)3/8/202362(3)中心處理機(jī)結(jié)構(gòu)三部分組成:Regs、流水部件和指令緩沖部件①操作寄存器和后援寄存器兩組向量寄存器:(8x64x64b)x2V,V’向量長(zhǎng)度寄存器:VL(7b,≤128,即最多可傳64對(duì)向量元素)向量限制寄存器VM(64b),VM’(64b)(屏蔽寄存器,用于向量的測(cè)試、歸并、壓縮和還原)標(biāo)量寄存器S(8x64b)和標(biāo)量后援寄存器T(64x64b)M地址寄存器A(8x24b)和地址后援寄存器B(64x64b)3/8/202363②功能部件18個(gè)獨(dú)立的專(zhuān)用功能部件一組地址部件-24b的短整運(yùn)算AA(1),AM(3)一組標(biāo)量部件-64b整數(shù)和邏輯運(yùn)算對(duì)S運(yùn)算SA(1),SS左右移位(1),SLg(0),SP計(jì)數(shù)(1,2)二組浮點(diǎn)部件-向量、標(biāo)量運(yùn)算(分別與V,V’接)FA(5),FM(6),FR倒數(shù)近似值(6)二組向量部件-64位的非浮點(diǎn)數(shù)向量運(yùn)算(V,V’)VA(1),VS左右移位(3,2),VLg(1)3/8/202364VV’寄存器與功能部件的運(yùn)用向量功能部件,浮點(diǎn)功能部件VkVjVi向量功能部件,浮點(diǎn)功能部件V’kV’jV’i3/8/202365③指令限制部件程序字計(jì)數(shù)器P(24b)指令緩沖站IB(4個(gè)站x16x16b)指令字緩沖寄存器BIP(16b)下一指令字寄存器NIP(16b)現(xiàn)行指令字寄存器CIP(16b)低部指令字寄存器LIP(16b)指令流出限制部件IC4類(lèi)向量指令格式與Cray-1相像,但訪存流水m=163/8/202366向量與標(biāo)量性能的平衡實(shí)際的應(yīng)用問(wèn)題中通常既有向量計(jì)算又有標(biāo)量計(jì)算,而且兩類(lèi)計(jì)算有確定的比例向量平衡點(diǎn)(vectorbalancepoint):為了使向量硬件設(shè)備和標(biāo)量硬件設(shè)備的利用率相等,一個(gè)程序中向量代碼所占的百分比。關(guān)鍵問(wèn)題是:希望向量硬件和標(biāo)量硬件都能夠充分利用,不要空閑。3/8/202367例如:一個(gè)系統(tǒng)的向量運(yùn)算速度為90Mflops,標(biāo)量運(yùn)算速度為10Mfolps。假如程序的90%是向量運(yùn)算,10%是標(biāo)量運(yùn)算。則向量平衡點(diǎn)為0.9。硬件利用率最高。向量處理機(jī)的向量平衡點(diǎn)必需與用戶(hù)程序的向量化程度相匹配。IBM向量計(jì)算機(jī)的設(shè)計(jì)思想與上述方法不同,它維持較低的向量與標(biāo)量比例,定在3~5的范圍之間。這種做法能夠適應(yīng)通用應(yīng)用問(wèn)題對(duì)標(biāo)量和向量處理要求。3/8/202368機(jī)器型號(hào)FujitsuVP400CrayISCray2SCrayX-MPCrayY-MPHitachiS820NECSX2向量性能
Mflops標(biāo)量性能
Mflops向量平衡點(diǎn)85.09.80.90151.511.20.93143.313.10.92201.617.00.92737.317.80.98424.29.50.98207.16.60.973/8/2023693.6.4.2鏈接技術(shù)鏈接特性:當(dāng)相鄰兩條指令存在先寫(xiě)后讀相關(guān)時(shí),只要前一條指令的結(jié)果向量的第一個(gè)元素產(chǎn)生并存入結(jié)果向量寄存器,就可以將它作為下一條指令的源操作數(shù),啟動(dòng)下一條指令的運(yùn)算,從而將兩個(gè)或兩個(gè)以上的功能部件鏈接起來(lái)。3/8/202370鏈接技術(shù):當(dāng)從一個(gè)流水線部件得到的結(jié)果干脆送入另一個(gè)功能流水線的操作數(shù)寄存器時(shí)所發(fā)生的連接過(guò)程。換句話說(shuō),中間結(jié)果不必送回存儲(chǔ)器或寄存器,并在向量操作完成以前就運(yùn)用它。3/8/202371在寄存器—寄存器系統(tǒng)結(jié)構(gòu)中,全部的向量操作數(shù)在把它們送入流水線之前,都要預(yù)先裝入向量寄存器中。中間和最終結(jié)果(流水線輸出)在把它們存入主存儲(chǔ)器以前,也要把它們裝入向量寄存器中。3/8/202372鏈接技術(shù)是利用向量指令間存在的先寫(xiě)后讀的數(shù)據(jù)相關(guān)性來(lái)加快向量指令序列執(zhí)行速度的技術(shù)。鏈接技術(shù)的實(shí)質(zhì)是標(biāo)量流水定向傳送方法在向量寄存器中的應(yīng)用。3/8/202373當(dāng)發(fā)出向量指令時(shí),所要求的功能流水線和操作數(shù)寄存器便要預(yù)定若干個(gè)時(shí)鐘周期,其值取決于向量長(zhǎng)度。運(yùn)用同一組功能部件或操作數(shù)寄存器的后繼向量指令在預(yù)定被釋放之前是不能發(fā)出的。兩個(gè)或更多的向量指令假如是不相關(guān)的,便可以同時(shí)運(yùn)用不同功能流水線和不同的向量寄存器。這種并發(fā)的指令能以相繼的時(shí)鐘周期發(fā)出。3/8/202374結(jié)果寄存器可能成為后繼指令的操作數(shù)寄存器。在Cray1中,這種技術(shù)稱(chēng)為兩條流水線的鏈接(chaining)。鏈接是從流水線的內(nèi)部定向概念發(fā)展而來(lái)的。鏈接允許當(dāng)?shù)谝粋€(gè)結(jié)果剛剛可用時(shí)就立刻發(fā)出相繼的操作。當(dāng)然,所須要的功能流水線和操作數(shù)寄存器必需恰當(dāng)?shù)仡A(yù)定,否則,鏈接操作就不得不掛起直到所須要的資源變?yōu)榭捎脼橹埂?/8/202375功能部件和操作數(shù)寄存器的預(yù)定(沖突)3/8/202376例:向量加和向量乘的操作ADDVV1,V2,V3;V1←V2+V3MULTVV4,V1,V5;V4←V1×V5這兩條指令間對(duì)V1向量寄存器存在先寫(xiě)后讀相關(guān),假如使向量寄存器V1在同一時(shí)鐘周期內(nèi),既接收一個(gè)功能部件送來(lái)的運(yùn)算結(jié)果,又可把這一結(jié)果作為下一個(gè)向量指令運(yùn)算所需的源操作數(shù)送給另一個(gè)功能部件,就可使這兩個(gè)部件鏈接起來(lái)進(jìn)行操作。通常把這種鏈接稱(chēng)為超級(jí)向量操作。當(dāng)鏈接進(jìn)入充分流水操作狀態(tài)后,在一個(gè)時(shí)鐘周期內(nèi)就可同時(shí)獲得兩個(gè)操作結(jié)果。3/8/202377例:以下4條向量指令序列鏈接在一起執(zhí)行一種復(fù)合的功能:
V0←存儲(chǔ)器;讀存儲(chǔ)器
V2←V0+V1;向量加
V3←V2>A3;右移
V5←V3∧V4;求邏輯積
下圖給出的圖解說(shuō)明表示把存儲(chǔ)器讀流水線、向量加流水線、向量移位流水線和向量邏輯乘流水線鏈接成一個(gè)較長(zhǎng)的流水線。寄存器A3的內(nèi)容確定移位計(jì)數(shù)值。3/8/2023783/8/202379時(shí)間特征3/8/2023803/8/202381例:要進(jìn)行向量運(yùn)算D=A×(B+C)設(shè)向量長(zhǎng)度≤64,且B和C已由存儲(chǔ)器取至V0和V1,則完成運(yùn)算的向量指令為:LDV3,A;V3←AADDVV2,V0,V1;V2←V0+V1MULTVV4,V2,V3;V4←V2×V3第一、二條指令因既無(wú)向量寄存器運(yùn)用沖突,也無(wú)功能部件運(yùn)用沖突,因而可并行執(zhí)行。第三條指令與第一、二條指令均存在先寫(xiě)后讀相關(guān)沖突,因而可將第三條指令與第一、二條指令鏈接執(zhí)行。3/8/2023823/8/202383接受并行和鏈接加速技術(shù)后,當(dāng)被加工向量長(zhǎng)度為N時(shí),執(zhí)行所需時(shí)間為:(1+6+1)+(1+7+1)+(N-1)=17+N-1
=N+16拍若這三條指令全部用串行方法則所需時(shí)間為:[(1+6+1)+N-1]+[(1+6+1)+N-1]+[(1+7+1)+N-1]=3N+22拍若前兩條指令并行執(zhí)行,第三條指令串行執(zhí)行,則所需時(shí)間為:[(1+6+1)+N-1]+[(1+7+1)+N-1]
=2N+15拍留意:由于同步的要求,數(shù)據(jù)進(jìn)入和流出每個(gè)功能部件,包括訪存都須要1拍時(shí)間。3/8/202384實(shí)現(xiàn)鏈接的時(shí)間上的要求:①只有當(dāng)前一指令的第一個(gè)結(jié)果重量送入結(jié)果向量寄存器的那一個(gè)時(shí)鐘周期方可鏈接,若錯(cuò)過(guò)該時(shí)刻就無(wú)法進(jìn)行鏈接,只有等前一向量指令全部執(zhí)行完畢,釋放向量寄存器資源后才能執(zhí)行后面指令。在上面的例子中,當(dāng)一條向量指令的兩個(gè)源操作數(shù)分別是兩條先行指令的結(jié)果寄存器時(shí),要求先行的兩條指令產(chǎn)生運(yùn)算結(jié)果的時(shí)間必需相等,即要求有關(guān)功能部件的延遲時(shí)間相等(如上例中的訪存和浮點(diǎn)加功能部件延時(shí)均為6個(gè)時(shí)間單位)。②進(jìn)行鏈接的向量指令的向量長(zhǎng)度必需相等,否則就不行能鏈接。3/8/202385例:在CRAY-1機(jī)中,浮點(diǎn)功能部件中各功能段的執(zhí)行時(shí)間為:浮點(diǎn)加法:6拍;浮點(diǎn)乘法:7拍;求倒數(shù):14拍;存儲(chǔ)器存/?。?拍;啟動(dòng)功能部件:1拍;打入結(jié)果:1拍。分析任務(wù)數(shù)為50時(shí),下列指令段的完成時(shí)間:①V0←存儲(chǔ)器②V3←V1+V2③V4←V0×V3④V0←V4+V53/8/202386分析:①與②無(wú)功能和寄存器沖突,可并行。②與③先寫(xiě)后讀數(shù)據(jù)相關(guān),可以鏈接。④與②有功能沖突,必需在①與②執(zhí)行完后,才能啟動(dòng)④,即④只能串行工作。①V0←存儲(chǔ)器②V3←V1+V2③V4←V0×V3④V0←V4+V5執(zhí)行時(shí)間:(1+6+1)+(1+7+1)+(50-1)+(1+6+1)+(50-1)=123拍并行鏈接串行3/8/202387例:分析在CRAY-1機(jī)中,任務(wù)數(shù)為50時(shí),下列指令段的完成時(shí)間。①V0←存儲(chǔ)器②V1←V2+V3③V6←V4×V5分析:三條指令均無(wú)功能沖突,可接受全并行的方式,指令段的完成時(shí)間為:(1+7+1)+(50-1)=58拍3/8/202388例:分析在CRAY-1機(jī)中,任務(wù)數(shù)為50時(shí),下列指令段的完成時(shí)間,設(shè)浮點(diǎn)求倒數(shù)的執(zhí)行時(shí)間為14拍。①V2←V0×V1②V3←存儲(chǔ)器③V4←V2+V3④V5←1/V4分析:①與②無(wú)功能和寄存器沖突,可并行。①與②節(jié)拍不一樣,③不能與①、②鏈接,只能串行執(zhí)行。③與④先寫(xiě)后讀數(shù)據(jù)相關(guān),可以鏈接。執(zhí)行時(shí)間:(1+7+1)+(50-1)+(1+6+1)+(1+14+1)+(50-1)=131拍并行鏈接串行3/8/2023893.6.5向量處理性能的評(píng)估參數(shù)和方法衡量向量處理機(jī)的性能主要是向量指令的處理時(shí)間Tvp、向量長(zhǎng)度為無(wú)窮大時(shí)的向量處理機(jī)的最大性能R∞、半性能向量長(zhǎng)度n1/2和向量方式的工作速度優(yōu)于標(biāo)量串行方式工作時(shí)所需的向量長(zhǎng)度臨界值nv等。下面探討這些參數(shù)。3/8/202390在向量處理機(jī)上,執(zhí)行一條向量長(zhǎng)度為n的向量指令的時(shí)間Tvp可表示為:Tvp=Ts+Tvf+(n-1)Tc
其中,Ts為向量流水線的建立時(shí)間,它包括向量起始地址的設(shè)置、計(jì)數(shù)器加1,條件轉(zhuǎn)移指令執(zhí)行等。Tvf為向量流水線的流過(guò)時(shí)間,它是一條指令從起先譯碼到流過(guò)流水線得到第一個(gè)結(jié)果的時(shí)間。Tc為流水線“瓶頸”段的執(zhí)行時(shí)間。1.向量指令的處理時(shí)間Tvp
3/8/202391假如不存在“瓶頸”流水段,每段的執(zhí)行時(shí)間都等于一個(gè)時(shí)鐘周期,則上式也可以寫(xiě)成:Tvp=[s+e+(n-1)]τ其中,s為向量流水線建立時(shí)間所需的時(shí)鐘周期數(shù),e為向量流水線流過(guò)時(shí)間所需的時(shí)鐘周期數(shù),n為向量長(zhǎng)度,τ為時(shí)鐘周期。3/8/202392向量編隊(duì)一組向量操作的執(zhí)行時(shí)間主要取決于下面三個(gè)因素:向量的長(zhǎng)度、向量操作之間是否存在流水功能部件的沖突和數(shù)據(jù)的相關(guān)性。1)能在一個(gè)時(shí)鐘周期內(nèi)一起起先執(zhí)行的向量指令稱(chēng)為一個(gè)編隊(duì)。(確定不存在流水功能部件的沖突和數(shù)據(jù)的相關(guān)性—RAW除外)2)有沖突和相關(guān)的指令分在不同的編隊(duì)。3)一個(gè)編隊(duì)的運(yùn)行時(shí)間為隊(duì)中耗時(shí)最長(zhǎng)的指令運(yùn)行時(shí)間3/8/202393
例3.6.5.1:假設(shè)每種流水功能部件只有一個(gè),則下面一組向量操作能分成4個(gè)編隊(duì):LVV1,Rx;取向量xMULTSVV2,F(xiàn)0,V1;向量和標(biāo)量相乘LVV3,Ry;取向量YADDVV4,V2,V3;加法SVRy,V4;存結(jié)果第一條指令LV為第一個(gè)編隊(duì)。MULTSV指令因?yàn)榕c第一條LV指令相關(guān),它們不能在同一個(gè)編隊(duì)中。3/8/202394MULTSV指令和其次條LV指令之間不存在功能部件沖突和數(shù)據(jù)相關(guān),所以這兩條指令為其次個(gè)編隊(duì)。ADDV指令與其次條LV指令數(shù)據(jù)相關(guān),所以ADD為第三個(gè)編隊(duì)。SV指令與ADDV指令數(shù)據(jù)相關(guān),所以它為第四個(gè)編隊(duì)。所以這一組向量操作劃分為以下四個(gè)編隊(duì):1.LV2.MULTSVLV3.ADDV4.SV3/8/202395一個(gè)編隊(duì)計(jì)算一個(gè)元素的執(zhí)行時(shí)間記為T(mén)chime,它與向量長(zhǎng)度無(wú)關(guān)(≈1拍)。因此,一組由m個(gè)編隊(duì)組成的向量操作的執(zhí)行時(shí)間為m個(gè)Tchime。假如向量長(zhǎng)度為n,則整個(gè)程序的向量操作的執(zhí)行時(shí)間為m×n個(gè)時(shí)鐘周期。上述例子中,因?yàn)檎麄€(gè)程序分為4個(gè)編隊(duì),所以要花費(fèi)4個(gè)Tchime。3/8/202396
除了上述向量操作的真正執(zhí)行時(shí)間外,還須要考慮向量的啟動(dòng)時(shí)間Tstart,Tstart是向量操作流水線的延遲,它等于流水功能部件的流水段數(shù),也即流水線的深度。它和上述的向量流水線的流過(guò)時(shí)間幾乎相等。3/8/202397例3.6.5.2:假設(shè)一臺(tái)向量處理機(jī)中功能部件的啟動(dòng)開(kāi)銷(xiāo)為:取數(shù)和存數(shù)部件為12個(gè)時(shí)鐘周期、乘法部件為7個(gè)時(shí)鐘周期、加法部件為6個(gè)時(shí)鐘周期。則例6.5.1中每個(gè)編隊(duì)的起先時(shí)間、獲得第一個(gè)結(jié)果元素的時(shí)間和獲得最終一個(gè)結(jié)果元素的時(shí)間如下表所示。(未考慮鏈接狀況)3/8/202398假如向量長(zhǎng)度n為64,則得到一個(gè)結(jié)果元素的平均時(shí)間為:4+(41/64)=4.64個(gè)時(shí)鐘周期。編隊(duì)開(kāi)始t第1個(gè)結(jié)果t最后1個(gè)結(jié)果t1.LV01212+(n-1)2.MULTSVLV11+n+112+n+1224+n+(n-1)3.ADDV24+2n24+2n+630+2n+(n-1)4.SV30+3n30+3n+1242+3n+(n-1)3/8/202399程序段的執(zhí)行時(shí)間考慮向量長(zhǎng)度大于向量寄存器長(zhǎng)度時(shí),則須要分段開(kāi)采。分段開(kāi)采的開(kāi)銷(xiāo)由執(zhí)行標(biāo)量代碼的開(kāi)銷(xiāo)Tloop和每個(gè)編隊(duì)的向量啟動(dòng)開(kāi)銷(xiāo)Tstart組成。所以向量長(zhǎng)度為n的向量操作(程序段)的整個(gè)執(zhí)行時(shí)間為:3/8/2023100為了簡(jiǎn)潔起見(jiàn),我們把Tloop看作是一個(gè)常數(shù),Cray1機(jī)器的Tloop約等于15。
下面我們用例子來(lái)說(shuō)明Tn和Tstart的計(jì)算。3/8/2023101例3.6.5.3:在一臺(tái)向量處理機(jī)上實(shí)現(xiàn)A=B×s操作,其中A和B是長(zhǎng)度為200的向量,s是一個(gè)標(biāo)量。向量寄存器長(zhǎng)度為64。各功能部件的啟動(dòng)時(shí)間見(jiàn)本PPT50。求總的執(zhí)行時(shí)間。
3/8/2023102解:因?yàn)橄蛄块L(zhǎng)度超過(guò)了向量寄存器的長(zhǎng)度,所以要實(shí)行分段開(kāi)采方法。每次循環(huán)主要由下面3條向量指令組成:LVV1,RbMULTSVV2,V1,F(xiàn)0(s已預(yù)存入F0)SVRa,V23條指令相關(guān),m=3;n=200n/64=4(取整,零頭算1組)3/8/2023103Tn=4(15+Tstart)+3?200?1=660+4?Tstart又3組串行工作,Tstart=7(load)+7(mul)+
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)數(shù)據(jù)資源開(kāi)發(fā)利用合同
- 教育培訓(xùn)行業(yè)學(xué)習(xí)成果保證協(xié)議
- 生物醫(yī)藥領(lǐng)域創(chuàng)新研究合作合同
- 食品飲料生產(chǎn)供應(yīng)合同
- 教育培訓(xùn)平臺(tái)運(yùn)營(yíng)合作協(xié)議
- 環(huán)保科技項(xiàng)目開(kāi)發(fā)投資協(xié)議
- 綠色能源產(chǎn)業(yè)發(fā)展投資合同
- 物保擔(dān)保合同
- 服裝行業(yè)商品尺碼誤差免責(zé)協(xié)議
- 2025年度環(huán)保技術(shù)借調(diào)應(yīng)用合同-促進(jìn)環(huán)保產(chǎn)業(yè)發(fā)展3篇
- CSC資助出國(guó)博士聯(lián)合培養(yǎng)研修計(jì)劃英文-research-plan
- 《環(huán)境管理學(xué)》教案
- 《阻燃材料與技術(shù)》課件 第5講 阻燃塑料材料
- 2025年蛇年年度營(yíng)銷(xiāo)日歷營(yíng)銷(xiāo)建議【2025營(yíng)銷(xiāo)日歷】
- (一模)寧波市2024學(xué)年第一學(xué)期高考模擬考試 數(shù)學(xué)試卷(含答案)
- 金蛇納瑞企業(yè)2025年會(huì)慶典
- 安保服務(wù)評(píng)分標(biāo)準(zhǔn)
- T-SDLPA 0001-2024 研究型病房建設(shè)和配置標(biāo)準(zhǔn)
- 全過(guò)程工程咨詢(xún)管理服務(wù)方案投標(biāo)方案(技術(shù)方案)
- 光儲(chǔ)電站儲(chǔ)能系統(tǒng)調(diào)試方案
- 父母贈(zèng)與子女農(nóng)村土地協(xié)議書(shū)范本
評(píng)論
0/150
提交評(píng)論