組成第十三講:流水線控制_第1頁
組成第十三講:流水線控制_第2頁
組成第十三講:流水線控制_第3頁
組成第十三講:流水線控制_第4頁
組成第十三講:流水線控制_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機組成原理指令重疊控制方式指令重疊控制方式 在一個計算機系統(tǒng)中,在一個計算機系統(tǒng)中,CPUCPU的控制器是整個系統(tǒng)的指揮的控制器是整個系統(tǒng)的指揮中心,它把運算器、存儲器以及中心,它把運算器、存儲器以及I/OI/O等設(shè)備組成一個有機系等設(shè)備組成一個有機系統(tǒng)。統(tǒng)。計算機程序和原始數(shù)據(jù)的輸入,在計算機程序和原始數(shù)據(jù)的輸入,在CPUCPU內(nèi)的信息處理,內(nèi)的信息處理,CPUCPU處理處理結(jié)果的輸出,外部設(shè)備與主機之間的信息交互等都是在控制器結(jié)果的輸出,外部設(shè)備與主機之間的信息交互等都是在控制器的控制下實現(xiàn)的??刂破魇侵噶钕到y(tǒng)的執(zhí)行機構(gòu)。它完成任何的控制下實現(xiàn)的??刂破魇侵噶钕到y(tǒng)的執(zhí)行機構(gòu)。它完成任何

2、一條指令通常都經(jīng)過取指令、分析指令、執(zhí)行指令三個階段,一條指令通常都經(jīng)過取指令、分析指令、執(zhí)行指令三個階段,因此控制器就必須有這三種功能,當然還應有控制外部設(shè)備和因此控制器就必須有這三種功能,當然還應有控制外部設(shè)備和中斷處理等功能。中斷處理等功能。 這里要研究的是如何加快指令執(zhí)行過程,也就是加快機器語這里要研究的是如何加快指令執(zhí)行過程,也就是加快機器語言的解釋過程。解釋過程是由機器內(nèi)的控制機構(gòu)控制,它調(diào)用言的解釋過程。解釋過程是由機器內(nèi)的控制機構(gòu)控制,它調(diào)用一串微指令(或微操作)去實現(xiàn)每條機器指令,并控制這一串一串微指令(或微操作)去實現(xiàn)每條機器指令,并控制這一串微指令與解釋下一條機器指令的另

3、一串微指令之間的銜接。微指令與解釋下一條機器指令的另一串微指令之間的銜接。計算機組成原理為了加快單條指令的解釋過程,可采用的途徑有:選用更高為了加快單條指令的解釋過程,可采用的途徑有:選用更高速的器件;采用更好的運算方法;減少解釋過程所需要的節(jié)速的器件;采用更好的運算方法;減少解釋過程所需要的節(jié)拍數(shù);使解釋過程的各個動作并行執(zhí)行等。在此基礎(chǔ)上為要拍數(shù);使解釋過程的各個動作并行執(zhí)行等。在此基礎(chǔ)上為要提高機器語言程序的執(zhí)行速度,則需采用同時解釋兩條、多提高機器語言程序的執(zhí)行速度,則需采用同時解釋兩條、多條以至整段程序的控制方式。條以至整段程序的控制方式。指令的解釋可以有三種控制方式,即順序方式、重

4、疊方式和指令的解釋可以有三種控制方式,即順序方式、重疊方式和流水方式。流水方式。計算機組成原理取指令分析執(zhí)行取指K+1取指K分析K執(zhí)行K分析K+1執(zhí)行K+1圖 機器指令的微操作圖 指令間的操作順序控制簡單速度慢計算機組成原理l 重疊方式重疊方式重疊方式指的是在解釋第重疊方式指的是在解釋第K K條指令的操作完成之前,就條指令的操作完成之前,就開始解釋第開始解釋第K+1K+1條指令;條指令;重疊解釋并不能加快指令的實現(xiàn),但能加快相鄰兩條重疊解釋并不能加快指令的實現(xiàn),但能加快相鄰兩條指令以至一段程序的解釋;指令以至一段程序的解釋;“一次重疊一次重疊”指的是任何時候都只是指的是任何時候都只是“執(zhí)行執(zhí)行

