5.4-流水線技術(shù)-吳學(xué)涯_第1頁(yè)
已閱讀1頁(yè),還剩43頁(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)介

1、5.4 流水線技術(shù),5.4.1 并行處理技術(shù)概述5.4.2 流水線技術(shù)5.4.3 流水線的分類5.4.4 流水計(jì)算機(jī)的組成5.4.5 流水計(jì)算機(jī)的時(shí)空?qǐng)D5.4.6 指令的相關(guān)性,,為了充分發(fā)揮計(jì)算機(jī)的效能,滿足不斷增長(zhǎng)的應(yīng)用需求,近幾十年來(lái),CPU的新技術(shù)層出不窮基于時(shí)間并行原理的流水線技術(shù),使計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)產(chǎn)生了重大的變革CPU技術(shù)的發(fā)展,還包括優(yōu)化編譯,采用好的指令調(diào)度算法,重新組織指令執(zhí)行順序,降低相關(guān)技術(shù)帶來(lái)的干擾

2、,以及開(kāi)發(fā)多發(fā)射技術(shù)(即設(shè)法在一個(gè)時(shí)鐘周期內(nèi)發(fā)出多條指令)等等,5.4.1 并行處理技術(shù)概述,早期計(jì)算機(jī)采用串行處理計(jì)算機(jī)各個(gè)操作只能串行完成,任一時(shí)刻只能進(jìn)行一個(gè)操作并行處理使多個(gè)操作能同時(shí)進(jìn)行,大大提高了計(jì)算機(jī)速度廣義地講,并行性有兩種含義同時(shí)性:指兩個(gè)以上事件在同一時(shí)刻發(fā)生并發(fā)性:兩個(gè)以上事件在同一時(shí)間間隔內(nèi)發(fā)生,1. 時(shí)間并行,時(shí)間并行指時(shí)間重疊讓多個(gè)處理過(guò)程在時(shí)間上相互錯(cuò)開(kāi),輪流重疊地使用同一套硬件設(shè)備的各個(gè)部分,

3、以加快硬件周轉(zhuǎn)而贏得速度時(shí)間并行的實(shí)現(xiàn)方式是采用流水處理部件這是一種非常經(jīng)濟(jì)實(shí)用的并行技術(shù),能保證計(jì)算機(jī)系統(tǒng)具有較高的性能價(jià)格比目前的高性能計(jì)算機(jī)幾乎無(wú)一例外地使用了流水技術(shù),2. 空間并行,空間并行指資源重復(fù)以資源的重復(fù)配置來(lái)大幅度提高計(jì)算機(jī)的處理速度大規(guī)模和超大規(guī)模集成電路的迅速發(fā)展,為空間并行技術(shù)帶來(lái)了巨大生機(jī),成為目前實(shí)現(xiàn)并行處理的一個(gè)主要途徑空間并行技術(shù)主要體現(xiàn)在多處理器系統(tǒng)和多處理機(jī)系統(tǒng)但是在單處理器系統(tǒng)中也得

4、到了廣泛應(yīng)用,3. 時(shí)間并行+空間并行,指時(shí)間重疊和資源重復(fù)的綜合應(yīng)用既采用時(shí)間并行性又采用空間并行性相對(duì)而言,這種并行技術(shù)帶來(lái)的高速效益是最好的現(xiàn)代計(jì)算機(jī)往往同時(shí)具有時(shí)間并行性和空間并行性,5.4.2 流水線技術(shù),在任一條指令的執(zhí)行過(guò)程中,各個(gè)功能部件都會(huì)隨著指令執(zhí)行的進(jìn)程而呈現(xiàn)出時(shí)忙時(shí)閑的現(xiàn)象要加快計(jì)算機(jī)的工作速度,就應(yīng)使各個(gè)功能部件并行工作以各自可能的高速度同時(shí)、不停地工作,使得各部件的操作在時(shí)間上重疊進(jìn)行,實(shí)現(xiàn)流水式作

5、業(yè),,計(jì)算機(jī)的流水線(Pipeline)工作方式將一個(gè)計(jì)算任務(wù)細(xì)分成若干個(gè)子任務(wù),每個(gè)子任務(wù)都由專門(mén)的功能部件進(jìn)行處理,一個(gè)計(jì)算任務(wù)的各個(gè)子任務(wù)由流水線上各個(gè)功能部件輪流進(jìn)行處理(即各子任務(wù)在流水線的各個(gè)功能階段并發(fā)執(zhí)行),最終完成工作這樣,不必等到上一個(gè)計(jì)算任務(wù)完成,就可以開(kāi)始下一個(gè)計(jì)算任務(wù)的執(zhí)行,流水線的硬件基本結(jié)構(gòu)由一系列串聯(lián)的功能部件(Si)組成各個(gè)功能部件之間設(shè)有高速緩沖寄存器(L),暫存上一功能部件的處理結(jié)果,同時(shí)

