計算機系統(tǒng)結(jié)構(gòu) 第5章_第1頁
計算機系統(tǒng)結(jié)構(gòu) 第5章_第2頁
計算機系統(tǒng)結(jié)構(gòu) 第5章_第3頁
計算機系統(tǒng)結(jié)構(gòu) 第5章_第4頁
計算機系統(tǒng)結(jié)構(gòu) 第5章_第5頁
已閱讀5頁,還剩138頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第 5 5 章章 重疊、重疊、 流水和向量處理機流水和向量處理機 5.1 重疊解釋方式重疊解釋方式 5.2 流水方式流水方式 5.3 向量的流水處理與向量流水處理機向量的流水處理與向量流水處理機 5.4 指令級高度并行的超級處理機指令級高度并行的超級處理機 設(shè)計處理機的基本任務(wù)之一時要縮短解釋指令的時間,即提高處理機指令執(zhí)行的速度.途徑:提高處理機的工作主頻采用更好的算法和設(shè)計更好的功能部件.多條指令并行執(zhí)行(指令級并行技術(shù))u采用流水線技術(shù)u在一個處理機中設(shè)置多個獨立的功能部件u超長指令字技術(shù)5.1 重疊解釋方式重疊解釋方式 5.1.1 基本思想和一次重疊基本思想和一次重疊 圖圖 5.1

2、對一條機器指令的解釋對一條機器指令的解釋 取指令分析執(zhí)行t取指令:按指令計數(shù)器的內(nèi)容訪問主存,取出該指令送指令寄存器.指令的分析:對指令的操作碼進(jìn)行譯碼,按尋址方式和地址字段形成操作數(shù)物理地址,并取出操作數(shù),形成下一條指令的地址.指令的執(zhí)行:對操作數(shù)進(jìn)行運算,處理,或存儲運算結(jié)果(可能要訪問主存)當(dāng)有多條指令要在處理機中執(zhí)行時,可以采用多種執(zhí)行方式:1.順序執(zhí)行方式niiiitttT1)(執(zhí)分取若各階段執(zhí)行時間相等,則共需若各階段執(zhí)行時間相等,則共需3 n t t 優(yōu)點:優(yōu)點:控制簡單;控制簡單; 缺點:缺點:速度慢,機器各部件的利用率很低。速度慢,機器各部件的利用率很低。 2.重疊執(zhí)行方式:

3、取第k+1條指令與分析第k條指令同時進(jìn)行,分析第k+1條指令與執(zhí)行第k條指令同時進(jìn)行.如果執(zhí)行一條指令的三過程的時間相等,則 T=(2+n)t為了能夠?qū)崿F(xiàn)理想的指令重疊執(zhí)行方式,處理機的結(jié)構(gòu)要作比較大的改變,必須采用先行控制方式.要使指令能夠正確地重疊執(zhí)行,必須解決如下兩個問題:1.獨立的取指令部件,指令分析部件和指令執(zhí)行部件集中的指令控制器分解:存儲控制器 指令控制器 運算控制器2.要解決訪問主存的沖突問題1)把主存分成兩個獨立編址的存儲器指存 和 數(shù)存 解決了取指令和讀操作數(shù)的沖突運算結(jié)果只寫通用寄存器,不寫主存.2)低位交叉存取方式3)解決訪問存儲器沖突的根本方法是采用先行控制技術(shù).先行

4、控制技術(shù)的關(guān)鍵是緩沖技術(shù)和預(yù)處理技術(shù).緩沖技術(shù):在工作速度不固定的兩個功能部件之間設(shè)置緩沖棧先行指令緩沖棧先行操作棧先行讀數(shù)棧后行寫數(shù)棧預(yù)處理技術(shù):把進(jìn)入運算器的指令都處理成RR型指令.可大幅度提高指令的執(zhí)行速度.圖 5.2 指令的順序解釋與重疊解釋 圖 5.3 一次重疊工作方式 如果指令分析器每次取指令都能在先行指令緩沖棧中得到, 則取指令只需要很短的時間. 把取指令和分析指令指令合并.實現(xiàn)分析k+1和執(zhí)行k的一次重疊,待解決的問題:u分析和執(zhí)行所時間差很大u如果分析k+1所要讀取的操作數(shù)正好數(shù)執(zhí)行k的結(jié)果,那它們不能重疊執(zhí)行-數(shù)據(jù)相關(guān),另外還有控制相關(guān),指令相關(guān)等.u當(dāng)出現(xiàn)轉(zhuǎn)移或轉(zhuǎn)子程序指

5、令時,程序的執(zhí)行過程就不是順序的,在先行指令緩沖棧中預(yù)取的指令和已經(jīng)分析完成的下一條指令等都可能要作廢.圖 5.4 當(dāng)?shù)趉條指令是條件轉(zhuǎn)移時 例一、數(shù)據(jù)相關(guān)。 第K+1條指令的源操作數(shù)正好是第K條指令結(jié)果地址,順序解釋沒問題,而重疊解釋時,在“執(zhí)行K”和“分析K+1”重疊時就出現(xiàn)問題 相關(guān):因程序相鄰指令之間出現(xiàn)了關(guān)聯(lián),為防止出錯他們不能同時解釋。這種現(xiàn)象稱發(fā)生了”相關(guān)“,有數(shù)據(jù)相關(guān)和指令相關(guān)。 指令相關(guān)。指令相關(guān)是因為機器指令允許修改引起的。 如果采用Von Neumann型機器上指令可修改的辦法經(jīng)第k條指令的執(zhí)行來形成第k+1條指令,如 k: 存 通用寄存器, k+1; (通用寄存器)k+

6、1 k+1: 由于在“執(zhí)行k”的末尾才形成第k+1條指令,按照一次重疊的時間關(guān)系,“分析k+1”所分析的是早已取進(jìn)指緩的第k+1條指令的舊內(nèi)容,這就會出錯。為了避免出錯,第k、k+1條指令就不能同時解釋,我們稱此時這兩條指令之間發(fā)生了“指令相關(guān)”。 特別是當(dāng)指令緩沖器可緩沖存放n條指令情況下,執(zhí)行到第k條指令時,與已預(yù)取進(jìn)指緩的第k+1到第k+n條指令都有可能發(fā)生指令相關(guān)。指緩容量越大,或者說指令預(yù)處理能力愈強的機器發(fā)生指令相關(guān)的概率就愈高。 5.1.2 相關(guān)處理相關(guān)處理 1. 指令相關(guān)的處理指令相關(guān)的處理 要判斷是否發(fā)生了指令相關(guān),要把每一條指令的執(zhí)行結(jié)果地址與先行操作棧中,指令分析器和先行

