精確斷點(diǎn)與不精確斷點(diǎn)_第1頁
精確斷點(diǎn)與不精確斷點(diǎn)_第2頁
精確斷點(diǎn)與不精確斷點(diǎn)_第3頁
精確斷點(diǎn)與不精確斷點(diǎn)_第4頁
精確斷點(diǎn)與不精確斷點(diǎn)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、5.3.7 5.3.7 精確斷點(diǎn)與不精確斷點(diǎn)精確斷點(diǎn)與不精確斷點(diǎn)對于輸入輸出設(shè)備的中斷服務(wù),實(shí)際上不需要有精確對于輸入輸出設(shè)備的中斷服務(wù),實(shí)際上不需要有精確斷點(diǎn)。斷點(diǎn)。比較簡單的處理方法是:讓已經(jīng)進(jìn)入流水線的所有指令都執(zhí)行完成,斷點(diǎn)就是最后進(jìn)入流水線的那條指令的地址。對于程序性錯誤和機(jī)器故障等引起的中斷,它們出現(xiàn)對于程序性錯誤和機(jī)器故障等引起的中斷,它們出現(xiàn)的概率很低,處理原則:的概率很低,處理原則:不在于縮短時間,關(guān)鍵是不在于縮短時間,關(guān)鍵是要正確保存現(xiàn)場和正確恢復(fù)斷點(diǎn)。要正確保存現(xiàn)場和正確恢復(fù)斷點(diǎn)。不精確斷點(diǎn)不精確斷點(diǎn)(imprecise),流水線可以不斷流流水線可以不斷流需要的硬件比較少

2、,控制邏輯比較簡單需要的硬件比較少,控制邏輯比較簡單中斷響應(yīng)時間加長中斷響應(yīng)時間加長 采用不精確斷點(diǎn)法可能會發(fā)生如下兩個問題:采用不精確斷點(diǎn)法可能會發(fā)生如下兩個問題:(1)(1)程序的調(diào)試?yán)щy程序的調(diào)試?yán)щy調(diào)試程序時要設(shè)置斷點(diǎn),程序員通過查看斷點(diǎn)處的中間執(zhí)行結(jié)果判斷程序是否正確。但由于不精確斷點(diǎn),程序不能準(zhǔn)確中斷,因此,難于調(diào)試。早期的流水線處理機(jī),多采用不精確斷點(diǎn)法近期的流水線處理機(jī)一般都采用精確斷點(diǎn)法 申申請請中中斷斷 輸輸入入 s1 s2 s3 s4 s5 s6 s7 s8 輸輸出出 pc: i+5 i+4 i+3 i+2 i+1 i i-1 i-2 不不精精確確斷斷點(diǎn)點(diǎn) 精精確確斷斷點(diǎn)

3、點(diǎn) (2)(2)程序執(zhí)行的結(jié)果可能出錯,例如:程序執(zhí)行的結(jié)果可能出錯,例如: i i:fadd r1, r2 fadd r1, r2 ;(r1)(r1)(r2)r1(r2)r1 i+1 i+1:fmul r3, r1 fmul r3, r1 ;(r3)(r3)(r1)r3(r1)r3當(dāng)?shù)趇條指令執(zhí)行到s6段時發(fā)現(xiàn)浮點(diǎn)加法結(jié)果溢出,于是發(fā)出中斷服務(wù)申請。由于采用不精確斷點(diǎn)法,已經(jīng)進(jìn)入流水線的第i+1條指令將執(zhí)行完成;因?yàn)榈趇+1條指令使用了不正確的r1,所以浮點(diǎn)乘法的執(zhí)行結(jié)果是不正確的。采用精確斷采用精確斷(precise)(precise)點(diǎn)法,要設(shè)置一定數(shù)量的后援點(diǎn)法,要設(shè)置一定數(shù)量的后援寄

4、存器寄存器,把整個流水線中所有指令的執(zhí)行結(jié)果和現(xiàn)場都保存下來。5.4 5.4 動態(tài)調(diào)度技術(shù)動態(tài)調(diào)度技術(shù)5.4.1 順序流動與亂序流動順序流動與亂序流動5.4.2 亂序流動中的數(shù)據(jù)相關(guān)亂序流動中的數(shù)據(jù)相關(guān)5.4.3 數(shù)據(jù)重定向方法數(shù)據(jù)重定向方法5.4.4 tomasulo動態(tài)調(diào)度算法動態(tài)調(diào)度算法實(shí)現(xiàn)方法:實(shí)現(xiàn)方法: 由硬件動態(tài)調(diào)整指令執(zhí)行順序,以減少數(shù)據(jù)相關(guān)造由硬件動態(tài)調(diào)整指令執(zhí)行順序,以減少數(shù)據(jù)相關(guān)造成的影響。成的影響。主要優(yōu)點(diǎn):主要優(yōu)點(diǎn):能夠處理在編譯時無法確定的相關(guān),并簡化編譯器設(shè)計(jì)在其他流水線機(jī)器上編譯的目標(biāo)代碼也能夠高效運(yùn)行用靜態(tài)調(diào)度法生成的代碼也能在動態(tài)調(diào)度法的機(jī)器中運(yùn)行主要缺點(diǎn):主

5、要缺點(diǎn):指令級并行度低,因?yàn)橹荒茉诒容^小的范圍內(nèi)尋找并行性5.4.1 5.4.1 順序流動與亂序流動順序流動與亂序流動1.1.順序流動方式:順序流動方式:任務(wù)按順序流入流水線任務(wù)按順序流入流水線, ,也按順序也按順序流出流水線流出流水線把如下一段程序輸入到這條流水線中: k: r0(r1) k+1: k+2: r2(r0)(r3) k+3: k+4: k+5: 讀讀 專專用用數(shù)數(shù)據(jù)據(jù)通通路路 寫寫 輸輸入入 s1 s2 s3 s4 s5 s6 輸輸出出 寄寄存存器器r0 指令指令k+2k+2無法繼續(xù)執(zhí)行,要在功能段無法繼續(xù)執(zhí)行,要在功能段s2中等待。中等待。后續(xù)的指令后續(xù)的指令k+4k+4、k