5、K”K”與與“分分析析K+1”K+1”重疊;重疊;一次重疊是重疊機器一般采用的方法。一次重疊是重疊機器一般采用的方法。計算機組成原理重疊方式取指K+1取指K分析K執(zhí)行K分析K+1執(zhí)行K+1圖 指令重疊方式計算機組成原理l 流水的基本概念流水的基本概念計算機的流水處理過程非常類似于工廠中的流水裝配計算機的流水處理過程非常類似于工廠中的流水裝配線;線;為了實現(xiàn)流水,首先把輸入的任務(或過程)分割為為了實現(xiàn)流水,首先把輸入的任務(或過程)分割為一系列子任務,并使各子任務能在流水線的各個階段一系列子任務,并使各子任務能在流水線的各個階段并發(fā)地執(zhí)行;并發(fā)地執(zhí)行;當任務連續(xù)不斷地輸入流水線時,在流水線的輸

6、出端當任務連續(xù)不斷地輸入流水線時,在流水線的輸出端便連續(xù)不斷地吐出執(zhí)行結(jié)果,從而實現(xiàn)了子任務級的便連續(xù)不斷地吐出執(zhí)行結(jié)果,從而實現(xiàn)了子任務級的并行性。并行性。 計算機組成原理若完成一條指令的時間為若完成一條指令的時間為T,則對分解為,則對分解為“分析分析”和和“執(zhí)行執(zhí)行”兩個子過程:兩個子過程:T2t1,即每隔,即每隔t1T/2就可就可處理出一個結(jié)果;處理出一個結(jié)果;計算機組成原理而對分解為而對分解為“取指令取指令”、“指令譯碼指令譯碼”、“取操作數(shù)取操作數(shù)”和和“執(zhí)行執(zhí)行”4個子過程的,則個子過程的,則T4t2,即每隔,即每隔t2T/4就可處理出一個結(jié)果。就可處理出一個結(jié)果。計算機組成原理計

7、算機組成原理l 對流水計算機來說,上一條指令與下一條指令的四個子過對流水計算機來說,上一條指令與下一條指令的四個子過程在時間上重疊執(zhí)行;程在時間上重疊執(zhí)行;l 因此,當流水線滿載時,每個時鐘周期可以輸出一個結(jié)果;因此,當流水線滿載時,每個時鐘周期可以輸出一個結(jié)果;l 由于其過程相當于現(xiàn)代工業(yè)生產(chǎn)裝配線上的流水作業(yè),因由于其過程相當于現(xiàn)代工業(yè)生產(chǎn)裝配線上的流水作業(yè),因此把這種處理機稱為流水計算機。此把這種處理機稱為流水計算機。計算機組成原理l 流水控制方式有關(guān)的問題流水控制方式有關(guān)的問題流水線中的相關(guān)是指相鄰或相近的兩條指流水線中的相關(guān)是指相鄰或相近的兩條指令因存在某種關(guān)聯(lián),后一條指令不能在原指

8、定令因存在某種關(guān)聯(lián),后一條指令不能在原指定的時鐘周期開始執(zhí)行。的時鐘周期開始執(zhí)行。資源相關(guān)資源相關(guān)數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān)控制相關(guān)控制相關(guān)計算機組成原理l 資源相關(guān):資源相關(guān):資源相關(guān)是指多條指令進入流水線后在同一機器時鐘資源相關(guān)是指多條指令進入流水線后在同一機器時鐘周期內(nèi)爭用同一個功能部件所發(fā)生的沖突;周期內(nèi)爭用同一個功能部件所發(fā)生的沖突;也就是說當硬件資源滿足不了同時重疊執(zhí)行的指令的也就是說當硬件資源滿足不了同時重疊執(zhí)行的指令的要求,而發(fā)生資源沖突時,就發(fā)生了資源相關(guān)。要求,而發(fā)生資源沖突時,就發(fā)生了資源相關(guān)。資源相關(guān)沖突的解決辦法:資源相關(guān)沖突的解決辦法:一是指令停頓一拍后再啟動;一是指令停頓一