7、指令緩沖棧中的所有指令地址進(jìn)行比較.如果發(fā)現(xiàn)相關(guān),則在修改主存相關(guān)單元的同時,也要修改先行操作?;蛑噶罘治銎骰蛳刃兄噶罹彌_棧中的相關(guān)指令.解決指令相關(guān)的根本辦法:在程序設(shè)計中不允許修改指令.IBM370機器中,有一條”執(zhí)行”指令能夠解決指令相關(guān),又允許在程序執(zhí)行過程中修改指令. “執(zhí)行”指令是IBM 370機器為此設(shè)置的一條指令,其形式為 執(zhí)行R1X2B2D2當(dāng)執(zhí)行到“執(zhí)行”指令時,按第二操作數(shù)(X2)+(B2)+D2地址取出操作數(shù)區(qū)中單元的內(nèi)容作為指令來執(zhí)行,參見圖5.5。 圖 5.5 IBM 370“執(zhí)行”指令的執(zhí)行 2. 主存空間數(shù)相關(guān)的處理主存空間數(shù)相關(guān)的處理 相鄰兩條指令之間出現(xiàn)要求

8、對主存同一單元先寫入而后再讀出的關(guān)聯(lián).在大多數(shù)處理機中,運算結(jié)果一般都寫入通用寄存器,而不寫入主存. 主存操作數(shù)相關(guān)出現(xiàn)的概率比較小.解決辦法:推后處理法.在設(shè)置有存儲控制器的處理機中,把”寫結(jié)果”的優(yōu)先級安排得高于”讀操作數(shù)”的優(yōu)先級.由于存控響應(yīng)訪問請求是定時進(jìn)行的,它在一個周期的最末尾處對這一個周期這的所有訪問源進(jìn)行排隊.圖圖 5.6 主存數(shù)相關(guān)的處理主存數(shù)相關(guān)的處理 3. 3. 通用寄存器組相關(guān)的處理通用寄存器組相關(guān)的處理 通用寄存器存放操作數(shù),也存放變址,基址.存放在通用寄存器中的基址或變址一般總是在”分析”周期的前半段就要取出; 而操作數(shù)則是在”分析”周期的末尾的后半段取出,到”執(zhí)

9、行”周期的前半段才真正用上; 運算結(jié)果在”執(zhí)行”周期的末尾才形成,并送入通用寄存器. 通用寄存器數(shù)相關(guān)的情況和處理辦法設(shè)機器的基本指令格式為 操作碼L1L3B2d2或 操作碼L1L3L2圖圖 5.7 指令解釋過程中與通用寄存器內(nèi)容有關(guān)的微操作時間關(guān)系指令解釋過程中與通用寄存器內(nèi)容有關(guān)的微操作時間關(guān)系圖圖 5.8 “執(zhí)行執(zhí)行k”、 “分析分析k+1”重疊時,訪問通用寄存器組的時間關(guān)重疊時,訪問通用寄存器組的時間關(guān)系系 解決辦法:1)分析周期推后一個周期執(zhí)行.順序串行 實現(xiàn)簡單 運算速度的損失較大2)分析指令僅僅推后一個節(jié)拍3)設(shè)置專用數(shù)據(jù)通路.圖 5.9 用相關(guān)專用通路解決通 用寄存器組的數(shù)相關(guān)

10、 變址相關(guān)因為計算有效地址是在指令分析的一開始進(jìn)行的,因此,變址相關(guān)造成的后果要比數(shù)相關(guān)更為嚴(yán)重.設(shè)操作數(shù)的有效地址 222)0000()()(dBBXd由分析器內(nèi)的地址加法器形成。由于通常情況下,“分析”周期等于主存周期,所以,從時間關(guān)系上要求在“分析”周期的前半段,就能由通用寄存器輸出總線取得(B2),送入地址加法器。由于運算結(jié)果是在“執(zhí)行”周期的末尾才送入通用寄存器組的,它當(dāng)然不能立即出現(xiàn)在通用寄存器輸出總線上。也就是說,在“執(zhí)行k”得到的、送入通用寄存器的運算結(jié)果來不及作為“分析k+2”的基址值用,更不用說作為“分析k+1”的基址值用。因此,雖然是一次重疊,但基址值相關(guān)(B相關(guān))就不止

11、會出現(xiàn)一次相關(guān),還會出現(xiàn)二次相關(guān)。即當(dāng)出現(xiàn)B(k+1)=L3 (k)時,稱為發(fā)生了B一次相關(guān);而當(dāng)出現(xiàn)B(k+2)=L3(k)時,稱為發(fā)生了B二次相關(guān),如圖5.10所示。 解決變址相關(guān)的辦法:推后分析和設(shè)置相關(guān)專用通路推后分析法 對于二次變址相關(guān), “分析k+2”推后 1周期(1節(jié)拍) 一 “分析k+1” 2 (1周期+1節(jié)拍)變址相關(guān)專用通路 運算結(jié)果送入通用寄存器的同時,直接送到地址加法器中.圖 5.10 B一次相關(guān)與二次相關(guān) 圖 5.11 B一次、 二次相關(guān)的推后處理 圖 5.12 B相關(guān)專用通路法 5.2 流流 水水 方方 式式 5.2.1 基本概念基本概念 流水是重疊的引申:流水是重

12、疊的引申:一次重疊:把一條指令的解釋分為兩個子過程,同時解釋兩一次重疊:把一條指令的解釋分為兩個子過程,同時解釋兩條指令。條指令。流水:把一條指令的解釋分為多個子過程,同時解釋多條指流水:把一條指令的解釋分為多個子過程,同時解釋多條指令。令。取指取指訪存訪存執(zhí)行執(zhí)行譯碼譯碼寫回寫回IFIDEXMEMWBS1S2S3S4S5輸入輸入輸出輸出指令的流水處理指令的流水處理S1S2Sk輸入輸入 輸出輸出流水線的基本結(jié)構(gòu)流水線的基本結(jié)構(gòu).時鐘時鐘.12345.n-1 n.12345.n-1 n.12345.n-1 n.12345.n-1 n1234t t0 0 t t0 0 t t0 0 t t0 0T

13、 T0=m 0=m t t0 0n n t t0 0T T(m-1) (m-1) t t0 0(n-1) (n-1) t t0 0填入填入 正常正常 排空排空 流水時空圖流水時空圖空間空間時間時間2、流水線特點、流水線特點: 1)流水一定重疊,比重疊更苛刻。)流水一定重疊,比重疊更苛刻。 2)一條流水線通常有多個流水段組成。)一條流水線通常有多個流水段組成。 3)每段有專用功能部件,各部件順序連接,不斷流。)每段有專用功能部件,各部件順序連接,不斷流。 4)流水線有建立時間、滿載時間、排空時間,)流水線有建立時間、滿載時間、排空時間, 5)各段時間盡量短、一致;不一致時最慢子過程為瓶頸。)各段