6、又能接受新的處理任務(wù)在一個(gè)統(tǒng)一的時(shí)鐘(C)控制下,計(jì)算任務(wù)從功能部件的一個(gè)功能段流向下一個(gè)功能段所有功能段同時(shí)對(duì)不同的數(shù)據(jù)進(jìn)行不同的處理,各個(gè)處理步驟并行地操作,,,當(dāng)任務(wù)連續(xù)不斷地輸入流水線時(shí),在流水線的輸出端便連續(xù)不斷地輸出執(zhí)行結(jié)果流水線達(dá)到不間斷流水的穩(wěn)定狀態(tài),實(shí)現(xiàn)子任務(wù)級(jí)并行當(dāng)指令流不能順序執(zhí)行時(shí),流水過(guò)程會(huì)中斷(即斷流)為保證流水過(guò)程的工作效率,流水過(guò)程不應(yīng)經(jīng)常斷流在一個(gè)流水過(guò)程中,實(shí)現(xiàn)各個(gè)子過(guò)程的各個(gè)

7、功能段所需要的時(shí)間應(yīng)該盡可能保持相等,以避免產(chǎn)生瓶頸,導(dǎo)致流水線斷流,,流水線技術(shù)本質(zhì)將一個(gè)重復(fù)的時(shí)序過(guò)程分解成若干個(gè)子過(guò)程每一個(gè)子過(guò)程都可有效地在其專用功能段上與其他子過(guò)程同時(shí)執(zhí)行采用流水線技術(shù)通過(guò)硬件實(shí)現(xiàn)并行操作后,就某一條指令而言,其執(zhí)行速度并沒(méi)有加快但就程序執(zhí)行過(guò)程的整體而言,程序執(zhí)行速度大大加快流水線技術(shù)適合于大量的重復(fù)性的處理,5.4.3 流水線的分類,1.按級(jí)別分類2.按數(shù)據(jù)分類,1.按級(jí)別分類,一個(gè)計(jì)算機(jī)系

8、統(tǒng)可以在不同的并行等級(jí)上采用流水線技術(shù)按照流水的級(jí)別,可以把流水線分為以下幾類:1)算術(shù)流水線2)指令流水線3)處理機(jī)流水線,1)算術(shù)流水線,算術(shù)流水線指運(yùn)算操作步驟的并行,是部件級(jí)流水線可以把處理器的算術(shù)邏輯部件分段,使各種數(shù)據(jù)類型均能進(jìn)行流水操作如流水加法器、流水乘法器、流水除法器等也可以將具體的算術(shù)邏輯運(yùn)算分成多個(gè)階段,分別由不同的部件實(shí)現(xiàn)將浮點(diǎn)加法操作分成求階差、對(duì)階、尾數(shù)相加以及結(jié)果規(guī)格化4個(gè)子過(guò)程來(lái)進(jìn)行流水處

9、理現(xiàn)代計(jì)算機(jī)中已廣泛采用了流水的算術(shù)運(yùn)算器。,2)指令流水線,指令流水線表示指令步驟的并行,是處理器級(jí)流水線通常可以將指令的執(zhí)行過(guò)程劃分為取指令、譯碼、執(zhí)行、取數(shù)、寫(xiě)回5個(gè)并行處理的過(guò)程段,并按流水方式組織起來(lái),形成指令流水線目前,幾乎所有的高性能計(jì)算機(jī)都采用了指令流水線,3)處理機(jī)流水線,處理機(jī)流水線指程序步驟的并行,又稱為宏流水線處理機(jī)流水線由一串級(jí)聯(lián)的處理機(jī)構(gòu)成流水線的各個(gè)過(guò)程段,每臺(tái)處理機(jī)負(fù)責(zé)某一特定的任務(wù)處理機(jī)流水線

