瀏覽單個文章
visionary_pcdvd
*停權中*
 

加入日期: Jan 2008
文章: 1,281
引用:
作者zohar
現在CISC的x86其實跟RISC差異不至於說有很大的代溝
CISC一樣會把指令分成小段處理
RISC一樣有不少又臭又長的指令

據我所知,以前的 RISC 指令集長度是固定的,如果是32位元處理器,指令長度就固定為 4Byte,且指令數量不多,定址模式僅四、五種,指令複雜度較接近「微指令」層級,甚至無須翻譯就能直接執行。

CISC 則有兩大特點:
一、指令長度不一:現在的 x86 指令集,最短 1Byte、最長 17Byte,解碼單元必須先辨認、標定出指令與指令間之邊界,才能進一步分析每道指令並翻譯成動作較單純的「微指令」

二、定址模式複雜:x86 有十幾種定址模式,大部分指令的運算元可以是 通用暫存器、某記憶體位址、位址偏移值等。碰到這類指令,解碼單元得花費不少週期才能解碼成「微指令」

由於 x86 先天的複雜度,其解碼單元等於處理器中的處理器,若不計入L2,解碼單元佔晶片面積可達三、四成,非常沒效率。一旦分支預測錯誤,又得重新花費大量週期去解碼,整體管線利用率偏低

zohar兄 可否進一步說明「RISC一樣有不少又臭又長的指令」所指為何?
 
舊 2008-07-20, 07:35 AM #42
回應時引用此文章
visionary_pcdvd離線中