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!
異性能。
計組 超標量 超級流水線 超長指令字區別詳解
1 超標量 super scalar 將一條指令分成若干個週期處理以達到多條指令重疊處理,從而提高cpu部件利用率的技術叫做標量流水技術。超級標量是指cpu內一般能有多條流水線,這些流水線能夠並行處理.在單流水線結構中,指令雖然能夠重疊執行,但仍然是順序的,每個週期只能發射 issue 或退休 re...
流水線與指令重排序
流水線是一種指令級並行技術。彙編指令不是一步可以執行完畢的,每個步驟涉及的硬體可能不同,所以可以使用流水線技術來執行指令。可以看到,當第2條指令執行時,第1條指令只是完成了取值操作。假如每個步驟需要1毫秒,那麼如果指令2等待指令1執行完再執行,就需要等待5毫秒。而使用流水線後,只需要等待1毫秒。lw...
指令流水線的畫法
指令流水線的畫法 解題想法 流水線有五段,分別為s1,s2,s3,s4,s5.其中s4的執行時間為2 t,其他都是 t,乘法使用的是s1,s2,s5,加法使用的是s1,s3,s4,s5。利用吞吐率加速比和效率公式可不可以計算?對於此類題目,最好畫出指令流水線,因為公式法有一定的侷限性。畫好了!這樣畫...