6、+5k+5、等也不能進(jìn)入流水線。等也不能進(jìn)入流水線。功能段功能段s3、s4、s5將逐漸空閑。將逐漸空閑。缺點(diǎn):缺點(diǎn):吞吐率和效率降低吞吐率和效率降低優(yōu)點(diǎn):優(yōu)點(diǎn):流水線的控制邏輯比較簡單流水線的控制邏輯比較簡單流水線流水線“斷流斷流”,有些功能段,有些功能段“空閑空閑” 時時鐘鐘周周期期ti+4k k+ +4 4k k+ +3 3k k+ +2 2空空閑閑空空閑閑空空閑閑ti+3k k+ +3 3k k+ +2 2空空閑閑空空閑閑空空閑閑k k+ +1 1ti+2k k+ +3 3k k+ +2 2空空閑閑空空閑閑k k+ +1 1k kti+1k k+ +3 3k k+ +2 2空空閑閑k k

7、+ +1 1k kk k- -1 1tik k+ +3 3k k+ +2 2k k+ +1 1k kk k- -1 1k k- -2 2正正常常流流動動k k+ +5 5k k+ +4 4k k+ +3 3k k+ +2 2k k+ +1 1k k功功能能段段功功能能段段s1s2s3s4s5s6順順序序流流動動方方式式2.2.亂序亂序(out of order)流動方式:流動方式:指令流出流水線的順序與流入指令流出流水線的順序與流入流水線的順序不同。流水線的順序不同。又稱為錯序流動方式、無序流動方式、異步流動方式等。時時鐘鐘周周期期ti+5k+8(k+7)k+6k+2k+5k+4k+3ti+4

8、k+7(k+6)k+2k+5k+4k+3k+1ti+3k+6k+5(k+2)k+4k+3k+1kti+2k+5k+4(k+2)k+3k+1kk-1ti-+1k+4k+3(k+2)k+1kk-1k-2tik+3(k+2)k+1kk-1k-1k-3正正常常流流動動k+5k+4k+3k+2k+1k功功能能段段功功能能段段s1s2s3s4s5s6亂亂序序流流動動方方式式5.4.2 5.4.2 亂序流動中的數(shù)據(jù)相關(guān)亂序流動中的數(shù)據(jù)相關(guān)在亂序流動方式中,可能發(fā)生三種數(shù)據(jù)相關(guān)在亂序流動方式中,可能發(fā)生三種數(shù)據(jù)相關(guān) 寫寫相關(guān)寫寫相關(guān) k: load f1, a ;f1(a) 寫讀相關(guān)寫讀相關(guān) k+1:fadd

9、 f2, f1 ;f2(f2)+(f1) k+2:fmul f1, f3 ;f1(f1)(f3) k+3:store f1, b ;b(f1)讀寫相關(guān)讀寫相關(guān)(1)寫讀相關(guān):寫讀相關(guān):指令k與指令k+1之間關(guān)于f1的相關(guān),又稱為數(shù)據(jù)相關(guān)、先寫后讀相關(guān)、流相關(guān)、數(shù)據(jù)相關(guān)、先寫后讀相關(guān)、流相關(guān)、wr相關(guān)、相關(guān)、raw相關(guān)相關(guān)等。(2)讀寫相關(guān):讀寫相關(guān):指令k+1與指令k+2之間關(guān)于f1的相關(guān),變量名相關(guān)、先讀后寫相關(guān)、反相關(guān)、rw相關(guān)、war相關(guān)等。(3)寫寫相關(guān):寫寫相關(guān):指令k與指令k+2左邊的f1之間的相關(guān)關(guān)系稱為:輸出相關(guān)、寫寫相關(guān)、ww相關(guān)、waw相關(guān)或?qū)懞笤賹懴嚓P(guān)等。有時把相關(guān)相關(guān)稱

10、為“冒險(xiǎn)冒險(xiǎn)”(hazard)、“竟?fàn)幘範(fàn)帯?(competition)等。在程序執(zhí)行過程中,只有避免相關(guān),執(zhí)行結(jié)果才是正在程序執(zhí)行過程中,只有避免相關(guān),執(zhí)行結(jié)果才是正確的。確的。 三種數(shù)據(jù)相關(guān)可以用下列關(guān)系式來表示:三種數(shù)據(jù)相關(guān)可以用下列關(guān)系式來表示: 對于寫讀相關(guān) d(i) s(j) 對于讀寫相關(guān) s(i) d(j) 對于寫寫相關(guān) d(i) d(j) ( (寫寫) ) ( (寫寫) ) ( (讀讀) ) ( (寫寫) ) ( (a a) ) 寫寫讀讀相相關(guān)關(guān) ( (b b) ) 寫寫寫寫相相關(guān)關(guān) ( (讀讀) ) ( (寫寫) ) i i 先先于于j j。 ( (c c) ) 讀讀寫寫相相

11、關(guān)關(guān) s(i) s(i) s(i) d(i) d(i) d(i) s(j) s(j) s(j) d(j) d(j) d(j) 5.4.3 5.4.3 數(shù)據(jù)重定向方法數(shù)據(jù)重定向方法1.1.三種數(shù)據(jù)相關(guān)的重定向三種數(shù)據(jù)相關(guān)的重定向 重定向之前,j只能在i之后執(zhí)行。 重定向之后,可以做到:(1)(1)寫讀相關(guān),寫讀相關(guān),j j與與i i可以同時執(zhí)行可以同時執(zhí)行 即專用數(shù)據(jù)通路即專用數(shù)據(jù)通路(2)(2)寫寫相關(guān),寫寫相關(guān),先后順序無關(guān)先后順序無關(guān)(3)(3)讀寫相關(guān),讀寫相關(guān),先后順序無關(guān)先后順序無關(guān) 后兩種情況又稱為后兩種情況又稱為“變量換名技術(shù)變量換名技術(shù)”b bb b i i j j i ia

12、ac ca aj jc c( (a a) ) 寫寫讀讀相相關(guān)關(guān)的的數(shù)數(shù)據(jù)據(jù)重重定定向向b bb bb b i i j j i i j ja ac ca ac c( (b b) ) 寫寫寫寫相相關(guān)關(guān)的的數(shù)數(shù)據(jù)據(jù)重重定定向向b bb b i i j j j ja ac ca aj jc c i ib b ( (c c) ) 讀讀寫寫相相關(guān)關(guān)的的數(shù)數(shù)據(jù)據(jù)重重定定向向2.2.變量換名技術(shù)變量換名技術(shù)用來自動消除讀寫數(shù)據(jù)相關(guān)讀寫數(shù)據(jù)相關(guān)和寫寫數(shù)據(jù)相關(guān)寫寫數(shù)據(jù)相關(guān)規(guī)則:一個變量只允許定值一次一個變量只允許定值一次在三種數(shù)據(jù)相關(guān)中,實(shí)際上只有寫讀數(shù)據(jù)相關(guān)必須依靠硬件、或采用軟硬件結(jié)合的方法來解決 解決方法:

13、推后處理推后處理或?qū)S脭?shù)據(jù)通路專用數(shù)據(jù)通路在上面的數(shù)據(jù)重定向圖中,把b換成了b,并在以后的都引用b讀寫數(shù)據(jù)相關(guān)和寫寫數(shù)據(jù)相關(guān)就不存在了。一個實(shí)際例子:loop: ld f0, 0(r1) add f0, f2 sd 0(r1), f0 ld f0, -8(r1) add f0, f2 sd -8(r1), f0 ld f0, -16(r1) add f0, f2 sd -16(r1), f0 ld f0, -24(r1) add f0, f2 sd -24(r1), f0 subi r1, r1, #32 bnez r1, looploop: ld f0, 0(r1) ld f4, -8(r1

14、) ld f6, -16(r1) ld f8, -24(r1) add f0,f2 add f4,f2 add f6,f2 add f8,f2 sd 0(r1), f0 sd -8(r1), f4 subi r1, r1, #32 sd -16(r1), f6 bnez r1, loop sd -24(r1), f83.3.一個簡單的程序:一個簡單的程序: k: load f1, a k+1: fadd f1, f2 k+2: fmul f1, f3 k+3: store f1, b a k+1k+1 faddfadd k+1 k+1 f2 k k k+1 k+1 f1 k+3 k+3 k+2

15、 k+2 b k+2k+2 fmulfmul k+2 k+2 f3 a ak k,k k+ +1 1f fa ad dd d k k+ +1 1f2f1k k+ +1 1k k+ +2 2 k k+ +2 2b bk k+ +2 2, ,k k+ +3 3f fm mu ul l k k+ +2 2f3專門設(shè)置:afaddafadd、fmulbfmulb、faddfmulfaddfmul三條專用路徑。撤消:f1fadd、f1fmul、faddf1 、af1的路徑。5.4.4 tomasulo5.4.4 tomasulo動態(tài)調(diào)度算法動態(tài)調(diào)度算法p310p310實(shí)用的動態(tài)調(diào)度算法主要有兩種:(1)

16、集中控制:cdc計(jì)分牌計(jì)分牌(scorebord)算法, 最先在cdc 6600大型機(jī)中采用。(2)分散控制:tomasulotomasulo算法算法, , 公共數(shù)據(jù)總線公共數(shù)據(jù)總線法,令牌法等。最早在大型機(jī)ibm 360/91的浮點(diǎn)處理部件中被采用。以上面的一段程序?yàn)槔f明tomasulotomasulo算法算法k: load f1, ak+1: fadd f1, f2k+2: fmul f1, f3k+3: store f1, b5.5 5.5 超標(biāo)量處理機(jī)超標(biāo)量處理機(jī)5.5.1 基本結(jié)構(gòu)基本結(jié)構(gòu)5.5.2 單發(fā)射與多發(fā)射單發(fā)射與多發(fā)射5.5.3 多流水線調(diào)度多流水線調(diào)度5.5.4 資源沖

17、突資源沖突5.5.5 超標(biāo)量處理機(jī)性能超標(biāo)量處理機(jī)性能三種主流處理機(jī):三種主流處理機(jī): 超標(biāo)量處理機(jī)超標(biāo)量處理機(jī) 超流水線處理機(jī)超流水線處理機(jī) 超標(biāo)量超流水線處理機(jī)超標(biāo)量超流水線處理機(jī)以以一一臺臺k k 段段流流水水線線的的普普通通標(biāo)標(biāo)量量處處理理機(jī)機(jī)為為基基準(zhǔn)準(zhǔn) 超超標(biāo)標(biāo)量量處處理理機(jī)機(jī)、超超流流水水線線處處理理機(jī)機(jī)和和超超標(biāo)標(biāo)量量超超流流水水線線處處理理機(jī)機(jī)的的主主要要性性能能: 機(jī)器類型 k段流水線 標(biāo)量處理機(jī) m度 超標(biāo)量處理機(jī) n度 超流水線處理機(jī) (m,n)度超標(biāo)量 超流水線處理機(jī) 機(jī)器流水線周期 1個時鐘周期 1 1n 1n 同時發(fā)射指令條數(shù) 1條 m 1 m 指令發(fā)射等待時間

18、1個時鐘周期 1 1n 1n 指令級并行度ilp 1 m n mn 5.5.1 5.5.1 基本結(jié)構(gòu)基本結(jié)構(gòu)普通標(biāo)量流水線處理機(jī):普通標(biāo)量流水線處理機(jī): 一條指令流水線一條指令流水線,一個多功能操作部件一個多功能操作部件, 每個時鐘周期平均執(zhí)行指令的條數(shù)小于1。多操作部件標(biāo)量處理機(jī):多操作部件標(biāo)量處理機(jī): 一條指令流水線一條指令流水線,多個獨(dú)立的操作部件,多個獨(dú)立的操作部件, 指令級并行度小于1。超標(biāo)量處理機(jī)典型結(jié)構(gòu):超標(biāo)量處理機(jī)典型結(jié)構(gòu): 多條并行工作的指令流水線多條并行工作的指令流水線,多個獨(dú)立的操作部件,多個獨(dú)立的操作部件, 指令級并行度(指令級并行度(ilp)大于)大于1。整數(shù)整數(shù) 部

19、件部件 整數(shù)整數(shù) 部件部件 位操位操作作 部件部件 浮點(diǎn)浮點(diǎn)加加 部件部件 乘法乘法 部件部件 除法除法 部件部件 圖形圖形 部件部件 圖形圖形 部件部件 內(nèi)部總線內(nèi)部總線 讀數(shù)存數(shù)讀數(shù)存數(shù) 部件部件 通用寄通用寄 存器堆存器堆 擴(kuò)展擴(kuò)展 寄存器堆寄存器堆 目標(biāo)目標(biāo) 指令指令 cachecache 指令分配指令分配 轉(zhuǎn)移部件轉(zhuǎn)移部件 數(shù)據(jù)數(shù)據(jù) cachecache(8k8kb b) 指令指令 cachecache(8k8kb b) 3232 位地址總線位地址總線 6464 位數(shù)據(jù)總線位數(shù)據(jù)總線 系統(tǒng)總線系統(tǒng)總線 超標(biāo)量處理機(jī)超標(biāo)量處理機(jī) mc88110mc88110 的結(jié)構(gòu)的結(jié)構(gòu) motoro

20、lamotorola公司的公司的mc88110mc88110有10個操作部件兩個寄存器堆:整數(shù)部件通用寄存器堆,32個32位寄存器浮點(diǎn)部件擴(kuò)展寄存器堆,32個80位寄存器緩沖深度為4的先行讀數(shù)棧緩沖深度為3的后行寫數(shù)棧兩個獨(dú)立的高速cache中,各為8kb,采用兩路組相聯(lián)方式轉(zhuǎn)移目標(biāo)指令cache,用于存放另一條分支上的指令5.5.2 5.5.2 單發(fā)射與多發(fā)射單發(fā)射與多發(fā)射1.1.單發(fā)射處理機(jī):單發(fā)射處理機(jī):每個周期只取一條指令、只譯碼一條指令,只執(zhí)行一每個周期只取一條指令、只譯碼一條指令,只執(zhí)行一條指令,只寫回一個運(yùn)算結(jié)果。條指令,只寫回一個運(yùn)算結(jié)果。取指令部件和指令譯碼部件各設(shè)置一套;只

21、設(shè)置一個多功能操作部件或設(shè)置多個獨(dú)立的操作部件;操作部件中可以采用流水線結(jié)構(gòu),也可以不采用流水線結(jié)構(gòu)。目標(biāo)是每個時鐘周期平均執(zhí)行一條指令,ilp的期望值為1。2.2.多發(fā)射處理機(jī):多發(fā)射處理機(jī):每個周期同時取多條指令、同時譯碼多條指令,同時每個周期同時取多條指令、同時譯碼多條指令,同時執(zhí)行多條指令,同時寫回多個運(yùn)算結(jié)果執(zhí)行多條指令,同時寫回多個運(yùn)算結(jié)果。多個取指令部件,多個指令譯碼部件和多個寫結(jié)果部多個取指令部件,多個指令譯碼部件和多個寫結(jié)果部件。件。設(shè)置多個指令執(zhí)行部件,設(shè)置多個指令執(zhí)行部件,有些指令執(zhí)行部件采用流水線結(jié)構(gòu)。目標(biāo)是每個時鐘周期平均執(zhí)行多條指令,ilp的期望值大于1。單單 發(fā)發(fā)

22、 射射 處處 理理 機(jī)機(jī) 的的 指指 令令 流流 水水 線線 時時 空空 圖圖 1 2 3 4 5 6 i1 if id ex w r 時時 鐘鐘 周周 期期 i2 if id ex w r i3 if id ex w r 指指 令令 多多 發(fā)發(fā) 射射 處處 理理 機(jī)機(jī) 的的 指指 令令 流流 水水 線線 時時 空空 圖圖 1 2 3 4 5 6 i1 if id ex w r 時時 鐘鐘 周周 期期 i2 if id ex w r i3 if id ex w r i4 if id ex w r i5 if id ex w r i6 if id ex w r i7 if id ex w r i

23、8 if id ex w r i9 if id ex w r 指指 令令 單單發(fā)發(fā)射射處處理理機(jī)機(jī)的的指指令令流流水水線線 取取指指令令 指指令令譯譯碼碼 執(zhí)執(zhí)行行指指令令ex 寫寫回回結(jié)結(jié)果果 fa1 fa2 fa3 浮浮點(diǎn)點(diǎn)加加法法部部件件 來來自自指指令令 cache if id md1 md2 md3 wr 通通用用寄寄存存器器 后后行行寫寫數(shù)數(shù)棧棧 乘乘除除法法部部件件 al 定定點(diǎn)點(diǎn)算算術(shù)術(shù)邏邏輯輯部部件件 ls 取取數(shù)數(shù)存存數(shù)數(shù)部部件件 同同時時發(fā)發(fā)射射兩兩條條指指令令的的多多發(fā)發(fā)射射處處理理機(jī)機(jī)的的指指令令流流水水線線 取取指指令令 指指令令譯譯碼碼 執(zhí)執(zhí)行行指指令令 寫寫回回

24、結(jié)結(jié)果果 fa1 fa2 fa3 浮浮點(diǎn)點(diǎn)加加法法部部件件 來來自自指指令令 cache if1 id1 md1 md2 md3 wr1 通通用用寄寄存存器器 后后行行寫寫數(shù)數(shù)棧棧 乘乘除除法法部部件件 來來自自指指令令 cache if2 id2 al wr2 通通用用寄寄存存器器 后后行行寫寫數(shù)數(shù)棧棧 定定點(diǎn)點(diǎn)算算術(shù)術(shù)邏邏輯輯部部件件 ls 取取數(shù)數(shù)存存數(shù)數(shù)部部件件 3.3.超標(biāo)量處理機(jī):超標(biāo)量處理機(jī):有兩條或兩條以上能同時工作的指令流水線先行指令窗口先行指令窗口:能夠從指令cache中預(yù)取多條指令,能夠?qū)Υ翱趦?nèi)的指令進(jìn)行數(shù)據(jù)相關(guān)性分析和功能部件沖突檢測。例如:例如:intel公司的i86

