超標量、超級流水線、超長指令字、向量機 SIMD

1、超標量(Super Scalar)
    將一條指令分成若干個週期處理以達到多條指令重疊處理,從而提高cpu部件利用
率的技術叫做標量流水技術.
    超級標量是指cpu內一般能有多條流水線,這些流水線能夠並行處理.在單流水線結構
中,指令雖然能夠重疊執行,但仍然是順序的,每個週期只能發射(issue)或退休(retire)
一條指令.超級標量結構的cpu支持指令級並行,每個週期可以發射多條指令(2-4條居多).
這樣,可以使得cpu的IPC(Instruction Per Clock) > 1, 從而提高cpu處理速度.
    超級標量機能同時對若干條指令進行譯碼,將可以並行執行的指令送往不同的執行
部件,在程序運行期間,由硬件(通常是狀態記錄部件和調度部件)來完成指令調度.
    超級標量機主要是藉助硬件資源重複(例如有兩套譯碼器和ALU等)來實現空間的並行
操作.
    我們熟知的pentium系列(可能是p-II開始),還有SUN SPARC系列的較高級型號,以及
MIPS若干型號等都採用了超級標量技術.
2、超級流水線(Super Pipeline)
    超級流水線又叫做深度流水線,它是提高cpu速度通常採取的一種技術。CPU處理指令
是通過Clock來驅動的,每個clock完成一級流水線操作。每個週期所做的操作越少,那麼
需要的時間久越短,時間越短,頻率就可以提得越高。所以超級流水線就是將cpu處理
指令是得操作進一步細分,增加流水線級數來提高頻率。頻率高了,當流水線開足馬力
運行時平均每個週期完成一條指令(單發射情況下),這樣cpu處理得速度久提高了。
當然,這是理想情況下,一般是流水線級數越多,重疊執行的執行就越多,那麼發生
競爭衝突得可能性就越大,對流水線性能有一定影響。
    現在很多cpu都是將超標量和超級流水線技術一起使用,例如pentium IV,流水線達
到20級,頻率最快已經超過3GHZ.我們教科書上用於教學的經典MIPS只有5級流水。
3、超長指令字(VLIW:Very Long Instruction Word)
    超常指令字是由美國Yale大學教授Fisher提出的。它有點類似於超級標量,是一條
指令來實現多個操作的並行執行,之所以放到一條指令是爲了減少內存訪問。通常
一條指令多達上百位,有若干操作數,每條指令可以做不同的幾種運算。那些指令可以
並行執行是由編譯器來選擇的。通常VLIW機只有一個控制器,每個週期啓動一條長指令,
長指令被分爲幾個字段,每個字段控制相應的部件。由於編譯器需要考慮數據相關性,
避免衝突,並且儘可能利用並行,完成指令調度,所以硬件結構較簡單。
    VLIW機器較少,可能不太容易實現,我們平時很少接觸VLIW機器(也許是我孤陋寡
聞),我知道業界比較有名的VLIW公司之一是Transmeta,在加州硅谷Santa Clara(呵呵
我心目中硅谷聖地之一,還有San Jose, Palo Alto,都是it英雄輩出的地方)。它做的
機器採用X86指令集,VLIW實現,具體資料可以去訪問公司的網站。
4、向量機(Vector Machine)
    我們平時接觸的計算機都是標量機,向量機都是大型計算機,一般用於軍事工業,氣
象預報,以及其他大型科學計算領域,這也說明了向量機都很貴。國產的銀河計算機就是
向量機。
    普通的計算機所做的計算,例如加減乘除,只能對一組數據進行操作,
被稱爲標量運算。向量運算一般是若干同類型標量運算的循環。
向量運算通常是對多組數據成批進行同樣運算,所得結果也是一組數據。
    很多做科學計算的大(巨)型機都是向量機,例如國產銀河。這個好像我們平時不太
接觸的到。
5、SIMD技術
   剛剛看到網上一段介紹SIMD的文字,貼在這裏:
   單指令多數據(Single Instruction Multiple Data)
   簡稱SIMD。SIMD結構的CPU有多個執行部件,但都在同一個指令部件的控制下。
SIMD在性能上有什麼優勢呢?以加法指令爲例,單指令單數據(SISD)的CPU對加法指令
譯碼後,執行部件先訪問內存,取得第一個操作數;之後再一次訪問內存,取得第二個操
作數;隨後才能進行求和運算。
   而在SIMD型CPU中,指令譯碼後幾個執行部件同時訪問內存,一次性獲得所有操作數進
行運算。這個特點使得SIMD特別適合於多媒體應用等數據密集型運算。AMD公司的3D NOW!
技術其實質就是SIMD,這使K6-2處理器在音頻解碼、視頻回放、3D遊戲等應用中顯示出優
異性能。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章