版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)體系結(jié)構(gòu)主講:陳付龍第5章 流水處理技術(shù)5.1 一次重疊5.2 先行控制5.3 流水技術(shù)原理5.4 流水線的分類5.5 流水線相關(guān)及其處理方法5.6 流水線調(diào)度5.7 超標(biāo)量流水處理機(jī)5.8 超流水線處理機(jī)5.9 超標(biāo)量超流水處理機(jī)5.10 超長指令字處理機(jī)高山流水流水線技術(shù)的由來1769年,英國人喬賽亞韋奇伍德開辦埃特魯利亞陶瓷工廠,在場內(nèi)實(shí)行精細(xì)的勞動分工,他把原來由一個(gè)人從頭到尾完成的制陶流程分成幾十道專門工序,分別由專人完成。這樣一來,原來意義上的“制陶工”就不復(fù)存在了,存在的只是挖泥工、運(yùn)泥工、扮土工、制坯工等等制陶工匠變成了制陶工場的工人,他們必須按固定的工作節(jié)奏勞動,服從統(tǒng)
2、一的勞動管理。 為什么想到改流水線流水線之前,汽車工業(yè)完全是手工作坊型的 . 每裝配一輛汽車要728個(gè)人工小時(shí),當(dāng)時(shí)汽車的年產(chǎn)量大約12輛.這一速度遠(yuǎn)不能滿足巨大的消費(fèi)市場的需求.所以使得汽車成為富人的象征. 福特的夢想是讓汽車成為大眾化的交通工具.所以,提高生產(chǎn)速度和生產(chǎn)效率是關(guān)鍵.只有降低成本,才能降低價(jià)格,使普通百姓也能買的起汽車.流水線的形成1913年,福特應(yīng)用創(chuàng)新理念和反向思維邏輯提出在汽車組裝中,汽車底盤在傳送帶上以一定速度從一端向另一端前行前行中,逐步裝上發(fā)動機(jī),操空系統(tǒng),車廂,方向盤,儀表,車燈,車窗玻璃、車輪,一輛完整的車組裝成了第一條流水線使每輛T型汽車的組裝時(shí)間由原來的1
3、2小時(shí)28分鐘縮短至10秒鐘,生產(chǎn)效率提高了4488倍!流水線是怎樣提高速度的流水線是把一個(gè)重復(fù)的過程分為若干個(gè)子過程,每個(gè)子過程可以和其他子過程并行運(yùn)作福特的流水線不僅把汽車放在流水線上組裝,也花費(fèi)大量精力研究提高勞動生產(chǎn)率福特把裝配汽車的零件裝在敞口箱里,放在輸送帶上,送到技工面前,工人只需站在輸送帶兩邊,節(jié)省了來往取零件的時(shí)間而且裝配底盤時(shí),讓工人拖著底盤通過預(yù)先排列好的一堆零件,負(fù)責(zé)裝配的工人只需安裝,這樣裝配速度自然加快了。他在一年之中生產(chǎn)幾十萬輛汽車,這個(gè)新的系統(tǒng)既有效又經(jīng)濟(jì).結(jié)果他把汽車的價(jià)格削減了一半,降至每輛260美元,1913年,美國人均收入為5301美元,1914年,一個(gè)
4、工人工作不到四個(gè)月就可以買一輛T型車。流水線的意義它使產(chǎn)品的生產(chǎn)工序被分割成一個(gè)個(gè)的環(huán)節(jié),工人間的分工更為細(xì)致,產(chǎn)品的質(zhì)量和產(chǎn)量大幅度提高,極大促進(jìn)了生產(chǎn)工藝過程和產(chǎn)品的標(biāo)準(zhǔn)化。制成品被大量生產(chǎn)出來,尤其是多樣的日用品在流水線上變成了標(biāo)準(zhǔn)化商品。汽車生產(chǎn)流水線以標(biāo)準(zhǔn)化、大批量生產(chǎn)來降低生產(chǎn)成本,提高生產(chǎn)效率的方式適應(yīng)了美國當(dāng)時(shí)的國情,汽車工業(yè)迅速成為美國的一大支柱產(chǎn)業(yè)。體檢流水每個(gè)醫(yī)生只負(fù)責(zé)檢查一項(xiàng),多個(gè)醫(yī)生同時(shí)工作單周期處理機(jī)多周期處理機(jī)多周期實(shí)現(xiàn)概述單周期處理器的問題根源: 對于最慢的指令,周期時(shí)間必須足夠長解決方案:將指令處理分為更小的步驟,每個(gè)周期執(zhí)行一步(而不是整個(gè)指令)周期時(shí)間:
5、執(zhí)行最長步所需的時(shí)間使所有的步驟盡量具有相同的長度這是多周期處理器的本質(zhì)所在多周期處理器的優(yōu)點(diǎn):周期時(shí)間短不同的指令需要不同的周期數(shù)來完成裝入指令需要5個(gè)周期,跳轉(zhuǎn)僅僅需要3個(gè)周期允許每條指令多次使用同一個(gè)功能部件5.1 一次重疊一條機(jī)器指令的執(zhí)行過程取指令分析執(zhí)行tttt順序解釋執(zhí)行執(zhí)行k+1分析k+1取指k+1執(zhí)行k分析k取指kT=3nt一次重疊工作方式執(zhí)行k分析k取指k執(zhí)行k+1分析k+1取指k+1T=(2n+1) t執(zhí)行k+2分析k+2取指k+2訪存沖突問題分析k要訪問存儲器取操作數(shù),取指k+1也要訪存取指令,若操作數(shù)和指令存儲在同一存儲器內(nèi),在同一時(shí)刻只能訪問一個(gè)存儲單元就形成了分析
6、k和取指k+1的訪存沖突。解決辦法使操作數(shù)和指令分別存儲于兩個(gè)獨(dú)立編指的且可同時(shí)訪問的存儲器內(nèi)采用多體交叉存儲器,保證操作數(shù)和指令不位于同一個(gè)存儲體內(nèi)甚至指緩棧(指令緩沖寄存器組),把所需的后繼指令預(yù)先取到指緩棧中5.2 先行控制不同部件處理時(shí)間不等的問題分析k執(zhí)行k分析k+1執(zhí)行k+1分析k+2執(zhí)行k+2分析k+3執(zhí)行k+3 t1 t2 t3各部件不能連續(xù)工作Why good?指令執(zhí)行過程中分析和執(zhí)行部件之間雖然有等待時(shí)間 t,但每個(gè)部件上的處理是連續(xù)的。理想情況下,采用先行控制方式連續(xù)解釋n條指令所需時(shí)間為先行控制處理機(jī)結(jié)構(gòu)主存儲器存儲控制器先行指令緩沖棧先行讀數(shù)棧后行寫數(shù)棧指令分析器先行
7、操作棧運(yùn)算控制器運(yùn)算器通用寄存器先行控制器計(jì)算機(jī)的各個(gè)部分幾乎都可以采用流水線技術(shù): (1)指令的執(zhí)行過程可以采用流水線,稱為指令流水線。 (2)運(yùn)算器中的操作部件,如浮點(diǎn)加法器、浮點(diǎn)乘法器等可以采用流水線,稱為操作部件流水線。 (3)訪問主存的部件可以采用訪存部件流水線。多個(gè)計(jì)算機(jī)之間,通過存儲器連接,也可以采用流水線,稱為宏流水線。流水線的工作過程時(shí)空圖的另外一種形式取指令指令譯碼取操作數(shù)執(zhí)行取指令指令譯碼取操作數(shù)執(zhí)行取指令指令譯碼取操作數(shù)執(zhí)行取指令指令譯碼取操作數(shù)執(zhí)行ti指令 流水線處理機(jī)的最大特點(diǎn)是每一個(gè)時(shí)針周期都能啟動一條指令的執(zhí)行。流水技術(shù)性 流水技術(shù)無助于減少單個(gè)任務(wù)的處理延遲(
8、latency) ,但有助于提高整體工作負(fù)載的吞吐率 多個(gè)不同任務(wù)同時(shí)操作, 使用不同資源 潛在加速比= 流水線級數(shù) 流水線的速率受限于最慢的流水段 流水段的執(zhí)行時(shí)間如果不均衡,那么加速比就會降低 開始填充流水線的時(shí)間和最后排放流水線的時(shí)間降低加速比 相關(guān)將導(dǎo)致流水線暫停單周期、多周期與流水線流水線處理機(jī)的數(shù)據(jù)路徑流水線各級的操作IF級1、取指令2、計(jì)算下一條指令地址流水線各級的操作ID級1、讀寄存器堆中的操作數(shù)2、符號擴(kuò)展3、控制器根據(jù)OPCODE產(chǎn)生控制信號4、轉(zhuǎn)移指令在ID級結(jié)束流水線各級的操作EXE級1、ALU指令完成計(jì)算結(jié)果2、LOAD/STORE指令計(jì)算存儲器地址流水線各級的操作M
9、EM級2、LOAD/STORE指令訪問存儲器,LOAD指令讀操作,STORE指令寫操作,STORE指令結(jié)束。1、ALU指令在該級僅把R內(nèi)容打入C流水線各級的操作WB級結(jié)果寫回到寄存器堆ALU指令執(zhí)行時(shí)流水線的數(shù)據(jù)路徑LOAD指令執(zhí)行時(shí)流水線的數(shù)據(jù)路徑STORE指令執(zhí)行時(shí)流水線的數(shù)據(jù)路徑流水線處理機(jī)的控制ALU指令和存儲器訪問指令的控制I1 addi r1,r2,4 ; r1(r2) + 4I2 load r2,100(r3); r2 memory (r3) + 100I3 sub r4,r5,r6; r4(r5) -(r6)I4 add r7,r5,r6; r7(r5) +(r6)I5 sto
10、re r8,200(r9);memory(r9) + 200(r8)I6 subi r10,r10,1; r10(r10) - 1研究流水線處理機(jī)對以下指令重疊操作過程指令系統(tǒng)和指令格式同前面一樣指令系統(tǒng)和指令格式31 2625 2120 16 15 54 0指令助記符意 義00 0101rdrs1immeaddi rd, rs1, immerd (rs1) add imme00 010100001000100004Haddi r1, r2, 400 0100rdrs1rs2add rd, rs1, rs2rd (rs1) add (rs2)00 0100001110010100110add
11、r7,r5,r600 0110rdrs1rs2sub rd, rs1, rs2rd (rs1) sub (rs2)00 0110001000010100110sub r4,r5,r600 1000rdrs1immeload rd, rs1, immerd (rs1) + imme)00 100000010000110064Hload r2,r3,10000 1001rdrs1immestore rd, rs1,imme(rd)(rs1) + imme)00 1001010000100100C8Hstore r8,r9,200指令系統(tǒng)和指令格式31 2625 2120 16 15 54 0指令助
12、記符意 義00 0000rdrs1rs2and rd, rs1, rs2rd (rs1) and (rs2)00 0001rdrs1immeandi rd, rs1, immerd(rs1) and imme00 0010rdrs1rs2or rd, rs1, rs2rd (rs1) or (rs2)00 0011rdrs1immeori rd, rs1, immerd (rs1) or imme00 0100rdrs1rs2add rd, rs1, rs2rd (rs1) add (rs2)00 0101rdrs1immeaddi rd, rs1, immerd (rs1) add imme
13、00 0110rdrs1rs2sub rd, rs1, rs2rd (rs1) sub (rs2)00 0111rdrs1immesubi rd, rs1, immerd (rs1) sub imme00 1000rdrs1immeload rd, rs1, immerd (rs1) + imme)00 1001rdrs1immestore rd, rs1, imme(rd)(rs1) + imme)00 1010dispbne dispIf z=0, pc(pc)+disp00 1011dispbeq dispIf z=1, pc(pc)+disp00 1100dispbranch disp
14、pc(pc) + dispCC1Fetch I1CC2Fetch I2 并 Decode I1CC3Fetch I3 并 Decode I2 并 EXEC I1CC4Fetch I4 并 Decode I3 并 EXEC I2 并 MEM I1CC5Fetch I5 并 Decode I4 并 EXEC I3 并 MEM I2 并WB I1CC6Fetch I6 并 Decode I5 并 EXEC I4 并 MEM I3 并WB I2CC7Decode I6 并 EXEC I5 并 MEM I4 并WB I3CC8 EXEC I6 并 MEM I5 并 WB I4CC9 MEM I6CC10
15、 WB I6以上還有3個(gè)控制信號:WZ 寫Z標(biāo)志信號 WMEM 寫存儲器信號 WREG- 寫寄存器堆信號流水線處理機(jī)的控制轉(zhuǎn)移指令控制 subi r10,r10,1 bne abc add r1,r2,r3abc: load 00 1010dispbne dispIf z=0, pc(pc)+disp結(jié)果不為0,轉(zhuǎn)移00 1011dispbeq dispIf z=1, pc(pc)+disp結(jié)果為0,轉(zhuǎn)移00 1100dispbranch disppc(pc) + disp無條件轉(zhuǎn)移subi r10,r10,1nopbne abcnopadd r1,r2,r3條件轉(zhuǎn)移指令控制無條件轉(zhuǎn)移指令控制
16、branch abcadd r1,r2,r3branch abcnopadd r1,r2,r3轉(zhuǎn)移發(fā)生的條件為 BTAKEN = branch + bneZ + beqZ級控制信號注釋IF級BTAKEN轉(zhuǎn)移發(fā)生ID級SST選擇STORE(rd)EXE級SIMM選擇立即數(shù)ALUOPALU操作碼WZ寫Z標(biāo)志MEM級WMEM寫存儲器WB級SLD選擇LOADWREG寫寄存器堆流水線各級控制信號的定義流水線各級控制信號的產(chǎn)生表達(dá)式指 令A(yù)LUOP1ALUOP0注釋and /andi00與or/ ori01或add/ addi10加sub/ subi11減load/ store10加aluop1=add+
17、addi+sub+subi+load+storealuop0=or+ori+sub+subiBTAKEN=branch+bneZ+beqZSST=storeSIMM=andi+addi+ori+subi+load+storeWZ= andi+addi+ori+subi+ and+add+or+subWMEM=storeSLD=loadWREG=andi+addi+ori+subi+ and+add+or+sub+load流水線處理機(jī)性能指標(biāo):吞吐率吞吐率:單位時(shí)間內(nèi)處理任務(wù)(指令)數(shù)或輸出結(jié)果數(shù)量最大吞吐率:穩(wěn)定狀態(tài)的吞吐率流水線處理機(jī)性能指標(biāo):吞吐率(等段)12345n-1n12345n-1
18、n12345n-1n12345n-1nmt流水線處理機(jī)性能指標(biāo):吞吐率(不等段)各段時(shí)間不等流水線處理機(jī)性能指標(biāo):吞吐率(不等段)S1S2S3S4輸入輸出流水線瓶頸段流水線處理機(jī)性能指標(biāo):吞吐率(不等段)123412314423132t4S1S2S3S4“瓶頸段”處理方法:細(xì)分S1S2-1S3S4輸入輸出S2-2S2-3“瓶頸段”處理方法:細(xì)分12345n-1n12345n-1n12345n-1n12345n-1ntS1S2-1S2-2S2-3S312345n-1n12345n-1nS4“瓶頸段”處理方法:重復(fù)設(shè)置“瓶頸段”部件S1S2-1S3S4輸入輸出S2-2S2-3“瓶頸段”處理方法:重
19、復(fù)設(shè)置“瓶頸段”部件12345678147258369tS1S2-1S2-2S2-3S31234567812345678S4999流水線處理機(jī)性能指標(biāo):加速比速度提高的比值等段不等段流水線處理機(jī)性能指標(biāo):效率部件利用率等段不等段流水技術(shù)特點(diǎn)流水線可劃分為若干個(gè)互有聯(lián)系的子過程(功能段)。每個(gè)功能段由專用部件實(shí)現(xiàn)。實(shí)現(xiàn)子過程的功能段所需時(shí)間應(yīng)竟可能相等,避免產(chǎn)生處理的瓶頸。形成流水處理需要一段準(zhǔn)備時(shí)間(建立時(shí)間),只有在此之后流水過程才能穩(wěn)定。如果指令流不能連續(xù)執(zhí)行,會使流水中斷(斷流),會影響效率。流水技術(shù)適用于處理大量重復(fù)的程序(只是數(shù)據(jù)不同),只有對輸入的任務(wù)(指令)連續(xù)地處理,流水線的效
20、率才能夠充分發(fā)揮。5.4 流水線的分類1.按流水處理的級別分類2.按流水線完成功能的多少分類3.按流水不同功能的聯(lián)接切換方式分類4.按處理的數(shù)據(jù)類型分類5.按流水線的結(jié)構(gòu)分類6.其它類型部件級流水: 指構(gòu)成部件內(nèi)的各個(gè)子部件之間的 流水處理機(jī)級流水: 指構(gòu)成處理機(jī)的各個(gè)部件之間的 流水系統(tǒng)級流水: 指構(gòu)成計(jì)算機(jī)系統(tǒng)的多個(gè)處理機(jī)之 間的流水 1、按流水處理的級別分類部件級流水線運(yùn)算器流水線將處理機(jī)的算術(shù)運(yùn)算邏輯部件分段,使各種數(shù)據(jù)類型能進(jìn)行流水操作。對階浮點(diǎn)運(yùn)算(+):N1=S1*2E1N2=S2*2E2N=N1+N2尾數(shù)加規(guī)格化運(yùn)算流 處理機(jī)級流水線指令流水線 在指令解釋過程中劃分若干功能段。
21、IFIDEXE指令流 處理機(jī)1處理機(jī)2處理機(jī)n數(shù)據(jù)集任務(wù)1任務(wù)n任務(wù)2多個(gè)處理機(jī)之間通過存儲器串行連接,采用流水工作方式。每個(gè)處理機(jī)之間對同一數(shù)據(jù)流的不同部分分別進(jìn)行處理,各個(gè)處理機(jī)的輸出結(jié)果存放在與下一個(gè)處理機(jī)共享的存儲器中。系統(tǒng)級流水宏流水2.按流水線完成功能的多少分類單功能流水線-只能實(shí)現(xiàn)一種功能的流水處理。 多功能流水線指-同一流水線的各個(gè)段之間可以有多種不同的聯(lián)接方式以實(shí)現(xiàn)多種不同的運(yùn)算或功能。流水線功能塊浮點(diǎn)加、減運(yùn)算時(shí)的連接定點(diǎn)乘法運(yùn)算的連接3.按流水不同功能的聯(lián)接切換方式分類靜態(tài)流水線-在某一時(shí)間里各段只能按一種功能聯(lián) 接流水,只有等流水線全部流空后才 能切換成按另一種功能來聯(lián)
22、接流水。 動態(tài)流水線-各功能段在同一時(shí)間內(nèi)可按不同運(yùn)算或功能 聯(lián)接目前,高性能流水處理機(jī)大多都采用多功能靜態(tài)流水 靜態(tài)多功能流水線時(shí)-空圖1234n -11234123412341234n n -1n n -1n n -1n n -1n 1234n -1n 12345678浮加定乘 一 二 三 一 二 一 一 二 三 四 空間(段號)n個(gè)浮加流水結(jié)束后,才開始定乘動態(tài)多功能流水線時(shí)-空圖1234n -11234123412341234n n -1n n -1n n -1n n -1n 1234n -1n 一 二 三 四五六七一 二 三 四五六一 二 三 四五一 二 三 四12345678時(shí)間浮
23、加定乘 空間(段號)同一段時(shí)間內(nèi),有些段實(shí)現(xiàn)浮加,有些段實(shí)現(xiàn)定乘,效率較高,控制復(fù)雜4按處理的數(shù)據(jù)類型分類 標(biāo)量流水處理機(jī):沒有向量數(shù)據(jù)表示,只能對標(biāo) 量進(jìn)行處理向量流水處理機(jī):機(jī)器具有向量數(shù)據(jù)表示,設(shè)置有向量指令和向量運(yùn)算硬件,能對向量的各個(gè)元素流水地處理。5.按流水線的結(jié)構(gòu)分類線性流水-各段串行聯(lián)接,沒有反饋回路,各段 只經(jīng)過一次。非線性流水-流水線中除有串行聯(lián)接的通路外.還 有某種反饋回路,使一個(gè)任務(wù)流經(jīng) 流水線時(shí),需要多次經(jīng)過某個(gè)段或跳過某些段,稱非線性流水。1234+入出圖:非線性流水線6.其它類型 可大量采用,用硬件來實(shí)現(xiàn)復(fù)雜的多維流水線,同時(shí)設(shè)多個(gè)方向脈動地向前推進(jìn),以進(jìn)一步提高
24、流水的并行處理能力 5.5 流水線相關(guān)及其處理方法相關(guān)概念:相近指令間出現(xiàn)了某種關(guān)聯(lián),使得指令不能提前解釋數(shù)據(jù)相關(guān):本條指令的操作數(shù)地址與前一條指令存放 結(jié)果的地址相同,便出現(xiàn)了前條指令還沒有 結(jié)果,而后一條指令要求提前取出,造成 錯(cuò)誤??刂葡嚓P(guān):由于在轉(zhuǎn)移發(fā)生之前,若干條轉(zhuǎn)移指令的后繼指令已被取到流水線處理機(jī)中,而造成錯(cuò)誤。結(jié)構(gòu)相關(guān):由于硬件資源不足而導(dǎo)致流水線不暢通。流水線處理機(jī)的相關(guān)因?yàn)榱魉€中指令和數(shù)據(jù)要提前取出來,因此相鄰指令之間存在許多關(guān)聯(lián)。5.5.1 數(shù)據(jù)相關(guān)及其處理方法數(shù)據(jù)相關(guān)在執(zhí)行某條指令的過程中,如果用到的指令、操作數(shù)和變址偏移量等正好是前面指令的執(zhí)行結(jié)果,則必須等待前面指
25、令的執(zhí)行完成,并把結(jié)果寫到主存活通用寄存器中之后,當(dāng)前指令才能開始執(zhí)行,即不同的指令對主存操作數(shù)或寄存器存在“先寫后讀”的關(guān)聯(lián)。數(shù)據(jù)相關(guān)影響的是本條指令附近的少數(shù)幾條指令,是局部相關(guān)。流水線中的先寫后讀相關(guān)分析K執(zhí)行K取指K1分析K1執(zhí)行K1從C中取變址值從C中取操作值取指K若:C是主存地址K和K+1條指令間發(fā)生了主存操作 數(shù)相關(guān)C是通用寄存器號K和K+1條間發(fā)生通用寄存器 組的數(shù)相關(guān)C是變地址寄存器號K和K+1條間發(fā)生通用寄存 器的變址值相關(guān)若:第K1條中放的是條指令,而K1條指令的代碼要等第K條指令執(zhí)行結(jié)束后才能形成,則稱K和K1條指令間發(fā)生了指令相關(guān)。 以上幾種相關(guān)稱為局部相關(guān),因?yàn)樗?/p>
26、多只影響流入流水線中與之相關(guān)的后面幾條指令,使其暫停流動,并不會更改指令緩沖器的內(nèi)容,所以說影響是局部的。數(shù)據(jù)相關(guān)舉例MUL R4,R2,R3;R2*R3-R4ADD R6,R4,R5;R5+R4-R6FDEWI1:MULI2:ADDI3I4F1D1E1W1F2D2E2W2F3D3E3W3F4D4E4W4tI數(shù)據(jù)相關(guān)I1:add r1,r2,r3I2:sub r4,r1,r5I3:and r6,r7,r1I4:or r8,r1,r9I5:addi r10,r1,100寫寄存器堆提前半個(gè)周期,我們只需考慮兩條相關(guān)指令數(shù)據(jù)相關(guān)檢測方法如何檢測發(fā)生了數(shù)據(jù)相關(guān)?I1:add r1,r2,r3I2:su
27、b r4,r2,r5I3:and r6,r1,r7真正影響數(shù)據(jù)正確性的數(shù)據(jù)相關(guān)是先寫后讀相關(guān)(Read After Write)I1:add r1,r2,r3 I2:sub r4,r1,r5I3:and r6,r7,r1ADDR2,R3ADDR1 SUBR1,R5SUBR4 ANDR7,R1ADDADDR2,R3ADDR1 SUBR2,R5R4 ANDADDR6SUBR1R1,R7I1I R相關(guān)圖檢測前后兩條指令是否存在下列情況:I1的寫和后續(xù)的若干可能相關(guān)的I的讀針對相同的存儲單元或者寄存器如何解決數(shù)據(jù)相關(guān)?推后法靜態(tài)方法:由編譯程序來完成檢測。若發(fā)生數(shù)據(jù)相關(guān),則插入NOP指令I(lǐng)1:add
28、r1,r2,r3 nop nopI2:sub r4,r1,r5I3:and r6,r7,r1I1:add r1,r2,r3I2:sub r4,r2,r5 nopI3:and r6,r7,r1ADDR2,R3ADDR1 NOPNOPNOPNOPSUBR1,R5SUBR4 ANDR1,R7ADDADDR2,R3ADDR1 SUBR2,R5R4 NOPNOPSUBANDADDR6R1,R7R6插入多少個(gè)NOP?動態(tài)方法: 由硬件來完成檢測。若發(fā)生數(shù)據(jù)相關(guān),則暫停流水線暫停流水線要做3件事情:1、封鎖當(dāng)前正在譯碼的指令的寫控制信號;2、不把從存儲器取來的下一聽指令打入IR;3、不改變當(dāng)前的PC值。當(dāng)I
29、2與I1相關(guān),流水線暫停兩個(gè)周期當(dāng)I3與I1相關(guān),流水線暫停一個(gè)周期 以上解決方法都將影響流水線的性能 設(shè)置相關(guān)專用通路法相關(guān)專用通路當(dāng)I1和I2發(fā)生“先讀后寫”相關(guān)時(shí),I2指令的讀操作要從存儲單元讀出應(yīng)該由I1 指令寫入存儲單元的內(nèi)容,而I1 還來不及寫入。在讀段和寫段之間設(shè)置專用通路,I2不從存儲單元讀,而把I1在寫段的數(shù)據(jù)直接讀出,可避免I2 推后。避免速度的損失,但增加額外的硬件,只有對相關(guān)概率高的部件才值得。通用寄存器數(shù)相關(guān)通用寄存器往往作為累加器或保存中間結(jié)果經(jīng)常“本條指令存,下調(diào)指令取”執(zhí)行K第1拍第2拍第3拍第4拍分析K+1(L1)送入B(L2)送入CADD R1,R4,R5;
30、 L3(K)=R1ADD R3,R1,R2; L1(K+1)=R1ADD R2,R4,R5; L3(K)=R1ADD R3,R1,R2; L2(K+1)=R1結(jié)果送入L3通用寄存器相關(guān)專用通路通用寄存器組運(yùn)算器BC相關(guān)專用通路數(shù)據(jù)總線運(yùn)算結(jié)果(直接送入)結(jié)構(gòu)相關(guān)當(dāng)兩個(gè)指令同時(shí)請求使用某個(gè)硬件資源時(shí),一條指令在完成它的執(zhí)行階段或?qū)戨A段時(shí)可能需要訪問存儲器,而此時(shí)正有另一條指令在完成取指令。如果指令和數(shù)據(jù)位于同一高速緩存單元,那么只允許有一條指令能夠執(zhí)行,另一條指令將被推遲。I1是LOAD指令,則I1與I4結(jié)構(gòu)相關(guān)單存儲器模塊所構(gòu)成的流水線處理機(jī)-結(jié)構(gòu)相關(guān)結(jié)構(gòu)相關(guān)采用分開的CACHE(I-CACH
31、E,D-CACHE)解決結(jié)構(gòu)相關(guān)其他數(shù)據(jù)相關(guān)處理辦法異步流動和推測執(zhí)行5.5.2 控制相關(guān)及處理辦法控制相關(guān)指因各種轉(zhuǎn)移指令(條件分支指令、轉(zhuǎn)子程序指令和中斷等)而引起的相關(guān)。影響范圍較大,屬全局相關(guān)??刂葡嚓P(guān)舉例I1:LOAD R1,AI2:LOAD R2,BI3:DEC R2I4:BRZEOR R2,I7I5:LOAD R3,CI6:LOAD R4,DI7:ADD R3,R4I8:ADD R1,R3I1ALOADR1I2BLOADR2I3R2DECR2I4R2BRZEROI7I5CLOADR3I6DLOADR4I7R3,R4ADDR3 由于在轉(zhuǎn)移發(fā)生之前,若干條轉(zhuǎn)移指令的后繼指令已被取到流
32、水線處理機(jī)中,而造成錯(cuò)誤。解決方法:1、暫停流水線;2、假定轉(zhuǎn)移不發(fā)生;3、延遲轉(zhuǎn)移轉(zhuǎn)移相關(guān)及解決方法延遲轉(zhuǎn)移法由編譯程序檢測控制相關(guān)重排指令序列發(fā)生轉(zhuǎn)移時(shí),讓緊跟在轉(zhuǎn)移指令后已進(jìn)入流水線的少數(shù)幾條指令繼續(xù)完成,若這些紙指令是與轉(zhuǎn)移指令結(jié)果無關(guān)的有用指令,那么延遲損失的時(shí)間可得到有效利用。延遲轉(zhuǎn)移法:重排I1:LOAD R1,AI2:LOAD R2,BI3:DEC R2I4:BRZEOR R2,I7I5:LOAD R3,CI6:LOAD R4,DI7:ADD R3,R4I8:ADD R1,R3I1ALOADR1I2BLOADR2I3R2DECR2I4R2BRZEROI7I5CLOADR3I6D
33、LOADR4I7R3,R4ADDR3I2:LOAD R2,BI3:DEC R2I4:BRZEOR R2,I7I1:LOAD R1,A :NOP :NOPI5:LOAD R3,CI6:LOAD R4,DI7:ADD R3,R4I8:ADD R1,R3重排I1ALOADR1I2BLOADR2I3R2DECR2I4R2BRZEROI7I5CLOADR3I6DLOADR4I7R3,R4ADDR3NOPNOP其它解決辦法:轉(zhuǎn)移預(yù)測流水機(jī)器的中斷處理 中斷會引起流水線斷流,但其出現(xiàn)的概率比條件轉(zhuǎn)移引起的斷流概率要低得多,且又是隨機(jī)發(fā)生的。所以,流水線機(jī)器處理中斷主要是如何處理好斷點(diǎn)現(xiàn)場的保存和恢復(fù)。中斷處
34、理方法不精確斷點(diǎn)法-不論指令i在流水線的哪一段 發(fā)生了中斷,都不再允許尚 未進(jìn)入流水線的后續(xù)指令再 進(jìn)入,但將已進(jìn)入的指令執(zhí) 行完,轉(zhuǎn)入中斷處理。精確斷點(diǎn)法-不論指令i是在流水線的哪一段, 響應(yīng)中斷時(shí)中斷處理程序的現(xiàn) 場全都對i的,i之后流入流水線 的指令的原有現(xiàn)場都能恢復(fù)。 不精確斷點(diǎn)法不便于編程和程序排錯(cuò);精確斷點(diǎn)法需設(shè)置很多后援寄存器。(這些寄存器也是“指令復(fù)執(zhí)”所必須的,并不需要另設(shè))5.6 流水線調(diào)度線性流水 在執(zhí)行每個(gè)任務(wù)的過程中,各段均只通過一次,每拍都可將一個(gè)新任務(wù)送入流水線,這些任務(wù)不會爭用同一段。可采用指令序列重排。非線性流水 因段間有反饋回路,一個(gè)任務(wù)在流水的全過程中,可
35、能會多次通過同段。若每拍向流水線送入一個(gè)新的任務(wù)就會發(fā)生幾個(gè)任務(wù)爭用一功能段的沖突現(xiàn)象。5.6.1 指令序列重排通過編譯器判斷潛在的數(shù)據(jù)相關(guān),重新安排指令序列,拉開具有數(shù)據(jù)相關(guān)的指令距離。原指令序列I1:LOAD R1,M(A)I2:LOAD R2,M(B)I3:MUL R5,R1,R2I4:LOAD R3,M(C)I5:LOAD R4,M(D)I6:ADD R2,R3,R4I7:ADD R2,R2,R5取指F譯碼D發(fā)射I執(zhí)行E執(zhí)行E執(zhí)行E寫回W7段流水線FDIEEEWFDIEEEWFDIEEEWFDIEEEWFDIEEEWFDIEEEWFDIEEEWtII1I2I3I4I5I6I7AB+CD
36、三拍的執(zhí)行段T=22拍重排后指令序列I1:LOAD R1,M(A)I2:LOAD R2,M(B)I4:LOAD R3,M(C)I5:LOAD R4,M(D)I3:MUL R5,R1,R2I6:ADD R2,R3,R4I7:ADD R2,R2,R5取指F譯碼D發(fā)射I執(zhí)行E執(zhí)行E執(zhí)行E寫回W7段流水線FDIEEEWFDIEEEWtIFDIEEEWFDIEEEWFDIEEEWFDIEEEWFDIEEEWI1I2I4I5I3I6I7T=18拍5.6.2 非線性流水線調(diào)度流水線調(diào)度對單功能非線性流水線和多功能動態(tài)流水線很重要。使用一個(gè)二維的預(yù)約表能對進(jìn)入流水線的任務(wù)進(jìn)行優(yōu)化,每個(gè)任務(wù)通過流水線需要N拍。
37、利用類似時(shí)一空圖的方法可以得到該任務(wù)使用流水線各段的時(shí)間關(guān)系表,其中拍號n為任務(wù)經(jīng)過流水線的時(shí)鐘節(jié)拍號。如果任務(wù)在第n拍要用到第K段,就在相應(yīng)第n例和第k行的交點(diǎn)處用表示?,F(xiàn)設(shè)流水線段號K為15,任務(wù)經(jīng)流水線需9拍。54321987654321拍號n單功能流水線預(yù)約表段號k98765432154321987654321調(diào)度方法平均間隔拍數(shù)(2,2,7)(2,7)(3,4)(3,4,7)(3,7)(4,3,7)(4,7)(7)367450350467500467550700各種調(diào)度方法的平均間隔拍數(shù)舉例* 只要按流水線狀態(tài)圖中任何一個(gè)循環(huán)通路來進(jìn)行流水線的調(diào)度,不會發(fā)生功能段使用沖突。*找出其中
38、之最小者就是流水線各后繼任務(wù)流水流水線所用間隔的最佳調(diào)度。 可以用一個(gè)N-1位的位向量來表示后繼新任務(wù)間隔各種不同拍數(shù)送入流水線時(shí),是否會發(fā)生功能段使用的沖突,稱此位向量為沖突向量 沖突向量(CN-1 CIC2 C1 )中第I位的狀態(tài)表示與當(dāng)時(shí)相隔I拍給流水線送入后繼任務(wù)是否會發(fā)生功能段的使用沖突.如果不發(fā)生沖突,令該位為“0”,表示允許送入;否則,讓該位為“1”,表示禁止送入。 沖突向量取N-1位是因?yàn)榻?jīng)N拍后,任務(wù)已流出流水線,不會與后繼任務(wù)爭用流水線功能段j。 只要按流水線狀態(tài)轉(zhuǎn)移圖中任何一個(gè)循環(huán)通路來進(jìn)行流水線的調(diào)度,都不會發(fā)生功能段使用沖突?,F(xiàn)尋找一種最佳的調(diào)度策略,以便使流水線的吞
39、吐率最高。需要分別計(jì)算出每種調(diào)度法的平均間隔拍數(shù),然后找出其中之最小者,就是流水線各后繼任務(wù)流水線所用間隔的最佳調(diào)度。5.7 超標(biāo)量流水處理機(jī) 假設(shè)一條指令包含取指令、譯碼、執(zhí)行、存結(jié)果四個(gè)過程,每個(gè)子過程經(jīng)過時(shí)間為t期間解釋完一條指令,如圖所示。執(zhí)行完12條指令共需15 t的時(shí)間。稱這種 流水機(jī)度m為1。1234567891011取指譯碼執(zhí)行存結(jié)果部件0時(shí)間t12123456789101112123456789101112123456789101112123456789101112131415圖:常規(guī)(度m=1)的標(biāo)量流水機(jī)時(shí)空圖 超標(biāo)量處理機(jī)則是采用多條指令流水線,每個(gè)t同時(shí)流出m條指令(
40、稱度為m)。例如,度m為3的超標(biāo)量處理機(jī)的流水時(shí)空圖如下圖所示,每三條指令為一組,執(zhí)行完12條指令只需7t。14710235612354981112781011129614710118523691214710111289562301234567123123123123存結(jié)果 執(zhí)行 譯碼取指時(shí)間t圖:度 m3 的 超 標(biāo) 量 處 理 機(jī) 時(shí)空 圖性能對分析加速比 在超標(biāo)量流水線處理機(jī)中,配置多套功能部件、指令譯碼電路和多組總線,并且寄存器也備有多個(gè)端口和多組總線。程序運(yùn)行時(shí),由指令譯碼部件檢測順序取出的幾條指令之間是否存在數(shù)據(jù)相關(guān)和功能部件爭用,將可以并行的相鄰指令送往流水線。若并行度為1時(shí)就逐
41、條執(zhí)行。超級標(biāo)量流水機(jī)主要靠編譯程序來優(yōu)化編排指令的執(zhí)行順序,將能并行為指令搭配成組,硬件不對指令順序進(jìn)行調(diào)整,這樣,實(shí)現(xiàn)起來相對容易些。 超級標(biāo)量流水處理機(jī)非常適合于求解像稀疏向量、矩陣這類復(fù)雜的標(biāo)量計(jì)算問題,因?yàn)檫@類問題用向量流水線處理機(jī)求解很不方便。超標(biāo)量流水處理機(jī)的典型結(jié)構(gòu)主存D-CACHED-CACHE譯碼器指令調(diào)度部件狀態(tài)記錄部件存儲操作部件ALU轉(zhuǎn)移控制部件寄存器堆常見超標(biāo)量流水處理機(jī)Intel :i860/i960/PentiumMotolora :MC88110IBM :Power 6000Sun: SuperSPARC5.8 超流水線處理機(jī)通過將流水線中的每一級再細(xì)分,使得
42、在一個(gè)時(shí)鐘周期內(nèi)能夠分時(shí)發(fā)射多條指令。超流水線處理機(jī)不同于超標(biāo)量處理機(jī)和VLIW處理機(jī),每個(gè)t仍只流出一條指令,但它的t值小,一臺度為m的超流水線處理機(jī)的t只是基本機(jī)器周期的t的1/m。因此,一條指令需花kmt的時(shí)間,k為一條指令所含的基本機(jī)器周期數(shù)。只要流水線性能得以充分發(fā)揮,其并行度就可達(dá)m。下圖給出了度m=3的超流水線處理機(jī)工作的時(shí)空圖。14710258111296314710118521296310741118521296310741118521296312312312312312345678 時(shí)間 t t t取指譯碼執(zhí)行存結(jié)果部件 t每流出一條指令,且度m 3 的超流水線處理機(jī)時(shí)空圖ILP=3:每個(gè)時(shí)鐘周期,發(fā)射3條指令(每隔1/3時(shí)鐘周期,發(fā)射1條指令) 超流水線處理機(jī)早就出現(xiàn)了,如CRAY1的定點(diǎn)加法為 3t。1991年2月MIPS公司的64位RESC計(jì)算機(jī)R4000,度m=3。超流水線還可以與超標(biāo)量組合構(gòu)成超流水線超標(biāo)量處理機(jī),如DEC公司早期的Alpha處理機(jī)每t可流出兩條指令且度m=6。 超標(biāo)量處理機(jī)利用資源重復(fù),設(shè)置多個(gè)執(zhí)行部件寄存器堆端口。超流水線處理機(jī)則著重開發(fā)時(shí)間并行性,在公共的硬部件上采用較短的時(shí)鐘周期,深度流水來提高速度
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年銷售人員入職后業(yè)績激勵(lì)合同3篇
- 2024年限量版房產(chǎn)專屬銷售代表合同版B版
- 玻璃制備的課程設(shè)計(jì)
- 2024年版行業(yè)協(xié)會專家聘用正式協(xié)議版B版
- 2025年度高端雞苗出口貿(mào)易合同范本3篇
- 搖臂軸座課程設(shè)計(jì)195
- 水彩動漫鉛畫課程設(shè)計(jì)
- 2025年度智能化家電產(chǎn)品代理售后服務(wù)全面合作協(xié)議2篇
- 2025版加氣站站內(nèi)設(shè)備定期維護(hù)與保養(yǎng)合同3篇
- 顯微目鏡結(jié)構(gòu)課程設(shè)計(jì)
- 重大(2023)版信息科技五年級上冊教學(xué)設(shè)計(jì)
- 工業(yè)循環(huán)水處理行業(yè)市場調(diào)研分析報(bào)告
- 2025公司集團(tuán)蛇年新春年會游園(靈蛇舞動共創(chuàng)輝煌主題)活動策劃方案-31P
- 2024年高考?xì)v史必修部分重點(diǎn)必考知識點(diǎn)總結(jié)(經(jīng)典版)
- 《計(jì)算機(jī)視覺》教學(xué)課件-第08章1-神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)1
- 職業(yè)衛(wèi)生技術(shù)服務(wù)機(jī)構(gòu)檢測人員考試真題題庫
- 安全月度例會匯報(bào)材料模板
- 大國兵器學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 期末綜合素養(yǎng)評價(jià) (三)(試題)-2024-2025學(xué)年一年級上冊數(shù)學(xué)
- 《稅費(fèi)計(jì)算與申報(bào)》課程標(biāo)準(zhǔn)(含課程思政)
- 2024年無子女離婚協(xié)議書范文百度網(wǎng)盤
評論
0/150
提交評論