史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 網路軟硬體架設技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-01-05, 05:39 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 漫談記憶體顯示記憶體帶寬對效能的影響

自從P4推出之後,記憶體帶寬這個詞兒就越來越流行了,很多所謂的高手都經常用帶寬來說明一些問題,這不僅令到不少初學者一頭霧水,就算是很多老鳥們也只是一知半解,並沒有真正研究過帶寬對效能的影響究竟有多大!很多時候都是人云亦云,或者只是想當然的按照理論去計算,在這篇文章裡,將會對記憶體(顯示記憶體)帶寬對系統效能的直接影響作深入的探討,讓大家對記憶體(顯示卡)帶寬有更深一步的認識。

  早在SDRAM時代,我們對於記憶體帶寬就形成了初步概念。時至今日,記憶體帶寬已經成為除CPU以外對整體效能影響最大的因素。

無獨有偶,顯示卡上顯示記憶體的帶寬也會對3D效能產生至關重要的影響,其本質與記憶體帶寬是類似的。

那麼,記憶體帶寬究竟能夠造成多大的影響呢?
還是讓測試資料來說明一切!

  記憶體帶寬基礎知識

  何謂記憶體帶寬

  從功能上理解,我們可以將記憶體看作是記憶體控制器(一般位於北橋晶片中)與CPU之間的橋樑或與倉庫。

顯然,記憶體的容量決定「倉庫」的大小,而記憶體的帶寬決定「橋樑」的寬窄,兩者缺一不可,這也就是我們常常說道的「記憶體容量」與「記憶體速度」。

  除了記憶體容量與記憶體速度,延時週期也是決定其效能的關鍵。

當CPU需要記憶體中的資料時,它會發出一個由記憶體控制器所執行的要求,記憶體控制器接著將要求傳送至記憶體,並在接收資料時向CPU報告整個週期(從CPU到記憶體控制器,記憶體再回到CPU)所需的時間。


毫無疑問,縮短整個週期也是提高記憶體速度的關鍵,這就好比在橋樑上工作的警察,其指揮疏通能力也是決定通暢度的因素之一。

  更快速的記憶體技術對整體效能表現有重大的貢獻,但是提高記憶體帶寬只是解決方案的一部分,資料在CPU以及記憶體間傳送所花的時間通常比處理器執行功能所花的時間更長,為此緩衝區被廣泛套用。

其實,所謂的緩衝器就是CPU中的一級緩衝與二級緩衝,它們是記憶體這座「大橋樑」與CPU之間的「小橋樑」。事實上,一級緩衝與二級緩衝採用的是SRAM,我們也可以將其寬泛地理解為「記憶體帶寬」,不過現在似乎更多地被解釋為「前端總線」,所以我們也只是簡單的提一下。

事先預告一下,「前端總線」與「記憶體帶寬」之間有著密切的聯繫,我們將會在後面的測試中有更加深刻的認識。

  記憶體帶寬的重要性

  記憶體帶寬為何會如此重要呢?
在回答這一問題之前,我們先來簡單看一看系統工作的程序。

基本上當CPU接收到指令後,它會最先向CPU中的一級緩衝(L1 快取)去尋找相關的資料,雖然一級緩衝是與CPU同頻執行的,但是由於容量較小,所以不可能每次都命中。

這時CPU會繼續向下一級的二級緩衝(L2 快取)尋找,同樣的道理,當所需要的資料在二級緩衝中也沒有的話,會繼續轉向L3 快取(如果有的話,如K6-2+和K6-3)、記憶體和硬碟。


由於目前系統處理的資料量都是相當巨大的,因此幾乎每一步操作都得經過記憶體,這也是整個系統中工作最為頻繁的設備。


如此一來,記憶體的效能就在一定程度上決定了這個系統的表現,這點在多媒體設計軟體和3D遊戲中表現得更為明顯。


系統記憶體工作原理示意圖

  3D顯示卡的記憶體帶寬(或許稱為顯示記憶體帶寬更為合適)的重要性也是不言而喻的,甚至其作用比系統的記憶體帶寬更為明顯。

大家知道,顯示卡在進行像素繪圖時,都需要從顯示記憶體的不同緩衝區中讀寫資料。

這些緩衝區中有的放置描述像素ARGB(阿爾法通道,紅,綠,藍)元素的顏色資料,有的放置像素Z值(用來描述像素的深度或者說可見性的資料)。

  顯然,一旦產生Z軸資料,顯示記憶體的負擔會立即陡然提升,在加上各種材質貼圖、深度複雜性繪圖、3D特效,其工作量可想而知。