14、時間盡量短、一致;不一致時最慢子過程為瓶頸。 6)給出指標(biāo)如最大吞吐率,為滿負(fù)載最佳指標(biāo)。)給出指標(biāo)如最大吞吐率,為滿負(fù)載最佳指標(biāo)。建立時間:建立時間:在流水線開始時有一段流水線填入時間,使得流在流水線開始時有一段流水線填入時間,使得流水線填滿。水線填滿。正常流動時間:正常流動時間:流水線正常工作,各功能段源源不斷滿載工流水線正常工作,各功能段源源不斷滿載工作。作。排空時間:排空時間:在流水線第一條指令結(jié)束時,其他指令還需要一在流水線第一條指令結(jié)束時,其他指令還需要一段釋放時間。段釋放時間。分級分級:(處理的級別分類):(處理的級別分類)部件級流水:構(gòu)成部件內(nèi)的各個子件之間的流水,如運算器內(nèi)的

15、“浮點加”流 處理機級流水:構(gòu)成處理機的各部件間的流水,如取指,分析,執(zhí)行的流水。系統(tǒng)級流水:構(gòu)成計算機系統(tǒng)的多個處理機間的流水。2. 流水線的分類流水線的分類 其他分類:其他分類: 功能:單功能流水線(如功能:單功能流水線(如CRAY-1CRAY-1)、多功能流水線)、多功能流水線 (如(如TI-ASCTI-ASC) 工作方式:靜態(tài)流水線、動態(tài)流水線工作方式:靜態(tài)流水線、動態(tài)流水線 連接方式:線性、非線性連接方式:線性、非線性 處理數(shù)據(jù):標(biāo)量流水、向量流水處理數(shù)據(jù):標(biāo)量流水、向量流水1234出出入入非線性流水線非線性流水線圖 5.15 處理機間的流水處理 單功能流水線: 只能實現(xiàn)一種功能的流

16、水處理.多功能流水線: 同一流水線的各個段之間可以有多種不同的連接方式以實現(xiàn)多種不同的運算或功能.圖 5.16 ASC機運算器的流水線 按多功能流水線的各段是否允許同時用于多種不同功能連接流水,流水線分為靜態(tài)流水線和動態(tài)流水線靜態(tài)流水線: 在某個時間內(nèi)各段只能按一種功能連接流水,只有等流水線全部流空后才能切換成按另一種功能來連接. 就指令級流水而言,僅當(dāng)進(jìn)入的是一串相同運算的指令時,才能發(fā)揮出靜態(tài)流水線的效能.動態(tài)流水線 : 各功能段在同一時間內(nèi)可按不同的運算或功能連接. 圖 5.17 靜、 動態(tài)多功能流水線時-空圖舉例以機器所具有的數(shù)據(jù)表示分類標(biāo)量流水處理機: 沒有向量數(shù)據(jù)表示,只能用標(biāo)量循

17、環(huán)方式對向量,數(shù)組進(jìn)行處理.向量流水處理機: 機器具有向量數(shù)據(jù)表示,設(shè)置有向量指令和向量運算硬件,能對向量,數(shù)組中的各元素流水地處理.是向量數(shù)據(jù)表示和流水技術(shù)的結(jié)合. 從流水線中各功能段之間是否有反饋回路來分類線性流水非線性流水圖 5.18 非線性流水線舉例 5.2.2 流水線處理機的主要性能流水線處理機的主要性能 衡量流水線性能的主要指標(biāo) 吞吐率 加速比 效率1. 吞吐率吞吐率 吞吐率是流水線單位時間里能流出的任務(wù)數(shù)或結(jié)果數(shù)。 在圖5.14的流水線例子中,各個子過程經(jīng)過的時間都是t2,滿負(fù)荷后,流水線每隔t2解釋完一條指令,其最大吞吐率TPmax為1/t2。實際上,各個子過程進(jìn)行的工作不相同

18、,所經(jīng)過的時間也就不一定相同,所以前述在子過程間設(shè)置了接口鎖存器, 讓各鎖存器都受同一時鐘脈沖同步。時鐘脈沖周期直接影響流水線的最大吞吐率,總希望它越小越好。如果各個子過程所需的時間分別為t1、t2、t3、t4,時鐘周期應(yīng)當(dāng)為maxt1, t2, t3, t4,即流水線的最大吞吐率 ,max14321maxttttTP 它受限于流水線中最慢子過程所需要的時間。稱流水線中經(jīng)過時間最長的子過程為瓶頸子過程。 圖 5.19 最大吞吐率取決于瓶頸段的時間 圖 5.20 瓶頸子過程再細(xì)分 圖 5.21 瓶頸子過程并聯(lián) 設(shè)一m段流水線的各段經(jīng)過時間均為t0,則第1條指令從流入到流出需要T0=mt0的流水建

19、立時間,之后每隔t0就可以流出一條指令,其時空圖如圖5.22所示(這里設(shè)m=4)。這樣,完成n個任務(wù)的解釋共需時間T=mt0+(n-1)t0。在這段時間里, 流水線的實際吞吐率 nmTPnmttntmnTP11)11 (1) 1(max000圖 5.22 從時空圖分析實際的吞吐率 不僅實際的吞吐率總是小于最大的吞吐率,而且只有當(dāng)nm時,才能使實際的吞吐率接近于理想的最大吞吐率。 加速比(Speedup Ratio, Sp):表示流水線方式相對非流水線順序串行方式速度提高的比值.非流水線順序串行方式工作,連續(xù)完成n個任務(wù)需要nmt0的時間 . 流水線方式工作的加速比 nmmtntmtmnSp11

20、) 1(000 如果線性流水線各段經(jīng)過的時間ti不等,其中瓶頸段的時間為tj,則完成n個任務(wù)所能達(dá)到的實際吞吐率 jmiimiipjmiitnttnStntnTP) 1() 1(111其加速比 2. 效率效率 流水線的效率是指流水線中的設(shè)備實際使用時間占整個運行時間之比,也稱流水線設(shè)備的時間利用率時間利用率。由于流水線存在有建立時間和排空時間(最后一個任務(wù)流入到流出的時間),在連續(xù)完成n個任務(wù)的時間里,各段并不總是滿負(fù)荷工作的。 如果是線性流水線,且各段經(jīng)過時間相同,如圖5.22那樣, 則在T時間里,流水線各段的效率都相同,均為0,即 TmtnmmmmnmnTtnmm002100211整個流水

21、線的效率 式中,分母mT是時空圖中m個段和流水總時間T所圍成的總面積,分子mnt0則是時空圖中n個任務(wù)實際占用的總面積。因此,從時空圖上看,效率實際上就是n個任務(wù)占用的時空區(qū)面積和m個段總的時空區(qū)面積之比。顯然,與吞吐率類似,只有當(dāng)nm時,才趨近于1。 同時還可看出,對于線性流水且每段經(jīng)過時間相等時, 流水線的效率是正比于吞吐率的, 即 00) 1(tTPmnnTtn 如果流水線各段經(jīng)過的時間不等,各段的效率就會不等,但是,參照圖5.22,不難得出整個流水線的效率 jmiimiitntmtnmn) 1(11空區(qū)個段總的時空白個任務(wù)實際占用的時jmiimiimiiitntatan) 1(111其

22、中,分母為m個段的總的加權(quán)時空區(qū),分子為n個任務(wù)總的加權(quán)時空區(qū)。當(dāng) 時, 有 miia11mijimiiitnttan11) 1( 對于復(fù)雜的非線性流水線,實際的吞吐率TP和效率需要通過畫出實際工作時的時空圖,才能分別用下列兩個式子求得: 空區(qū)個段的總的加權(quán)時空區(qū)個任務(wù)的總的加權(quán)時個任務(wù)全部流出的時間從開始流入到任務(wù)數(shù)mnnTP圖 5.23 流水線工作舉例 3. 流水線工作舉例流水線工作舉例 TP=7/(15t) t) 順序方式時間:順序方式時間:4 4* *3 3t+3t+3* *4 4t=24t=24t t 加速比:加速比: Sp=24t/15 t/15 t=1.6t=1.6 效率(用面積

23、比方法):效率(用面積比方法): =(3 3* *4 4 t+4t+4* *3 3 t t)/(5/(5* *15 15 t) t) =32% =32%3 實例分析實例分析:性能分析(實測法性能分析(實測法, 分析法分析法, 時空圖法)時空圖法).例例1. 四段流水線四段流水線, t t1 1= =t t3 3= =t t4 4= =t, t, t t2 2=3=3t,4t,4個任務(wù)、個任務(wù)、1010個任務(wù)時個任務(wù)時T TP P,、S SP P 。=N N個任務(wù)實際占用的時個任務(wù)實際占用的時- -空區(qū)空區(qū)M M各段總的時各段總的時- -空區(qū)空區(qū)n=10,=6 6* *1010t t4 4* *

