概述
如今Xbox 360和PS3的規格都已經發布了,因此我們就可以給它們做壹個實際的性能比較。
遊戲機有三個重要的性能指標
CPU的性能
Xbox 360 CPU架構的通用處理能力是Cell的三倍
GPU的性能
Xbox 360 GPU 的設計擁有比PS3 GPU更靈活也更強大的處理能力
內存帶寬
Xbox 360的系統帶寬超越PS3五倍以上。
Xbox 360 CPU擁有更多通用處理能力是因為它擁有三個通用核心,而Cell只有壹個
Cell所宣稱的優勢是在於它的七個DSP處理器執行數據流浮點運算方面
Xbox 360 GPU擁有比PS3更多的處理能力,此外它的創新特性也提高了整體的渲染性能
Xbox 360擁有278.4GB/s的內存系統帶寬,PS3只有Xbox 360不到五分之壹(48GB/s)的整體內存系統帶寬。
結論
當妳們把這些數字逐壹列出的時候,Xbox 360擁有比PS3更好的性能。別忘了Sony壹貫誇大其詞,在實際性能指標上縮水。事實上這兩個系統都具有提供高清晰遊戲和娛樂的能力。
然而,硬件的性能盡管很重要,這只是問題的三分之壹。Xbox 360是壹個硬件、軟件和服務的集合體。如果沒有軟件和服務去推動它,即使再強大的硬件也會變得毫無意義。Xbox 360的遊戲-借助於尖端的硬件、軟件和服務-將會勝出於Playstation 3。
性能指標的詳細分析
CPU
Xbox 360的處理器為遊戲開發者提供的是真正需要,並且易於使用的處理能力。Cell處理器擁有很不錯的數據流浮點運算能力,但在遊戲中的使用很有限。
絕大多數的遊戲代碼是壹個由整數、浮點和向量計算構成的混合體,有很多的分支和隨機的內存訪問。讓壹個擁有緩存、分支預測和向量單元的通用處理器來執行它才是最佳選擇。
Cell的7個DSP(Sony稱其為SPE)沒有緩存,沒有直接內存訪問,沒有分支預測,甚至擁有壹個與PS3主CPU不同的指令集。它們不是為有效的通用計算而設計的。DSP不適合於遊戲的編程。
Xbox 360擁有三個通用CPU核心,Cell只有壹個。
Xbox 360的每個CPU核心都擁有向量處理能力,每個Xbox 360核心的每個硬件線程都有128個向量寄存器,帶有點乘積指令,還有1MB的***享二級緩存。Cell處理器的向量處理能力主要依靠7個DSP。
點乘積對遊戲來說很重要,因為在三維數學中它們被用於計算向量長度、投射、坐標變換等等。Xbox 360CPU擁有點乘積指令,而其它CPU例如Cell必須依靠乘法指令來模擬點乘積。
Cell的數據流浮點運算由它的7個DSP來執行。因為幾何處理已經轉移到了GPU,所以遊戲中對數據流浮點運算和其它DSP類編程的需求已經大為減少。
正如PS2的情感引擎缺少二級緩存,Cell是為那種處理器時間占用較少的遊戲編程而設計的。
Sony CPU的理想工作環境是通用計算時間占12.5%而DSP計算時間占87.5%。這種工作對於視頻回放和網絡波形分析很有意義,但不是遊戲。事實上,當我們分析實際的遊戲時就能發現幾乎相反的通用計算和DSP計算(時間)的分布,相對較小的指令部分是浮點運算。在這些浮點運算中也很少是用來處理連續的數據流的,它們被用來執行AI和路徑尋找,這些都需要隨機的內存訪問和頻繁的分支,而DSP卻很不適合這樣的工作。
基於運行下壹代遊戲的調查,只有10-30%執行的指令是浮點運算。剩余的指令是裝載、存儲、整數、分支等等。執行數據流浮點運算的指令就更少了,大約為5-10%。Cell是為數據流浮點運算而優化的,它核心的87.5%適合於數據流浮點運算就再沒別的了。
遊戲開發者不願意把他們的代碼分布到8個處理器上,特別是當其中的7個處理器非常不適合執行通用的程序。將遊戲代碼平均分配到8個處理器上是極端困難的。
GPU
即使忽略了帶寬的限制PS3的GPU也沒有Xbox 360的GPU強大
XBOX360和PS3性能比較
RSX GPU
550 MHZ
獨立的頂點/像素著色器
每秒執行510億次點乘積(整個系統的性能)
3億個晶體管
每個時鐘周期執行136次渲染操作
令人關註的運算單元的性能數據是每秒能執行510億次點乘積(整個系統的的性能),3億個晶體管,以及兩倍6800Ultra的性能
壹篇寫在幻燈片上的簡報顯示,如果包括Cell的處理能力在內,整個圖形系統的性能為每秒執行510億次點乘積。盡管Cell的DSP並沒有點乘積指令,從Sony的計算方式來看,這些DSP卻被假定每周期能執行壹次點乘積。
然而,即使按照Sony所謂的,CPU每周期7個點×3.2GHZ=224億個點/秒,GPU完成余下的510-224=286億個點每秒,那麽GPU的算術單元就完成286億個點每秒÷550MHZ=52個操作每周期。
這壹點很重要,因為如果RSX的算術單元和GeForce 6800相類似的話,以4維向量方式工作,而XBOX 360的GPU算術單元按照5維向量工作。PS3可編程GPU的浮點運算能力應該是52個操作每周期×4個浮點每個操作×2(madd)×550MHZ=228.8GFLOPS,小於XBOX 360的48個操作每周期×5個浮點每個操作×2(madd)×500MHZ=240GFLOPS
考慮到XBOX 360 GPU(330M)的晶體管數量略大,所以兩者有如此相近的GFLOPS值也很合理。
Cell上確實有額外的7個DSP可以用來執行圖形渲染,但是XBOX 360的三個通用核心以及定制的D3D和點乘積指令更適合真正的圖形計算。
6800Ultra有運行在400MHZ的16個像素流水線、6個頂點流水線。基於RSX擁有兩倍於6800Ultra的性能和更高的頻率,我們可以粗略估計壹下RSX應該擁有24個像素流水線和4個頂點流水線(較少的頂點流水線因為Cell的DSP可以做頂點著色)。如果PS3的GPU保持6800像素流水線的並行架構,Sony在發布稿中也有所暗示,將同樣證明它擁有24個像素流水線×2個並發指令+4個頂點流水線=52個點乘積/時鐘周期。
如果RSX延續6800Ultra的路線,它應該擁有24個紋理取樣器,不過它們會占據壹個算術單元,這就使得PS3的GPU更加缺乏實際的吸引力。即使它想利用算術單元的並發機制來減少紋理取回,它也沒有足夠的帶寬來取回這些紋理。
對於每個周期的著色操作,Sony的規劃很可能是每個像素流水線執行四次算術單元操作(並發的向量+標量)和壹次紋理操作,每個頂點流水線執行4次標量操作。總數為24×(4+1)+4×4=136次操作每周期,或者136×550=74.8G次操作每秒。
由於Xbox 360GPU多線程及平衡的設計,妳真的不能僅僅把這兩個系統做每秒執行多少次著色操作的(簡單)比較。然而Xbox 360的GPU每個時鐘周期可以做48次算術單元操作(每次都能做壹個4維向量(譯者註:應為5維向量)和標量的操作),16次紋理取回,32次流控制操作,以及16次可編程帶鑲嵌的頂點取回操作,總數為48×2+16+32+16=160次操作每周期或160×500=80G次操作每秒。
整體來說,自動化的著色負荷平衡,內存輸出特性,可編程的頂點取回,可編程的三角形鑲嵌,全速的頂點著色器紋理取回,以及其它超越shader model 3.0"的特性都使得XBOX 360的GPU提高了整體的渲染性能。
帶寬
PS3擁有22.4GB/s的GDDR3的帶寬,RDRAM有25.6GB/s,系統的總帶寬為48GB/s。
Xbox 360 擁有22.4GB/s的GDDR3的帶寬,和256GB/s的EDRAM帶寬,加起來是278.4GB/s
為什麽XBOX 360擁有這麽極限的帶寬呢?即使是最簡單的計算也表明幀緩存需要巨大的帶寬。例如,每周期8像素運行在550MHZ,帶有簡單的色彩渲染和Z值測試的幀緩存就需要52.8GB/s。PS3沒有足夠的內存帶寬來跟上GPU高峰時的渲染速度,這甚至還不包括紋理和頂點的取回。
PS3使用Z值和顏色壓縮來補償帶寬的不足。問題是當用於渲染次時代的復雜3D圖形時,Z值和色彩壓縮的性能會迅速下降。
高分辨率渲染,阿爾法混合和反鋸齒需要更多的帶寬,這就是為什麽Xbox 360為幀緩存專門留出了256GB/s的帶寬,這就讓Xbox 360的GPU能在進行Z值測試、高分辨率渲染、阿爾法混合以及4X全屏反鋸齒的同時保持全速,並且還有22.4GB/s的系統帶寬留給紋理和頂點。