9、拍后再啟動;二是增設(shè)一個存儲器,將指令和數(shù)據(jù)分別放在兩個二是增設(shè)一個存儲器,將指令和數(shù)據(jù)分別放在兩個存儲器中。存儲器中。 計算機組成原理 下面僅就在同一時間內(nèi)(縱向來看)下面僅就在同一時間內(nèi)(縱向來看)“分析分析K”和和“取指取指K+1”的重疊對計算機組成提出了什么樣的要求。的重疊對計算機組成提出了什么樣的要求。 “分析分析K”的時間內(nèi),主要操作是形成操作數(shù)真地址和訪內(nèi)的時間內(nèi),主要操作是形成操作數(shù)真地址和訪內(nèi)取操作數(shù),而取操作數(shù),而“取指取指K+1”也需訪內(nèi)。但是一般的機器,操作數(shù)也需訪內(nèi)。但是一般的機器,操作數(shù)和指令是混合存儲于同一主存內(nèi)的,因而同時只能訪問一個存和指令是混合存儲于同一主存

10、內(nèi)的,因而同時只能訪問一個存儲單元,這樣就實現(xiàn)不了儲單元,這樣就實現(xiàn)不了“分析分析K”和和“取指取指K+1”的重疊。的重疊。 為了實現(xiàn)重疊的解釋,可以采用不同的硬件結(jié)構(gòu)方法來完成。為了實現(xiàn)重疊的解釋,可以采用不同的硬件結(jié)構(gòu)方法來完成。 第一種方法:設(shè)置兩個存儲器,并獨立編址,分別存放操作第一種方法:設(shè)置兩個存儲器,并獨立編址,分別存放操作數(shù)和指令就可同時訪內(nèi)了。數(shù)和指令就可同時訪內(nèi)了。 第二種方法:操作數(shù)和指令仍混存與內(nèi)存中,但用多體交叉第二種方法:操作數(shù)和指令仍混存與內(nèi)存中,但用多體交叉存儲結(jié)構(gòu),只要相鄰的第存儲結(jié)構(gòu),只要相鄰的第K+1條指令及條指令及K條指令中所需要的操作條指令中所需要的操

11、作數(shù)不在同一個存儲體中,則能在一個主存周期內(nèi)取出這兩者,數(shù)不在同一個存儲體中,則能在一個主存周期內(nèi)取出這兩者,從而實現(xiàn)兩條指令的從而實現(xiàn)兩條指令的“分析分析K”和和“取指取指K+1”時間上的重疊。時間上的重疊。第三種方法:設(shè)置指令緩沖寄存器(簡稱指緩),預先把指令第三種方法:設(shè)置指令緩沖寄存器(簡稱指緩),預先把指令由主存取到這個寄存器。這樣,由主存取到這個寄存器。這樣,“分析分析K”就能和就能和“取指取指K+1”重疊,重疊,計算機組成原理因為只有前者因為只有前者“分析分析K”K”需要訪問主存儲器取操作數(shù),而后者需要訪問主存儲器取操作數(shù),而后者“取指取指K+1”K+1”是由指令緩沖寄存器取第是

12、由指令緩沖寄存器取第K+1K+1條指令。以下解釋為條指令。以下解釋為什么能預先取出指令。什么能預先取出指令。 其原因是由于一條指令的其原因是由于一條指令的“執(zhí)行執(zhí)行”操作,如相加或相乘的操作,如相加或相乘的操作時間往往會比操作時間往往會比“分析分析”的操作時間要長,因此,出現(xiàn)圖的操作時間要長,因此,出現(xiàn)圖4.384.38所示那樣。三者在一段時間同時操作,但使用一套存儲器所示那樣。三者在一段時間同時操作,但使用一套存儲器執(zhí)行完第執(zhí)行完第K-1K-1條操作后,在虛線以右的時間段內(nèi)得到結(jié)果;而條操作后,在虛線以右的時間段內(nèi)得到結(jié)果;而“分析分析K”K”的取數(shù)訪內(nèi)時間在虛線以左,這是因為的取數(shù)訪內(nèi)時間