24、6 6t+9t+9* *3 3* *4 4t t=6024+108= 115TP=106*t t+3*9* t t =1033*t t 45%45% (1)分析法)分析法: 各段時間不等各段時間不等=Sp=n *t ti imi=1t ti i+ +(N-1)(N-1)* *t tj jmI=110*6 t t(6+3*9) t t=202011=1.8TP=TP=nt ti i+(n-1)+(n-1)tjtjmi=1時間時間12343111223234123123123444443 3t t3 3t t空間空間(2) 時空圖法時空圖法:Tp=4/(6+3*3) t)=4/(15t)=4/(1

25、5t)=0.267(1/t)=0.267(1/t)t) =24 t t /(4/(4* *1515t)=2/5=40%t)=2/5=40%Sp=4*6 t t /15/15t=8/5=1.6t=8/5=1.6n=4n=4時時; ;n=10n=10時時; ;同上同上. .例例2. 以浮點加法運算為例(四段流水線)各段時間相等,如何求以浮點加法運算為例(四段流水線)各段時間相等,如何求吞吐率、效率。吞吐率、效率。 求求Z=A+B+C+D+E+F+G+H,TP、Sp 注意有相關(guān)注意有相關(guān)時間時間空間空間Z=A+B+C+D+E+F+G+H1234567TP=7/15t t, =7*4/(15*4)=7

26、/15解:解:Sp=4*7/15=28/15=1.871111222233334444555566667777例例3. ASC計算機功能算術(shù)運算流水線各段時間相等,計算機功能算術(shù)運算流水線各段時間相等,6次浮點加、次浮點加、 5次定點乘的吞吐率次定點乘的吞吐率,效率效率,加速比加速比 M=8,N=11.分析:分析:T T加加=6+(6-1)=6+(6-1)* *1=11 (1=11 (t) Tt) T乘乘=4+(5-1)=4+(5-1)* *1=8 (1=8 (t)t)則則 TP= 11/(11+8)TP= 11/(11+8)t =11/19 t =11/19 t t Sp= 56 Sp= 5

27、6 t /19 t /19 t =2.94t =2.94 = (6 = (6* *6+56+5* *4) 4) t /(19t /(19* *8 8t)=6/52=7/19t)=6/52=7/1912345612345612345612345612345867123456123456時間時間浮加浮加定點乘定點乘一一二二三三 四四 五五一一二二三三 四四 五五一一二二三三 四四五五一一二二三三 四四五五5.2.3 流水機器的相關(guān)處理和控制機構(gòu)流水機器的相關(guān)處理和控制機構(gòu) 要使流水線充分發(fā)揮效率,不發(fā)生或少發(fā)生斷流,需要硬件和軟件兩方面的共同努力.軟件方面: 編譯器生成的目標(biāo)程序要能夠適合流水線結(jié)

