查看單個文章
舊 2006-06-23, 06:00 PM   #6 (permalink)
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 金幣
預設

雙通道DDR時代:記憶體帶寬與反應時間

許多朋友都知道,時鐘頻率、記憶體調速與帶寬是三個最重要的參數,時鐘頻率無須多講,頻率自然越高越高,帶寬也會隨之增加。至於記憶體調速,這是一個與行地址、列地址存取反應時間相關的參數,那麼記憶體調速與帶寬又有什麼關係?在雙通道的影響下,記憶體調速對整體性能又有什麼意義?如果以專業的角度來說,這可要涉及到電子工程的高階技術,對於大多數讀者來說太難了,而且沒有實際作用,下文將嘗試用簡單的方法來描繪新一代記憶體的性能關鍵因素,有了大約的概念,我們在購買產品的時候就更容易選擇了。
  一、記憶體基礎知識簡介

  1、CPU從何處得到資料?
   無論是主流的DDR 400、還是最先進的DDR 566,現有我們所指的記憶體都是指RAM(Random Access Memory,隨機存儲器),作為高速電子設備(CPU)與低速機械存儲器(硬碟)之間的資料緩衝,所有資料都要在記憶體中進行讀取/寫入操作,才可能與CPU的快取記憶體交換資料,得到正確的計算結果。CPU的快取記憶體/暫存器和記憶體都無法永遠儲存資料,在斷電時資料會丟失,而最終結果必須存儲到硬碟上,才能儲存下來。
   CPU工作的過程中,它會先從記憶體傳輸過來的程式中找出程式計數器,讀取相應的指令,進行指令解碼後執行相應操作,然後讀取下一個指令,此過程常常分離為幾步:

- 讀指令
- 找到資料A
- 找到資料B
- 把B與A相加
- 存儲A到C上

  期間需要大量的讀/寫操作,為了保持最高效率,資料A、B、C最好能位於快取記憶體中。當然,出於成本的考慮,快取記憶體的容量永遠不可能比記憶體大,而記憶體的容量永遠不可能比硬碟大。CPU在快取記憶體中無法找到所需資料時,就會到記憶體中找,再找不到就會到硬碟找,直到找到為止。由於硬碟的速度很慢,因此,大容量和高速記憶體可加快尋找過程,提高整體性能。
   在CPU與記憶體之間的通道是FSB(Front Side Bus,前端總線),記憶體資料通過FSB先傳到北橋記憶體控制器,然後再通過傳輸到CPU。

  2、雙通道的增強
   DDR SDRAM(Double Date Rate,上下行雙資料率SDRAM)是相對於SDR SDRAM(Single Date Rate,單資料率SDRAM)而言的,它們的區別在於時鐘驅動資料的差異。一個時鐘是電壓從0到有信號(SDR是3.3V,DDR是2.5V)的週期,在SDR記憶體裡,它利用電壓上升的過程(即上升沿),來控制資料的進或出,然後記憶體會等待下一個上升沿進行重複的操作。DDR則能同時利用上升沿和下降沿(電壓下降的過程)來傳輸資料,那麼傳輸量就會變為兩倍。

  3、記憶體如何尋址?
   請設想記憶體是一個Matrix(不是黑客帝國,而是矩陣),它分為行和列,利用行和列的號碼,就可以找到某一個單元的資料。許許多多的記憶體存儲單元組成一個bank(儲蓄庫),舊的i845 Brookdale芯片組僅有4個bank,只能對尋址2GB記憶體。新的i865 Springdale和i875 Canterwood擁有8個bank,最大可以尋址4GB記憶體。所以說,bank的數量與容量決定了記憶體的尋址,即是記憶體最大容量。
   現在的記憶體條分為單面和雙面,單面佔用一個bank,雙面佔用兩個bank。所以在i845主板上,我們可以使用的最大記憶體條數量為2條雙面記憶體或四條單面記憶體,i865/i875可以支持4條雙面記憶體或8條單面記憶體。不過,以上只是理論值,實際的容量按照主板的設計而定。

  以上種種與反應時間和帶寬有什麼關係?別急,請接著看。

  二、雙通道/四通道-增加帶寬的捷徑
   除了英特爾和nVidia(nforce 2/3)的產品外,主流的芯片組如:VIA KT/PX 系列和SiS 746/648都沒有雙通道能力,因此它們理論上是比雙通道芯片組慢的。畢竟在相同的總線速度下,總線的傳輸能力越大,可以傳輸的數量越多。DDR SDRAM工作於64位總線,增加了一個記憶體控制器後,就等於128位總線。如果只使用單獨的記憶體控制器,性能就會大受限制,此話怎講?
   讓我們來看看P4架構,它使用四倍泵總線,設計類似DDR,除了上升、下降沿同時傳輸信號外,還作了進一步改進,把1.5電壓信號分為兩級,第一級是0-0.7V,第二級是0.7-1.5V,那麼,可以傳輸的資料量就變為了四倍。在使用i845或僅插入單通道記憶體的i865/875系統上,FSB會傳輸過多的資料給記憶體控制器,記憶體控制器無法處理,必須花時間來等待,降低了工作效率。
   大家稍微明白了一點吧,可是此理論並不適用於所有的系統,在Athlon XP系統上,情況卻恰恰相反。因為Athlon只使用了雙通道總線,總線傳輸的資料量沒有這麼大,第二個記憶體通道的用處相對於小一些,這時,記憶體的反應時間就變得很重要了。

  三、反應時間
   從上文我們可以看出,增加帶寬並不是一件難事,只要增加記憶體通道和總線寬度即可,讓每個時鐘傳輸更多的資料,或者,提高資料傳輸的速度,同樣能夠增加帶寬。反應時間就沒那麼簡單了,它指的是記憶體給出命令和命令實際執行之間的時間,誰都知道反應時間越小越好,然而,在記憶體的讀/寫過程中,許多因素都會讓反應時間增加。
   首先,FSB與記憶體控制器不是執行在同一速度(1:1)上,任何信號的傳輸,都會出現等待同步的情況。比如設置為5:4這個常用的比率,FSB經過5個週期,記憶體才經過4個週期,這意味著,總線必須經過5個時鐘週期才能夠互相交換訊息。如果一個命令從CPU發到記憶體請求資料,那麼,要等到信號匹配,至少要等待4個時鐘週期,見下圖:

