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

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

流水線中的相關(guān)培訓(xùn)教程[1]

2010年04月13日 15:56 ttokpm.com 作者:佚名 用戶評論(0
關(guān)鍵字:流水線(23603)

流水線中的相關(guān)培訓(xùn)教程[1]

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

??? 理解流水線中相關(guān)的分類及定義;

??? 掌握結(jié)構(gòu)相關(guān)的解決方法;

??? 掌握數(shù)據(jù)相關(guān)的三種類型;

??? 掌握定向技術(shù)的主要思想及應(yīng)用;

??? 掌握指令調(diào)度技術(shù);

??? 了解對DLX流水線控制的實現(xiàn)。

?

??? 正文:

?? 3.3流水線中的相關(guān)

??? 流水線中的相關(guān)是指相鄰或相近的指令因存在某種關(guān)聯(lián),后面的指令不能在原指定的時鐘周期開始執(zhí)行。一般來說,流水線中的相關(guān)主要分為如下三種類型:

??? 1. 結(jié)構(gòu)相關(guān):當(dāng)硬件資源滿足不了指令重疊執(zhí)行的要求,而發(fā)生資源沖突時,就發(fā)生了

??? 結(jié)構(gòu)相關(guān)。

??? 2. 數(shù)據(jù)相關(guān):當(dāng)一條指令需要用到前面指令的執(zhí)行結(jié)果,而這些指令均在流水線中重疊

??? 執(zhí)行時,就可能引起數(shù)據(jù)相關(guān)。

??? 3. 控制相關(guān):當(dāng)流水線遇到分支指令和其它能夠改變 PC 值的指令時,就會發(fā)生控制相

??? 關(guān)。

??? 一旦流水線中出現(xiàn)相關(guān),必然會給指令在流水線中的順利執(zhí)行帶來許多問題,如果不能很好地解決相關(guān)問題,輕則影響流水線的性能,重則導(dǎo)致錯誤的執(zhí)行結(jié)果。消除相關(guān)的基本方法是讓流水線暫停執(zhí)行某些指令,而繼續(xù)執(zhí)行其它一些指令。

??? 在后面的討論中,我們約定:當(dāng)一條指令被暫停時,在該暫停指令之后發(fā)射的所有指令都要被暫停,而在該暫停之前發(fā)射的指令則可繼續(xù)進(jìn)行,在暫停期間,流水線不會取新的指令。


?

?3.3.1流水線的結(jié)構(gòu)相關(guān)

??? 如果某些指令組合在流水線中重疊執(zhí)行時,產(chǎn)生資源沖突,則稱該流水線有結(jié)構(gòu)相關(guān)。為了能夠在流水線中順利執(zhí)行指令的所有可能組合,而不發(fā)生結(jié)構(gòu)相關(guān),通常需要采用流水化功能單元的方法或資源重復(fù)的方法。

??? 許多流水線機(jī)器都是將數(shù)據(jù)和指令保存在同一存儲器中。如果在某個時鐘周期內(nèi),流水線既要完成某條指令對數(shù)據(jù)的存儲器訪問操作,又要完成取指令的操作,那么將會發(fā)生存儲器訪問沖突問題 (如圖3.3.1所示),產(chǎn)生結(jié)構(gòu)相關(guān)。為了解決這個問題,可以讓流水線完成前一條指令對數(shù)據(jù)的存儲器訪問時,暫停取后一條指令的操作 (如圖3.3.2所示)。該周期稱為流水線的一個暫停周期。暫停周期一般也稱為流水線氣泡,或簡稱為氣泡。從圖3.3.2可以看出,在流水線中插入暫停周期可以消除這種結(jié)構(gòu)相關(guān)。

??? 也可以用如圖3.3.3所示的時空圖來表示上述暫停情況。

? 由上可知,為消除結(jié)構(gòu)相關(guān)而引入的暫停將影響流水線的性能。為了避免結(jié)構(gòu)相關(guān),可以考慮采用資源重復(fù)的方法。比如,在流水線機(jī)器中設(shè)置相互獨立的指令存儲器和數(shù)據(jù)存儲器;也可以將 Cache 分割成指令 Cache 和數(shù)據(jù) Cache。

??? 假設(shè)不考慮流水線其它因素對流水線性能的影響,顯然如果流水線機(jī)器沒有結(jié)構(gòu)相關(guān),那么其 CPI 也較小。然而,為什么有時流水線設(shè)計者卻允許結(jié)構(gòu)相關(guān)的存在呢?主要有兩個原因:一是為了減少硬件代價,二是為了減少功能單元的延遲。如果為了避免結(jié)構(gòu)相關(guān)而將流水線中的所有功能單元完全流水化,或者設(shè)置足夠的硬件資源,那么所帶來的硬件代價必定很大。

??? 3.3.2流水線的數(shù)據(jù)相關(guān)

??? 1. 數(shù)據(jù)相關(guān)簡介

??? 當(dāng)指令在流水線中重疊執(zhí)行時,流水線有可能改變指令讀/寫操作數(shù)的順序,使得讀/寫操作順序不同于它們非流水實現(xiàn)的順序,這將導(dǎo)致數(shù)據(jù)相關(guān)。首先讓我們考慮下列指令在流水線中的執(zhí)行情況: ADD? R1, R2, R3

??? SUB R4, R5, R1

??? AND? R6, R1, R7

??? OR R8, R1, R9

??? XOR R10, R1,? R11

?

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發(fā)表人:admin )

      發(fā)表評論

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

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

      ?