28、構(gòu),要盡量把有數(shù)據(jù)相關(guān)和控制相關(guān)的指令安排得相隔遠(yuǎn)一些,把相同的操作盡量安排在一起.硬件方面: 要解決存儲系統(tǒng)的頻帶平衡問題,能夠為流水線提供足夠的指令和數(shù)據(jù).另外,要處理好流水線的局部相關(guān)和全局相關(guān).流水機器的全局性相關(guān)指的是轉(zhuǎn)移指令與其后指令之間的相關(guān)聯(lián),不僅不能同時解釋,還會使指令緩沖器所預(yù)取的指令要全部作廢,重新花較長的時間再去訪存取出指令. 流水機器的局部性相關(guān):指令相關(guān),主存數(shù)相關(guān),通用寄存器組的數(shù)相關(guān),基(變)址相關(guān)等對流水性能下降的影響要嚴(yán)重得多.(只影響到相關(guān)的指令在某些功能段上停等一段時間,不會影響到流水線需要等待,去重新訪存指令任務(wù)在流水線中流動順序的安排和控制方式:同步

29、流動方式(順序流動方式):讓任務(wù)(指令)流出流水線的順序保持與流入的順序一致.異步流動方式(亂序):讓流出流水線的任務(wù)順序可以和流入流水線的順序不同.1. 局部性數(shù)據(jù)相關(guān)局部性數(shù)據(jù)相關(guān)例:有例:有i 和和j兩條指令,兩條指令,i指令在前,指令在前,j指令在后,則三種不同類指令在后,則三種不同類型的數(shù)據(jù)相關(guān)的含義為:型的數(shù)據(jù)相關(guān)的含義為:RAW讀寫讀寫(先寫后讀先寫后讀) - 指令指令 j 試圖在指令試圖在指令 i 寫入寄存器前就寫入寄存器前就讀出該寄存器內(nèi)容,這樣,指令讀出該寄存器內(nèi)容,這樣,指令j就會錯誤地讀出該寄存器舊就會錯誤地讀出該寄存器舊的內(nèi)容。的內(nèi)容。 (改用相關(guān))(改用相關(guān)) i:

30、 R1+R2-R3 j: R3*R4-R5WAR寫讀寫讀(先讀后寫先讀后寫) - 指令指令 j 試圖在指令試圖在指令 i讀出寄存器之前讀出寄存器之前就寫入該寄存器,這樣,指令就寫入該寄存器,這樣,指令i就錯誤地讀得該寄存器新的內(nèi)就錯誤地讀得該寄存器新的內(nèi)容。容。 (用改相關(guān))(用改相關(guān))i: R3*R4-R5 j: R1+R2-R3WAW寫寫寫寫(先寫后寫先寫后寫) - 指令指令j試圖在指令試圖在指令i寫寄存器之前就寫寫寄存器之前就寫入該寄存器,這樣,兩次寫的先后次序被顛倒,就會錯誤地入該寄存器,這樣,兩次寫的先后次序被顛倒,就會錯誤地使由指令使由指令i寫入的值成為該寄存器內(nèi)容。寫入的值成為該

31、寄存器內(nèi)容。 (改改相關(guān))(改改相關(guān)) i: R1*R2-R3 j: R4+R5-R3順序順序流動流動不按順不按順序流動序流動不按順不按順序流動序流動解決辦法主要用軟件和硬件技術(shù):解決辦法主要用軟件和硬件技術(shù):v時間推后法時間推后法v旁路技術(shù)或相關(guān)專用通路技術(shù)旁路技術(shù)或相關(guān)專用通路技術(shù)圖 5.24 順序流動和異步流動 對對IBM360/91機是通過給機是通過給FLR設(shè)置一個設(shè)置一個“忙忙”標(biāo)志來判別指令標(biāo)志來判別指令間所用的數(shù)據(jù)是否發(fā)生相關(guān)間所用的數(shù)據(jù)是否發(fā)生相關(guān),另外還有一個標(biāo)志(即站號)表示另外還有一個標(biāo)志(即站號)表示數(shù)據(jù)由何處來,用站號位控制相關(guān)通路連接,采用公共數(shù)據(jù)總數(shù)據(jù)由何處來,用

32、站號位控制相關(guān)通路連接,采用公共數(shù)據(jù)總線線CDB來實現(xiàn)內(nèi)部數(shù)據(jù)專用通路的連接。來實現(xiàn)內(nèi)部數(shù)據(jù)專用通路的連接。IBM360/91的浮點運算器部分包括了以下主要部件:的浮點運算器部分包括了以下主要部件: (1) 運算部件:運算部件:一個加法部件和一個乘除部件。一個加法部件和一個乘除部件。(2)保存站:)保存站:加法部件中有加法部件中有A1A3三個保存站,乘除部件有三個保存站,乘除部件有M1和和M2兩個保兩個保存站,用來保存當(dāng)前參加運算的數(shù)據(jù)。存站,用來保存當(dāng)前參加運算的數(shù)據(jù)。(3) 指令操作緩沖棧:指令操作緩沖棧:存放經(jīng)分析后由指令部件送來的指令,譯碼后,存放經(jīng)分析后由指令部件送來的指令,譯碼后,

33、 產(chǎn)生相應(yīng)的控制信號送到各個部件。產(chǎn)生相應(yīng)的控制信號送到各個部件。(4)浮點操作數(shù)寄存器()浮點操作數(shù)寄存器(FLB):):存放由主存預(yù)取來的操作數(shù)。存放由主存預(yù)取來的操作數(shù)。(5)浮點寄存器()浮點寄存器(FLR):):存放操作數(shù)的寄存器。存放操作數(shù)的寄存器。(6) 存儲數(shù)據(jù)緩沖站(存儲數(shù)據(jù)緩沖站(SDB):):存放將寫入存儲器的結(jié)果數(shù)據(jù),也有站號。存放將寫入存儲器的結(jié)果數(shù)據(jù),也有站號。(7) 公共數(shù)據(jù)總線(公共數(shù)據(jù)總線(CDB):):以上各部件間的連接總線。以上各部件間的連接總線。圖5.25 IBM 360/91的浮點執(zhí)行部件結(jié)構(gòu)框圖Tomasulo算法 浮點操作站FLOS(Floatin

34、g Point Operand Stack)緩沖的浮點操作命令的格式為 操作 源1 (目的), 源2 操作可以是浮點加、減、乘、除。源1指明存放源操作數(shù)的浮點寄存器FLR的號,并兼作存放中間結(jié)果的目的寄存器的號。 源2指明存放經(jīng)存貯器總線送來的浮點操作數(shù)的緩沖器FLB的號。 它們分別經(jīng)FLR總線和FLB總線將數(shù)據(jù)送入浮點加法流水線或浮點乘/除法流水線輸入端的保存站。浮點加法器流水線的輸入端設(shè)有3個保存站A1至A3,浮點乘/除法器流水線的輸入端設(shè)有兩個保存站M1和M2,分別用規(guī)定的站號標(biāo)記。保存站由控制部分控制,只要任意一個保存站的兩個源操作數(shù)都到齊,且流水段空閑時就可以進(jìn)入流水線向前流動,因此

35、是采用異步流動方式工作的。 由于操作命令中源1兼作目的,因此同時進(jìn)入兩條流水線的操作命令之間發(fā)生操作數(shù)相關(guān)的概率是較高的。設(shè)k+i表示k之后同時在兩條流水線流動的第i條指令,則只要k+i 的源1與k的目的一樣,就會發(fā)生“先寫后讀”相關(guān),k+i的目的與k的目的一樣,就會發(fā)生“寫寫”相關(guān), k+i的目的與k的源1一樣,就會發(fā)生“先讀后寫”相關(guān)。也就是說,只要同時進(jìn)入流水線的各個操作命令中使用了同一個浮點寄存器FLR的號就會發(fā)生相關(guān)。 現(xiàn)在,以FLOS依次送出 ADD F2, FLB1; (F2)+(FLB1)F2 MD F2, FLB2; (F2)*(FLB2)F2兩條操作命令為例,來說明是怎樣判