10、大多應(yīng)用在多機(jī)系統(tǒng)中,隨著高檔微處理器芯片的出現(xiàn),構(gòu)造處理機(jī)流水線變得更為容易,2. 按數(shù)據(jù)分類,按照數(shù)據(jù)表示,流水線可分為標(biāo)量流水線和向量流水線1)標(biāo)量流水線只能對(duì)標(biāo)量數(shù)據(jù)進(jìn)行流水處理2)向量流水線具有向量指令,能對(duì)向量數(shù)據(jù)的各元素進(jìn)行流水處理,5.4.4 流水計(jì)算機(jī)的組成,現(xiàn)代流水計(jì)算機(jī)系統(tǒng)的組成存儲(chǔ)器體系流水CPU,1. 存儲(chǔ)器體系,為了解決存儲(chǔ)器的速度匹配問(wèn)題,使存儲(chǔ)器的存取時(shí)間與流水線其他各過(guò)程段的速度相匹配,一

11、般都采用多模塊交叉存儲(chǔ)器在現(xiàn)有的流水線計(jì)算機(jī)中,存儲(chǔ)器幾乎都是采用交叉存取的方式工作的高速緩存Cache的普遍采用,也大大提高了CPU對(duì)存儲(chǔ)器的訪問(wèn)速度,2. 流水CPU,CPU內(nèi)部通常按流水線方式進(jìn)行組織由指令部件、指令隊(duì)列、執(zhí)行部件3部分組成這3個(gè)功能部件可以組成一個(gè)3級(jí)流水線1)指令部件2)指令隊(duì)列3)執(zhí)行部件,1)指令部件,指令部件本身又構(gòu)成一個(gè)流水線即指令流水線由取指令、指令譯碼、執(zhí)行指令、訪存取數(shù)、結(jié)果寫(xiě)回

12、等幾個(gè)過(guò)程段組成,2)指令隊(duì)列,指令隊(duì)列是一個(gè)先進(jìn)先出(FIFO)的寄存器棧用于存放經(jīng)過(guò)譯碼的指令和取來(lái)的操作數(shù)同時(shí)也是由若干個(gè)過(guò)程段組成的流水線,3)執(zhí)行部件,執(zhí)行部件可以具有多個(gè)算術(shù)邏輯運(yùn)算部件這些部件本身又用流水線方式構(gòu)成當(dāng)執(zhí)行部件正在執(zhí)行第I條指令時(shí),指令隊(duì)列中存放著I+1,I+2,…,I+k條指令與此同時(shí),指令部件正在取第I+k+1條指令,執(zhí)行段的速度匹配問(wèn)題,通常采用并行的運(yùn)算部件以及部件流水線的方式來(lái)解決一般

13、采用的方法:①將執(zhí)行部件分為定點(diǎn)執(zhí)行部件和浮點(diǎn)執(zhí)行部件兩個(gè)可并行執(zhí)行的部分,分別處理定點(diǎn)運(yùn)算指令和浮點(diǎn)運(yùn)算指令②在浮點(diǎn)執(zhí)行部件中,包括浮點(diǎn)加法部件和浮點(diǎn)乘/除法部件,它們可以同時(shí)執(zhí)行不同的指令③浮點(diǎn)運(yùn)算部件均以流水線方式工作,5.4.5 流水計(jì)算機(jī)的時(shí)空?qǐng)D,描述流水線的工作過(guò)程,通常采用時(shí)(間)空(間)圖的方法在時(shí)空?qǐng)D中,縱坐標(biāo)表示指令序列橫坐標(biāo)表示時(shí)間,1.指令流水線過(guò)程段,流水CPU中一個(gè)指令周期的任務(wù)分解取指令(IF

14、)、指令譯碼(ID)、指令執(zhí)行(EX)、訪存取數(shù)(MEM)、結(jié)果寫(xiě)回(WB)5個(gè)子過(guò)程(過(guò)程段)流水線由這5個(gè)串聯(lián)的過(guò)程段組成各個(gè)過(guò)程段之間設(shè)有高速緩沖寄存器,以暫時(shí)保存上一過(guò)程段子任務(wù)處理的結(jié)果在統(tǒng)一的時(shí)鐘信號(hào)控制下,數(shù)據(jù)從一個(gè)過(guò)程段流向相鄰的過(guò)程段,,2.非流水計(jì)算機(jī)工作方式,非流水計(jì)算機(jī)的時(shí)空?qǐng)DFLASH演示,,,對(duì)于非流水計(jì)算機(jī)而言,上一條指令的5個(gè)子過(guò)程全部執(zhí)行完畢后才能開(kāi)始下一條指令每隔5個(gè)時(shí)鐘周期才有一個(gè)輸出結(jié)

