1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. DLX處理器流水線性能優化(一)

        時間:2023-03-07 11:02:48 計算機畢業論文 我要投稿
        • 相關推薦

        DLX處理器流水線性能優化(一)

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

        關鍵詞  DLX微處理機;流水線;計算機系統結構

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

        么性能將是不進行流水線的及其的五倍。流水線每個節拍的名稱 : IF=取指令,ID=分析指令,EX=執行指令,MEM=存儲器訪問,WB=寫回。

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


                          圖5   優化前時鐘周期14的時空圖 


                          圖6   未經優化的時空圖

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

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

                     圖8     fact.s程序段指令優化前后的部分統計

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

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

        ,這段碼實現了求階乘的運算,通過這段代碼的一些圖,則可以得出指令流調整技術和數據重定向技術在實際運用中的作用。并且可以得出在現實中指令流調整技術和數據重定向技術對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
        將代碼裝載并運行,對比優化前后的時空圖,并進行性能的評價分析,得出結論。

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

        【DLX處理器流水線性能優化(一)】相關文章:

        供給鏈系統的柔性性能06-03

        數據關聯算法綜述及其性能評估05-05

        論我國消費環境的優化05-11

        金融貿易結構優化研討05-30

        我國氣壓盤式制動結構性能和前景分析05-11

        變電站接地網優化設計08-24

        稅制改革、優化與稅收征管均衡發展06-01

        商品期貨優化投資組合的實證檢驗08-26

        高性能數據采集系統芯片LM12H458及其應用05-28

        優化小學數學作業設計的研究開題報告08-18

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>