13、在虛線以左,這是因為tttt,由于訪,由于訪存時間錯開了,所以它們可以重疊操作。由上圖還可以看出,存時間錯開了,所以它們可以重疊操作。由上圖還可以看出,左邊箭頭對應的那段時間,內(nèi)存是空閑的,所以就用這段時間左邊箭頭對應的那段時間,內(nèi)存是空閑的,所以就用這段時間訪問內(nèi)存將第訪問內(nèi)存將第K+1K+1條指令取出來,即在執(zhí)行條指令取出來,即在執(zhí)行K-1K-1與分析與分析K K重疊時間重疊時間內(nèi),能將第內(nèi),能將第K+1K+1條指令取出并送到指令緩沖寄存器中。這樣,若條指令取出并送到指令緩沖寄存器中。這樣,若每次在每次在“取指取指”時都可由時都可由“指緩指緩”取得已從主存取得已從主存“預取預取”得到得到的

14、指令,則的指令,則“取指取指K+1”K+1”只需很短時間即可完成,所以可以合并只需很短時間即可完成,所以可以合并到到“分析分析K+1”K+1”內(nèi),從而構(gòu)成圖內(nèi),從而構(gòu)成圖4.394.39所示的一次重疊方式。所示的一次重疊方式。計算機組成原理執(zhí)行K-1分析K取指K+1圖4.38 執(zhí)行操作時間大于分析操作時間圖分析K執(zhí)行K分析K+1 執(zhí)行K+1分析K+2 執(zhí)行K+2圖4.39 一次重疊方式圖計算機組成原理l 數(shù)據(jù)相關(guān):數(shù)據(jù)相關(guān):在一個程序中,如果必須等前一條指令執(zhí)行完畢后,在一個程序中,如果必須等前一條指令執(zhí)行完畢后,才能執(zhí)行后一條指令,那么這兩條指令就是數(shù)據(jù)相關(guān)才能執(zhí)行后一條指令,那么這兩條指令

15、就是數(shù)據(jù)相關(guān)的;的;在流水計算機中,指令的處理是重疊進行的,前一條在流水計算機中,指令的處理是重疊進行的,前一條指令還沒有結(jié)束,第二、三條指令就陸續(xù)地開始工作;指令還沒有結(jié)束,第二、三條指令就陸續(xù)地開始工作;由于多條指令的重疊處理,當后繼指令所需的操作數(shù),由于多條指令的重疊處理,當后繼指令所需的操作數(shù),剛好是前一指令的運算結(jié)果時,便發(fā)生數(shù)據(jù)相關(guān)沖突。剛好是前一指令的運算結(jié)果時,便發(fā)生數(shù)據(jù)相關(guān)沖突。 計算機組成原理l 數(shù)據(jù)相關(guān)沖突的解決辦法:數(shù)據(jù)相關(guān)沖突的解決辦法:在流水在流水CPU的運算器中設(shè)置若干運算結(jié)果緩沖寄存器,的運算器中設(shè)置若干運算結(jié)果緩沖寄存器,暫時保留運算結(jié)果,以便于后繼指令直接使

16、用,這稱暫時保留運算結(jié)果,以便于后繼指令直接使用,這稱為為“向前向前”或定向傳送技術(shù)?;蚨ㄏ騻魉图夹g(shù)。計算機組成原理l 控制相關(guān):控制相關(guān):控制相關(guān)沖突是由轉(zhuǎn)移指令引起的;控制相關(guān)沖突是由轉(zhuǎn)移指令引起的;當執(zhí)行轉(zhuǎn)移指令時,依據(jù)轉(zhuǎn)移條件的產(chǎn)生結(jié)果,可能當執(zhí)行轉(zhuǎn)移指令時,依據(jù)轉(zhuǎn)移條件的產(chǎn)生結(jié)果,可能為順序取下條指令;為順序取下條指令;也可能轉(zhuǎn)移到新的目標地址取指令,從而使流水線發(fā)也可能轉(zhuǎn)移到新的目標地址取指令,從而使流水線發(fā)生斷流。生斷流。l 為了減小轉(zhuǎn)移指令對流水線性能的影響,常用以下兩種轉(zhuǎn)為了減小轉(zhuǎn)移指令對流水線性能的影響,常用以下兩種轉(zhuǎn)移處理技術(shù):移處理技術(shù):延遲轉(zhuǎn)移法延遲轉(zhuǎn)移法轉(zhuǎn)移預測法轉(zhuǎn)