15、果用15個(gè)時(shí)鐘周期完成3條指令,每條指令平均用時(shí)5個(gè)時(shí)鐘周期非流水線工作方式控制比較簡(jiǎn)單,但部件利用率較低,系統(tǒng)工作速度較慢,3.標(biāo)量流水計(jì)算機(jī)工作方式,標(biāo)量(Scalar)流水計(jì)算機(jī)只有一條指令流水線時(shí)空?qǐng)DFLASH演示,,對(duì)標(biāo)量流水計(jì)算機(jī)而言,上一條指令與下一條指令的5個(gè)子過(guò)程在時(shí)間上可以重疊執(zhí)行當(dāng)流水線滿載時(shí),每一個(gè)時(shí)鐘周期就可以輸出一個(gè)結(jié)果用9個(gè)時(shí)鐘周期完成5條指令每條指令平均用時(shí)1.8個(gè)時(shí)鐘周期采用標(biāo)量

16、流水線工作方式,雖然每條指令的執(zhí)行時(shí)間并未縮短,但CPU運(yùn)行指令的總體速度卻能成倍提高作為提速的代價(jià),需要增加部分硬件才能實(shí)現(xiàn)標(biāo)量流水,4.超標(biāo)量流水計(jì)算機(jī)工作方式,超標(biāo)量(Superscalar)流水計(jì)算機(jī)具有兩條以上的指令流水線時(shí)空?qǐng)DFLASH演示,,,當(dāng)流水線滿載時(shí),每一個(gè)時(shí)鐘周期可以執(zhí)行2條以上的指令用9個(gè)時(shí)鐘周期完成10條指令每條指令平均用時(shí)0.9個(gè)時(shí)鐘周期超標(biāo)量流水計(jì)算機(jī)是時(shí)間并行技術(shù)和空間并行技術(shù)的綜合應(yīng)

17、用,5.4.6指令的相關(guān)性,指令流水線的一個(gè)特點(diǎn)流水線中的各條指令之間存在一些相關(guān)性,使得指令的執(zhí)行受到影響要使流水線發(fā)揮高效率,就要使流水線連續(xù)不斷地流動(dòng),盡量不出現(xiàn)斷流情況然而,由于流水過(guò)程中存在的相關(guān)性沖突,斷流現(xiàn)象是不可避免的,1.數(shù)據(jù)相關(guān),在流水計(jì)算機(jī)中,指令的處理是重疊進(jìn)行的前一條指令還沒(méi)結(jié)束,第二、三條指令就陸續(xù)開(kāi)始工作由于多條指令的重疊處理,當(dāng)后繼指令所需的操作數(shù)剛好是前一指令的運(yùn)算結(jié)果時(shí),便發(fā)生數(shù)據(jù)相關(guān)沖突

18、由于這兩條指令的執(zhí)行順序直接影響到操作數(shù)讀取的內(nèi)容,必須等前一條指令執(zhí)行完畢后才能執(zhí)行后一條指令在這種情況下,這兩條指令就是數(shù)據(jù)相關(guān)的,數(shù)據(jù)相關(guān)是由于指令之間存在數(shù)據(jù)依賴性而引起的根據(jù)指令間對(duì)同一寄存器讀和寫(xiě)操作的先后次序關(guān)系,可將數(shù)據(jù)相關(guān)性分為三種類型寫(xiě)后讀(Read-After-Write,RAW)相關(guān)讀后寫(xiě)(Write-After-Read,WAR)相關(guān)寫(xiě)后寫(xiě)(Write-After-Write,WAW)相關(guān)解決數(shù)據(jù)相

19、關(guān)沖突的辦法⑴采用編譯的方法⑵由硬件監(jiān)測(cè)相關(guān)性的存在,采用數(shù)據(jù)旁路技術(shù)設(shè)法解決,,⑴采用編譯的方法編譯程序通過(guò)在兩條相關(guān)指令之間插入其他不相關(guān)的指令(或空操作指令)而推遲指令的執(zhí)行,使數(shù)據(jù)相關(guān)消失,從而產(chǎn)生沒(méi)有相關(guān)性的程序代碼這種方式簡(jiǎn)單,但降低了運(yùn)行效率,,⑵由硬件監(jiān)測(cè)相關(guān)性的存在,采用數(shù)據(jù)旁路技術(shù)設(shè)法解決當(dāng)前一條指令要寫(xiě)入寄存器而下一條指令要讀取同一個(gè)寄存器時(shí),在前一條指令執(zhí)行完畢、結(jié)果數(shù)據(jù)還未寫(xiě)入寄存器前,由內(nèi)部數(shù)據(jù)通路

20、把該結(jié)果數(shù)據(jù)直接傳遞給下一條指令也就是說(shuō),下一條指令所需的操作數(shù)不再通過(guò)讀取寄存器獲得,而是直接獲取這種方式效率較高,但控制較為復(fù)雜,【例5-5】流水線中有三類數(shù)據(jù)相關(guān)沖突:寫(xiě)后讀(RAW)相關(guān)、讀后寫(xiě)(WAR)相關(guān)、寫(xiě)后寫(xiě)(WAW)相關(guān)。判斷以下三組指令各存在哪種類型的數(shù)據(jù)相關(guān)。(1)I1: ADD R1,R2,R3 ;(R2)+(R3)?R1I2: SUB R4,R1,R5 ;(R1)-(R5)?R4(2)I3

21、: STA M(x),R3 ;(R3)?M(x),M(x)是存儲(chǔ)器單元I4: ADD R3,R4,R5 ;(R4)+(R5)?R3(3)I5: MUL R3,R1,R2 ;(R1)×(R2)?R3I6: ADD R3,R4,R5 ;(R4)+(R5)?R3,【解】(1)I1指令運(yùn)算結(jié)果應(yīng)先寫(xiě)入R1,然后在I2指令中讀出R1內(nèi)容。由于I2指令進(jìn)入流水線,變成I2指令在I1指令寫(xiě)入R1前就讀出R1內(nèi)容,發(fā)生RA

22、W相關(guān)(2)I3指令應(yīng)先讀出R3內(nèi)容并存入存儲(chǔ)單元M(x),然后在I4指令中將運(yùn)算結(jié)果寫(xiě)入R3。但由于I4指令進(jìn)入流水線,變成I4指令在I3指令讀出R3內(nèi)容前就寫(xiě)入R3,發(fā)生WAR相關(guān)。(3)如果I6指令的加法運(yùn)算完成時(shí)間早于I5指令的乘法運(yùn)算時(shí)間,變成指令I(lǐng)6在指令I(lǐng)5寫(xiě)入R3前就寫(xiě)入R3,導(dǎo)致R3的內(nèi)容錯(cuò)誤,發(fā)生WAW相關(guān),2.資源相關(guān),資源相關(guān),是指多條指令進(jìn)入流水線后在同一機(jī)器周期內(nèi)爭(zhēng)用同一個(gè)功能部件所發(fā)生的沖突在標(biāo)量流

23、水計(jì)算機(jī)中在第4個(gè)時(shí)鐘周期時(shí),第1條指令處于訪存取數(shù)(MEM)階段,而第4條指令處于取指令(IF)階段如果數(shù)據(jù)和指令存放在同一存儲(chǔ)器中,且存儲(chǔ)器只有一個(gè)端口,便會(huì)發(fā)生這兩條指令爭(zhēng)用存儲(chǔ)器的沖突,,,因?yàn)槊恳粭l指令都可能需要2次訪問(wèn)存儲(chǔ)器(讀指令和讀寫(xiě)數(shù)據(jù)),在指令流水過(guò)程中,可能會(huì)有2條指令同時(shí)需要訪問(wèn)存儲(chǔ)器,導(dǎo)致資源相關(guān)沖突解決資源相關(guān)沖突的一般辦法是增加資源增設(shè)一個(gè)存儲(chǔ)器,將指令和數(shù)據(jù)分別放在兩個(gè)存儲(chǔ)器中,3.控制相關(guān),控

24、制相關(guān)沖突是由轉(zhuǎn)移指令引起的當(dāng)執(zhí)行轉(zhuǎn)移指令時(shí),依據(jù)轉(zhuǎn)移條件的產(chǎn)生結(jié)果,可能順序取下一條指令,也可能轉(zhuǎn)移到新的目標(biāo)地址取指令若轉(zhuǎn)移到新的目標(biāo)地址取指令,則指令流水線將被排空,并等待轉(zhuǎn)移指令形成下一條指令的地址,以便讀取新的指令,這就使得流水線發(fā)生斷流為了減小轉(zhuǎn)移指令對(duì)流水線性能的影響,通常采用兩種轉(zhuǎn)移處理技術(shù),⑴延遲轉(zhuǎn)移法,由編譯程序重排指令序列來(lái)實(shí)現(xiàn)基本思想是“先執(zhí)行再轉(zhuǎn)移”發(fā)生轉(zhuǎn)移時(shí)并不排空指令流水線,而是繼續(xù)完成下幾條指令

溫馨提示

  • 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ù)僅提供信息存儲(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)論