36、出發(fā)生相關(guān)以及怎樣控制推后和相關(guān)直接通路的聯(lián)接的。很明顯,這兩條命令異步流動時,“先寫后讀”、“寫寫”、“先讀后寫”三種相關(guān)都會發(fā)生。 當(dāng)FLOS送出 ADD F2, FLB1 操作命令時,它控制由FLR取得(F2),由FLB取得(FLB1)送往加法器保存站,例如送往A1,同時立即將F2的“忙位”置“”, 以指明該寄存器的內(nèi)容已送往保存站等待運算,這樣F2的內(nèi)容再不能被其他操作命令作源操作數(shù)讀出用。由于F2這時已成為“目的”寄存器,準(zhǔn)備接收由加法器來的運算結(jié)果,因此將F2的“站號”字段置成是A1的站號“1010” ,以便控制把站號為1010的保存站A1在加法流水線流出的運算結(jié)果經(jīng)CDB總線送回

37、F2。一旦結(jié)果送回后,立即將F2的“忙位”和“站號”都置成“”,以釋放出F2為別的操作命令使用。 問題在于,當(dāng)F2的“忙位”為“”,而加法結(jié)果并未流出加法流水線時,F(xiàn)LOS又送出操作命令 MD F2, FLB2由譯碼控制去訪問F2取源1操作數(shù)時,由于其“忙位”為“”, 表明出現(xiàn)了F2相關(guān),此時就不能直接將(F2)送往乘法器保存站, 而改成為把原存在F2的“站號”字段中的站號A1(即1010, 指明F2應(yīng)有內(nèi)容的來源)送往M1的“源1站號”,并把F2內(nèi)的站號由A1(1010)改為M1(1000)以指明應(yīng)改為從M1接收運算結(jié)果。 特點:特點:(1)由于為加法器和乘法部件分別設(shè)置了)由于為加法器和乘

38、法部件分別設(shè)置了3個和個和2個保存站,個保存站,從而減小了資源使用沖突的機會。僅當(dāng)這些保存站讀都處于從而減小了資源使用沖突的機會。僅當(dāng)這些保存站讀都處于忙碌狀態(tài)時,才有可能發(fā)生資源使用沖突。忙碌狀態(tài)時,才有可能發(fā)生資源使用沖突。(2)調(diào)度算法使用保存站,通過對寄存器重新命名(改寫站)調(diào)度算法使用保存站,通過對寄存器重新命名(改寫站號)自然地消除了號)自然地消除了WAR和和WAW數(shù)據(jù)相關(guān)可能性。數(shù)據(jù)相關(guān)可能性。(3)通過對)通過對FLR寄存器忙位狀態(tài)的判別,來檢測是否存在寄存器忙位狀態(tài)的判別,來檢測是否存在RAW數(shù)據(jù)相關(guān)。數(shù)據(jù)相關(guān)。(4)借助)借助CDB公共數(shù)據(jù)總線作為專用相關(guān)通路,將有關(guān)數(shù)公共

39、數(shù)據(jù)總線作為專用相關(guān)通路,將有關(guān)數(shù)據(jù)直接送往所有需要它的功能部件,而不必先寫入寄存器,據(jù)直接送往所有需要它的功能部件,而不必先寫入寄存器,然后再從此寄存器讀出。然后再從此寄存器讀出。2. 全局性相關(guān)全局性相關(guān)(控制相關(guān)控制相關(guān))由條件轉(zhuǎn)移或程序中斷引起的相關(guān)由條件轉(zhuǎn)移或程序中斷引起的相關(guān)-全局相關(guān)全局相關(guān)關(guān)鍵問題關(guān)鍵問題: 1)確保流水線能夠正常工作確保流水線能夠正常工作 2)減少因斷流引起的吞吐率和效率的下降減少因斷流引起的吞吐率和效率的下降一般情況下要在轉(zhuǎn)移指令執(zhí)行到流水線的最后功能段時一般情況下要在轉(zhuǎn)移指令執(zhí)行到流水線的最后功能段時,轉(zhuǎn)移轉(zhuǎn)移條件才能建立條件才能建立.因此因此,在條件轉(zhuǎn)移

40、指令進(jìn)入流水線之后在條件轉(zhuǎn)移指令進(jìn)入流水線之后,到形成轉(zhuǎn)到形成轉(zhuǎn)移條件之前移條件之前,后續(xù)指令不能進(jìn)入流水線后續(xù)指令不能進(jìn)入流水線. 1) 猜測法 圖 5.26 用猜測法處理條件轉(zhuǎn)移 采用猜測法時,應(yīng)能保證猜錯時可恢復(fù)分支點處原先的現(xiàn)場.方法:只進(jìn)行指令譯碼和準(zhǔn)備好運算所需要的操作數(shù),在轉(zhuǎn)移條件沒有形成之前不執(zhí)行運算一直執(zhí)行到運算完成,但不送回結(jié)果.把可能被破壞的原始狀態(tài)都用后援寄存器保存起來.2) 加快和提前形成條件碼:有的指令的條件碼并不一定要等執(zhí)行有的指令的條件碼并不一定要等執(zhí)行完畢得到運算結(jié)果后才能形成;完畢得到運算結(jié)果后才能形成; 3) 采取延遲轉(zhuǎn)移: a.將轉(zhuǎn)移指令前的那條指令調(diào)度

41、到延遲槽中;將轉(zhuǎn)移指令前的那條指令調(diào)度到延遲槽中; b.將轉(zhuǎn)移目標(biāo)處的那條指令調(diào)度到延遲槽中;將轉(zhuǎn)移目標(biāo)處的那條指令調(diào)度到延遲槽中; c.將轉(zhuǎn)移不發(fā)生時該執(zhí)行的那條指令調(diào)度到延遲槽中。將轉(zhuǎn)移不發(fā)生時該執(zhí)行的那條指令調(diào)度到延遲槽中。4)設(shè)置特殊循環(huán)指令,加快短循環(huán)處理: 3. 流水機器的中斷處理流水機器的中斷處理 中斷會引起流水線斷流。然而,其出現(xiàn)概率比條件轉(zhuǎn)移的概率要低得多,且又是隨機發(fā)生的。所以,流水機器處理中斷主要是如何處理好斷點現(xiàn)場的保存和恢復(fù),而不是如何縮短流水線的斷流時間。 不精確斷點法不精確斷點法(同外部設(shè)備中斷處理一樣同外部設(shè)備中斷處理一樣):不論第:不論第i條指令在流條指令在流

42、水線的哪一段發(fā)出中斷申請,都不再允許那時還未進(jìn)入流水線水線的哪一段發(fā)出中斷申請,都不再允許那時還未進(jìn)入流水線的后續(xù)指令再進(jìn)入的后續(xù)指令再進(jìn)入 精確斷點法:精確斷點法:不論第不論第i條指令是在流水線中哪一段發(fā)的中斷申請,條指令是在流水線中哪一段發(fā)的中斷申請,給中斷處理程序的現(xiàn)場全都是對應(yīng)第給中斷處理程序的現(xiàn)場全都是對應(yīng)第i條的,在第條的,在第i條之后進(jìn)入條之后進(jìn)入流水線的指令的原有現(xiàn)場都能恢復(fù)流水線的指令的原有現(xiàn)場都能恢復(fù) (增加設(shè)備,加許多緩沖器,增加設(shè)備,加許多緩沖器,各功能段狀態(tài)保留)各功能段狀態(tài)保留)4. 流水線調(diào)度流水線調(diào)度 非線性流水線:非線性流水線:由于段間有前饋和反饋通路任務(wù),執(zhí)

43、行過程中由于段間有前饋和反饋通路任務(wù),執(zhí)行過程中可能會多次通過同一流水段,發(fā)生幾個任務(wù)同時爭用同一流可能會多次通過同一流水段,發(fā)生幾個任務(wù)同時爭用同一流水段的現(xiàn)象,這就是水段的現(xiàn)象,這就是功能段的使用沖突功能段的使用沖突。流水線調(diào)度常借助于二維預(yù)約表和狀態(tài)轉(zhuǎn)換圖來進(jìn)行分析流水線調(diào)度常借助于二維預(yù)約表和狀態(tài)轉(zhuǎn)換圖來進(jìn)行分析根據(jù)預(yù)約表可較容易地推算出一個任務(wù)執(zhí)行時,各段所需的根據(jù)預(yù)約表可較容易地推算出一個任務(wù)執(zhí)行時,各段所需的間隔周期拍數(shù)。間隔周期拍數(shù)。解決方法:解決方法:間隔恰當(dāng)?shù)呐臄?shù)后再向流水線送入下一個任務(wù)。間隔恰當(dāng)?shù)呐臄?shù)后再向流水線送入下一個任務(wù)。這就需要對流水線作適當(dāng)?shù)恼{(diào)度。這就需要對流

44、水線作適當(dāng)?shù)恼{(diào)度。S/t 1 2 3 4 5 6 7 8 91 X X 2 X X X 3 X 4 X X 5 X X 二維預(yù)約表二維預(yù)約表 圖中每一行代表圖中每一行代表P的一個段,每一列表示相應(yīng)的時鐘周期。的一個段,每一列表示相應(yīng)的時鐘周期。若某個任務(wù)在周期若某個任務(wù)在周期ti需要使用需要使用Sj段進(jìn)行處理,則在行段進(jìn)行處理,則在行Sj和列和列ti的相交處以的相交處以“ ”表示。表示。條件:條件:非線性、單功能流水線非線性、單功能流水線P,由,由K段組成,每個任務(wù)流過流段組成,每個任務(wù)流過流水線需水線需N個時鐘周期(個時鐘周期(t1,t2,tn),段為縱坐標(biāo),時間為橫坐標(biāo)),段為縱坐標(biāo),時間

45、為橫坐標(biāo) 禁止表禁止表F=1,5,6,8 1011000110110111101111011011111110111011一個一個n位的位向量位的位向量C=(Cn、Cn-1、. 、C2、 C1)稱為沖突向量。稱為沖突向量。其中第其中第i位狀態(tài)表示于當(dāng)時相隔位狀態(tài)表示于當(dāng)時相隔 i拍時間時,是否允許輸入新拍時間時,是否允許輸入新任務(wù)。如允許輸入,則任務(wù)。如允許輸入,則Ci=0, 否則否則Ci=1。非線性流水線預(yù)約表相應(yīng)狀態(tài)圖非線性流水線預(yù)約表相應(yīng)狀態(tài)圖 42=7=734=7=7=7原始沖突向量原始沖突向量 23過程過程:1. 按給出的預(yù)約表寫出允許表和禁止表按給出的預(yù)約表寫出允許表和禁止表 F=

46、1,5,6,8;2. 寫出寫出n位初始沖突向量(位初始沖突向量(10110001););3. 按禁止表約束條件列出新的沖突向量,直到不再生成新的沖突按禁止表約束條件列出新的沖突向量,直到不再生成新的沖突向量為止(當(dāng)前沖突向量和初始沖突向量按位向量為止(當(dāng)前沖突向量和初始沖突向量按位“或或”););4. 畫出用沖突向量表示的流水線狀態(tài)轉(zhuǎn)移圖(兩個沖突向量之間畫出用沖突向量表示的流水線狀態(tài)轉(zhuǎn)移圖(兩個沖突向量之間用有向弧連接,并用數(shù)字表示引入后繼任務(wù)用的間隔節(jié)拍,寫出用有向弧連接,并用數(shù)字表示引入后繼任務(wù)用的間隔節(jié)拍,寫出各種可能的狀態(tài)轉(zhuǎn)換);各種可能的狀態(tài)轉(zhuǎn)換);5. 列出各種調(diào)度方法平均間隔拍

47、數(shù);列出各種調(diào)度方法平均間隔拍數(shù);6. 求出最佳等間隔和非等間隔調(diào)度拍數(shù);求出最佳等間隔和非等間隔調(diào)度拍數(shù);本例子中非等間隔調(diào)度為本例子中非等間隔調(diào)度為3拍,拍,4拍拍.平均間隔為平均間隔為3.5拍,而拍,而等間隔調(diào)度為等間隔調(diào)度為7拍。拍。圖圖 5.27 流水線預(yù)約表及狀態(tài)圖舉例流水線預(yù)約表及狀態(tài)圖舉例 表表 5.1 各種調(diào)度方案的平均間隔拍數(shù)的例子各種調(diào)度方案的平均間隔拍數(shù)的例子 調(diào)度方案:間隔拍數(shù)周期性重復(fù)(只有重復(fù)才能循環(huán))最佳策略:平均間隔拍數(shù)最少(吞吐率,效率高)吞吐率TP=任務(wù)數(shù)M/總時間T 調(diào)度方案產(chǎn)生辦法:1)從初始狀態(tài)出發(fā),沿箭頭方向,每走一個閉環(huán),即為一個方案2)若中間遇