在更多情況下,顯示記憶體帶寬的重要性超越了顯示記憶體容量,這點我們將在後文的測試中有詳細說明。

  如何提高記憶體帶寬

  記憶體帶寬的計算方法並不複雜,大家可以遵循如下的計算公式:帶寬=總線寬度×總線頻率×一個時鐘週期內交換的資料包個數。

  很明顯,在這些乘數因子中,每個都會對最終的記憶體帶寬產生極大的影響。

然而,如今在頻率上已經沒有太大文章可作,畢竟這受到製作工藝的限制,不可能在短時間內成倍提高。
而總線寬度和資料包個數就大不相同了,簡單的改變會令記憶體帶寬突飛猛進。


DDR技術就使我們感受到提高資料包個數的好處,它令記憶體帶寬瘋狂地提升一倍。



  當然,提高資料包個數的方法不僅僅局限於在記憶體上做文章,通過多個記憶體控制器並行工作同樣可以起到效果,這也就是如今熱門的雙通道DDR晶片組(如nForce2、I875/865等)。

事實上,雙通道DDR記憶體控制器並不能算是新發明,因為早在RAMBUS時代,RDRAM就已經使用了類似技術,只不過當時RDRAM的總線寬度只有16Bit,無法與DDR的64Bit相提並論。


記憶體技術發展到如今這一階段,四通道記憶體控制器的出現也只是時間問題,VIA的QBM技術以及SiS支持四通道RDRAM的晶片組,這些都是未來的發展方向。


記憶體未來的發展方向

  至於顯示卡方面,我們對其顯示記憶體帶寬更加敏感,這甚至也是很多廠商用來區分高低端產品的重要方面。

同樣是使用DDR顯示記憶體的產品,128Bit寬度的產品會表現出遠遠勝過64Bit寬度的產品。

當然提高顯示記憶體頻率也是一種解決方案,不過其效果並不明顯,而且會大幅度提高成本。值得注意的是,目前部分高端顯示卡甚至動用了DDRII技術,不過至少在目前看來,這項技術還為時過早。

  如何識別產品的記憶體帶寬

  對於記憶體而言,辨別記憶體帶寬是一件相當簡單的事情,因為SDRAM、DDR、RDRAM這三種記憶體在外觀上有著很大的差別,大家通過下面這副圖就能清楚地認識到。

唯一需要我們去辨認的便是不同頻率的DDR記憶體。目前主流DDR記憶體分為DDR266、DDR333以及DDR400,其中後三位數字代表工作頻率。通過記憶體條上的標識,自然可以很方便地識別出其規格。


通過記憶體條上的標識,自然可以很方便地識別出其規格

  相對而言,顯示卡上顯示記憶體帶寬的識別就要困難一些。在這裡,我們應該抓住「顯示記憶體位寬」和「顯示記憶體頻率」兩個重要的技術指標。


顯示記憶體位寬的計算方法是:單塊顯示記憶體顆粒位寬×顯示記憶體顆粒總數,而顯示記憶體頻率則是由"1000/顯示記憶體顆粒納秒數"來決定。


一般來說,我們可以從顯示記憶體顆粒上一串編號的最後2兩位看出其納秒數,從中也就得知其顯示記憶體頻率。至於單塊顯示記憶體顆粒位寬,我們只能在網上查詢。

  HY、三星、EtronTech(鈺創)等都提供專用的顯示記憶體編號查詢網站,相當方便。


此外,使用RivaTuner也可以檢測顯示卡上顯示記憶體的總位寬,大家開啟RivaTuner在MAIN功能表即可看到。



  二、 記憶體帶寬測試分析

  在瞭解一些相關的重要知識之後,我們將通過詳細的測試向大家展示記憶體帶寬的奧秘。

對於不同的CPU平台,記憶體帶寬的重要性不盡相同,而在與記憶體延時的搭配上,記憶體帶寬也有很多學問。

好了,還是請大家看直接的測評。

  AMD-nForce2平台的記憶體帶寬分析

  正是nForce2晶片組的出現才讓AthlonXP平台向更高的前端總線發展,而經過一段時間的超頻體驗,不少用戶都會前端總線與記憶體帶寬之間的關聯有了一定的認識。


一般而言,我們的常理告訴我們記憶體頻率越高越好,因為它直接決定了記憶體帶寬。