25、0、i960、pentium,motolora公司的mc88110,ibm公司的power 6000,ti公司生產(chǎn)supersparc等操作部件的個數(shù)一般多于每個周期發(fā)射的指令條數(shù)。通常為4 個至16個操作部件。超標(biāo)量處理機(jī)的指令級并行度:超標(biāo)量處理機(jī)的指令級并行度:1ilpm有有先先行行指指令令窗窗口口的的超超標(biāo)標(biāo)量量處處理理機(jī)機(jī)的的流流水水線線結(jié)結(jié)構(gòu)構(gòu) 取取指指令令 指指令令譯譯碼碼 執(zhí)執(zhí)行行指指令令 寫寫回回結(jié)結(jié)果果 fa1 fa2 fa3 浮浮點(diǎn)點(diǎn)加加法法部部件件 指指令令 cache if1 id1 md1 md2 md3 wr1 通通用用寄寄存存器器 后后行行寫寫數(shù)數(shù)棧棧 乘乘除除

26、法法部部件件 指指令令 cache if2 id2 al wr2 通通用用寄寄存存器器 后后行行寫寫數(shù)數(shù)棧棧 定定點(diǎn)點(diǎn)算算術(shù)術(shù)邏邏輯輯部部件件 if3 id3 ls 先先行行指指令令窗窗口口 取取數(shù)數(shù)存存數(shù)數(shù)部部件件 f fa a:浮浮點(diǎn)點(diǎn)加加減減法法運(yùn)運(yùn)算算,m md d:乘乘除除法法運(yùn)運(yùn)算算,a al l:定定點(diǎn)點(diǎn)算算術(shù)術(shù)邏邏輯輯運(yùn)運(yùn)算算,l ls s 取取數(shù)數(shù)存存數(shù)數(shù) 5.5.3 5.5.3 多流水線調(diào)度多流水線調(diào)度順序發(fā)射(in-order issue)與亂序發(fā)射(out-order issue):指令發(fā)射順序是按照程序中指令排列順序進(jìn)行的稱指令發(fā)射順序是按照程序中指令排列順序進(jìn)行的稱

27、為順序發(fā)射為順序發(fā)射順序完成(in-order completion)與亂序完成(out-order completion):指令完成順序是按照程序中指令排列指令完成順序是按照程序中指令排列順序進(jìn)行的稱為順序完成順序進(jìn)行的稱為順序完成多流水線的調(diào)度主要有三種方法:多流水線的調(diào)度主要有三種方法:順序發(fā)射順序完成順序發(fā)射順序完成順序發(fā)射亂序完成順序發(fā)射亂序完成亂序發(fā)射亂序完成亂序發(fā)射亂序完成以如下以如下6 6條指令組成的程序?yàn)槔f明這三種調(diào)度方條指令組成的程序?yàn)槔?,說明這三種調(diào)度方法法 i1:load r1, a ;r1(a) i2:fadd r2, r1 ;r2(r2)(r1) i3:fmul

28、 r3, r4 ;r3(r3)(r4) i4:fadd r4, r5 ;r4(r4)(r5) i5:dec r6 ;r6(r6)1 i6:fmul r6, r7 ;r6(r6)(r7)6條指令中有4個數(shù)據(jù)相關(guān),包括2個寫讀相關(guān),1個讀寫相關(guān)和1個寫寫相關(guān)。1.1.順序發(fā)射順序完成順序發(fā)射順序完成 共用共用1010個時鐘周期完成個時鐘周期完成 還有有8 8個空閑的時鐘周期個空閑的時鐘周期順順序序發(fā)發(fā)射射順順序序完完成成的的指指令令流流水水線線時時空空圖圖 1 2 3 4 5 6 7 8 9 10 i1 if1 id1 ls wr1 時時鐘鐘周周期期 i2 if2 id2 fa1 fa2 fa2

29、wr2 i3 if1 id1 md1 md2 md3 wr1 i4 if2 id2 fa1 fa2 fa3 wr2 i5 if1 id1 al wr1 i6 if2 id2 md1 md2 md3 wr2 指指令令 i if f:取取指指令令,i id d:指指令令譯譯碼碼,l ls s 取取數(shù)數(shù)存存數(shù)數(shù),f fa a:浮浮點(diǎn)點(diǎn)加加減減法法運(yùn)運(yùn)算算, m md d:乘乘除除法法運(yùn)運(yùn)算算,a al l:定定點(diǎn)點(diǎn)算算術(shù)術(shù)邏邏輯輯運(yùn)運(yùn)算算 w wr r:寫寫回回運(yùn)運(yùn)算算結(jié)結(jié)果果 2.2.順序發(fā)射亂序完成順序發(fā)射亂序完成 總的執(zhí)行時間為總的執(zhí)行時間為9 9個時鐘周期個時鐘周期, 節(jié)省了一個時鐘周期節(jié)省

30、了一個時鐘周期。少了少了5 5個空閑時鐘周期個空閑時鐘周期。順順序序發(fā)發(fā)射射亂亂序序完完成成的的流流水水線線時時空空圖圖 1 2 3 4 5 6 7 8 9 i1 if1 id1 ls wr1 時時鐘鐘周周期期 i2 if2 id2 fa1 fa2 fa2 wr2 i3 if1 id1 md1 md2 md3 wr1 i4 if2 id2 fa1 fa2 fa3 wr2 i5 if1 id1 al wr1 i6 if2 id2 md1 md2 md3 wr2 指指令令 順順序序發(fā)發(fā)射射亂亂序序完完成成的的指指令令完完成成次次序序 時時鐘鐘周周期期 4 4 5 5 6 6 7 7 8 8 9 9

31、 流流水水線線 1 1 i1 i5 i3 流流水水線線 2 2 i2 i4 i6 3. 3. 亂序發(fā)射亂序完成亂序發(fā)射亂序完成沒有空閑周期,功能部件得到充分利用。沒有空閑周期,功能部件得到充分利用。 總的執(zhí)行時間為總的執(zhí)行時間為8個周期個周期,節(jié)省節(jié)省2個周期。個周期。亂亂序序發(fā)發(fā)射射亂亂序序完完成成調(diào)調(diào)度度方方法法的的流流水水線線時時空空圖圖 1 2 3 4 5 6 7 8 流流水水線線 1 1 i i1 1 if1 id1 ls wr1 時時鐘鐘周周期期 流流水水線線 2 2 i i3 3 if2 id2 md1 md2 md3 wr2 先先行行窗窗口口 i i4 4 if3 id3 fa

32、1 fa2 fa3 wr1 i2 if1 id1 fa1 fa2 fa3 wr1 i5 if2 id2 al wr2 i6 if1 id1 md1 md2 md3 wr1 指指令令 指指令令在在流流水水線線中中的的發(fā)發(fā)射射次次序序 指指令令在在流流水水線線中中的的完完成成次次序序 時時鐘鐘周周1 2 3 時時鐘鐘周周期期 4 5 6 7 8 流流水水線線 1 1 i1 i2 i6 流流水水線線 1 1 i1 i4 i2 i6 流流水水線線 2 2 i3 i5 流流水水線線 2 2 i5 i3 先先行行窗窗口口 i4 5.5.4 5.5.4 資源沖突資源沖突如果操作部件采用流水線結(jié)構(gòu),發(fā)生資源沖

33、突的可能性很??;如果不采用流水線結(jié)構(gòu),發(fā)生資源沖突的可能性就比較大。下面是一個由4條指令的程序例子: i1:fadd r0, r1 ;r0(r0)(r1) i2:fmul r2, r3 ;r2(r2)(r3) i3:fadd r4, r5 ;r4(r4)(r5) i4:fmul r6, r7 ;r6(r6)(r7)雙雙 流流 水水 線線 超超 標(biāo)標(biāo) 量量 處處 理理 機(jī)機(jī) , 操操 作作 部部 件件 不不 采采 用用 流流 水水 線線 的的 時時 空空 圖圖1234567891011流流 水水 線線1 i1if1 id1faddw r1 時時 鐘鐘 周周 期期流流 水水 線線2 i2if2 i

34、d2fm ulw r2流流 水水 線線1 i3if1 id1faddw r1流流 水水 線線2 i4if2 id2fm ulw r2 指指 令令i if f: 取取 指指 令令 , i id d: 指指 令令 譯譯 碼碼 , f fa ad dd d: 浮浮 點(diǎn)點(diǎn) 加加 法法 , f fm mu ul l: 浮浮 點(diǎn)點(diǎn) 乘乘 法法 , w wr r: 寫寫 回回 結(jié)結(jié) 果果 操作部件不采用流水線:操作部件不采用流水線: 做完做完4 4條指令總共用了條指令總共用了1111個周期,個周期, 有有5 5個空閑周期個空閑周期。操作部件采用流水線:操作部件采用流水線: 做完做完4 4條指令共用條指令共用

35、8 8個周期,個周期, 少用少用3 3個周期。個周期。雙雙流流水水線線超超標(biāo)標(biāo)量量處處理理機(jī)機(jī),操操作作部部件件采采用用流流水水線線的的時時空空圖圖 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 流流水水線線1 i1 i if f1 1 i id d1 1 f fa ad dd d1 1 f fa ad dd d2 2 f fa ad dd d3 3 w wr r1 1 時時鐘鐘周周期期 流流水水線線2 i2 i if f2 2 i id d2 2 f fm mu ul l1 1 f fm mu ul l2 2 f fm mu ul l3 3 f fm mu ul l4 4 w

36、wr r2 2 流流水水線線1 i i3 3 i if f1 1 i id d1 1 f fa ad dd d1 1 f fa ad dd d2 2 f fa ad dd d3 3 w wr r1 1 流流水水線線2 i i4 4 i if f2 2 i id d2 2 f fm mu ul l1 1 f fm mu ul l2 2 f fm mu ul l3 3 f fm mu ul l4 4 w r2 指指令令 i if f:取取指指令令,i id d:指指令令譯譯碼碼,f fa ad dd d:浮浮點(diǎn)點(diǎn)加加法法,f fm mu ul l:浮浮點(diǎn)點(diǎn)乘乘法法,w wr r:寫寫回回結(jié)結(jié)果果

37、操作部件采用流水線結(jié)構(gòu)的原因分析操作部件采用流水線結(jié)構(gòu)的原因分析假每個周期發(fā)射m條指令,操作部件的延遲時間為k個周期,如果操作部件不采用流水線結(jié)構(gòu),則使用同一個操作部件的兩條指令應(yīng)該至少相差至少相差mk如果操作部件采用k段流水線結(jié)構(gòu),則使用同一個操作部件的兩條指令只需相差只需相差m或或m以上以上指令流水線的段數(shù)k一般在4至10之間,每個時鐘周期發(fā)射的指令條數(shù)m在2至4之間。取中間值,k7,m3為了不發(fā)生資源沖突,如果操作部件不采用流水線結(jié)構(gòu), 兩條使用同一個功能部件的指令序號必須相差兩條使用同一個功能部件的指令序號必須相差21或或21以上。以上。如果操作部件采用流水線結(jié)構(gòu), 兩條使用同一個功能

38、部件的指令序號只需要相差兩條使用同一個功能部件的指令序號只需要相差3或或3以上。以上。因此,在超標(biāo)量處理機(jī)中,操作部件一般要采用流水線因此,在超標(biāo)量處理機(jī)中,操作部件一般要采用流水線結(jié)構(gòu)。結(jié)構(gòu)。 如果由于某種原因,操作部件不能采用流水線結(jié)構(gòu),則必須設(shè)置多個相同種類的操作部件普通標(biāo)量處理機(jī),希望相同操作連續(xù)出現(xiàn)。 只有連續(xù)出現(xiàn)相同操作的指令序列時,流水線的效率才能得到充分發(fā)揮。超標(biāo)量處理機(jī)超標(biāo)量處理機(jī)則正好相反,希望相同操作不要連續(xù)出希望相同操作不要連續(xù)出現(xiàn)現(xiàn)。相同操作的指令序列連續(xù)出現(xiàn)時,會發(fā)生資源沖突;要求相同操作的指令能夠相對均勻地分布在程序中。超標(biāo)量處理機(jī)的這種要求正好符合一般標(biāo)量程序的

