- 分享
- 0
- 人气
- 40
- 主题
- 188
- 帖子
- 19265
- UID
- 21820
- 积分
- 17686
- 阅读权限
- 110
- 注册时间
- 2005-11-26
- 最后登录
- 2017-3-18
- 在线时间
- 13982 小时
|
转载自:bbs.ocer.net
作者:Onepagebook (狂少)
因为赏金制度实行了那么久,大家还没有转载到一片精华文章,本版现在需要的就是这类的文章,所以才发出来,大家就快去寻找吧
==================================================
我想大家都在絞盡腦汁發掘電腦的效能,那這個所謂的效能是啥呢?也就是記憶體頻寬對整個系統從啟動到關機的一些重要作用,它關係到系統整體速度。
大家在設定這些memory timings時,先以低總時脈(高倍頻低外頻)來熟練一切,其效能也許比一味追求高記憶體時脈還要好。
選購記憶體時,大家也都知道,相同頻率下所謂的延遲參數(time of delay value)越低的記憶體其整體寬也會隨之增加,也就是要儘量選CAS/tRCD/tRPD/tRAS參數值低的記憶體。舉個例子,如果系統FSB為 400MHz,你需要搭配使用PC3200規格的DDR記憶體,理想的CAS值是2; 這是在DDRI時代大家都知道嚕。
DDR2時代如果要把系統FSB超頻到500MHz,同步的情況下則需要DDRII 1000的記憶體。當大家選購高頻率的記憶體時,應該會發現其CAS延遲通常都比較高,DDRI是CAS 2.5或者3; DDR2是 CAS 4 or 5是比較一般的。然而CAS是最敏感的記憶體參數,CAS值從5降低到4,雖然只有1/5的數值比例(數率),但另一方面,如果這種情況發生在一個fsb 為500MHz; CPU : RAM為1:1的系統上,你的系統效能會提升約20%之多!
所以我們在行有餘力之後,如果你能知道如何去把記憶體的效能搾出來,是真的能提升系統效能的.這樣做,並不是只是為求縮短super pi的運算時間,super pi的運算只是一種驗證,就是對系統最基本的效能提升做驗證.
以下狂少將挑一些重要參數來先做解說,這些都是很重要的參數.一直都會出現的參數
.但是老實說,我敢說一句,這些為什麼都沒有人想說把他寫成中文呢?因為是真的很難去把他翻譯的很貼切.那我就做做看.OK..首先,要了解那些煩人的參數,你一定要知道,控制記憶體的總源頭--->記憶體控製器
記憶體控製器:
記憶體控製器是主機板...或也可說是整部電腦上最重要的組成設備之一。它的功能是監督控制資料從記憶體載入/輸出(input & output); 如果情況需要,還可以對資料的完整性進行檢測(Data integration verification).
晶片組決定了支援的處理器類型,通常包含幾組控製器, 分別控制著處理器和其他元件的資料交換. 而記憶體控製器是晶片組很一般的一部分,它建立了從記憶體到CPU的資料.如果是支援雙通道模式的晶片組,就會包含兩組記憶體控製器,最另人覺得不同的是, AMD的CPU,內部整合了記憶體控製器; 這是非常創新而且是大膽的設計.大好大壞,好的是如果user今天買到好記憶體控制器的AMD CPU,那真的是要風得風要雨得雨.就算買到不怎樣的ram, 馬上都變黃金ram.反之,如果是AMD內建記憶體是勞賽的...就算你有好ram,也是阿婆生子...一字難.
記憶體參數規格:
記憶體的時序參數一般簡寫為3/3/3/8/1T的格式,分別代表CAS/tRCD/tRP/tRAS/CMD的值. 3/3/3/8/1T中最後兩個參數,也就是tRAS和CMD(Command縮寫), 是其中較複雜的參數。目前市場上對這兩個參數的認識有一些錯誤,因為部分記憶體廠商直接用它們來代表記憶體效能,這是有點不對的
CMD Rate正解:
Command Rate是翻譯為"首要指令之延遲",這個參數的含義是選定Bank後多少時間可以發出具體的找尋位址之行(ROW)啟動指令,服務機構是時鐘脈週期。片選是指對行(此處是指Row,後續會有"列")具體Bank的選項(通過DIMM上CS片選的信號來進行);聽起來很複雜對吧?但是大家可以用反面來思考!!如果系統指使用一條單面記憶體,那就不存在片選的問題了,因為此時只有一個具體的Bank數。
那用更通俗的說法,CMD Rate是一種晶片組意義上的延遲,它並不全由記憶體決定哦, 是由晶片組把虛擬位址解釋為物理位址;所以系統的虛擬記憶體設定是很中要的,在現在這種記憶體早已非10年前記憶體大小的狀況下,我們通常都是設1gb, 也就是1024mb~1024mb為衡定vm(virtual memory,虛擬記憶體);一般來說高密度大容量的系統記憶體的物理位址範圍更大,其CMD延遲肯定比只有單條記憶體的系統大,即使是雙面單條. Intel對CMD這個問題就非常敏感, 因此部分晶片組的記憶體通道被限制到四個Bank。這樣就可以比較放心地把CMD Rate限定在1T,而不理用戶最多能安裝多少容量的記憶體. 但是在晶片組與記憶體時脈與容量相對在提高的今日,記憶體同時也邁密度越來越高的時代,1t CMD幾乎已經成為歷史名詞嚕.
不少廠商一直強調他家CMD Rate可以設為1T實際上多少也算是一種誤導性廣告,因為所有的無緩衝(unbuffered)記憶體都應具有1T的CMD Rate,最多支持四個Bank每條記憶體通道,當然也不排除晶片組的侷限性。
**********************************************************************
Part II
tRAS, tCL, tRCD and tRP
要調好系統的記憶體效能就得先透徹了解這4大金剛在搞啥.這4個參數是到目前為止大家一定會在任何晶片組,或說是任何不同平台的主機板bios內看到. (只要你是玩超頻的啦),其它細部副屬參數則是大多衍生自此.所以一定要詳加了解.
先從tRAS講起
**注意, 記憶體位址都會有"行"跟"列";所以狂少這一系列文章都會先以"行"來做說明.所以,先解釋兩個縮寫: RAS 跟CAS
RAS=Row Address Strobe(或是Select)(行的位址選通脈衝)
CAS=Column Address Strobe(或是Select)(列位址選通脈衝)
tRAS:
tRAS在記憶體規範的解釋是Active to Precharge Delay,"行"的有效至行的預先充電時間。
整體上是指memory從收到一個請求後到啟始化RAS真正開始接受資料的間隔時間
這個參數看上去似乎很重要,其實設定數據上差不了多少但是也有一定高效能的範圍來作設定。tRAS指令是再去執行新資料與指令的程序(例如開啟一個新的程序)
以英文來說就很容易了解:
Active to Precharge Delay (tRAS): After an “Active” command is issued, another “Precharge” command cannot be issued until tRAS has been elapsed. So this parameter limits when the memory can start reading (or writing) a different row.
接下來幾個記憶體參數分別為CAS延遲,tRCD,以及tRP,這些參數又是如何來影響系統效能的呢?
CAS:
CAS之意為列的位址選通脈衝(Column Address Strobe 或者Column Address Select),CAS控制著從收到指令到執行指令的間隔時間,通常在DDRI為2,2.5,3這個幾個週期; DDR2則為 3, 4, 5.
在整個記憶體矩陣中(就是行加上列的位址),因為CAS是按列的位址來管理實體位址,因此在穩定的基礎上,這個非常重要的參數值就不是讓大家說設多少多沒差的,當然是越低效能會越高,但相對的,穩定性就會減低,原因就要看看CAS的程序;)
程序是這樣的,在記憶體陣列中分為行和列,當指令請求到達記憶體後,首先被觸發的是tRAS (Active to Precharge Delay),資料被請求執行後需預先充電,一旦tRAS被啟動後,RAS才開始在一半的物理位址中找尋位址,要被執行的行位被選定後tRCD啟始化,最後才通過CAS找到精確的位址。整個程序也就是先跑"行尋址"再跑"列尋址"也就是從RAS開始到CAS結束.
那比較簡單的說法是: CAS的時間..就是等於...舉例:
從A點到B點,如果是100公尺,兩個人下去跑
甲所需的時間是10.0秒;乙所需的時間是10.5秒
再假設,甲和乙都是機器人..那如果我們所設定的不是兩個都跑單趟
那是不是甲的第10.1秒及乙的第10.6秒才是第2段跑的開始.
**請不必理會方向性.
所以這就是Cas latency的基本概念;)
**談到CAS Latency,各位知道ram的delay時間長度如何計算嗎?;)
很簡單.我們舉個例子.
假設我手上有一對號稱DDR800 CL3的DDR2 (其實不管是I or II算法都一樣)
那我聽人家說...喔..800的IC是-2.5ns...
好請注意,拜託一下,看了狂少文章之後,請不要再說是"-2.5ns",那是廠商打印時為了區分序號和IC時效所增加的一橫..
ok...怎麼算?
DDR 800...其實是跑400對吧?因為是Double Data Rate; 所以我們在算的時候是以真實的頻率去計算.既然是頻率..那還不簡單...知道頻率,那時間就是頻率分之1的數值對吧?所以公式就出現啦:
T= 1/F.....F當然就是Frequency..
那ddr800...是跑400mhz...那是1/400嗎? 錯!!...那個M是瞎咪啦?
M=mega=10的6次方..也就是要在400後面再加6個0
所以咧. 1/400000000 等於多少?---->0.0000000025
那為求方便起見,我們都習慣說是2.5x10的負9次方..
在數學上就是所謂的nano,所以一般通稱2.5奈米IC就是DDR800的IC速度
2.5 nano seconds知道後,還要知道啥?...我怎知道狂少說ddr800 cl3比cl4好?
攪不好他亂吹..
好,如果用說的不算,那我們用科學的方法來驗證!!
CL既然是記憶體最主要的延遲數據,那到底在該記憶體的規格上是全部延遲多少?
好
如果我們把速度都定好都是ddr800(400mhz real), 一個是CL3,一個是CL4,再加一個CL5...
那就是:
公式: 總延遲時間= CL delay time (Value) x period of each clock cycle
DDR800 CL3= 3 x 2.5ns = 7.5ns
DDR800 CL4= 4 x 2.5ns = 10 ns
DDR800 CL5= 5 x 2.5ns = 12.5ns
也就是說,這3種ram是隔2.5ns的效能差距...800 CL3和800 CL5以不超頻跑同速來說
效能上已經差到50%左右嚕.這樣會算了吧.;)
tRCD:
根據標準tRCD是指 timing of RAS to CAS Delay(RAS至CAS延遲);那我們都知道Ras是代表行的位址,CAS是列. 那在這兩個參數去尋找特定的位址點時,所要花費的時間延遲,就是tRCD, tRCD重要性通常是僅次於Cas Latency.所以大家會看到
xxx牌ram標榜..800 3-4-3-x, 或是1000 4-5-4-15....第2位數就是TRCD!
再以一般通俗講法就是:
tRCD是RAS啟動去尋找特定位址所需時間和CAS啟動去尋找特定位址所需時間的....時間差
那當然啊,時間越短就是效能越高..
請看圖
哈,有趣的來了,大家都知道, memory脫離不了讀與寫;)
從上圖來看,trcd也是等於整個memory從啟動到讀...這動作所需的延遲時間...
所以tRCD也可以稱為"TRCRD". 那大家有可能會產生疑問...mmm,狂少說,讀和寫嘛..
那有沒有TRCWD?...有...而且還是在最受歡迎的Intel P965晶片組上,而且參數設置可以比TRCD緊很多. 不信大家打開memset看看第3個參數是啥?所以像這個TRCWD就是在此出現嚕.
tRP:
tRP指RAS Precharge Time,就是行的預先充電時間。也就是記憶體從結束一個行的定位結束到重新開始同樣動作的間隔時間,所以參數設置上比較沒那麼吃緊.舉例來說如果你從事的工作需要大量的資料變化; 例如3D繪圖,此時一個程序就需要使用很多的行來存儲!! tRP的參數值越低表示在不同行切換的速度會越快,當然也會促始讀寫動作加快,那此時是不是又產生兩個副參數?那就是 TWTP 和TRTP;一樣的道理, write一定比Read花久一點時間,所以在設置上; twtp一定要比trtp來得鬆,大家也可以參考memset在965晶片上的設定!!都在subtimings中可以找到. TRP的圖解如下
Part II 總結:
或許你看完以上的解說後還是有一些不懂,其實大家也沒必要對整個記憶體的虛擬動作與過程瞭解的非常透徹,這個並不影響你選什麼規格的記憶體,以及如何在BIOS中最佳化你的記憶體參數. 最基本的,你應該知道的是系統至少需要搭配能滿足CPU及頻寬的記憶體,然後CAS Latency越低越好.建議大家升級時,多考慮高頻一點的ram,這樣或許你將來升級CPU時可以節省一筆記憶體費用,高頻率的記憶體都是向下相容的!!
一般而言,想要把超頻做好,記憶體是很重要的一環,不是都靠運氣就會有好超的東西上門;)超頻有85%的難題全部是卡在Ram的瓶頸.所以當開始超新板子時一定是先把CPU及RAM其中一環定好,才不會導至首尾不能兼顧!!
Part III,狂少將會以實例來解釋這些所謂的理論部分. 至少懂這些之後,大家以後看測試圖,一定是有看就有懂.
狂少 |
|