1、超標量(Super Scalar)
將一條指令分成若干個週期處理以達到多條指令重疊處理,從而提高cpu部件利用
率的技術叫做標量流水技術.
超級標量是指cpu內一般能有多條流水線,這些流水線能夠並行處理.在單流水線結構
中,指令雖然能夠重疊執行,但仍然是順序的,每個週期只能發射(issue)或退休(retire)
一條指令.超級標量結構的cpu支持指令級並行,每個週期可以發射多條指令(2-4條居多).
這樣,可以使得cpu的IPC(Instruction Per Clock) > 1, 從而提高cpu處理速度.
超級標量機能同時對若干條指令進行譯碼,將可以並行執行的指令送往不同的執行
部件,在程序運行期間,由硬件(通常是狀態記錄部件和調度部件)來完成指令調度.
超級標量機主要是藉助硬件資源重複(例如有兩套譯碼器和ALU等)來實現空間的並行
操作.
我們熟知的pentium系列(可能是p-II開始),還有SUN SPARC系列的較高級型號,以及
MIPS若干型號等都採用了超級標量技術.
將一條指令分成若干個週期處理以達到多條指令重疊處理,從而提高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級流水。
超級流水線又叫做深度流水線,它是提高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實現,具體資料可以去訪問公司的網站。
超常指令字是由美國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遊戲等應用中顯示出優
異性能。