然而在nForce2晶片組中則並不是這樣一回事。由於記憶體控制器的特殊性,它要求DDR記憶體與CPU同步執行時才能達到最佳效能。

下面是nForce2晶片組在記憶體同步/異步條件下的測試成績:




  簡單說來,即CPU設定為166MHz外頻(333MHz前端總線)、DDR執行於DDR333模式時,其效能要比CPU設定為166MHz外頻、DDR執行於DDR400模式的方案更好。所以,無論在何種情況下,我們都建議nForce2用戶將"Memory Frequency"設定為"Sync(同步)"。事實上,同樣的情況也出現在ALi MAGiK1和SiS745這兩款晶片組上,DDR333在不同步時效能反而不如DDR266同步,好在它們的市場份額並不大。

  此外,當我們使用不集成顯示卡的SPP北橋時,單通道與雙通道之間的效能差距微乎其微,甚至都可以將微小的差距理解為測試誤差。而在使用集成顯示卡的IGP北橋中,雙通道確實展現出很大的優勢。


毫無疑問,對於nForce2而言,雙通道儘管能夠提升記憶體帶寬,但是AthlonXP的前端總線利用不上,單通道DDR已經完全能夠滿足其需求。之所以nForce2能再KT400面前橫行霸道,其關鍵還在於記憶體控制器的效率,而非雙通道技術。

  AMD-KT400A平台

  VIA的KT400A也是一款主流SocketA晶片組,那麼它究竟是否會出現高記憶體頻率異步時效能不佳的情況呢?請大家先不要忙著下結論,更應該拋棄以往對KT333/400的陳見,因為KT400A的記憶體控制器經過了VIA的重新設計。




  顯然,KT400A已經能夠利用裡DDR400的高帶寬,即便是在記憶體異步的情況下。現在,大家應該很明白在SocketA平台下的記憶體最佳化了吧,確實很簡單:nForce2要保持同步,而KT400A/600應該盡可能提高記憶體頻率。



  Intel-I845PE平台

  儘管單通道的I845PE晶片組已經略顯落伍,但是我們能夠從中分析出單通道情況下,記憶體帶寬的重要性。事實上,P4處理器很早就達到533MHz前端總線(133MHz外頻),此時只有使用DDR333才算是同步執行。




  很明顯,DDR333的高記憶體帶寬在此表現出明顯的效能優勢,無論對3D遊戲還是商業應用軟體都大有裨益。事實上,單通道DDR對於Pentium4的Netburst架構而言僅僅是杯水車薪,即便是DDR333也無法滿足Pentium4的需求,因為533MHz前端總線的Pentium4必須擁有4.2GB/s的記憶體帶寬才能充分別發揮效能,而單通道的DDR333只具備2.7GB/s,更不用說DDR266了。

  Intel-I865PE

  I865PE晶片組是如今毫無疑問的當紅小生,憑借雙通道DDR技術。它完全解決了記憶體帶寬的瓶頸,引爆P4處理器的最大動力。

在這裡,我們將對比單通道DDR400、雙通道DDR400以及雙通道DDR333之間的效能。當然,此時的P4處理器執行於800MHz前端總線。




  雙通道DDR確實是P4處理器的最佳拍檔,在這種環境下,系統的整體效能得到最佳發揮。

如果對比一下各種前端總線的P4處理器所需要的帶寬以及各種記憶體模式能夠提供的帶寬,我們也就不難理解出現這一現象的原因了。

前端總線頻率/工作頻率 最高帶寬
Pentium4 400MHz 3.2GB/s
Pentium4 533MHz 4.2GB/s
Pentium4 800MHz 6.4GB/s
DDR266 266MHz 2.1GB/s
雙通道DDR266 266MHz 4.2GB/s
DDR333 333MHz 2.7GB/s
雙通道DDR333 333MHz 5.4GB/s
DDR400 400MHz 3.2GB/s
雙通道DDR400 400MHz 6.4GB/s

  由於雙通道DDR400的帶寬是6.4GB/s,正好滿足800MHz前端總線的P4處理器,因此表現出最佳的組合。



  Intel-SiS655

  Intel晶片組一直對於記憶體異步相當保守,甚至一直不允許記憶體頻率高於CPU的外頻。不過SiS可並不這樣認為,其高端的SiS655晶片組同樣支持雙通道DDR400,而且能夠以更加靈活的方式進行異步,這意味著即便我們的P4處理器執行於533MHz前端總線,也可以在SiS655晶片組上使用DDR400。那麼這種異步模式是否有價值呢?測試中,我們選項了533MHz前端總線的P4處理器,分別配合單通道DDR400、單通道DDR333以及雙通道DDR333。




  測試結果相當耐人尋味,因為在記憶體頻率高於CPU的外頻的異步模式下,效能依舊取得了提升,我們不得不對SiS刮目相看。