39、特超標(biāo)量處理機(jī)的這種要求正好符合一般標(biāo)量程序的特點(diǎn)點(diǎn)。5.5.5 5.5.5 超標(biāo)量處理機(jī)性能超標(biāo)量處理機(jī)性能單流水線普通標(biāo)量處理機(jī)的指令級并行度記作(1, 1),超標(biāo)量處理機(jī)的指令級并行度記作(m, 1),超流水線處理機(jī)的指令級并行度記作(1, n),而超標(biāo)量超流水線處理機(jī)的指令級并行度記作(m, n)。在理想情況下,n條指令在單流水線標(biāo)量處理機(jī)上的執(zhí)行時間為: t(1, 1)(kn1) t在每個周期發(fā)射m條指令的超標(biāo)量處理機(jī)上執(zhí)行的時間為: 超標(biāo)量處理機(jī)相對于單流水線標(biāo)量處理機(jī)的加速比為:超標(biāo)量處理機(jī)的加速比的最大值為:s( (m,1),1)maxmtmmnkmt)() 1 ,() 1()

40、 1() 1 ,() 1 , 1 () 1 ,(kmnnkmmttms5.6 5.6 超流水線處理機(jī)超流水線處理機(jī)5.6.1 指令執(zhí)行時序指令執(zhí)行時序5.6.2 典型處理機(jī)結(jié)構(gòu)典型處理機(jī)結(jié)構(gòu)5.6.3 超流水線處理機(jī)性能超流水線處理機(jī)性能超流水線處理機(jī)的兩種定義:超流水線處理機(jī)的兩種定義:在一個周期內(nèi)分時發(fā)射多條指令的處理機(jī)指令流水線的段數(shù)大于等于8的流水線處理機(jī)提高處理機(jī)性能的兩種方法:提高處理機(jī)性能的兩種方法:通過增加硬件資源來提高處理機(jī)性能通過各部分硬件的重疊工作來提高處理機(jī)性能兩種不同并行性:兩種不同并行性:超標(biāo)量處理機(jī)采用的是空間并行性。超標(biāo)量處理機(jī)采用的是空間并行性。超流水線處理機(jī)

41、采用的是時間并行性。超流水線處理機(jī)采用的是時間并行性。5.6.1 5.6.1 指令執(zhí)行時序指令執(zhí)行時序每隔每隔1/n個時鐘周期發(fā)射一條指令個時鐘周期發(fā)射一條指令, 即處理機(jī)的流水線周期為1/n個時鐘周期。每每個個時時鐘鐘周周期期分分時時發(fā)發(fā)射射 3 3 條條指指令令的的超超流流水水線線處處理理機(jī)機(jī)的的指指令令執(zhí)執(zhí)行行時時空空圖圖 1 1 2 2 3 3 4 4 5 5 6 6 i1 if i id d ex wr 時時鐘鐘周周期期 i2 if id ex w wr r i3 if id ex wr i4 if id ex wr i5 if id ex wr i6 if id ex wr i7

42、if id ex wr i8 if id ex wr 指指令令 i9 if id ex wr 5.6.2 5.6.2 典型處理機(jī)結(jié)構(gòu)典型處理機(jī)結(jié)構(gòu)mips r4000mips r4000處理機(jī):處理機(jī): 每個時鐘周期包含兩個流水段每個時鐘周期包含兩個流水段是一種很標(biāo)準(zhǔn)的超流水線處理機(jī)結(jié)構(gòu)。指令流水線有8個流水段。指令cache和數(shù)據(jù)cache的容量各8kb,每個時鐘周期可以訪問cache兩次,在一個時鐘周期內(nèi)可以從指令cache中讀出兩條指令,從數(shù)據(jù)cache中讀出或?qū)懭雰蓚€數(shù)據(jù)。主要運(yùn)算部件有整數(shù)部件和浮點(diǎn)部件。mips r4000mips r4000 處理機(jī)的流水線操作處理機(jī)的流水線操作

43、if is rf ex df ds tc wb 指令指令 指令譯碼指令譯碼 cache 數(shù)據(jù)數(shù)據(jù) 寄存寄存 讀讀寄寄存存器器 alu cache 標(biāo)標(biāo) 志志 檢檢 驗(yàn)驗(yàn) 器堆器堆 if:取第一條指令;:取第一條指令;is:取第二條指令;:取第二條指令;rf:讀寄存器堆,指令譯碼;:讀寄存器堆,指令譯碼; ex:執(zhí)行指令;:執(zhí)行指令;df:取第一個數(shù)據(jù);:取第一個數(shù)據(jù);ds:取第二個數(shù)據(jù);:取第二個數(shù)據(jù);tc:數(shù)據(jù)標(biāo)志檢驗(yàn);:數(shù)據(jù)標(biāo)志檢驗(yàn); wb:寫回結(jié)果:寫回結(jié)果 m mi ip ps s r r4 40 00 00 0 正正常常指指令令流流水水線線工工作作時時序序 主主時時鐘鐘周周期期 當(dāng)當(dāng)

44、前前 cpu 周周期期 if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if:取取第第一一條條指指令令;is:取取第第二二條條指指令令;rf:讀讀寄寄存存器器堆堆,指指令令譯譯碼碼; ex:執(zhí)執(zhí)行行指指令令;df:取取第第一一個個數(shù)數(shù)據(jù)據(jù);ds:取取第第二二個個數(shù)

45、數(shù)據(jù)據(jù);tc:數(shù)數(shù)據(jù)據(jù)標(biāo)標(biāo)志志檢檢驗(yàn)驗(yàn); wb:寫寫回回結(jié)結(jié)果果 流流水水 線線 周周期期 如果在load指令之后的兩條指令中,任何一條指令要在它的ex流水級使用這個數(shù)據(jù),則指令流水線要暫停一個時鐘周期。指令 運(yùn)行 暫停 暫停 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 i1 df ds tc wb load指令 i2 ex df ds tc wb 使用load數(shù)據(jù) i3 rf ex df ds tc wb i4 is rf ex df ds tc wb i5 if is rf ex df ds tc wb i6 if is rf ex df ds tc wb 5.6.3 5.6.3 超流