48、到小閉環(huán),每個小閉環(huán)也可作為一個方案3)遍歷初始狀態(tài)中的每一個Ci=0的回路。 狀態(tài)轉(zhuǎn)移圖的生成方法: 1)從初始沖突向量出發(fā),對每一個ci=0產(chǎn)生一個新的沖突向量 2)箭頭由原沖突向量指向新的沖突向量,線弧上寫上i,表示間隔i拍送入流水線產(chǎn)生沖突向量。 3)對新的沖突向量中的ci=0重復(fù)進(jìn)行1)2) 4)圖中全部ci=0的位全有目標(biāo)沖突向量。圖 5.28 多功能流水線預(yù)約表及狀態(tài)圖舉例 使用交叉沖突向量(Crosscollision Vector)來反映有A、B兩種功能的動態(tài)流水線各個后繼任務(wù)流入流水線所禁止使用的間隔拍數(shù)。 這樣, 對于本例就應(yīng)有4個交叉沖突向量,即 VAB=(1011),

49、VBA=(1010),VAA=(0110), VBB=(0110)。其中,VAA和VBB分別表示同按A功能和B功能流水時,后繼任務(wù)流入流水線的沖突向量;而VAB表示先前按B功能流水流入的任務(wù)與后繼按A功能流水流入的任務(wù)之間的沖突向量,VBA則表示先前按A功能流水流入的任務(wù)與后繼按B功能流水流入的任務(wù)之間的沖突向量。 就一般情況而言,一個有P個功能的流水線將有P2個交叉沖突向量,它們可以分別歸類寫成P個沖突矩陣Mp,其中p分別為1至P。沖突矩陣Mp表示按p功能流水線進(jìn)入一個任務(wù)后與按各種功能流水線流入后繼任務(wù)所產(chǎn)生的全部沖突向量的集合。 對本例來說有兩個初始沖突矩陣,分別為 )(0110)(10

50、11,)(1010)(0110BBABMBBAAAMA 例如,按A功能剛流入一個任務(wù)后,根據(jù)VAA的(0110),知道可隔1拍或4拍流入一個A功能的新任務(wù)。將MA初始沖突矩陣各行同時右移1位,再與A功能的初始沖突矩陣MA對應(yīng)行按位“或”,形成新的沖突矩陣 。根據(jù)此時VAA的(0111), 知道只有隔4拍流入一個A功能的新任務(wù)才能不發(fā)生沖突,從而形成在此基礎(chǔ)上的新的沖突矩陣 。 1111011110100110 再如,根據(jù)初始沖突矩陣中的VBA為(1010),知道可在第一拍或第三拍進(jìn)行B功能的新任務(wù)的送入而不發(fā)生沖突。于是將MA初始沖突矩陣均右移1位或3位,再與MA的初始沖突矩陣對應(yīng)行按位“或”

51、,形成新的沖突矩陣,它們恰好都為 。 據(jù)此可知,或者是隔3拍流入A功能的新任務(wù), 或者是隔4拍流入B功能的新任務(wù),又將分別產(chǎn)生不同的新的沖突矩陣。 011110115.3 向量的流水處理與向量流水處理機向量的流水處理與向量流水處理機 5.3.1 向量的流水處理向量的流水處理 向量中的各個元素在運算時很少相關(guān),而且都是進(jìn)行相同的運算或處理,相比標(biāo)量運算,應(yīng)當(dāng)更能發(fā)揮出流水線的效能.選擇對向量,數(shù)組如何處理,才能最充分地發(fā)揮出流水線的效能,是向量流水處理要解決的問題. 是與所要解的具體題目及計算機的結(jié)構(gòu)密切相關(guān)的. 例如:向量計算:例如:向量計算:A*(B+C) 的的 循環(huán)程序循環(huán)程序用用C語言為

52、語言為 for( i=1;i1)條指令條指令,稱處理機并行度為稱處理機并行度為m.5.4 指令級高度并行的超級處理機指令級高度并行的超級處理機 5.4.1 超標(biāo)量處理機超標(biāo)量處理機 圖 5.33 常規(guī)(度m=1)的標(biāo)量流水機時-空圖 圖 5.34 度m=3的超標(biāo)量處理機時-空圖 每個時鐘周期內(nèi)能啟動每個時鐘周期內(nèi)能啟動n條指令條指令主要特點:主要特點:(1)配置有多個性能不同的處理部件,采用多條流水線)配置有多個性能不同的處理部件,采用多條流水線并行處理。并行處理。(2)能同時對若干條指令進(jìn)行譯碼,將可并行的指令送)能同時對若干條指令進(jìn)行譯碼,將可并行的指令送往不同的執(zhí)行部件,從而達(dá)到每個周期

53、啟動多條指令。往不同的執(zhí)行部件,從而達(dá)到每個周期啟動多條指令。(3)在程序運行期間由硬件(通常是狀態(tài)記錄部件和調(diào))在程序運行期間由硬件(通常是狀態(tài)記錄部件和調(diào)度部件)完成指令調(diào)度。度部件)完成指令調(diào)度。 典型的超標(biāo)量流水線處理機有IBM RS/6000、DEC 21064、Intel i960CA、TandemCyclone等。1986年的Intel i960CA時鐘頻率為25 MHz,度m=3, 有7個功能部件可以并發(fā)使用。1990年的IBM RS/6000使用1 m CMOS工藝,時鐘頻率為30 MHz。處理機中有轉(zhuǎn)移處理、定點、浮點 3 種功能部件,它們可并行工作。 轉(zhuǎn)移處理部件每t可執(zhí)

54、行多達(dá)5條指令,度m=4,性能可達(dá)34 MIPS和11 MFLOPS。非常適合于在數(shù)值計算密集的科學(xué)工程上應(yīng)用及在多用戶商用環(huán)境下工作。許多基于RS/6000的工作站和服務(wù)器都是IBM生產(chǎn)的。如POWER Station 530。1992年的DEC 21064使用0.75 m CMOS, 時鐘頻率為150 MHz,度m=2,10段流水線, 最高性能可達(dá)300 MIPS和150 MFLOPS。Tandem公司的Cyclone(旋風(fēng))計算機由4到16臺超級標(biāo)量流水處理機組成。 每個處理機的寄存器組有9個端口(其中5個為讀,4個為寫),有兩個算術(shù)邏輯部件, 度m=2。由于程序中可開發(fā)的指令并行性有限,所以超標(biāo)量流水線處理機的度m比較低。 5.4.2 超長指令字處理機超長指令字處理機 以一條長指令實現(xiàn)多個操作的并行執(zhí)行,減少存儲器訪問以一條

溫馨提示

  • 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

提交評論