不過,單通道的DDR400畢竟還是不敵雙通道DDR333,畢竟單通道的DDR400只能提供3.2GB/s的記憶體帶寬,仍然小於期望中的4.2GB/s。相反,雙通道DDR333卻發揮了很大的優勢。

  在測試中,我們還發現SiS655在配合800MHz前端總線的P4處理器時居然無法在使用雙通道DDR400下發揮出最佳效能,此時測試成績還不如搭配雙通道DDR333,看來SiS655還有待完善,我們更加期待SiS655FX。

  記憶體帶寬與延時的矛盾

  熟悉記憶體最佳化的朋友一定知道記憶體延時(CL值)的重要性,然而如今大多數DDR記憶體都難以執行在CL=2的模式下,特別在提高其工作頻率的情況下。

很多DDR266記憶體能夠在266MHz下穩定執行於CL=2,也可以在333MHz下穩定執行於CL=2.5,同樣的情況也出現在DDR333記憶體中。

這就帶給我們這樣一個矛盾,究竟應該提高記憶體頻率還是縮短記憶體延時?

  為此,我們分別選項了AMD和Intel的平台進行測試。

為了凸現出記憶體帶寬的重要性,我們特意將CL=2時的記憶體頻率低於CPU外頻,這樣的資料更有評判價值。測試平台如下:







  從測試結果來看,AthlonXP平台顯然對於記憶體延時更加敏感。

對於前端總線並不高的AthlonXP平台而言,我們認為DDR333+CL2的效能肯定在DDR400+CL2.5之上,因此建議大家在可能的情況下最佳化CL延時。至於I865PE平台,畢竟Pentium4還是對記憶體帶寬相當飢渴,此時自然應該盡可能地保證記憶體頻率,而犧牲記憶體延時。



  三、 顯示記憶體帶寬測試分析

  很多用戶都有這樣的感受,顯示記憶體帶寬對於顯示卡的3D效能而言實在太重要,而且各種顯示卡所搭配的顯示記憶體在位寬、頻率以及顯示記憶體種類方面有著很大的區別。通過下面這些測試,我恩將對顯示記憶體帶寬有更為深刻的認識。

  不同顯示記憶體頻率之間的效能區別

  在購買顯示卡時,我們對顯示記憶體頻率往往格外關注,因為較高的顯示記憶體帶寬往往能夠各種3D遊戲中展現出更加出色的效能,特別是在如今大型3D遊戲日益流行的時代。為此,我們採用同一款顯示卡在GPU核心頻率不變的情況下進行顯示記憶體超頻測試,看看顯示記憶體頻率究竟帶來多大的影響。測試中分別採用Radeon 9000Pro和Geforce4 Ti4200,測試軟體為普及的QuakeIII,執行於1600×12000×32bit。



  從測試結果來看,Ti4200對於顯示記憶體頻率似乎更加敏感,這也並不出乎我們的意料。

一般而言,同系列中降頻產品往往會在超頻後大幅度提升效能,因為廠商在設計GPU時就針對最高版本所需要的記憶體帶寬,一旦我們將記憶體帶寬提升,那麼此時所引發的效能提升將是最大的。

而Radeon9000Pro本身已經算是9000系列中的高頻率產品,因此GPU對於顯示記憶體的利用率基本上區域飽和,再次提升顯示記憶體帶寬自然也沒能表現出足夠的提升幅度。

  當然,我們也不能忘記GPU對顯示記憶體帶寬的需求性。

從目前顯示卡技術的發展趨勢來看,像素填充率與顯示記憶體帶寬是毫無疑問的兩大熱點,越是高端的顯示卡越需要更高的顯示記憶體帶寬。

因此,我們建議準備選購Geforce Ti4200以及Radeon 9500以上等級顯示卡的用戶更加關注顯示記憶體頻率。

  64Bit與128Bit的效能差別

  從顯示記憶體帶寬的計算公式我們也可以得知,顯示記憶體位寬對於顯示記憶體帶寬的影響力是何等重大。