46、水線處理機(jī)性能超流水線處理機(jī)性能指令級并行度為(1,n)的超流水線處理機(jī),執(zhí)行n條指令所的時間為:超流水線處理機(jī)相對于單流水線普通標(biāo)量處理機(jī)的加速比為: 加速比的最大值為:s(1, n)maxntnkntn( , )()111) 1()1() 1(), 1 () 1 , 1 (), 1 (nnknkntnnktnknttns5.7 5.7 超標(biāo)量超流水線處理機(jī)超標(biāo)量超流水線處理機(jī)一個時鐘周期發(fā)射一個時鐘周期發(fā)射m次,每次發(fā)射次,每次發(fā)射n條指令條指令 5.7.1 指令執(zhí)行時序指令執(zhí)行時序5.7.2 典型處理機(jī)結(jié)構(gòu)典型處理機(jī)結(jié)構(gòu)5.7.3 超標(biāo)量超流水線處理機(jī)性能超標(biāo)量超流水線處理機(jī)性能5.7.

47、4 三種處理機(jī)的性能比較三種處理機(jī)的性能比較每每個個時時鐘鐘周周期期發(fā)發(fā)射射 3 3 次次,每每次次同同時時發(fā)發(fā)射射 3 3 條條指指令令的的 超超標(biāo)標(biāo)量量超超流流水水線線處處理理機(jī)機(jī)的的指指令令執(zhí)執(zhí)行行時時空空圖圖 1 1 2 2 3 3 4 4 5 5 6 6 i1 if id ex wr 時時鐘鐘周周期期 i2 if id ex wr i3 if id ex wr i4 i if f id ex wr i5 if id ex wr i6 if id ex wr i7 if id ex wr i8 if id ex wr i9 if id ex wr i10 if id ex wr i11

48、 if id ex wr i12 if id ex wr 指指令令 i if f:取取指指令令,i id d:指指令令譯譯碼碼,e ex x:執(zhí)執(zhí)行行指指令令,w wr r:寫寫回回結(jié)結(jié)果果 5.7.1 5.7.1 指令執(zhí)行時序指令執(zhí)行時序5.7.2 5.7.2 典型處理機(jī)結(jié)構(gòu)典型處理機(jī)結(jié)構(gòu)dec公司的alpha處理機(jī)為典型的超標(biāo)量超流水線結(jié)構(gòu)超標(biāo)量超流水線結(jié)構(gòu)。主要由四個功能部件和兩個cache組成:整數(shù)部件ebox 浮點(diǎn)部件fbox 地址部件abox 中央控制部件ibox 指令cache和數(shù)據(jù)cache在ebox內(nèi)還有多條專用數(shù)據(jù)通路,可以把運(yùn)算結(jié)果直接送到執(zhí)行部件。中央控制部件ibox能

49、夠同時完成: 同時讀出兩條指令; 同時對兩條指令進(jìn)行譯碼,并作相關(guān)性檢測; 如果資源和相關(guān)性允許,ibox就把兩條指令同時發(fā)射給ebox、abox和fbox三個執(zhí)行部件中的兩個。指令流水線的控制方式: 采用順序發(fā)射亂序完成順序發(fā)射亂序完成。在指令cache中有一個轉(zhuǎn)移歷史表,實(shí)現(xiàn)條件轉(zhuǎn)移的動態(tài)預(yù)測。alpha 21064alpha 21064處理機(jī)共有處理機(jī)共有三條指令流水線:三條指令流水線:(1)(1)整數(shù)操作流水線為整數(shù)操作流水線為7 7個流水段個流水段,其中,取指令2個流水段、分析指令2個流水段、運(yùn)算2個流水段、寫結(jié)果1個流水段。(2)(2)訪問存儲器流水線為訪問存儲器流水線為7 7個流

50、水段個流水段。(3)(3)浮點(diǎn)操作流水線分為浮點(diǎn)操作流水線分為1010個流水段個流水段,其中,浮點(diǎn)執(zhí)行部件fbox的延遲時間為6個流水段。 三條指令流水線的平均段數(shù)為三條指令流水線的平均段數(shù)為(7+7+10)/3=8(7+7+10)/3=8,且每個時鐘周期發(fā)射兩條指令。因此,alpha 21064處理機(jī)為超標(biāo)量超流水線處理機(jī)。7 7 個個流流水水段段的的整整數(shù)數(shù)操操作作流流水水線線( (0 0) )( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )ifswapi0i1a1a2wri if f:取取指指令令;s sw wa ap p:交交

51、換換雙雙發(fā)發(fā)射射指指令令,轉(zhuǎn)轉(zhuǎn)移移預(yù)預(yù)測測;i i0 0:指指令令譯譯碼碼;i i1 1 訪訪問問通通用用寄寄存存器器堆堆,發(fā)發(fā)射射校校驗(yàn)驗(yàn);a a1 1:計(jì)計(jì)算算周周期期 1 1,i ib bo ox x 計(jì)計(jì)算算新新的的 p pc c 值值;a a2 2:計(jì)計(jì)算算周周期期 2 2,查查指指令令快快表表;w wr r:寫寫整整數(shù)數(shù)寄寄存存器器堆堆,指指令令 c ca ac ch he e 命命中中檢檢測測。7 7 個個流流水水段段的的訪訪問問存存儲儲器器流流水水線線 ( (0 0) )( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )ifswapi0i1actbhma ac c:a ab bo ox x 計(jì)計(jì)算算有有效效數(shù)數(shù)據(jù)據(jù)地地址址;t tb b:查查數(shù)數(shù)據(jù)據(jù)快快表表;h hm m:寫寫讀讀數(shù)數(shù)緩緩沖沖棧棧,數(shù)數(shù)據(jù)據(jù) c ca ac ch he e 命命中中/ /不不命命中中檢檢測測。

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論