一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

DLX處理器流水線(xiàn)性能優(yōu)化(一)

時(shí)間:2024-08-17 04:05:39 計算機畢業(yè)論文 我要投稿
  • 相關(guān)推薦

DLX處理器流水線(xiàn)性能優(yōu)化(一)

摘要 :DLX虛擬微處理機提供了一個(gè)基于PC機的研究平臺,研究者可以在PC機上模擬新的處理機技術(shù)。本文先介紹DLX微處理機針對流水線(xiàn)處理的結構調整和流水線(xiàn)的一些問(wèn)題,并且結合一個(gè)實(shí)例,研究了流水線(xiàn)性能的優(yōu)化。

關(guān)鍵詞  DLX微處理機;流水線(xiàn);計算機系統結構

 1  導言
 DLX 是一種虛擬的32位微處理機系統結構,Patterson 和  Anderson在其“Computer Architecture——A Quantitative  Approach ”一書(shū)中首次提出的。它不僅體現了當今多種機器系統結構的共同特點(diǎn) ,還將體現未來(lái)一些機器的指令集結構的特點(diǎn)。這些機器的指令集結構設計思想都和DLX指令集結構的設計思想十分相似,它們都強調:具有一個(gè)簡(jiǎn)單的Load/Store指令集;注重指令流水效率;簡(jiǎn)化指令的譯碼;高效支持編譯器。WinDLX是一個(gè)基于 Windows的DLX模擬器,用于模擬DLX流水線(xiàn)的工作過(guò)程?梢造`活、方便地設置參數、控制執行、統計數據等。WinDLX提供了直觀(guān)的窗口顯示。本文先介紹DLX微處理機針對流水線(xiàn)處理的結構調整,以及流水線(xiàn)所面臨的一些問(wèn)題,然后結合實(shí)例對DLX流水線(xiàn)性能的優(yōu)化作簡(jiǎn)單的分析,Win DLX模擬器能夠演示DLX流水線(xiàn)是如何工作的。
 
 2  基于流水線(xiàn)操作原理
 2.1  DLX處理機流水線(xiàn)概念
   DLX的數據通路的實(shí)現,它允許在4或5個(gè)時(shí)鐘周期內完成一條指令。雖然這些功能部件出現在它們被讀出的周期。但是PC在存儲器訪(fǎng)問(wèn)周期(同樣在取值周期)被寫(xiě)入,而存儲器在回寫(xiě)周期被寫(xiě)入。在這兩種情況下,在后面節拍的寫(xiě)入可以由回送數值給PC或者寄存器的開(kāi)關(guān)輸出(在存儲器訪(fǎng)問(wèn)和回寫(xiě)周期)來(lái)指明。這些回流的信號太大地增加了流水線(xiàn)地復雜度。圖一給出了一條指令如何沿著(zhù)數據通路進(jìn)行流動(dòng)。
 在每一個(gè)時(shí)鐘周期啟動(dòng)一條新的指令便可以使圖一所示的數據通路流起水來(lái),前面的每一個(gè)時(shí)鐘周期便成了一個(gè)流水節拍:流水線(xiàn)的一個(gè)周期。這樣便有圖二所示的指令執行模式,它使用流水線(xiàn)結構的典型畫(huà)法。其中,每一條指令經(jīng)過(guò)五個(gè)時(shí)鐘周期執行完成,在每個(gè)時(shí)鐘周期內,硬件將初始化一條新的指令并執行五個(gè)不同指令的某個(gè)部分。在一個(gè)簡(jiǎn)單的流水線(xiàn)中,在每一個(gè)時(shí)鐘周期都有一條新的指令取進(jìn)來(lái)并開(kāi)始長(cháng)達五個(gè)時(shí)鐘周期的執行。 若在每一個(gè)時(shí)鐘周期都啟動(dòng)一條新的指令,那
 
                       圖1  DLX流水線(xiàn)數據通路的實(shí)現

么性能將是不進(jìn)行流水線(xiàn)的及其的五倍。流水線(xiàn)每個(gè)節拍的名稱(chēng) : IF=取指令,ID=分析指令,EX=執行指令,MEM=存儲器訪(fǎng)問(wèn),WB=寫(xiě)回。

指令號 1 2 3 4 5 6 7 8 9 
指令i IF ID EX MEM WB     
指令i+1  IF ID EX MEM WB    
指令i+2   IF ID EX MEM WB   
指令i+3    IF ID EX MEM WB  
指令i+4     IF ID EX MEM WB 
 圖2  簡(jiǎn)單的DLX流水線(xiàn)
  
 2.2  DLX流水引出的問(wèn)題
 (1) 確定機器在每一個(gè)時(shí)鐘周期都進(jìn)行什么樣的動(dòng)作,并保證在同一個(gè)時(shí)鐘周期沒(méi)有兩條指令使用相同的數據通路資源。比如一個(gè)ALU不能同時(shí)用于計算有效地址和劍法運算。因此,必須得保證流水線(xiàn)中指令得重疊不會(huì )導致這樣的沖突。在簡(jiǎn)化的DLX數據通路,主要的功能部件都在不同的時(shí)鐘周期使用,所以多條指令的重疊執行相對來(lái)說(shuō)幾乎所沒(méi)有引入沖突。
   (2) 圖一的基本數據通路已經(jīng)使用了分開(kāi)的指令和數據存儲器,其典型的實(shí)現方式是使用分開(kāi)的指令和數據Cache。使用獨立的Cache避免了對單一存儲器進(jìn)行取指和訪(fǎng)問(wèn)數據操作之間的沖突。如果流水線(xiàn)機的時(shí)鐘周期和未流水的機器相同時(shí),存儲系統的帶寬需要時(shí)原先的五倍,這便是取得高性能的代價(jià)。
   (3) 簡(jiǎn)單地DLX數據通路中沒(méi)有涉及到PC,為了在每個(gè)時(shí)鐘周期都啟動(dòng)一條新的指令,需要對PC進(jìn)行自加運算并存回,這項工作必須在IF節拍完成,為下一條指令做準備。如果考慮要分支的影響,問(wèn)題就這樣產(chǎn)生了,因為它也要改變PC,但是在MEM節拍進(jìn)行。在我們的多周期的非流水線(xiàn)結構中,這不成為一個(gè)問(wèn)題,因為只在MEM節拍寫(xiě)一次PC。在這里我們將只在IF節拍對PC進(jìn)行寫(xiě)操作,寫(xiě)入自增后的PC或者前面分支的目標地址。
 
DLX流水線(xiàn)的實(shí)例性能分析
 為了具體了解DLX虛擬處理機如何解決流水線(xiàn)的問(wèn)題,以一個(gè)流水線(xiàn)的實(shí)例進(jìn)行測試。優(yōu)化后進(jìn)行性能分析。這里使用 WinDLX 匯編器中的匯編文件 fact.s ,這個(gè)程序計算數(通過(guò)鍵盤(pán)輸入)的階乘。這需要用到文件input.s,它用于接收從鍵盤(pán)輸入的數。加載了這兩個(gè)文件后可以看見(jiàn)一條DLX指令的執行需要5個(gè)周期:IF(取指周期)、ID(分析指令/寄存器周期)、EX(執行周期)、MEM(存儲器訪(fǎng)問(wèn)/分支完成周期)、WB(回寫(xiě)周期)。其中執行段分為4個(gè)單元,分別是intEX(整數操作)、addEX(浮點(diǎn)加減)、fmulEX(浮點(diǎn)乘法)、fdivEX(浮點(diǎn)除法),如圖三。
 
                  圖3   DLX的指令執行流程
 
 指令流調整技術(shù)和數據重定向技術(shù),這兩種技術(shù)各有各的有優(yōu)缺點(diǎn),如何使CPU的性能達到最好,同時(shí)盡可能減少硬件和軟件的投入。實(shí)驗表明,同時(shí)應用指令流調整技術(shù)和數據重定向技術(shù),可以使CPU的優(yōu)化達到最大化。下面通過(guò)實(shí)例的優(yōu)化來(lái)分析證明這個(gè)結論。
 
DLX的代碼分析
 上面提到的加載了fact.s和input.s這兩個(gè)文件,這里先分析一下fact.sborted”。其原因是:第二條命令(jal)是無(wú)條件分支指令, 但只有在第三個(gè)時(shí)鐘周期, jal 指令被譯碼后才知道,這時(shí),下一條命令movi2fp已經(jīng)取出,但需執行的下一條命令在另一個(gè)地址處,因而,movi2fp的執行應被取消,在流水線(xiàn)中留下氣泡。
點(diǎn)擊Clock cycle diagram窗口中的trap 0x5行,你將看到模擬正處于時(shí)鐘周期14。trap 0x5行如圖五所示。其原因是,無(wú)論何時(shí)遇到一條trap指令時(shí),DLX 處理器中的流水線(xiàn)都將被清空。


                  圖5   優(yōu)化前時(shí)鐘周期14的時(shí)空圖 


                  圖6   未經(jīng)優(yōu)化的時(shí)空圖

 由于沒(méi)有優(yōu)化代碼,出現了很多“寫(xiě)寫(xiě)相關(guān)”“讀寫(xiě)相關(guān)”“功能部件沖突”等數據相關(guān),然后看一下Statistics窗口中的各種統計數字:總的周期數(215) 和暫停數(17 RAW, 25 Control, 12 Trap; 54 Total),然后關(guān)閉窗口。點(diǎn)擊主窗口中Configuration中的Enable Forwarding使重定向技術(shù)無(wú)效(去掉小鉤),其中PC被復位為0x00000100。激活Breakpoints子窗口,點(diǎn)擊主窗口中Breakpoints菜單,刪除所有斷點(diǎn)。然后按F5鍵,鍵入20后,按Enter鍵,程序將一直模擬運行到結束。重新查看Statistics子窗口,你會(huì )看到Control暫停和Trap暫停仍然是同樣的值,而RAW暫停從17變成了53,總的模擬周期數增加到236。如圖七所示是優(yōu)化后的時(shí)空圖。
 

               圖7   優(yōu)化后的時(shí)空圖
 
 再一次查看Statistics子窗口,可以看到Control暫停和Trap暫停仍然是同樣的值,而RAW暫停從17變成了53,總的模擬周期數增加到236。
 
 3.2  基于流水線(xiàn)的性能分析

             圖8     fact.s程序段指令優(yōu)化前后的部分統計

加速比 s==236 / 215 = 1.098
可以分析得出即DLXforwarded比 DLXnot forwarded 快9.8%。

 4 總結
 流水線(xiàn)過(guò)去是,而且將來(lái)還是提高計算機性能的最有效技術(shù)之一。DLX虛擬處理器為設計和研究流水線(xiàn)結構提供方便直觀(guān)的平臺 ,如跟蹤程序運行的時(shí)空圖,在時(shí)空圖上可直接看到數據旁路(用箭頭表示)或延時(shí)的情況 ,程序運行結果的統計數據較全面地報告了流水線(xiàn)運行狀態(tài)等。本文探討了DLX流水線(xiàn)使用的主要技術(shù) ,利用DLX處理機,采用對流水線(xiàn)實(shí)例的優(yōu)化處理分析,驗證了指令流調整技術(shù)和數據重定向技術(shù)對DLX指令流水線(xiàn)的優(yōu)化作用,得出了一個(gè)結論,在正常的情況下同時(shí)使用兩種優(yōu)化技術(shù),可以使代碼的執行的速度得很大的提高。通過(guò)計算還可以知道使用優(yōu)化技術(shù)后加速比也得到了很好的提高大概是以前4倍左右。
 
參考文獻
[1]  鄭緯民, 湯志忠. 計算機系統結構[M]. 北京: 清華大學(xué)出版社, 1998.
[2]   Patterson D A., Hennessy J L. Computer Architecture: A Quantitive Approach 3ed[M]. San Francisco: Morgan Kanfmann Publishers, 2003.
 [3]   蔡啟先, 李日初. DLX處理器浮點(diǎn)數流水線(xiàn)性能的研究[J]. 計算機工程,2006,5,32(9).

,這段碼實(shí)現了求階乘的運算,通過(guò)這段代碼的一些圖,則可以得出指令流調整技術(shù)和數據重定向技術(shù)在實(shí)際運用中的作用。并且可以得出在現實(shí)中指令流調整技術(shù)和數據重定向技術(shù)對CPU性能的影響。
 Fact.s其中的主要代碼如下:
 main:
           ;*** Read value from stdin into R1
           addi     r1,r0,Prompt
           jal      InputUnsigned
           ;*** init values
           movi2fp   f10,r1          ;R1 -> D0       D0..Count register
           cvti2d    f0,f10
           addi      r2,r0,1         ;1 -> D2        D2..result
           movi2fp   f11,r2
           cvti2d    f2,f11
           movd      f4,f2           ;1-> D4         D4..Constant 1
 ;*** Break loop if D0 = 1
 Loop:     led       f0,f4           ;D0<=1 ?
           bfpt      Finish
           ;*** Multiplication and next loop
            multd     f2,f2,f0
            subd      f0,f0,f4
            j         Loop
 
 Finish:    ;*** write result to stdout
             sd        PrintfValue,f2
             addi      r14,r0,PrintfPar
             trap      5
             ;*** end
             trap      0
將代碼裝載并運行,對比優(yōu)化前后的時(shí)空圖,并進(jìn)行性能的評價(jià)分析,得出結論。

                 圖4   第一次循環(huán)的流水線(xiàn)時(shí)空圖  
 在窗口中,可以看到模擬第一次循環(huán)正在第四時(shí)鐘周期,第一條命令正在ME M段,第二條命令在intEX段,第四條命令在IF段。而第三條命令指示為“a

【DLX處理器流水線(xiàn)性能優(yōu)化(一)】相關(guān)文章:

連續實(shí)時(shí)信號處理器的性能分析03-19

網(wǎng)絡(luò )視頻系統性能測試及優(yōu)化11-22

2k-8k FFT處理器ROM面積的優(yōu)化03-30

簡(jiǎn)化加權數據融合算法對時(shí)差定位性能的優(yōu)化03-07

高性能計算機分布式內存文件系統的網(wǎng)絡(luò )性能優(yōu)化方法論文11-08

五種提高SQL性能的方法(一)11-22

ARM處理器的Boot與Remap03-07

為微處理器核心供電03-18

黃岡本地傳輸網(wǎng)絡(luò )優(yōu)化(一)03-07

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看