在中低端產品中,不少廠商為了降低價格,提高市場競爭力而推出64Bit位寬顯示記憶體的產品,其性價比究竟如何?與128Bit顯示記憶體有多大差距呢?




  從GeforceFX5200的情況來看,64Bit與128Bit顯示記憶體之間的差距的確很大。

就個人角度而言,我認為沒有必要為了節約區區100多元而選項廉價版的64Bit顯示記憶體產品,畢竟此時所損失的效能太大,性價比實在不高。

此外要提醒大家的,在實際執行頻率相同的情況下,一般128Bit的SDRAM顯示記憶體要好於64Bit的DDR顯示記憶體,儘管兩者的理論顯示記憶體帶寬完全一樣。

對於準備選購Geforce4MX 440SE以及Geforce2MX的用戶而言,這點應該注意,不要被DDR的光環所迷惑。

  顯示記憶體頻率與顯示記憶體容量孰輕孰重

  就目前套用和遊戲而言,顯示記憶體帶寬比顯示記憶體容量重要得多,顯示記憶體帶寬高的顯示卡往往效能高於容量雖大,但顯示記憶體帶寬不足的顯示卡。

為此,我們採用兩款Geforce4 MX440顯示卡進行驗證,一款顯示記憶體容量為64MB,執行於450MHz DDR,另一款顯示記憶體容量為128MB,執行於400MHz DDR,兩者的GPU核心頻率一樣。




  測試結果也證明了我們的推論,對於如今的主流顯示卡,64MB顯示記憶體確實已經綽綽有餘,更為重要的是顯示記憶體帶寬。


當然,一旦NV40以及R400之類的恐怖級產品普及,這一推論可不一定適用。



  超前討論:DDR Vs DDR2

  DDR2顯示記憶體的呼聲日漸高漲,渴望時刻保持領先的nVIDIA在GeforceFX5800 Ultra中選項了這種尚未普及的記憶體規格。

然而遺憾的是,這也成為NV30的一大敗筆。DDR2不僅因為成本問題難以普及,其自身的技術也並不成熟。

  在GeforceFX5800 Ultra中,8枚DDR2顯示記憶體晶片需要消耗28W功耗,而且造成了巨大的發熱量。撇開為了散熱而帶來的成本問題不談,即便是惱人的噪音問題都已經讓nVIDIA尷尬不已,這也注定NV35不會取得類似於其前輩們的成功。


當我們見到帶有水冷散熱(或者誇張的散熱器)以及外置電源的GeforceFX5800 Ultra顯示卡時,或許更多的感覺不是讚歎,而是一種莫名的悲哀。

  如果說DDR2顯示記憶體為NV30帶來出色的效能也就罷了,然而位寬僅僅128Bit的DDR2顯示記憶體很大程度上成為效能發揮的瓶頸。

在使用頻率為1GHz的DDR2顯示記憶體時,16GB/s的帶寬卻是令人難以完全滿意,與ATI Radoen 9800Pro的21.25GB/s相比落下很多。

為此,並不頑固的nVIDIA還是接受了現實,在GeforceFX 5900Ultra中改用256Bit的DDR1。

事實上,在頻率相同的情況下,256Bit DDR1應該比128Bit DDR2更為出色,這與128Bit SDRAM好於64Bit DDR是相同的道理。

採用850MHz的256Bit DDR1之後,NV35的顯示記憶體帶寬達到了27.2GB/s,基本能夠保證各種3D特效的消耗。

  客觀而言,目前的DDR2顯示記憶體技術還沒有完成成熟,至少其高昂的成本使之在現實產品中難以套用。


只有當DDR2顯示記憶體能夠執行與高頻率的,而且達到256Bit位寬,這時才是DDR2佔領顯示記憶體市場的時機。

  寫在最後

  記憶體帶寬的話題就討論到這裡,相信大家也對如何選購、最佳化產品有了足夠的認識。應當指出的是,記憶體帶寬技術也在不停地發展,或許未來的DDR2以及DDR3才是最終的發展方向。


文/謝成明 方成亮
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次
舊 2004-01-07, 05:46 PM   #2 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 362
在線等級: 級別:0 | 在線時長:0小時 | 升級還需:5小時
註冊日期: 2002-12-06
VIP期限: 2005-09
住址: 火星上的Olympus火山
文章: 61
精華: 0
現金: -6 金幣
資產: -6 金幣
預設

感恩大大
長知識的好文章
yangsho 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 06:29 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2021, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1