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

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