-----*****-----*****-----*****(總線頻率)
----****----****----****(記憶體頻率)

  一般情況下,記憶體與總線同步,可以獲得更佳性能,這也是高性能記憶體,都需要超FSB頻率使用,至少達到記憶體頻率同級,才能發揮更佳性能的原因。

  第二,記憶體操作本身也需要花費許多反應時間。當記憶體控制器發出某個地址的請求時,先發送一個啟動(ACTIVE)命令,把對應的資料單元從「預充電」狀態變為「啟動」狀態,在BIOS中,可以調節tRP參數來控制這個時間,通常花費2、3或4個週期。
   接著,是tRCD(Row to Cas Delay,行地址到列地址控制器延遲時間)操作,這是發送行地址裡面的內容到記憶體緩衝區必須佔用的時間,通常有2、3或4個週期可選。
   然後,就是我們很熟悉的tCL,俗稱CAS(Column Address Strobe,列地址控制器)反應時間,即把指定列地址單元的內容發出所需要的時間,通常有2、2.5或3個週期可選。tCL對於總線突然的大量資料傳輸(突發操作)很重要,如果下一次的記憶體讀/寫在同一行中,tCL就決定了一個單元移到另一個單元所需的時間。在多重連續尋址時,常常都會出現超長資料串傳輸,短CAS的優勢盡顯。
   假如請求的是行地址,那麼,就要求到tRL,俗稱tRAS(Row Address Strobe,行地址控制器)反應時間,通常有5、6、7或8個週期可選。
   總的來說,每次讀/寫存取,大約要花費12個NOPs(No OPeration,無操作)時鐘週期來等待資料的發送,越複雜的操作,所需的時間越長。


tRP、tRCD、tCL各用了2個時鐘,tRAS用了5個,突發傳輸用了8個
http://www.veryol.com/uploadfiles/image/10218/TXT-200478155955580.gif

   也許上面的理論讓你頭暈腦漲,不過,看看它的發展你就會知道縮短反應時間有多難。在過去10年中,反應時間僅從120ns(納秒)提升到50ns,而帶寬只用了5年時間就從PC133(1GB/秒帶寬)提升到PC4000(8GB/秒)帶寬。為何這麼難?因為縮短反應時間有可能會影響穩定性,不能隨時所欲地想短就短,所以當英特爾在i875加入PAT(Performance Acceleration Technology,性能加速技術)時,對縮短反應時間作出了傑出貢獻,從而贏得了滿堂喝彩。儘管i865也可以用升級BIOS的方法來實現PAT,但它沒有足夠快的硅圓片基礎支持,到頭來只會導致穩定性不足。

   四、分頻器
   分頻器主要作用是讓記憶體工作在與FSB不同的頻率上,超頻時,我們會發現CPU和FSB的頻率總是高於記憶體,利用分頻器可以用速度較慢的記憶體來搭配高速CPU。如把P4超到250MHz FSB,很少記憶體可達到此速度,利用5:4分頻器,就能讓PC3200/DDR400記憶體順利工作,即使記憶體與FSB不同步對性能有影響,仍能提升整體的傳輸速度。
   理想總是美好的,事實總是殘酷的,在實際使用中,我們往往發現插入雙通道記憶體時,分頻沒有那麼順利。許多i875主板都有挑記憶體的毛病,就算是高性能的記憶體,也不保證肯定能用5:4或3:2分頻器。特別是插滿記憶體槽的時候,不相容現象顯得日益嚴重。若是你遇到不能啟動的情況,也許換個品牌或型號的記憶體即可解決。同時,當出現這類故障時,不妨升級一下主板的BIOS,也許會有意外驚喜。
   在預設情況下,BIOS會先讀取記憶體條上SPD(Serial Presence Detect,連續存在檢測裝置)模塊的訊息,以最長反應時間為準。假如系統穩定的話,可以適當縮短反應時間,以獲得更佳性能。

  總結
   希望本文能夠解答大家對於雙通道記憶體帶寬和反應時間的疑惑。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
向 psac 送花的會員:
ambilelexia (2012-12-08)
感謝您發表一篇好文章