17、移預測法計算機組成原理l 延遲轉(zhuǎn)移法:延遲轉(zhuǎn)移法:由編譯程序重排指令序列來實現(xiàn)。由編譯程序重排指令序列來實現(xiàn)?;舅枷胧腔舅枷胧恰跋葓?zhí)行再轉(zhuǎn)移先執(zhí)行再轉(zhuǎn)移”,即發(fā)生轉(zhuǎn)移時并不排,即發(fā)生轉(zhuǎn)移時并不排空指令流水線,而是讓緊跟在轉(zhuǎn)移指令之后已進入流空指令流水線,而是讓緊跟在轉(zhuǎn)移指令之后已進入流水線水線 的少數(shù)幾條指令繼續(xù)完成。的少數(shù)幾條指令繼續(xù)完成。如果這些指令是與轉(zhuǎn)移指令結(jié)果無關(guān)的有用指令,那如果這些指令是與轉(zhuǎn)移指令結(jié)果無關(guān)的有用指令,那么延遲損失時間正好得到了有效的利用;么延遲損失時間正好得到了有效的利用;計算機組成原理l 轉(zhuǎn)移預測法:轉(zhuǎn)移預測法:用硬件方法來實現(xiàn),依據(jù)指令過去的行為來預測將來

18、用硬件方法來實現(xiàn),依據(jù)指令過去的行為來預測將來的行為。的行為。通過使用轉(zhuǎn)移取和順序取兩路指令預取隊列器以及目通過使用轉(zhuǎn)移取和順序取兩路指令預取隊列器以及目標指令標指令cache,可將轉(zhuǎn)移預測提前到取指階段進行,以,可將轉(zhuǎn)移預測提前到取指階段進行,以獲得良好的效果。獲得良好的效果。計算機組成原理l 流水結(jié)構(gòu)流水結(jié)構(gòu)向下擴展:向下擴展:進一步分解成更多個子過程;進一步分解成更多個子過程;由于吞吐率與由于吞吐率與t1成反比,而成反比,而t1又與其子過程的個又與其子過程的個數(shù)成反比,所以若能分解成能流水進行的更多子過數(shù)成反比,所以若能分解成能流水進行的更多子過程,而且各個子過程的完成時間大致相等,則吞

19、吐程,而且各個子過程的完成時間大致相等,則吞吐率就會進一步增大。率就會進一步增大。計算機組成原理向上擴展:向上擴展:可理解為是由兩個以上的處理機串行地對數(shù)據(jù)集進可理解為是由兩個以上的處理機串行地對數(shù)據(jù)集進行處理;行處理;若進來的數(shù)據(jù)集需要多個任務的處理,且安排成各若進來的數(shù)據(jù)集需要多個任務的處理,且安排成各個任務分別由不同的處理機處理,則由于各個處理個任務分別由不同的處理機處理,則由于各個處理機都能同時工作,因此能流水地對不同的數(shù)據(jù)集進機都能同時工作,因此能流水地對不同的數(shù)據(jù)集進行處理,從而使處理能力得以較大提高。行處理,從而使處理能力得以較大提高。計算機組成原理指令流水線:指令流水線:指指令步驟的并行;指指令步驟的并行;將指令流的處理過程劃分為取指令、譯碼、執(zhí)行、將指令流的處理過程劃分為取指令、譯碼、執(zhí)行、寫回等幾個并行處理的過程段;寫回等幾個并行處理的過程段;目前,幾乎所有的高性能計算機都采用了指令流水目前,幾乎所有的高性能計算機都采用了指令流水線。線。算術(shù)流水線:算術(shù)流水線:指運算操作步驟的并行;指運算操作步驟的并行;如流水加法器、流水乘法器、流水除法等;如流水加法器、流水乘法器、流水除法等;現(xiàn)代計算機中已廣泛采用了流水的算術(shù)運算器?,F(xiàn)代計算機中已廣泛采用了流水的算術(shù)運算器。計算機組成原理處理機流水線:處理

溫馨提示

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

評論

0/150

提交評論