?? 00000032.htm
字號:
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>G4(MPC7400)和K7的比較 turbolinux </title></head><body><center><h1>BBS 水木清華站∶精華區</h1></center><a name="top"></a>發信人: flew (游泳的魚), 信區: Embedded <br />標 題: G4(MPC7400)和K7的比較 <br />發信站: BBS 水木清華站 (Thu Oct 10 19:17:06 2002), 站內信件 <br /> <br />盡管PowerPC平臺在很久之前已經建立了,但發展一直不太順利,其主要原因是:1、I <br />BM的AIX系統沒有取得成功;2、蘋果對它的重用還是近幾年的事情,而最新的G4系統采 <br />用Power PC 7400芯片,使此平臺達到了引人注目的頂峰。 <br />K7是AMD目前在x86平臺上最強的武器,依靠其出色的整數和浮點性能,吸引了所有人的 <br />注意。雖然K7與G4處于不同平臺,但運行的應用程序都相差無幾,很應該作一次全面的 <br />比較。 <br />G4(MPC7400)和K7都是性能強大的芯片,它們不僅架構相似,同時擁有向量處理和亂序執 <br />行等POST-RISC系的先進特性,還在各自的領域取得了驚人的成就,是目前最強的兩款家 <br />用型RISC內核。下面,就讓我們來對比一下分別位于CHRP(Common Hardware Referenc <br />e Platform,共用硬件平臺,IBM為PowerPC制定的標準,可以兼容Mac OS, Windows NT <br />, Solaris, OS/2, Linux和AIX等多種操作系統)和x86的芯片。 <br />一、規格對比 <br />首先,K7的晶體管是G4的兩倍(22M vs 10.5M),它的芯片尺寸和能耗自然要也比G4大 <br />。除此之外,K7還有極深的管道線和豐富的功能單元,這些都是非常出色的特性。但是 <br />,K7的性能并沒有G4的兩倍,而且G4的應用范圍比K7要廣得多,在工作站、嵌入式處理 <br />器、移動式處理器都有其用武之地,由此可見摩托羅拉的芯片制造技術確實非常先進。 <br /> <br />二、內核外部的對比 <br />微處理的內核可以分為內外兩個部分,外部負責指令獲取、解碼和分派,內部就是主要 <br />的運算單元,包括:IEU(Integer Execution Units,整數執行單元)、FPU(Float Poin <br />t Unit,浮點運算單元)和VPU(vector processing units,向量處理單元,即處理MMX、 <br />SSE等SIMD指令的地方)。在這一節中,我們先討論一下微內核的外部。 <br />1、解碼 <br />K7是一種外部CISC(Complex Instruction Set Computing,復雜指令集計算機),內部P <br />ost-RISC的芯片,為了提高它的性能,AMD已經盡力把x86體系的潛力發掘出來。CPU從緩 <br />存或主內存獲取指令之后,第二步工序是解碼,解碼分為硬件解碼和微碼解碼,從速度 <br />上來說,硬件解碼的比微碼解碼要快。硬件解碼需要統一長度的指令集才能實現,這恰 <br />好是RISC(Reduced Instruction Set Computing,精簡指令集計算機)芯片的特長。 <br />現代的RISC處理器實際上屬于Post-RISC架構,它們和原始的少量指令型RISC機器不同, <br />7400等產品增加的指令數目甚至多于CISC芯片。G4并不受指令數量的影響,即使加入更 <br />多指令,也能保持一貫的快速成獲取和硬件解碼。相比之下,K7就沒那么幸運,維持x8 <br />6的兼容性使解碼工作異常復雜:1、為了應付長度可變的x86指令,增加指令獲取速度, <br />必須加入預解碼緩存;2、K7不能直接執行x86指令,需要先把1或2條指令組合成微操作 <br />代碼(類似P6的rop)來仿效統一長度的RISC指令,再發給運算單元。解碼工作剛開始, <br />K7已經做多了兩項步驟,落在G4之后自然不足為奇了,不過,這只是理論分析,實際又 <br />是另一回事了。 <br />Athlon使用兩條各自分離的管道來處理繁重的解碼工作:硬件解碼器負責簡單的x86指令 <br />,微操作代碼解碼器處理復雜的x86指令。但在真實世界中,應用程序很少使用復雜的x <br />86指令,再加上K7有大量的晶體管作為后盾,所以微碼解碼對它的整體性能影響不大。 <br /> <br />Athlon采用大量晶體管的設計會增加管道的深度,在指令獲取之后,K7需要用3個管道( <br />或3個時鐘周期)來把長短不一的x86指令定位到6個解碼位置(3個微操作代碼=6個ops) <br />,換言之,比RISC多用了3個時鐘周期。K7花費在解碼方面的時間比G4多,這才是它敗下 <br />陣的真正原因。 <br />2、分支預測 <br />雖然更深的管道能夠增加CPU的時鐘頻率,但受到分支預測單元處理能力的限制。如果相 <br />應的配套設施跟不上,加深管道只會導致預測命中率大大降低,嚴重阻礙CPU的運算。 <br />舊式芯片是沒有分支預測單元的,當遇到“if then else”的語句,必須等待條件判斷 <br />成立之后,才能繼續執行運算,浪費了不少時間。分支預測所做的工作為估計成立的條 <br />件,在條件未成立之前,預先進行計算。在此過過程中,BPU(Branch Processing Unit <br />,分支處理單元)的預測準確性是非常重要的,預測正確固然能節省大量時鐘周期,但預 <br />測錯誤重頭開始的計算將花費更多時間。 <br />圖1顯示CPU有不少空閑時間,if執行后第六個時鐘周期,then才開始執行。 <br />圖2顯示CPU被充分利用了,在if執行的同時,then分支已經開始工作。 <br />K7擁有大量的分支指令和分支記錄表,其預測的準確性十分高。G4的管道比K7少,對BP <br />U的要求沒有Athlon那么嚴格,在分支記錄較少的情況下,也能獲得較高的預測正確率。 <br /> <br />3、分派 <br />K7每個時鐘周期可以分派3條微操作代碼到9個執行單元,而每條微操作代碼包括一條內 <br />存存取指令(LOAD/STORE, LOAD或STORE)和一條寄存器指令,這意味著Athlon的峰值處 <br />理能力為6條指令/秒。 <br />7400每個時鐘周期可以分派2條指令(向量、浮點、整數、內存存取等),比K7要少得多 <br />,但它的計算單元和K7有稍微不同,就是這點差異使它追上了Athlon。 <br />三、內核內部的對比 <br />微處理器內核的內部才是其運算的真正區域,K7和7400都擁有亂序執行和超標量的特性 <br />。 <br />1、OOO(out of order exectuion,亂序執行)。 <br />圖3 <br />CPU的存儲單元和運算單元均是有限的,不同類型的指令將用不同的方法使用這些資源。 <br />為了提高處理器的速度,我們要使CPU的流水線不停工作,避免idle的情況出現(也許你 <br />已經知道,CPU降溫軟件的原理只是反其道而行,盡量讓CPU休息)。傳統的按序執行方 <br />式是完成一條指令后,再操作另一條,不可能充分利用到CPU的所有資源。亂序執行即對 <br />指令隊列進行重新排序,借助指令緩沖區,以一種全新的順序來執行指令流。 <br />亂序執行需要許多額外的硬件,以便記錄指令的原有順序、當前順序和使用的資源,這 <br />些都是舊式RISC芯片所沒有的,缺點是使處理器的制造更為復雜。 <br />2、超標量架構和執行單元 <br />圖4 <br />7400是8路超標量設計,K7為9路超標量設計,從表面來看,K7要領先一些,但實際卻沒 <br />
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -