Conroe強(qiáng)在哪兒?Core vs K8架構(gòu)解析
接下來讓我們來看一下這有趣的對(duì)比:Core 微架構(gòu)的3組簡單解碼單元與1組復(fù)雜解碼單元 vs. K8 處理器的3組復(fù)雜解碼單元。
K7 處理器有2種解碼方法,向量路徑(Vector Path)和直接路徑(Direct Path)。向量路徑解碼會(huì)生成多于2條的類似RISC的指令(AMD稱為Macro-Op,即宏指令)。直接路徑解碼會(huì)生成1條或者2條宏指令。K7 處理器的每組解碼單元都可以進(jìn)行向量路徑解碼和直接路徑解碼,但是從性能的角度講,直接路徑解碼無疑是更好的選擇,因?yàn)樗鼤?huì)生成數(shù)量較少的宏指令。怎么,你覺得突然談?wù)?K7 處理器有點(diǎn)奇怪?不,因?yàn)榫拖?Core 微架構(gòu)是基于 P6 微架構(gòu)一樣,K8 處理器很大程度上也是基于 K7 處理器的。
K7 處理器的3組復(fù)雜解碼單元是強(qiáng)大的,可以解碼絕大多數(shù)X86指令,只有很少一部分指令需要使用向量路徑解碼。它們僅有的缺點(diǎn)是一些浮點(diǎn)指令和SSE指令需要使用向量路徑解碼。而 K8 處理器擁有更強(qiáng)大的復(fù)雜解碼單元——幾乎所有的浮點(diǎn)指令和SSE指令都可以使用直接路徑解碼了。這是因?yàn)镵8 處理器的取指與解碼單元的流水線比 K7 處理器的更長。當(dāng)涉及到SIMD指令時(shí),K8 處理器尤其強(qiáng)于 K7 處理器。
顯然,Intel 的宏指令融合技術(shù)在AMD 的 K8 處理器上并不存在。但是,AMD擁有與微指令融合技術(shù)類似的技術(shù)。首先需要注意的是,Intel 與 AMD 使用的名詞“宏指令”與“微指令”具有不同的含義,很容易使人混淆。這里我們給出下面的表格,對(duì)它們進(jìn)行分辨。

名詞辨析
在 Athlon 處理器中,也存在有微指令融合技術(shù)。例如,一條 ADD [mem], EAX 指令在真正執(zhí)行前中始終保持為一條指令。因此,它在緩沖區(qū)中也只會(huì)占據(jù)1個(gè)單元的空間。不過,在 Core 微架構(gòu)中 load 操作和 SSE 操作等也可以被融合,而 K8 處理器則不行,它會(huì)把SSE操作解碼成2條宏指令。
那么,在解碼單元方面,Intel 的 Core 微架構(gòu)與 AMD 的 K8 處理器比較的結(jié)果是什么呢?就目前的資料來看,還很難確切的說到底哪個(gè)更加有實(shí)力。不過,我們有一個(gè)初步的看法:Core 微架構(gòu)要更具有優(yōu)勢(shì)。因?yàn)樵谝话闱闆r下,它每個(gè)時(shí)鐘周期可以解碼4條X86指令,加上宏指令融合技術(shù)的話則最多可以解碼5條X86指令。而 AMD 的 K8 處理器每個(gè)時(shí)鐘周期只能解碼3條。
總而言之,AMD 的3組復(fù)雜解碼單元?jiǎng)龠^ Core 微架構(gòu)的3組簡單解碼單元加上1組復(fù)雜解碼單元的情況不大可能發(fā)生。僅當(dāng)多條復(fù)雜指令同時(shí)需要復(fù)雜解碼單元進(jìn)行解碼的時(shí)候,K8 處理器的解碼單元會(huì)勝過 Core 微架構(gòu)的解碼單元。但是考慮到實(shí)際程序中的絕大多數(shù)X86指令對(duì)應(yīng)簡單解碼單元的事實(shí),這種情況不大可能發(fā)生。
關(guān)注我們
