單發射與多發射

單發射與多發射
 

1  流水線(pipeline)技術:

      是指在程序執行時多條指令重疊進行操作的一種準並行處理實現技術。流水線是Intel首次在486芯片中開始使用的。流水線的工作方式就象工業生產上的裝配流水線。在CPU中由5—6個不同功能的電路單元組成一條指令處理流水線,然後將一條X86指令分成5—6步後再由這些電路單元分別執行,這樣就能實現在一個CPU時鐘週期完成一條指令,因此提高CPU的運算速度。經典奔騰每條整數流水線都分爲四級流水,即指令預取、譯碼、執行、寫回結果,浮點流水又分爲八級流水。



2  吞吐率

      指的是計算機中的流水線在特定的時間內可以處理的任務或輸出數據的結果的數量。流水線的吞吐率可以進一步分爲最大吞吐率和實際吞吐率。它們主要和流水段的處理時間、緩存寄存器的延遲時間有關,流水段的處理時間越長,緩存寄存器的延遲時間越大,那麼,這條流水線的吞吐量就越小。因爲,在線性流水線中,最大吞吐率Tpmax=流水線時鐘週期△T/1=max(T1,...Ti,..Tm)+T1/1,而其中,m是流水線的段數,i是特定過程段執行時間。如果,一條流水線的段數越多,過程執行時間越長,那麼,這條流水線的理論吞吐率就越小。



3  單發射與多發射:


  單發射處理機的指令執行在一個時鐘週期內只從存儲器中取出一條指令,並且只對一條指令進行譯碼,只執行一條指令,只寫一個運算結果。
  在單發射處理機中,取指令部件和指令譯碼部件只各設置一套,而操作部件可以只設置一個多功能操作部件,也可以設置多個獨立的操作部件。例如,定點算術邏輯部件ALU、取數存數部件LSU、浮點加法部件FAD、乘除法部件MDU等。單發射處理機在指令一級通常採用流水線結構;而在操作部件中,有的機器採用流水線結構,也有的機器不採用流水線結構。 
  單發射處理機的設計目標是每個時鐘週期平均執行一條指令,即它的指令級並行度ILP的期望值1。實際上,它就是一臺有k段流水線的普通標量處理機。由於數據相關、條件轉移和資源衝突等原因,實際的ILP不可能達到1。通過優化編譯器對指令序列進行重組(recorganizer),以及採用軟件與硬件相結合的方法處理數據相關、條件轉移和資源衝突等,可以使ILP接近於1。但是,單發射處理機的ILP不可能大於1。




      圖 單發射與多發射處理機的指令執行時空圖


  多發射處理機在一個基本時鐘週期內同時從指令Cache中讀出多條指令,同時對多條指令進行譯碼。爲了實現在一個時鐘週期同時多發射條指令,通常需要有多個取指令部件,多個指令譯碼部件和多個寫結果部件


4  SIMD:(Single Instruction Multiple Data,單指令多數據流)

       能夠複製多個操作數,並把它們打包在大型寄存器的一組指令集。


  以同步方式,在同一時間內執行同一條指令。 

  以加法指令爲例,單指令單數據(SISD)的CPU對加法指令譯碼後,執行部件先訪問內存,取得第一個操作數;之後再一次訪問內存,取得第二個操作數;隨後才能進行求和運算。而在SIMD型的CPU中,指令譯碼後幾個執行部件同時訪問內存,一次性獲得所有操作數進行運算。這個特點使SIMD特別適合於多媒體應用等數據密集型運算。

       MIMD:(MultipleInstructionStreamMultipleDataStream多指令多數據流),它使用多個控制器來異步地控制多個處理器,從而實現空間上的並行性。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章