




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
DDR內(nèi)存的終極優(yōu)化(轉(zhuǎn)載)2004年的春天,ZOL準(zhǔn)時(shí)拉開了DDR400內(nèi)存專題的序幕。在我們逐步向您展示其魅力之前,請先來了解一下優(yōu)化內(nèi)存的相關(guān)知識。也許您已經(jīng)有所了解,但絕不是全部。希望這些內(nèi)容對您今后的應(yīng)用有所幫助。正文:有關(guān)內(nèi)存優(yōu)化的文章其實(shí)已經(jīng)有很多了,可能大家都沒覺得沒什么了不起的,不就是那幾個(gè)參數(shù)嗎?這還用講?但是,我相信90%以上的人并沒有完全真正理解那些時(shí)序參數(shù)的含義。我敢說,目前很多的優(yōu)化原則都是有問題的,甚至有誤導(dǎo)的傾向!本人在此之前曾有一篇專門探討內(nèi)存原理與相關(guān)參數(shù)的大型專題(文章發(fā)表于《電腦高手》),其中所講到的一些原理其實(shí)對優(yōu)化就有很大的啟發(fā)意義。的確,雖然在BIOS中就是那么幾個(gè)可以調(diào)節(jié)的內(nèi)存時(shí)序參數(shù),但如果不正確了解它們的意思,并不是每個(gè)人都知道如何正確的調(diào)節(jié)。有人可能會(huì)說,這有什么難的,與時(shí)序相關(guān)的時(shí)序參數(shù),肯定都是越小越好呀,錯(cuò)!這就是我今天要著重講到的問題。1、認(rèn)識內(nèi)存相關(guān)工作流程與參數(shù)首先,我們還是先了解一下內(nèi)存的大體結(jié)構(gòu)工作流程,這樣會(huì)比較容量理解這些參數(shù)在其中所起到的作用。這部分的講述以SDRAM為例,因?yàn)闀r(shí)序圖看起來會(huì)簡單一些,但相關(guān)概念與DDRSDRAM的基本相同。SDRAM的內(nèi)部是一個(gè)存儲陣列,將數(shù)據(jù)“填”進(jìn)去,你可以它想象成一張表格。和表格的檢索原理一樣,先指定一個(gè)行(Row),再指定一個(gè)列(Column),我們就可以準(zhǔn)確地找到所需要的單元格,這就是內(nèi)存芯片尋址的基本原理。對于內(nèi)存,這個(gè)單元格可稱為存儲單元,那么這個(gè)表格(存儲陣列)叫什么呢?它就是邏輯Bank(LogicalBank,下文簡稱L-Bank)。SDRAM內(nèi)部L-Bank示意圖,這是一個(gè)8X8的陣列,B代表L-Bank地址編號,C代表列地址編號,R代表行地址編號。如果尋址命令是B1、R2、C6,就能確定地址是圖中紅格的位置目前的內(nèi)存芯片基本上都是4個(gè)L-Bank設(shè)計(jì),也就是說一共有4個(gè)這樣的“表格”。尋址的流程也就是——先指定L-Bank地址,再指定行地址,然后指列地址最終的確尋址單元。在實(shí)際工作中,L-Bank地址與相應(yīng)的行地址是同時(shí)發(fā)出的,此時(shí)這個(gè)命令稱之為“行有效”或“行激活”(RowActive)。在此之后,將發(fā)送列地址尋址命令與具體的操作命令(是讀還是寫),這兩個(gè)命令也是同時(shí)發(fā)出的,所以一般都會(huì)以“讀/寫命令”來表示列尋址。根據(jù)相關(guān)的標(biāo)準(zhǔn),從行有效到讀/寫命令發(fā)出之間的間隔被定義為tRCD,即RAStoCASDelay(RAS至CAS延遲,RAS就是行地址選通脈沖,CAS就是列地址選通脈沖),大家也可以理解為行選通周期。tRCD是SDRAM的一個(gè)重要時(shí)序參數(shù),可以通過主板BIOS經(jīng)過北橋芯片進(jìn)行調(diào)整。廣義的tRCD以時(shí)鐘周期(tCK,ClockTime)數(shù)為單位,比如tRCD=2,就代表延遲周期為兩個(gè)時(shí)鐘周期,具體到確切的時(shí)間,則要根據(jù)時(shí)鐘頻率而定,對于PC100SDRAM(時(shí)鐘頻率等同于DDR-200),tRCD=2,代表20ns的延遲,對于PC133(時(shí)鐘頻率等于DDR-266)則為15ns。圖中顯示的是tRCD=3接下來,相關(guān)的列地址被選中之后,將會(huì)觸發(fā)數(shù)據(jù)傳輸,但從存儲單元中輸出到真正出現(xiàn)在內(nèi)存芯片的I/O接口之間還需要一定的時(shí)間(數(shù)據(jù)觸發(fā)本身就有延遲,而且還需要進(jìn)行信號放大),這段時(shí)間就是非常著名的CL(CASLatency,列地址脈沖選通潛伏期)。CL的數(shù)值與tRCD一樣,以時(shí)鐘周期數(shù)表示。如DDR-400,時(shí)鐘頻率為200MHz,時(shí)鐘周期為5ns,那么CL=2就意味著10ns的潛伏期。不過,CL只是針對讀取操作,對于SDRAM,寫入是沒有潛伏期的,對于DDRSDRAM,寫入潛伏期在0.75至1.25個(gè)時(shí)針周期之間。圖中標(biāo)準(zhǔn)CL=2,tAC是有關(guān)內(nèi)部信號處理的周期,可以不用關(guān)心目前內(nèi)存的讀寫基本都是連續(xù)的,因?yàn)榕cCPU交換的數(shù)據(jù)量以一個(gè)CacheLine(即CPU內(nèi)Cache的存儲單位)的容量為準(zhǔn),一般為64字節(jié)。而現(xiàn)有的P-Bank位寬為8字節(jié),那么就要一次連續(xù)傳輸8次,這就涉及到我們也經(jīng)常能遇到的突發(fā)傳輸?shù)母拍?。突發(fā)(Burst)是指在同一行中相鄰的存儲單元連續(xù)進(jìn)行數(shù)據(jù)傳輸?shù)姆绞剑B續(xù)傳輸?shù)闹芷跀?shù)就是突發(fā)長度(BurstLengths,簡稱BL)。在進(jìn)行突發(fā)傳輸時(shí),只要指定起始列地址與突發(fā)長度,內(nèi)存就會(huì)依次地自動(dòng)對后面相應(yīng)數(shù)量的存儲單元進(jìn)行讀/寫操作而不再需要控制器連續(xù)地提供列地址(SDRAM與DDRSDRAM的突發(fā)傳輸對列尋址的操作數(shù)量有所不同,在此不再細(xì)說)。這樣,除了第一筆數(shù)據(jù)的傳輸需要若干個(gè)周期(主要是之前的延遲,一般的是tRCD+CL)外,其后每個(gè)數(shù)據(jù)只需一個(gè)周期的即可獲得。突發(fā)連續(xù)讀取模式:只要指定起始列地址與突發(fā)長度,后續(xù)的尋址與數(shù)據(jù)的讀取自動(dòng)進(jìn)行,而只要控制好兩段突發(fā)讀取命令的間隔周期(與BL相同)即可做到連續(xù)的突發(fā)傳輸。在數(shù)據(jù)讀取完之后,為了騰出讀出放大器以供同一L-Bank內(nèi)其他行的尋址并傳輸數(shù)據(jù),內(nèi)存芯片將進(jìn)行預(yù)充電的操作來關(guān)閉當(dāng)前工作行。還是以上面那個(gè)L-Bank示意圖為例。當(dāng)前尋址的存儲單元是B1、R2、C6。如果接下來的尋址命令是B1、R2、C4,則不用預(yù)充電,因?yàn)樽x出放大器正在為這一行服務(wù)。但如果地址命令是B1、R4、C4,由于是同一L-Bank的不同行,那么就必須要先把R2關(guān)閉,才能對R4尋址。從開始關(guān)閉現(xiàn)有的工作行,到可以打開新的工作行之間的間隔就是tRP(RowPrechargecommandPeriod,行預(yù)充電有效周期),單位也是時(shí)鐘周期數(shù)。本圖為一個(gè)完整的從行尋址到行關(guān)閉的時(shí)序圖,圖中所表示的tRCD=2、CL=2、tRP=2從上圖中我們還發(fā)現(xiàn)了一個(gè)在DDRSDRAM時(shí)代經(jīng)常被人提起,也經(jīng)常會(huì)在BIOS中出現(xiàn)的參數(shù)——tRAS。tRAS在內(nèi)存規(guī)范中的解釋是ACTIVEtoPRECHARGEcommand,即從行有效命令發(fā)出至預(yù)充電命令發(fā)出之間的間隔。這也是本專題第一部分中所要重要談到的話題。在深入分析它之前,我們先了解一下哪些因素會(huì)影響到內(nèi)存的性能。在講完SDRAM的基本工作原理和主要操作之后,我們現(xiàn)在要重要分析一下SDRAM的時(shí)序與性能之間的關(guān)系,它不再局限于芯片本身,而是要從整體的內(nèi)存系統(tǒng)去分析。這也是廣大DIYer所關(guān)心的話題。比如CL值對性能的影響有多大幾乎是每個(gè)內(nèi)存論壇都會(huì)有討論,今天我們就詳細(xì)探討一下。這里需要強(qiáng)調(diào)一點(diǎn),對于內(nèi)存系統(tǒng)整體而言,一次內(nèi)存訪問就是對一個(gè)頁(Page)的訪問。由于在P-Bank中,每個(gè)芯片的尋址都是一樣的,所以可以將頁訪問“濃縮”等效為對每芯片中指定行的訪問,這樣可能比較好理解。但為了與官方標(biāo)準(zhǔn)統(tǒng)一,在下文中會(huì)經(jīng)常用頁來描述相關(guān)的內(nèi)容,請讀者注意理解??赡芎芏嗳诉€不清楚頁的概念,在這里有必要先講一講。從狹義上講,內(nèi)存芯片芯片中每個(gè)L-Bank中的行就是頁,即一行為一頁。但從廣義上說,頁是從整體角度講的,這個(gè)整體就是內(nèi)存子系統(tǒng)。對于內(nèi)存模組,與之進(jìn)行數(shù)據(jù)交換的單位就是P-Bank的位寬。由于目前還沒有一種內(nèi)存芯片是64bit位寬的,所以就必須要用多個(gè)芯片的位寬來集成一個(gè)P-Bank。如我們現(xiàn)在常見的內(nèi)存芯片是8bit位寬的,那么就需要8顆芯片組成一個(gè)P-Bank才能使系統(tǒng)正常工作。而CPU對內(nèi)存的尋址,一次就是一個(gè)P-Bank,P-Bank內(nèi)的所有芯片同時(shí)工作,這樣對P-Bank內(nèi)所有的芯片的尋址都是相同的。比如尋址指令是B1、C2、R6,那么該P(yáng)-Bnak內(nèi)的芯片的工作狀態(tài)都是打開B1的L-Bank的第C2行。好了,所謂廣義上的頁就是指P-Bank所包括的芯片內(nèi)相同L-Bank內(nèi)的相同工作行的總集合。頁容量對于內(nèi)存子系統(tǒng)而言是一個(gè)很重要的指標(biāo)。這個(gè)參數(shù)取決于芯片的容量與位寬的設(shè)計(jì)。由于與本文的關(guān)系不大,就不具體舉例了。早期Intel845芯片組MCH的資料:它可以支持2、4、8、16KB的頁容量總之,我們要知道,由于尋址對同一L-Bank內(nèi)行地址的單一性,所以一個(gè)L-Bank在同一時(shí)間只能打開一個(gè)頁面,一個(gè)具有4個(gè)L-Bank的內(nèi)存芯片,可以打開4個(gè)頁面。這樣,以這種芯片組成的P-Bank,也就最后具備了4個(gè)頁面,這是目前DDRSDRAM內(nèi)存模中每個(gè)P-Bank的頁面最大值。1、影響性能的主要時(shí)序參數(shù)在講完內(nèi)存的基本操作流程與相關(guān)的tRP、tRCD、CL、BL之后,我們就開始深入分析這些參數(shù)對內(nèi)存性能的影響。所謂的影響性能是并不是指SDRAM的帶寬,頻率與位寬固定后,帶寬也就不可更改了。但這是理想的情況,在內(nèi)存的工作周期內(nèi),不可能總處于數(shù)據(jù)傳輸?shù)臓顟B(tài),因?yàn)橐忻睢ぶ返缺匾倪^程。但這些操作占用的時(shí)間越短,內(nèi)存工作的效率越高,性能也就越好。非數(shù)據(jù)傳輸時(shí)間的主要組成部分就是各種延遲與潛伏期。通過上文的講述,大家應(yīng)該很明顯看出有三個(gè)參數(shù)對內(nèi)存的性能影響至關(guān)重要,它們是tRCD、CL和tRP。按照規(guī)定,每條正規(guī)的內(nèi)存模組都應(yīng)該在標(biāo)識上注明這三個(gè)參數(shù)值,可見它們對性能的敏感性。以內(nèi)存最主要的操作——讀取為例。tRCD決定了行尋址(有效)至列尋址(讀/寫命令)之間的間隔,CL決定了列尋址到數(shù)據(jù)進(jìn)行真正被讀取所花費(fèi)的時(shí)間,tRP則決定了相同L-Bank中不同工作行轉(zhuǎn)換的速度?,F(xiàn)在可以想象一下對某一頁面進(jìn)行讀取時(shí)可能遇到的幾種情況(分析寫入操作時(shí)不用考慮CL即可):1、要尋址的行與L-Bank是空閑的。也就是說該L-Bank的所有行是關(guān)閉的,此時(shí)可直接發(fā)送行有效命令,數(shù)據(jù)讀取前的總耗時(shí)為tRCD+CL,這種情況我們稱之為頁命中(PH,PageHit)。2、要尋址的行正好是現(xiàn)有的工作行,也就是說要尋址的行已經(jīng)處于選通有效狀態(tài),此時(shí)可直接發(fā)送列尋址命令,數(shù)據(jù)讀取前的總耗時(shí)僅為CL,這就是所謂的背靠背(BacktoBack)尋址,我們稱之為頁快速命中(PFH,PageFastHit)或頁直接命中(PDH,PageDirectHit)。3、要尋址的行所在的L-Bank中已經(jīng)有一個(gè)行處于活動(dòng)狀態(tài)(未關(guān)閉),這種現(xiàn)象就被稱作尋址沖突,此時(shí)就必須要進(jìn)行預(yù)充電來關(guān)閉工作行,再對新行發(fā)送行有效命令。結(jié)果,總耗時(shí)就是tRP+tRCD+CL,這種情況我們稱之為頁錯(cuò)失(PM,PageMiss)。顯然,PFH是最理想的尋址情況,PM則是最糟糕的尋址情況。上述三種情況發(fā)生的機(jī)率各自簡稱為PHR——PHRate、PFHR——PFHRate、PMR——PMRate。因此,系統(tǒng)設(shè)計(jì)人員(包括內(nèi)存與北橋芯片)都盡量想提高PHR與PFHR,同時(shí)減少PMR,以達(dá)到提高內(nèi)存工作效率的目的。二、增加PHR的方法顯然,這與預(yù)充電管理策略有著直接的關(guān)系,目前有兩種方法來盡量提高PHR。自動(dòng)預(yù)充電技術(shù)就是其中之一,它自動(dòng)的在每次行操作之后進(jìn)行預(yù)充電,從而減少了日后對同一L-Bank不同行尋址時(shí)發(fā)生沖突的可能性。但是,如果要在當(dāng)前行工作完成后馬上打開同一L-Bank的另一行工作時(shí),仍然存在tRP的延遲。怎么辦?此時(shí)就需要L-Bank交錯(cuò)預(yù)充電了。早期非常令人關(guān)注的VIA4路交錯(cuò)式內(nèi)存控制,就是在一個(gè)L-Bank工作時(shí),對另一個(gè)L-Bank進(jìn)行預(yù)充電或者尋址(如果要尋址的L-Bank是關(guān)閉的)。這樣,預(yù)充電與數(shù)據(jù)的傳輸交錯(cuò)執(zhí)行,當(dāng)訪問下一個(gè)L-Bank時(shí),tRP已過,就可以直接進(jìn)入行有效狀態(tài)了,如果配合得理想,那么就可以實(shí)現(xiàn)無間隔的L-Bank交錯(cuò)讀/寫(一般的,交錯(cuò)操作都會(huì)用到自動(dòng)預(yù)充電),這是比PFH更好的情況,但它只出現(xiàn)在后續(xù)的數(shù)據(jù)不在同一頁面的時(shí)時(shí)候。當(dāng)時(shí)VIA聲稱可以跨P-Bank進(jìn)行16路內(nèi)存交錯(cuò),并以LRU(LeastRecentlyUsed,近期最少使用)算法進(jìn)行交錯(cuò)預(yù)充電/尋址管理。L-Bank交錯(cuò)自動(dòng)預(yù)充電/讀取時(shí)序圖:L-Bank0與L-Bank3實(shí)現(xiàn)了無間隔交錯(cuò)讀取,避免了tRP與tRCD對性能的影響,是最理想的狀態(tài)三、增加PFHR的方法無論是自動(dòng)預(yù)充電還是交錯(cuò)工作的方法都無法消除同行(頁面)尋址時(shí)tRCD所帶來的延遲。要解決這個(gè)問題,就要盡量讓一個(gè)工作行在進(jìn)行預(yù)充電前盡可能多的接收工作命令,以達(dá)到背靠背的效果,此時(shí)就只剩下CL所造成的讀取延遲了(寫入時(shí)沒有延遲)。如何做到這一點(diǎn)呢?這就是北橋芯片的責(zé)任了。現(xiàn)在我們就又接觸到tRAS這個(gè)參數(shù),在BIOS中所設(shè)置的tRAS是指行有效至預(yù)充電的最短周期,在內(nèi)存規(guī)范中定義為tRAS(min),過了這個(gè)周期后就可以發(fā)出預(yù)充電指令。對于SDRAM和DDRSDRAM而言,一般是預(yù)充電命令至少要在行有效命令5個(gè)時(shí)鐘周期之后發(fā)出,最長間隔視芯片而異(目前的DDRSDRAM標(biāo)準(zhǔn)一般基本在70000ns左右),否則工作行的數(shù)據(jù)將有丟失的危險(xiǎn)。那么這也就意味著一個(gè)工作行從有效(選通)開始,可以有70000ns的持續(xù)工作時(shí)間而不用進(jìn)行預(yù)充電。顯然,只要北橋芯片不發(fā)出預(yù)充電(包括允許自動(dòng)預(yù)充電)的命令,行打開的狀態(tài)就會(huì)一直保持。在此期間的對該行的任何讀寫操作也就不會(huì)有tRCD的延遲??梢?,如果北橋芯片在能同時(shí)打開的行(頁)越多,那么PFHR也就越大。需要強(qiáng)調(diào)的是,這里的同時(shí)打開不是指對多行同時(shí)尋址(那是不可能的),而是指多行同時(shí)處于選通狀態(tài)。我們可以看到一些SDRAM芯片組的資料中會(huì)指出可以同時(shí)打開多少個(gè)頁的指標(biāo),這可以說是決定其內(nèi)存性能的一個(gè)重要因素。Intel845芯片組MCH的資料:其中表明它可以支持24個(gè)頁面同時(shí)處于打開狀態(tài)但是,可同時(shí)打開的頁數(shù)也是有限制的。從SDRAM的尋址原理講,同一L-Bank中不可能有兩個(gè)打開的行(讀出放大器只能為一行服務(wù)),這就限制了可同時(shí)打開的頁面總數(shù)。以SDRAM有4個(gè)L-Bank,北橋最多支持8個(gè)P-Bank(4條DIMM)為例,理論上最多只能有32個(gè)頁面能同時(shí)處于打開的狀態(tài)。而如果只有一個(gè)P-Bank,那么就只剩下4個(gè)頁面,因?yàn)橛袔讉€(gè)L-Bank才能有同時(shí)打開幾個(gè)行而互不干擾。Intel845的MHC雖然可以支持24個(gè)打開的頁面,那也是指6個(gè)P-Bank的情況下(845MCH只支持6個(gè)P-Bank)。可見845已經(jīng)將同時(shí)打開頁數(shù)發(fā)揮到了極致。不過,同時(shí)打開頁數(shù)多了,也對存取策略提出了一定的要求。理論上,要盡量多地使用已打開的頁來保證最短的延遲周期,只有在數(shù)據(jù)不存在(讀取時(shí))或頁存滿了(寫入時(shí))再考慮打開新的指定頁,這也就是變向的連續(xù)讀/寫。而打開新頁時(shí)就必須要關(guān)閉一個(gè)打開的頁,如果此時(shí)打開的頁面已是北橋所支持的最大值但還不到理論極限的話(如果已經(jīng)達(dá)到極限,就關(guān)閉有沖突的L-Bank內(nèi)的頁面即可),就需要一個(gè)替換策略,一般都是用LRU算法來進(jìn)行,這與VIA的交錯(cuò)控制大同小異?;氐秸},雖然tRAS代表的是最小的行有效至預(yù)充電期限,但一般的,北橋芯片一般都會(huì)在這個(gè)期限后第一時(shí)間發(fā)出預(yù)充電指令(自動(dòng)預(yù)充電時(shí),會(huì)在tRAS之后自動(dòng)執(zhí)行預(yù)充電命令),只有在與其他操作相沖突時(shí)預(yù)充電操作才被延后(比如,DDRSDRAM標(biāo)準(zhǔn)中規(guī)定,在讀取命令發(fā)出后不能立即發(fā)出預(yù)充電指令)。因此,tRAS的長短一直是內(nèi)存優(yōu)化發(fā)燒友所爭論的話題,在最近一兩年,由于這個(gè)參數(shù)在BIOS選項(xiàng)中越來越普及,所以也逐漸被用戶所關(guān)注。其實(shí),在SDRAM時(shí)代就沒有對這個(gè)參數(shù)有刻意的設(shè)定,在DDRSDRAM的官方組織JEDEC的相關(guān)標(biāo)準(zhǔn)中,也沒有把其列為必須標(biāo)明的性能參數(shù)(CL、tRCD、tRP才是),tRAS應(yīng)該是某些主板廠商炒作出來的,并且在主板說明書上也注明越短越好。其實(shí),縮小tRAS的本意在于,盡量壓縮行打開狀態(tài)下的時(shí)間,以減少同L-Bank下對其他行進(jìn)行尋址時(shí)的沖突,從內(nèi)存的本身來講,這是完全正確的做法,符合內(nèi)存性能優(yōu)化的原則,但如果放到整體的內(nèi)存系統(tǒng)中,伴隨著主板芯片組內(nèi)存頁面控制管理能力的提升,這種做法可能就不見得是完全正確的,在下文中我們會(huì)繼續(xù)分析tRAS的不同長短設(shè)置對內(nèi)存性能所帶來的影響。四、BL長度對性能的影響從讀/寫之間的中斷操作我們又引出了BL(突發(fā)長度)對性能影響的話題。首先,BL的長短與其應(yīng)用的領(lǐng)域有著很大關(guān)系,下表就是目前三個(gè)主要的內(nèi)存應(yīng)用領(lǐng)域所使用的BL,這是廠商們經(jīng)過多年的實(shí)踐總結(jié)出來的。BL與相應(yīng)的工作領(lǐng)域BL越長,對于連續(xù)的大數(shù)據(jù)量傳輸很有好處,但是對零散的數(shù)據(jù),BL太長反而會(huì)造成總線周期的浪費(fèi),雖然能通過一些命令來進(jìn)行終止,便也占用了控制資源。以P-Bank位寬64bit為例,BL=4時(shí),一個(gè)突發(fā)操作能傳輸32字節(jié)的數(shù)據(jù),為了滿足CacheLine的容量需求,還得多發(fā)一次,如果是BL=8,一次就可以滿足需要,不用再次發(fā)出讀取指令。而對于2KB的數(shù)據(jù),BL=4的設(shè)置意味著要每隔4個(gè)周期發(fā)送新的列地址,并重復(fù)63次。而對于BL=256,一次突發(fā)就可完成,并且不需要中途再進(jìn)行控制,但如果僅傳輸64字節(jié),就需要額外的命令來中止BL=256的傳輸。而額外的命令越多,越占用內(nèi)存子系統(tǒng)的控制資源,從而降低總體的控制效率。從這可以看出BL對性能的影響因素,這也是為什么PC上的內(nèi)存子系統(tǒng)的BL一般為4或8的原因。但是不是8比4好,或者4比8好呢?并不能統(tǒng)一而論,這在下文會(huì)分析到。到此,大家應(yīng)該有一些優(yōu)化的眉目了吧。我們可以先做一下界定,任何情況下,只要數(shù)值越小或越大(單一方向),內(nèi)存的性能會(huì)越好的參數(shù)為絕對參數(shù),而數(shù)值越小或越大對性能的影響不固定的參數(shù)則為相對參數(shù)。那么,CL、tRCD、tRP顯然就是絕對參數(shù),任何情況下減少它們的周期絕對不會(huì)錯(cuò)。而且從上文的分析可以發(fā)現(xiàn),從重要性來論,優(yōu)先優(yōu)化的順序也是CL→tRCD→tRP,因?yàn)镃L的遇到的機(jī)會(huì)最多,tRCD其次,tRP如果頁面交錯(cuò)管理的好,大多不受影響。而BL、tRAS等則可以算是相對參數(shù)。也正是由于這些相對參數(shù)的存在,才使得內(nèi)存優(yōu)化不再那么簡單。好了,上面已經(jīng)講完基本的相關(guān)參數(shù)與原理,下面就結(jié)合實(shí)際來看看具體如何設(shè)置。目前,以Intel和NVIDIA為首的Intel與AMD平臺都進(jìn)入了雙通道時(shí)代,這也是今后的主要潮流。所以我們這次也是以雙方的雙通道平臺為試驗(yàn)平臺,分別是875P和nForce2。鑒于AMD64離我們還比較遠(yuǎn),因此我們沒有在AMD64的雙通道平臺上進(jìn)行測試。首先要講明,Intel865/875的雙通道與nForce2的雙通道不是一碼事。兩者目前還沒有可比性。簡而言之,865/875只用一個(gè)128bit位寬的內(nèi)存控制器控制兩個(gè)通道,這就意味著發(fā)給兩個(gè)通道的尋址指令是一模一樣的,從而也要求組成雙通道的內(nèi)存模組的容量、位寬設(shè)計(jì)完全一樣,因?yàn)椴煌粚挼男酒瑢ぶ分噶钜膊灰粯?,而一個(gè)內(nèi)存控制器是無法發(fā)出兩套指令的。nForce2則是兩個(gè)獨(dú)立的控制器分別控制兩個(gè)不同的通道,這樣每個(gè)通道的內(nèi)存模組的架構(gòu)就可以不同,因?yàn)橹噶钜彩仟?dú)立的。但是nForce2在雙通道帶寬合成方面會(huì)有比較大的麻煩,畢竟內(nèi)存地址的轉(zhuǎn)換是相當(dāng)復(fù)雜的。所以,nForce2與865/875代表了兩種設(shè)計(jì)。而這樣的設(shè)計(jì)體現(xiàn)出來的內(nèi)存配置也有了變化。在下文中,我們以875P平臺為主nForce2平臺為輔,來進(jìn)行優(yōu)化試驗(yàn)。先讓我們看看875P內(nèi)存頁面控制方面的一些特點(diǎn):Intel875P的頁面控制特性,可以發(fā)現(xiàn)雙通道與單通道時(shí)有所不同目前的875P主板都是4條DIMM的設(shè)計(jì),可以最大安裝4條雙P-Bank的內(nèi)存模組,也就是說一共是8個(gè)P-Bank,合32個(gè)頁面。但從上圖中可以發(fā)現(xiàn),當(dāng)為雙通道時(shí),最多可打開的頁面數(shù)減半,變成16個(gè),但頁面容量則翻了一倍。這就是意味著,組成雙通道在兩條內(nèi)存模組在控制器的眼中就是一條128bit位寬的模組,由于尋址指令相同,所以兩個(gè)通道內(nèi)的相同P-Bank里內(nèi)存芯片在同一時(shí)間的工作行相同,這樣便使可打開的頁面數(shù)減少,但頁容量增加。相反,如果是單通道,則與845主板一樣,簡單的累加各內(nèi)存模組的頁面就可以了,頁面數(shù)量可以達(dá)到最多,但容量不會(huì)成倍增加。不要小看這點(diǎn)區(qū)別,頁面的多少與容量關(guān)系到內(nèi)存控制器能力的發(fā)揮。比如交錯(cuò)控制,如果有32個(gè)頁面可供選擇,絕對比4個(gè)頁面時(shí)輕松一些,尋址沖突可以進(jìn)一步減少,反過來,頁面容量的提高,可以允許更長時(shí)間的背靠背式的尋址,這也對提高內(nèi)存效率提供了幫助。關(guān)鍵就在于控制器怎么協(xié)調(diào)好頁面數(shù)量與頁面容量之間的關(guān)系。從中可以發(fā)現(xiàn),頁面容量固定不變,頁面數(shù)則成倍增加。在下面的優(yōu)化實(shí)驗(yàn)中,我們主要考驗(yàn)頁面數(shù)以及tRAS這個(gè)參數(shù)的不同設(shè)定在不同內(nèi)存配置下對性能的影響。此外,我們還會(huì)討論BL、刷新周期等BIOS可能出現(xiàn)的調(diào)整參數(shù)對性能的影響。這里需要指出,本專題中(包括后面的內(nèi)存測試),數(shù)字A-B-C-D分別對應(yīng)的參數(shù)是:CL-tRCD-tRP-tRAS。首先們進(jìn)行的是在875P上的全面測試實(shí)驗(yàn),此時(shí)我們將在BIOS默認(rèn)的參數(shù)基礎(chǔ)上進(jìn)行調(diào)校,PAT與HT均為打開狀態(tài),BL=8,刷新周期設(shè)為Auto,時(shí)序方面分別設(shè)定為2-3-3-5和2-3-3-8。一、PCMark04測試PCMark04具有一個(gè)比較專業(yè)且全面的內(nèi)存測試功能,但普通的內(nèi)存測試項(xiàng)目只有16個(gè),本次我們通過高級設(shè)置調(diào)出全部的44項(xiàng)測試選項(xiàng)。通過上面的成績可以發(fā)現(xiàn),2-3-3-8一直比2-3-3-5的性能要好,并且隨著頁面數(shù)量的增加,這種優(yōu)勢也更大。我們選擇2-3-3-8得分最高的1GB配置下的成績詳細(xì)列出來,大家可以從中看出一些特點(diǎn)。從中可以看出,2-3-3-8取得了大多數(shù)測試的勝利,雖然有些測試成績差異很小,應(yīng)該屬于測試誤差范圍之內(nèi),但我們可以發(fā)現(xiàn)這種領(lǐng)先呈“塊狀”分布,所以也應(yīng)該有一定的代表性,尤其是“塊拷貝(讀后寫)”,2-3-3-8的性能明顯占優(yōu)。而且除了隨機(jī)訪問性能以外,2-3-3-8在大容量數(shù)據(jù)傳輸方面都要好于2-3-3-5。二、ADIA323.93測試AIDIA323.93是一款兼系統(tǒng)資源查看與簡單測試的軟件,不過其內(nèi)存帶寬測試功能還是經(jīng)常被人所用到。ADIA323.93的測試相對簡單一些,從中可以發(fā)現(xiàn)2-3-3-5在少頁面時(shí)讀取性能要占優(yōu)級,但到了16個(gè)頁面時(shí),被2-3-3-8反超,同時(shí)2-3-3-8一直保持著寫入性能方面的優(yōu)勢。三、3DMark2001SE測試3DMark2001SE是一款老牌的D3D測試軟件,雖然主要是考驗(yàn)顯卡的能力,但由于內(nèi)存子系統(tǒng)也是圖形處理中的重要環(huán)節(jié),所以在顯卡處理能力很強(qiáng)大時(shí),仍可以看出內(nèi)存子系統(tǒng)的測試中的些微影響,而GF5900Ultra提供了很大的表現(xiàn)空間。其實(shí),在測試中,兩種時(shí)序下所體現(xiàn)的性能差異并不明顯(也許這個(gè)測試對內(nèi)存本來就不是很敏感),甚至可以懷疑是測試的誤差。另外,在測試中我還發(fā)現(xiàn)一個(gè)現(xiàn)象,2-3-3-5的性能表現(xiàn)不穩(wěn)定,有時(shí)會(huì)比2-3-3-8低出2、3百分,這可能是因?yàn)槎蘴RAS造成了頁面管理的不確定性(有時(shí)可以預(yù)充電,有時(shí)則要推遲)。相比下,2-3-3-8表現(xiàn)得相對穩(wěn)定一些。不過,也能看出在頁面增多的情況下,2-3-3-8有領(lǐng)先的趨勢。四、AquaMark3.0測試AquaMark3.0與3DMark2001SE一樣,只不過將測試平臺指向了DX9,從中我們發(fā)現(xiàn)其與3DMark2001SE有相似的表現(xiàn)。在4、8頁面時(shí),2-3-3-8沒有什么優(yōu)勢,在16頁面時(shí)后來者居上。五、SandraStandard2004SP1測試這也是著名的測試軟件了,經(jīng)常能在網(wǎng)上看到網(wǎng)友在比試該軟件所給出的內(nèi)存帶寬貼圖。與前面的測試所體現(xiàn)出來的差不多,頁面少的時(shí)候,2-3-3-5占先,頁面多的時(shí)候,2-3-3-8會(huì)反超。六、ScienceMark2.0beta測試筆者認(rèn)為ScienceMark是一個(gè)比較優(yōu)秀的測試軟件,測試的項(xiàng)目也比較多,而其所自帶的內(nèi)存測試功能也別具特色。ScienceMark的測試結(jié)果與前面所體現(xiàn)的不太一樣,頁面少的時(shí)候2-3-3-5反而更低,但兩者都從頁面數(shù)量的提高中獲益。而且,值得注意的是,在8個(gè)頁面時(shí),2-3-3-8的表現(xiàn)最好,不光帶寬領(lǐng)先,而且在延遲方面也有了大的進(jìn)步。不過,在16頁面時(shí),2-3-3-8的延遲方面就全面落后了。我感覺ScienceMark采用了與眾不同的測試邏輯與方法,但也從側(cè)面反映了兩種tRAS設(shè)置的一些差異。七、QuakeIIIArena1.32測試QuakeIII就不用我多說了,它的引擎效率極為出眾,至今仍然是一款出色的測試軟件,并且,它對內(nèi)存的效率也是比較敏感的。是不是有些吃驚,隨著頁面的增加,2-3-3-5與2-3-3-8的性能都有較為明顯的增長。難道是Q3很吃內(nèi)存。我想應(yīng)該不是,如果你打開任務(wù)管理器,就會(huì)發(fā)現(xiàn)Q3的內(nèi)存占用量并不高,512MB已經(jīng)能滿足要求了。之所以能出現(xiàn)4、5幀的性能增長,原因除了1GB內(nèi)存本身對WindowsXP更適合外,可能就在于頁面的增多,提高了內(nèi)存管理效率,進(jìn)一步的降低了尋址沖突。而2-3-3-8的優(yōu)勢也在8個(gè)頁面時(shí)開始發(fā)揮出來。在測試中,我們感覺到Q3對默認(rèn)的HQ(800X600)模式似乎有著優(yōu)化,它在測試中的表現(xiàn)最為穩(wěn)定,而且性能提升顯著。Fastest模式由于顯卡基本上是在等內(nèi)存提供“原料”,所以對內(nèi)存的效率也非常的敏感。而在HQ(1280X1024)模式下處理的重任則落在了顯卡身上,內(nèi)存的供給倒是其次了。不過,與3DMark2001SE的表現(xiàn)相似,2-3-3-5的性能表現(xiàn)不是很穩(wěn)定,有時(shí)5次測試結(jié)果中最好成績與最差成績會(huì)有比較大的差距,這可能也由于較短的行選通周期所帶來的頁面管理不確定性所造成的。八、nForce2平臺下的測試升技的AN7主板可調(diào)節(jié)的tRAS范圍出奇的大,最高可到15,最低達(dá)到1。我們選擇了3和15兩個(gè)較為極端的參數(shù)進(jìn)行了對比測試,測試結(jié)果與875P平臺相差不多,但優(yōu)劣并不是很明顯。以下是PCMark04的測試結(jié)果。AIDA32的測試只在1GB容量下進(jìn)行,2-3-3-15的讀/寫速度(MB/s)為2991/1135,2-3-3-3時(shí)為2950/1080。在Q3的測試中,1.5GB時(shí),2-3-3-15出現(xiàn)了稍微明顯的領(lǐng)先(約一幀)。1GB時(shí),兩者的表現(xiàn)基本持平。對于這個(gè)表現(xiàn),筆者認(rèn)為首先可能因?yàn)槭琼撁嫒萘坎粔虼笏粒捎诓幌?75P那樣的雙通道,nForce2平臺測試中的頁面容量只有16KB,我們在P75P平臺上進(jìn)行的1.5GB單通道(頁面容量降低為16KB)測試也反映出這一點(diǎn),PCMark04的分值非常接近。另外,這可能也與nForce2的頁面管理策略以及tRAS并不是越大越好有關(guān)。通過前面的技術(shù)分析,我們知道它是一個(gè)相對參數(shù),不是說越大或者越小,性能就肯定會(huì)越好,它還要結(jié)合具體的情況而定,它應(yīng)該與頁面數(shù)、頁面容量和芯片組的管理能力之間有一個(gè)比較好的平衡點(diǎn)。由于時(shí)間的關(guān)系,我們沒有進(jìn)行15以下的tRAS的測試,畢竟我們這次不是針對某一芯片組的優(yōu)化探討,而是從一個(gè)總體上講述總的優(yōu)化原則。但從一些論壇的反映來看,11似乎是一個(gè)比較好設(shè)置水平,普遍反映它比tRAS=5時(shí)的性能好好,有興趣的朋友可以自己試試。九、BL與內(nèi)存刷新率對性能的影響既然Q3對內(nèi)存性能如此感冒,我們就在華碩的P4C800主板上進(jìn)行了其他的實(shí)驗(yàn)——BL與內(nèi)存刷新率的調(diào)整。下圖就是P4C800的BIOS中內(nèi)存設(shè)置的介面,P4P800與之相同。將ConfigureDRAMTimingbySPD設(shè)為Disable后,會(huì)出現(xiàn)BL(DRAMBurstLength)的調(diào)節(jié)選項(xiàng),我們將其調(diào)成4,然后再進(jìn)行Q3測試。測試的結(jié)果令人稱奇。我們在2GB的內(nèi)存容量下,F(xiàn)astest模式下較原來的BL=8提高了兩幀,HQ與HQ(1280X1024)模式下也都提高了1幀,這是很不錯(cuò)的成績嘛??吹竭@里,可能會(huì)有人奇怪,不是聽說BL越長越好嗎?怎么會(huì)這樣?其實(shí),原因在上文已經(jīng)講到,當(dāng)875組成雙通道時(shí),接口的位寬是128bit,合16個(gè)字節(jié)。而與CPU交換數(shù)據(jù)的基本單位是64字節(jié),所以雙通道時(shí)只需傳輸4個(gè)周期即可。因此,大多數(shù)情況下BL=4是雙通道Pentium4主板的一個(gè)更佳的選擇。BL=8雖然一次能傳送128字節(jié),但如果遇到不需要傳送這么多的時(shí)候(小數(shù)據(jù)傳輸)反而會(huì)耽誤時(shí)間。不過,在單通道主板或非875這種類型的雙通道主板上,BL=8則是正確的選擇。可見,BL這個(gè)參數(shù),不能像CL那樣可以予以定論。總之,如果是雙通道Pentium4或AMD64的用戶,當(dāng)你的日常工作很普通,沒有什么大數(shù)據(jù)量的讀寫應(yīng)用,BL=4可能會(huì)比較適合,如果經(jīng)常進(jìn)行大規(guī)模數(shù)據(jù)處理,可能BL=8反而更好。后來,在進(jìn)一步的Q3測試中,我們還發(fā)現(xiàn)小tRAS似乎更適合采用短BL,大tRAS則與長BL是個(gè)好的組合。接著我們在BIOS設(shè)置中打開圖中畫紅圈的內(nèi)存刷新率選項(xiàng)。其中除了AUTO之外,還有15.6μs、7.8μs、64μs、64T幾個(gè)選項(xiàng)。不明白意思的人,可能就會(huì)想肯定是越小越好,其實(shí)不然。目前市場上的內(nèi)存模組基本都是采用32M×8bit的256Mb芯片,這類芯片的刷新設(shè)計(jì)都是8K/64ms,也就是說刷新周期是7.8125μs,意味著每隔7.8125μs刷新一行,此時(shí)如果趕上要進(jìn)行操作就只能自認(rèn)倒霉,所以加大刷新間隔將有助于降低“自認(rèn)倒霉”的概率。主板BIOS中所提供的就是這一選項(xiàng),其中的64T,筆者分析T可能是指時(shí)鐘周期,如果是DDR-400的話,T就是5ns,64T就是320ns,這是非常短的,而此次測試所使用的內(nèi)存正常情況下是7.8μs的刷新率,那么我們就可以調(diào)高一倍至15.6μs。測試的結(jié)果,Q3在Fastest模式下,在BL=4的基礎(chǔ)上再次增加3幀的的成績,HQ與HQ(1280X1024)模式下也都再次提高了1幀。不過,當(dāng)我們把刷新率再往高調(diào),似乎就沒有什么作用了。需要注意的是,刷新率不宜調(diào)得過長,否則可能會(huì)引起數(shù)據(jù)丟失,導(dǎo)致系統(tǒng)的不穩(wěn)定,15.6μs應(yīng)試是一個(gè)比較好的選擇。另外,P4C800/P4P800中BIOS中的DRAMIdleTimer(空閑計(jì)時(shí))對內(nèi)存性能的影響并不大,建議設(shè)為Auto即可。在上文中,我們引入了很多鮮為人知的一些概念。由此我們會(huì)發(fā)現(xiàn)以往的優(yōu)化原則基本上存在著很多盲目的成分。目前幾乎所有的內(nèi)存優(yōu)化與測試文章(包括國外的一些知名網(wǎng)站)都告訴讀者,只要是和內(nèi)存沾邊的時(shí)序參數(shù),越小越好!但當(dāng)你看過本文后,又會(huì)有何感想呢?顯然,之前的優(yōu)化原則并不嚴(yán)謹(jǐn)也缺乏科學(xué)的論證。在經(jīng)歷了優(yōu)化實(shí)驗(yàn)后,我們可以試著總結(jié)其中的原因,以進(jìn)一步探討tRAS對內(nèi)存性能所帶來的影響。前文已經(jīng)講過,tRAS的本意是想盡量減少行尋址的沖突,降低PMR,但這是從內(nèi)存芯片本身角度出發(fā)的,如果從內(nèi)存子系統(tǒng)的全局考慮,它可能會(huì)減少背靠背操作的機(jī)率。下面是筆者根據(jù)JEDEC發(fā)布的DDRSDRAM官方標(biāo)準(zhǔn)制作的時(shí)序示意圖。從中我們可以發(fā)現(xiàn)短tRAS在某些情況下性能表現(xiàn)不佳的原因。當(dāng)BL=8、tRAS=5時(shí),第二個(gè)可能出現(xiàn)的讀取命令會(huì)因預(yù)充電而延后,使得連續(xù)突發(fā)傳輸無法進(jìn)行,不能進(jìn)行背靠背操作當(dāng)BL=4、tRAS=5時(shí),第三個(gè)可能出現(xiàn)的讀取命令會(huì)因預(yù)充電而延后,使得連續(xù)突發(fā)傳輸無法進(jìn)行,只完成了一次背靠背操作當(dāng)BL=8、tRAS=8時(shí),第二個(gè)讀取指令會(huì)在預(yù)充電之前發(fā)出,并使預(yù)充電延后,從而完成了一次背靠背操作當(dāng)BL=4、tRAS=8時(shí),第三個(gè)讀取指令會(huì)在預(yù)充電之前發(fā)出,從而完成了兩次背靠背操作當(dāng)BL=8、tRAS=5時(shí),由于DDRSDRAM在寫入時(shí)的時(shí)序限制,預(yù)充電最早可以出現(xiàn)的時(shí)間大大延長當(dāng)BL=4、tRAS=5時(shí),由于DDRSDRAM在寫入時(shí)的時(shí)序限制,預(yù)充電最早可以出現(xiàn)的時(shí)間被延后至第8個(gè)時(shí)鐘周期當(dāng)BL=8、tRAS=8時(shí),由于DDRSDRAM在寫入時(shí)的時(shí)序限制,預(yù)充電最早可以出現(xiàn)的時(shí)間與Tras=5時(shí)一樣當(dāng)BL=4、tRAS=8時(shí),預(yù)充電不會(huì)被拖后,而且之前有4個(gè)時(shí)鐘周期可以接受寫入指令,比tRAS=5多一個(gè),增加了背靠背操作的機(jī)會(huì)。從以上的分析中,我們能發(fā)現(xiàn)一些tRAS對背靠背操作的一些影響(似乎對讀取的影響比對寫入的影響大一點(diǎn),對于上文的PCMark04的詳細(xì)測試數(shù)據(jù),也可以發(fā)現(xiàn)這一點(diǎn)),但當(dāng)tRCD越長,留給讀/寫命令至預(yù)充電命令之間的時(shí)間越短時(shí),短tRAS相對于長tRAS的這方面差距才會(huì)慢慢變小。但是,我們不能抹殺短tRAS在降低PMR方面的貢獻(xiàn),尤其是當(dāng)可供管理的頁面較少時(shí),短tRAS的優(yōu)勢就會(huì)比較明顯。如果tRAS較長,頁面關(guān)得慢,且總頁面數(shù)量又少,很可能會(huì)出現(xiàn)芯片組周轉(zhuǎn)不開從而增加PMR的情況。但當(dāng)芯片組可控制的頁面增多后,長tRAS在背靠背操作方面的優(yōu)勢就會(huì)逐漸顯現(xiàn),因?yàn)橥ㄟ^芯片組的調(diào)度,尋址沖突已經(jīng)不再那么嚴(yán)重了。不過,有人可能會(huì)發(fā)現(xiàn)BIOS中往往不會(huì)提供相關(guān)的設(shè)置選項(xiàng),或者提供的選項(xiàng)不夠用怎么辦(比如875支持Tras=10,但P4C800和P4P800都只能到8),這可怎么辦呢?其實(shí),除了BIOS可以調(diào)節(jié)內(nèi)存的時(shí)序參數(shù),有些軟件也可以,如著名的WPCREDIT,就可以更改某些芯片組的內(nèi)存控制器的寄存器,但是,目前大眾能了解的寄存設(shè)置情況只有Intel的芯片。所以,在此我也不打算詳細(xì)介紹軟件修改的方法,更何況875/865要想調(diào)出相關(guān)的設(shè)備寄存器還需要先改動(dòng)其他的寄存器,比較麻煩,而且許多875/865主板是不可改的。至于其他的芯片組,大家可以通過在BIOS改變一些選項(xiàng),然后用CPU-Z之類的軟件導(dǎo)出寄存器,通過對比能發(fā)現(xiàn)一些不同,然后試著用WPCREDIT進(jìn)行修改,但這么做會(huì)非常繁瑣,并且在不知道寄存器的位數(shù)類型(8、16還32bit)時(shí),抱著“瞎貓碰死耗子”的心態(tài)去嘗試會(huì)比較危險(xiǎn)。所以,在此我只講講大概的方法,并不會(huì)提倡這種人工修改寄存器的方式。至此,我們可以總結(jié)出以下幾點(diǎn)內(nèi)存優(yōu)化的原則和相關(guān)的技巧,供大家參考:1、對內(nèi)存的優(yōu)化要從系統(tǒng)整體出發(fā),不要局限于內(nèi)存模組或內(nèi)存芯片本身的參數(shù),而忽略了內(nèi)存子系統(tǒng)的其他要素2、目前的芯片組都具備多頁面管理的能力,所以如果可能,請盡量選擇雙P-Bank的內(nèi)存模組以增加系統(tǒng)內(nèi)存的頁面數(shù)量。但怎么分辨是單P-Bank還是雙P-Bank呢?就目前市場上的產(chǎn)品而言,256MB的模組基本都是單P-Bank的,雙面但每面只有4顆芯片的也基本上是單P-Bank的,512MB的雙面模組則基本都是雙P-Bank的3、頁面數(shù)量的計(jì)算公式為:P-Bank數(shù)量X4,如果是Pentium4或AMD64的雙通道平臺,則還要除以2。比如兩條單面256MB內(nèi)存,就是2X4=8個(gè)頁面,用在875上組成雙通道就成了4個(gè)頁面4、CL、tRCD、tRP為絕對性能參數(shù),在任何平臺下任何時(shí)候,都應(yīng)該是越小越好,調(diào)節(jié)的優(yōu)化順序是CL→tRCD→tRP5、當(dāng)內(nèi)存頁面數(shù)為4時(shí),tRAS設(shè)置短一些可能會(huì)更好,但最好不要小于5。另外,短tRAS的內(nèi)存性能相對于長tRAS可能會(huì)產(chǎn)生更大的波動(dòng)性,對時(shí)鐘頻率的提高也相對敏感6、當(dāng)內(nèi)存頁面數(shù)大于或等于8時(shí),tRAS設(shè)置長一些會(huì)更好7、對于875和865平臺,雙通道時(shí)頁面數(shù)達(dá)到8或者以上時(shí),內(nèi)存性能更好8、對于非雙通道Pentium4與AMD64平臺,tRAS長短之間的性能差異要縮小9、Pentium4或AMD64的雙通道平臺下,BL=4大多數(shù)情況下是更好的選擇,其他情況下BL=8可能是更好的選擇,請根據(jù)自己的實(shí)際應(yīng)用有針對的調(diào)整10、適當(dāng)加大內(nèi)存刷新率可以提高內(nèi)存的工作效率,但也可能降低內(nèi)存的穩(wěn)定性小提示:BIOS中內(nèi)存相關(guān)參數(shù)的設(shè)置要領(lǐng)AutomaticConfiguration“自動(dòng)設(shè)置”(可能的選項(xiàng):On/Off或Enable/Disable)可能出現(xiàn)的其他描述為:DRAMAuto、TimingSelectable、TimingConfiguringBySPD等,如果你要手動(dòng)調(diào)整你的內(nèi)存時(shí)序,你應(yīng)該關(guān)閉它,之后會(huì)自動(dòng)出現(xiàn)詳細(xì)的時(shí)序參數(shù)列表。BankInterleaving(可能的選項(xiàng):Off/Auto/2/4)這里的Bank是指L-Bank,目前的DDRRAM的內(nèi)存芯片都是由4個(gè)L-Bank所組成,為了最大限度減少尋址沖突,提高效率,建議設(shè)為4(Auto也可以,它是根據(jù)SPD中的L-Bank信息來自動(dòng)設(shè)置的)。BurstLength“突發(fā)長度”(可能的選項(xiàng):4/8)一般而言,如果是AMDAthlonXP或Pentium4單通道平臺,建議設(shè)為8,如果是Pentium4或AMD64的雙通道平臺,建議設(shè)為4。但具體的情況要視具體的應(yīng)用而定。CASLatency“列地址選通脈沖潛伏期”(可能的選項(xiàng):1.5/2/2.5/3)BIOS中可能的其他描述為:tCL、CASLatencyTime、CASTimingDelay。不用多說,能調(diào)多短就調(diào)多短。CommandRate“首命令延遲”(可能的選項(xiàng):1/2)這個(gè)選項(xiàng)目前已經(jīng)非常少見,一般還被描述為DRAMCommandRate、CMDRate等。由于目前的DDR內(nèi)存的尋址,先要進(jìn)行P-Bank的選擇(通過DIMM上CS片選信號進(jìn)行),然后才是L-Bank/行激活與列地址的選擇。這個(gè)參數(shù)的含義就是指在P-Bank選擇完之后多少時(shí)間可以發(fā)出具體的尋址的L-Bank/行激活命令,單位是時(shí)鐘周期。顯然,也是越短越好。但當(dāng)隨著主板上內(nèi)存模組的增多,控制芯片組的負(fù)載也隨之增加,過短的命令間隔可能會(huì)影響穩(wěn)定性。因此當(dāng)你的內(nèi)存插得很多而出現(xiàn)不太穩(wěn)定的時(shí)間,才需要將此參數(shù)調(diào)長。目前的大部分主板都會(huì)自動(dòng)設(shè)置這個(gè)參數(shù),而從上文的ScienceMark2.0測試中,大家也能察覺到容量與延遲之間的關(guān)系。RASPrechargeTime“行預(yù)充電時(shí)間”(可能的選項(xiàng):2/3/4)BIOS中的可能其他描述:tRP、RASPrecharge、Prechargetoactive。通過上文的講述,大家現(xiàn)在應(yīng)該明白它也是越小越RAS-to-CASDelay“行尋址至列尋址延遲時(shí)間”(可能的選項(xiàng):2/3/4/5)BIOS中的可能其他描述:tRCD、RAStoCASDelay、ActivetoCMD等。數(shù)值越小越好。ActivetoPrechargeDelay“行有效至行預(yù)充電時(shí)間”(可能的選項(xiàng):1……5/6/7……15)BIOS中的可能其他描述:tRAS、RowActiveTime、PrechargeWaitState、RowActiveDelay、RowPrechargeDelay等。根據(jù)上文的分析,這個(gè)參數(shù)要根據(jù)實(shí)際情況而定,具體設(shè)置思路見上文,并不是說越大或越小就越好。好了,到這里,有關(guān)內(nèi)存優(yōu)化的探討就告一段落,即使知道了相關(guān)的原則與方法,下面就要選選合適的“武器”了,敬請期待本專題的第二部分:《19款內(nèi)存橫向測試》。接下來,相關(guān)的列地址被選中之后,將會(huì)觸發(fā)數(shù)據(jù)傳輸,但從存儲單元中輸出到真正出現(xiàn)在內(nèi)存芯片的I/O接口之間還需要一定的時(shí)間(數(shù)據(jù)觸發(fā)本身就有延遲,而且還需要進(jìn)行信號放大),這段時(shí)間就是非常著名的CL(CASLatency,列地址脈沖選通潛伏期)。CL的數(shù)值與tRCD一樣,以時(shí)鐘周期數(shù)表示。如DDR-400,時(shí)鐘頻率為200MHz,時(shí)鐘周期為5ns,那么CL=2就意味著10ns的潛伏期。不過,CL只是針對讀取操作,對于SDRAM,寫入是沒有潛伏期的,對于DDRSDRAM,寫入潛伏期在0.75至1.25個(gè)時(shí)針周期之間。圖中標(biāo)準(zhǔn)CL=2,tAC是有關(guān)內(nèi)部信號處理的周期,可以不用關(guān)心目前內(nèi)存的讀寫基本都是連續(xù)的,因?yàn)榕cCPU交換的數(shù)據(jù)量以一個(gè)CacheLine(即CPU內(nèi)Cache的存儲單位)的容量為準(zhǔn),一般為64字節(jié)。而現(xiàn)有的P-Bank位寬為8字節(jié),那么就要一次連續(xù)傳輸8次,這就涉及到我們也經(jīng)常能遇到的突發(fā)傳輸?shù)母拍?。突發(fā)(Burst)是指在同一行中相鄰的存儲單元連續(xù)進(jìn)行數(shù)據(jù)傳輸?shù)姆绞剑B續(xù)傳輸?shù)闹芷跀?shù)就是突發(fā)長度(BurstLengths,簡稱BL)。在進(jìn)行突發(fā)傳輸時(shí),只要指定起始列地址與突發(fā)長度,內(nèi)存就會(huì)依次地自動(dòng)對后面相應(yīng)數(shù)量的存儲單元進(jìn)行讀/寫操作而不再需要控制器連續(xù)地提供列地址(SDRAM與DDRSDRAM的突發(fā)傳輸對列尋址的操作數(shù)量有所不同,在此不再細(xì)說)。這樣,除了第一筆數(shù)據(jù)的傳輸需要若干個(gè)周期(主要是之前的延遲,一般的是tRCD+CL)外,其后每個(gè)數(shù)據(jù)只需一個(gè)周期的即可獲得。突發(fā)連續(xù)讀取模式:只要指定起始列地址與突發(fā)長度,后續(xù)的尋址與數(shù)據(jù)的讀取自動(dòng)進(jìn)行,而只要控制好兩段突發(fā)讀取命令的間隔周期(與BL相同)即可做到連續(xù)的突發(fā)傳輸。在數(shù)據(jù)讀取完之后,為了騰出讀出放大器以供同一L-Bank內(nèi)其他行的尋址并傳輸數(shù)據(jù),內(nèi)存芯片將進(jìn)行預(yù)充電的操作來關(guān)閉當(dāng)前工作行。還是以上面那個(gè)L-Bank示意圖為例。當(dāng)前尋址的存儲單元是B1、R2、C6。如果接下來的尋址命令是B1、R2、C4,則不用預(yù)充電,因?yàn)樽x出放大器正在為這一行服務(wù)。但如果地址命令是B1、R4、C4,由于是同一L-Bank的不同行,那么就必須要先把R2關(guān)閉,才能對R4尋址。從開始關(guān)閉現(xiàn)有的工作行,到可以打開新的工作行之間的間隔就是tRP(RowPrechargecommandPeriod,行預(yù)充電有效周期),單位也是時(shí)鐘周期數(shù)。本圖為一個(gè)完整的從行尋址到行關(guān)閉的時(shí)序圖,圖中所表示的tRCD=2、CL=2、tRP=2從上圖中我們還發(fā)現(xiàn)了一個(gè)在DDRSDRAM時(shí)代經(jīng)常被人提起,也經(jīng)常會(huì)在BIOS中出現(xiàn)的參數(shù)——tRAS。tRAS在內(nèi)存規(guī)范中的解釋是ACTIVEtoPRECHARGEcommand,即從行有效命令發(fā)出至預(yù)充電命令發(fā)出之間的間隔。這也是本專題第一部分中所要重要談到的話題。在深入分析它之前,我們先了解一下哪些因素會(huì)影響到內(nèi)存的性能。在講完SDRAM的基本工作原理和主要操作之后,我們現(xiàn)在要重要分析一下SDRAM的時(shí)序與性能之間的關(guān)系,它不再局限于芯片本身,而是要從整體的內(nèi)存系統(tǒng)去分析。這也是廣大DIYer所關(guān)心的話題。比如CL值對性能的影響有多大幾乎是每個(gè)內(nèi)存論壇都會(huì)有討論,今天我們就詳細(xì)探討一下。這里需要強(qiáng)調(diào)一點(diǎn),對于內(nèi)存系統(tǒng)整體而言,一次內(nèi)存訪問就是對一個(gè)頁(Page)的訪問。由于在P-Bank中,每個(gè)芯片的尋址都是一樣的,所以可以將頁訪問“濃縮”等效為對每芯片中指定行的訪問,這樣可能比較好理解。但為了與官方標(biāo)準(zhǔn)統(tǒng)一,在下文中會(huì)經(jīng)常用頁來描述相關(guān)的內(nèi)容,請讀者注意理解??赡芎芏嗳诉€不清楚頁的概念,在這里有必要先講一講。從狹義上講,內(nèi)存芯片芯片中每個(gè)L-Bank中的行就是頁,即一行為一頁。但從廣義上說,頁是從整體角度講的,這個(gè)整體就是內(nèi)存子系統(tǒng)。對于內(nèi)存模組,與之進(jìn)行數(shù)據(jù)交換的單位就是P-Bank的位寬。由于目前還沒有一種內(nèi)存芯片是64bit位寬的,所以就必須要用多個(gè)芯片的位寬來集成一個(gè)P-Bank。如我們現(xiàn)在常見的內(nèi)存芯片是8bit位寬的,那么就需要8顆芯片組成一個(gè)P-Bank才能使系統(tǒng)正常工作。而CPU對內(nèi)存的尋址,一次就是一個(gè)P-Bank,P-Bank內(nèi)的所有芯片同時(shí)工作,這樣對P-Bank內(nèi)所有的芯片的尋址都是相同的。比如尋址指令是B1、C2、R6,那么該P(yáng)-Bnak內(nèi)的芯片的工作狀態(tài)都是打開B1的L-Bank的第C2行。好了,所謂廣義上的頁就是指P-Bank所包括的芯片內(nèi)相同L-Bank內(nèi)的相同工作行的總集合。頁容量對于內(nèi)存子系統(tǒng)而言是一個(gè)很重要的指標(biāo)。這個(gè)參數(shù)取決于芯片的容量與位寬的設(shè)計(jì)。由于與本文的關(guān)系不大,就不具體舉例了。早期Intel845芯片組MCH的資料:它可以支持2、4、8、16KB的頁容量總之,我們要知道,由于尋址對同一L-Bank內(nèi)行地址的單一性,所以一個(gè)L-Bank在同一時(shí)間只能打開一個(gè)頁面,一個(gè)具有4個(gè)L-Bank的內(nèi)存芯片,可以打開4個(gè)頁面。這樣,以這種芯片組成的P-Bank,也就最后具備了4個(gè)頁面,這是目前DDRSDRAM內(nèi)存模中每個(gè)P-Bank的頁面最大值。1、影響性能的主要時(shí)序參數(shù)在講完內(nèi)存的基本操作流程與相關(guān)的tRP、tRCD、CL、BL之后,我們就開始深入分析這些參數(shù)對內(nèi)存性能的影響。所謂的影響性能是并不是指SDRAM的帶寬,頻率與位寬固定后,帶寬也就不可更改了。但這是理想的情況,在內(nèi)存的工作周期內(nèi),不可能總處于數(shù)據(jù)傳輸?shù)臓顟B(tài),因?yàn)橐忻睢ぶ返缺匾倪^程。但這些操作占用的時(shí)間越短,內(nèi)存工作的效率越高,性能也就越好。非數(shù)據(jù)傳輸時(shí)間的主要組成部分就是各種延遲與潛伏期。通過上文的講述,大家應(yīng)該很明顯看出有三個(gè)參數(shù)對內(nèi)存的性能影響至關(guān)重要,它們是tRCD、CL和tRP。按照規(guī)定,每條正規(guī)的內(nèi)存模組都應(yīng)該在標(biāo)識上注明這三個(gè)參數(shù)值,可見它們對性能的敏感性。以內(nèi)存最主要的操作——讀取為例。tRCD決定了行尋址(有效)至列尋址(讀/寫命令)之間的間隔,CL決定了列尋址到數(shù)據(jù)進(jìn)行真正被讀取所花費(fèi)的時(shí)間,tRP則決定了相同L-Bank中不同工作行轉(zhuǎn)換的速度?,F(xiàn)在可以想象一下對某一頁面進(jìn)行讀取時(shí)可能遇到的幾種情況(分析寫入操作時(shí)不用考慮CL即可):1、要尋址的行與L-Bank是空閑的。也就是說該L-Bank的所有行是關(guān)閉的,此時(shí)可直接發(fā)送行有效命令,數(shù)據(jù)讀取前的總耗時(shí)為tRCD+CL,這種情況我們稱之為頁命中(PH,PageHit)。2、要尋址的行正好是現(xiàn)有的工作行,也就是說要尋址的行已經(jīng)處于選通有效狀態(tài),此時(shí)可直接發(fā)送列尋址命令,數(shù)據(jù)讀取前的總耗時(shí)僅為CL,這就是所謂的背靠背(BacktoBack)尋址,我們稱之為頁快速命中(PFH,PageFastHit)或頁直接命中(PDH,PageDirectHit)。3、要尋址的行所在的L-Bank中已經(jīng)有一個(gè)行處于活動(dòng)狀態(tài)(未關(guān)閉),這種現(xiàn)象就被稱作尋址沖突,此時(shí)就必須要進(jìn)行預(yù)充電來關(guān)閉工作行,再對新行發(fā)送行有效命令。結(jié)果,總耗時(shí)就是tRP+tRCD+CL,這種情況我們稱之為頁錯(cuò)失(PM,PageMiss)。顯然,PFH是最理想的尋址情況,PM則是最糟糕的尋址情況。上述三種情況發(fā)生的機(jī)率各自簡稱為PHR——PHRate、PFHR——PFHRate、PMR——PMRate。因此,系統(tǒng)設(shè)計(jì)人員(包括內(nèi)存與北橋芯片)都盡量想提高PHR與PFHR,同時(shí)減少PMR,以達(dá)到提高內(nèi)存工作效率的目的。二、增加PHR的方法顯然,這與預(yù)充電管理策略有著直接的關(guān)系,目前有兩種方法來盡量提高PHR。自動(dòng)預(yù)充電技術(shù)就是其中之一,它自動(dòng)的在每次行操作之后進(jìn)行預(yù)充電,從而減少了日后對同一L-Bank不同行尋址時(shí)發(fā)生沖突的可能性。但是,如果要在當(dāng)前行工作完成后馬上打開同一L-Bank的另一行工作時(shí),仍然存在tRP的延遲。怎么辦?此時(shí)就需要L-Bank交錯(cuò)預(yù)充電了。早期非常令人關(guān)注的VIA4路交錯(cuò)式內(nèi)存控制,就是在一個(gè)L-Bank工作時(shí),對另一個(gè)L-Bank進(jìn)行預(yù)充電或者尋址(如果要尋址的L-Bank是關(guān)閉的)。這樣,預(yù)充電與數(shù)據(jù)的傳輸交錯(cuò)執(zhí)行,當(dāng)訪問下一個(gè)L-Bank時(shí),tRP已過,就可以直接進(jìn)入行有效狀態(tài)了,如果配合得理想,那么就可以實(shí)現(xiàn)無間隔的L-Bank交錯(cuò)讀/寫(一般的,交錯(cuò)操作都會(huì)用到自動(dòng)預(yù)充電),這是比PFH更好的情況,但它只出現(xiàn)在后續(xù)的數(shù)據(jù)不在同一頁面的時(shí)時(shí)候。當(dāng)時(shí)VIA聲稱可以跨P-Bank進(jìn)行16路內(nèi)存交錯(cuò),并以LRU(LeastRecentlyUsed,近期最少使用)算法進(jìn)行交錯(cuò)預(yù)充電/尋址管理。L-Bank交錯(cuò)自動(dòng)預(yù)充電/讀取時(shí)序圖:L-Bank0與L-Bank3實(shí)現(xiàn)了無間隔交錯(cuò)讀取,避免了tRP與tRCD對性能的影響,是最理想的狀態(tài)三、增加PFHR的方法無論是自動(dòng)預(yù)充電還是交錯(cuò)工作的方法都無法消除同行(頁面)尋址時(shí)tRCD所帶來的延遲。要解決這個(gè)問題,就要盡量讓一個(gè)工作行在進(jìn)行預(yù)充電前盡可能多的接收工作命令,以達(dá)到背靠背的效果,此時(shí)就只剩下CL所造成的讀取延遲了(寫入時(shí)沒有延遲)。如何做到這一點(diǎn)呢?這就是北橋芯片的責(zé)任了?,F(xiàn)在我們就又接觸到tRAS這個(gè)參數(shù),在BIOS中所設(shè)置的tRAS是指行有效至預(yù)充電的最短周期,在內(nèi)存規(guī)范中定義為tRAS(min),過了這個(gè)周期后就可以發(fā)出預(yù)充電指令。對于SDRAM和DDRSDRAM而言,一般是預(yù)充電命令至少要在行有效命令5個(gè)時(shí)鐘周期之后發(fā)出,最長間隔視芯片而異(目前的DDRSDRAM標(biāo)準(zhǔn)一般基本在70000ns左右),否則工作行的數(shù)據(jù)將有丟失的危險(xiǎn)。那么這也就意味著一個(gè)工作行從有效(選通)開始,可以有70000ns的持續(xù)工作時(shí)間而不用進(jìn)行預(yù)充電。顯然,只要北橋芯片不發(fā)出預(yù)充電(包括允許自動(dòng)預(yù)充電)的命令,行打開的狀態(tài)就會(huì)一直保持。在此期間的對該行的任何讀寫操作也就不會(huì)有tRCD的延遲??梢姡绻睒蛐酒谀芡瑫r(shí)打開的行(頁)越多,那么PFHR也就越大。需要強(qiáng)調(diào)的是,這里的同時(shí)打開不是指對多行同時(shí)尋址(那是不可能的),而是指多行同時(shí)處于選通狀態(tài)。我們可以看到一些SDRAM芯片組的資料中會(huì)指出可以同時(shí)打開多少個(gè)頁的指標(biāo),這可以說是決定其內(nèi)存性能的一個(gè)重要因素。Intel845芯片組MCH的資料:其中表明它可以支持24個(gè)頁面同時(shí)處于打開狀態(tài)但是,可同時(shí)打開的頁數(shù)也是有限制的。從SDRAM的尋址原理講,同一L-Bank中不可能有兩個(gè)打開的行(讀出放大器只能為一行服務(wù)),這就限制了可同時(shí)打開的頁面總數(shù)。以SDRAM有4個(gè)L-Bank,北橋最多支持8個(gè)P-Bank(4條DIMM)為例,理論上最多只能有32個(gè)頁面能同時(shí)處于打開的狀態(tài)。而如果只有一個(gè)P-Bank,那么就只剩下4個(gè)頁面,因?yàn)橛袔讉€(gè)L-Bank才能有同時(shí)打開幾個(gè)行而互不干擾。Intel845的MHC雖然可以支持24個(gè)打開的頁面,那也是指6個(gè)P-Bank的情況下(845MCH只支持6個(gè)P-Bank)。可見845已經(jīng)將同時(shí)打開頁數(shù)發(fā)揮到了極致。不過,同時(shí)打開頁數(shù)多了,也對存取策略提出了一定的要求。理論上,要盡量多地使用已打開的頁來保證最短的延遲周期,只有在數(shù)據(jù)不存在(讀取時(shí))或頁存滿了(寫入時(shí))再考慮打開新的指定頁,這也就是變向的連續(xù)讀/寫。而打開新頁時(shí)就必須要關(guān)閉一個(gè)打開的頁,如果此時(shí)打開的頁面已是北橋所支持的最大值但還不到理論極限的話(如果已經(jīng)達(dá)到極限,就關(guān)閉有沖突的L-Bank內(nèi)的頁面即可),就需要一個(gè)替換策略,一般都是用LRU算法來進(jìn)行,這與VIA的交錯(cuò)控制大同小異?;氐秸},雖然tRAS代表的是最小的行有效至預(yù)充電期限,但一般的,北橋芯片一般都會(huì)在這個(gè)期限后第一時(shí)間發(fā)出預(yù)充電指令(自動(dòng)預(yù)充電時(shí),會(huì)在tRAS之后自動(dòng)執(zhí)行預(yù)充電命令),只有在與其他操作相沖突時(shí)預(yù)充電操作才被延后(比如,DDRSDRAM標(biāo)準(zhǔn)中規(guī)定,在讀取命令發(fā)出后不能立即發(fā)出預(yù)充電指令)。因此,tRAS的長短一直是內(nèi)存優(yōu)化發(fā)燒友所爭論的話題,在最近一兩年,由于這個(gè)參數(shù)在BIOS選項(xiàng)中越來越普及,所以也逐漸被用戶所關(guān)注。其實(shí),在SDRAM時(shí)代就沒有對這個(gè)參數(shù)有刻意的設(shè)定,在DDRSDRAM的官方組織JEDEC的相關(guān)標(biāo)準(zhǔn)中,也沒有把其列為必須標(biāo)明的性能參數(shù)(CL、tRCD、tRP才是),tRAS應(yīng)該是某些主板廠商炒作出來的,并且在主板說明書上也注明越短越好。其實(shí),縮小tRAS的本意在于,盡量壓縮行打開狀態(tài)下的時(shí)間,以減少同L-Bank下對其他行進(jìn)行尋址時(shí)的沖突,從內(nèi)存的本身來講,這是完全正確的做法,符合內(nèi)存性能優(yōu)化的原則,但如果放到整體的內(nèi)存系統(tǒng)中,伴隨著主板芯片組內(nèi)存頁面控制管理能力的提升,這種做法可能就不見得是完全正確的,在下文中我們會(huì)繼續(xù)分析tRAS的不同長短設(shè)置對內(nèi)存性能所帶來的影響。四、BL長度對性能的影響從讀/寫之間的中斷操作我們又引出了BL(突發(fā)長度)對性能影響的話題。首先,BL的長短與其應(yīng)用的領(lǐng)域有著很大關(guān)系,下表就是目前三個(gè)主要的內(nèi)存應(yīng)用領(lǐng)域所使用的BL,這是廠商們經(jīng)過多年的實(shí)踐總結(jié)出來的。BL與相應(yīng)的工作領(lǐng)域BL越長,對于連續(xù)的大數(shù)據(jù)量傳輸很有好處,但是對零散的數(shù)據(jù),BL太長反而會(huì)造成總線周期的浪費(fèi),雖然能通過一些命令來進(jìn)行終止,便也占用了控制資源。以P-Bank位寬64bit為例,BL=4時(shí),一個(gè)突發(fā)操作能傳輸32字節(jié)的數(shù)據(jù),為了滿足CacheLine的容量需求,還得多發(fā)一次,如果是BL=8,一次就可以滿足需要,不用再次發(fā)出讀取指令。而對于2KB的數(shù)據(jù),BL=4的設(shè)置意味著要每隔4個(gè)周期發(fā)送新的列地址,并重復(fù)63次。而對于BL=256,一次突發(fā)就可完成,并且不需要中途再進(jìn)行控制,但如果僅傳輸64字節(jié),就需要額外的命令來中止BL=256的傳輸。而額外的命令越多,越占用內(nèi)存子系統(tǒng)的控制資源,從而降低總體的控制效率。從這可以看出BL對性能的影響因素,這也是為什么PC上的內(nèi)存子系統(tǒng)的BL一般為4或8的原因。但是不是8比4好,或者4比8好呢?并不能統(tǒng)一而論,這在下文會(huì)分析到。到此,大家應(yīng)該有一些優(yōu)化的眉目了吧。我們可以先做一下界定,任何情況下,只要數(shù)值越小或越大(單一方向),內(nèi)存的性能會(huì)越好的參數(shù)為絕對參數(shù),而數(shù)值越小或越大對性能的影響不固定的參數(shù)則為相對參數(shù)。那么,CL、tRCD、tRP顯然就是絕對參數(shù),任何情況下減少它們的周期絕對不會(huì)錯(cuò)。而且從上文的分析可以發(fā)現(xiàn),從重要性來論,優(yōu)先優(yōu)化的順序也是CL→tRCD→tRP,因?yàn)镃L的遇到的機(jī)會(huì)最多,tRCD其次,tRP如果頁面交錯(cuò)管理的好,大多不受影響。而BL、tRAS等則可以算是相對參數(shù)。也正是由于這些相對參數(shù)的存在,才使得內(nèi)存優(yōu)化不再那么簡單。好了,上面已經(jīng)講完基本的相關(guān)參數(shù)與原理,下面就結(jié)合實(shí)際來看看具體如何設(shè)置。目前,以Intel和NVIDIA為首的Intel與AMD平臺都進(jìn)入了雙通道時(shí)代,這也是今后的主要潮流。所以我們這次也是以雙方的雙通道平臺為試驗(yàn)平臺,分別是875P和nForce2。鑒于AMD64離我們還比較遠(yuǎn),因此我們沒有在AMD64的雙通道平臺上進(jìn)行測試。首先要講明,Intel865/875的雙通道與nForce2的雙通道不是一碼事。兩者目前還沒有可比性。簡而言之,865/875只用一個(gè)128bit位寬的內(nèi)存控制器控制兩個(gè)通道,這就意味著發(fā)給兩個(gè)通道的尋址指令是一模一樣的,從而也要求組成雙通道的內(nèi)存模組的容量、位寬設(shè)計(jì)完全一樣,因?yàn)椴煌粚挼男酒?,尋址指令也不一樣,而一個(gè)內(nèi)存控制器是無法發(fā)出兩套指令的。nForce2則是兩個(gè)獨(dú)立的控制器分別控制兩個(gè)不同的通道,這樣每個(gè)通道的內(nèi)存模組的架構(gòu)就可以不同,因?yàn)橹噶钜彩仟?dú)立的。但是nForce2在雙通道帶寬合成方面會(huì)有比較大的麻煩,畢竟內(nèi)存地址的轉(zhuǎn)換是相當(dāng)復(fù)雜的。所以,nForce2與865/875代表了兩種設(shè)計(jì)。而這樣的設(shè)計(jì)體現(xiàn)出來的內(nèi)存配置也有了變化。在下文中,我們以875P平臺為主nForce2平臺為輔,來進(jìn)行優(yōu)化試驗(yàn)。先讓我們看看875P內(nèi)存頁面控制方面的一些特點(diǎn):Intel875P的頁面控制特性,可以發(fā)現(xiàn)雙通道與單通道時(shí)有所不同目前的875P主板都是4條DIMM的設(shè)計(jì),可以最大安裝4條雙P-Bank的內(nèi)存模組,也就是說一共是8個(gè)P-Bank,合32個(gè)頁面。但從上圖中可以發(fā)現(xiàn),當(dāng)為雙通道時(shí),最多可打開的頁面數(shù)減半,變成16個(gè),但頁面容量則翻了一倍。這就是意味著,組成雙通道在兩條內(nèi)存模組在控制器的眼中就是一條128bit位寬的模組,由于尋址指令相同,所以兩個(gè)通道內(nèi)的相同P-Bank里內(nèi)存芯片在同一時(shí)間的工作行相同,這樣便使可打開的頁面數(shù)減少,但頁容量增加。相反,如果是單通道,則與845主板一樣,簡單的累加各內(nèi)存模組的頁面就可以了,頁面數(shù)量可以達(dá)到最多,但容量不會(huì)成倍增加。不要小看這點(diǎn)區(qū)別,頁面的多少與容量關(guān)系到內(nèi)存控制器能力的發(fā)揮。比如交錯(cuò)控制,如果有32個(gè)頁面可供選擇,絕對比4個(gè)頁面時(shí)輕松一些,尋址沖突可以進(jìn)一步減少,反過來,頁面容量的提高,可以允許更長時(shí)間的背靠背式的尋址,這也對提高內(nèi)存效率提供了幫助。關(guān)鍵就在于控制器怎么協(xié)調(diào)好頁面數(shù)量與頁面容量之間的關(guān)系。從中可以發(fā)現(xiàn),頁面容量固定不變,頁面數(shù)則成倍增加。在下面的優(yōu)化實(shí)驗(yàn)中,我們主要考驗(yàn)頁面數(shù)以及tRAS這個(gè)參數(shù)的不同設(shè)定在不同內(nèi)存配置下對性能的影響。此外,我們還會(huì)討論BL、刷新周期等BIOS可能出現(xiàn)的調(diào)整參數(shù)對性能的影響。這里需要指出,本專題中(包括后面的內(nèi)存測試),數(shù)字A-B-C-D分別對應(yīng)的參數(shù)是:CL-tRCD-tRP-tRAS。首先們進(jìn)行的是在875P上的全面測試實(shí)驗(yàn),此時(shí)我們將在BIOS默認(rèn)的參數(shù)基礎(chǔ)上進(jìn)行調(diào)校,PAT與HT均為打開狀態(tài),BL=8,刷新周期設(shè)為Auto,時(shí)序方面分別設(shè)定為2-3-3-5和2-3-3-8。一、PCMark04測試PCMark04具有一個(gè)比較專業(yè)且全面的內(nèi)存測試功能,但普通的內(nèi)存測試項(xiàng)目只有16個(gè),本次我們通過高級設(shè)置調(diào)出全部的44項(xiàng)測試選項(xiàng)。通過上面的成績可以發(fā)現(xiàn),2-3-3-8一直比2-3-3-5的性能要好,并且隨著頁面數(shù)量的增加,這種優(yōu)勢也更大。我們選擇2-3-3-8得分最高的1GB配置下的成績詳細(xì)列出來,大家可以從中看出一些特點(diǎn)。從中可以看出,2-3-3-8取得了大多數(shù)測試的勝利,雖然有些測試成績差異很小,應(yīng)該屬于測試誤差范圍之內(nèi),但我們可以發(fā)現(xiàn)這種領(lǐng)先呈“塊狀”分布,所以也應(yīng)該有一定的代表性,尤其是“塊拷貝(讀后寫)”,2-3-3-8的性能明顯占優(yōu)。而且除了隨機(jī)訪問性能以外,2-3-3-8在大容量數(shù)據(jù)傳輸方面都要好于2-3-3-5。二、ADIA323.93測試AIDIA323.93是一款兼系統(tǒng)資源查看與簡單測試的軟件,不過其內(nèi)存帶寬測試功能還是經(jīng)常被人所用到。ADIA323.93的測試相對簡單一些,從中可以發(fā)現(xiàn)2-3-3-5在少頁面時(shí)讀取性能要占優(yōu)級,但到了16個(gè)頁面時(shí),被2-3-3-8反超,同時(shí)2-3-3-8一直保持著寫入性能方面的優(yōu)勢。三、3DMark2001SE測試3DMark2001SE是一款老牌的D3D測試軟件,雖然主要是考驗(yàn)顯卡的能力,但由于內(nèi)存子系統(tǒng)也是圖形處理中的重要環(huán)節(jié),所以在顯卡處理能力很強(qiáng)大時(shí),仍可以看出內(nèi)存子系統(tǒng)的測試中的些微影響,而GF5900Ultra提供了很大的表現(xiàn)空間。其實(shí),在測試中,兩種時(shí)序下所體現(xiàn)的性能差異并不明顯(也許這個(gè)測試對內(nèi)存本來就不是很敏感),甚至可以懷疑是測試的誤差。另外,在測試中我還發(fā)現(xiàn)一個(gè)現(xiàn)象,2-3-3-5的性能表現(xiàn)不穩(wěn)定,有時(shí)會(huì)比2-3-3-8低出2、3百分,這可能是因?yàn)槎蘴RAS造成了頁面管理的不確定性(有時(shí)可以預(yù)充電,有時(shí)則要推遲)。相比下,2-3-3-8表現(xiàn)得相對穩(wěn)定一些。不過,也能看出在頁面增多的情況下,2-3-3-8有領(lǐng)先的趨勢。四、AquaMark3.0測試AquaMark3.0與3DMark2001SE一樣,只不過將測試平臺指向了DX9,從中我們發(fā)現(xiàn)其與3DMark2001SE有相似的表現(xiàn)。在4、8頁面時(shí),2-3-3-8沒有什么優(yōu)勢,在16頁面時(shí)后來者居上。五、SandraStandard2004SP1測試這也是著名的測試軟件了,經(jīng)常能在網(wǎng)上看到網(wǎng)友在比試該軟件所給出的內(nèi)存帶寬貼圖。與前面的測試所體現(xiàn)出來的差不多,頁面少的時(shí)候,2-3-3-5占先,頁面多的時(shí)候,2-3-3-8會(huì)反超。六、ScienceMark2.0beta測試筆者認(rèn)為ScienceMark是一個(gè)比較優(yōu)秀的測試軟件,測試的項(xiàng)目也比較多,而其所自帶的內(nèi)存測試功能也別具特色。ScienceMark的測試結(jié)果與前面所體現(xiàn)的不太一樣,頁面少的時(shí)候2-3-3-5反而更低,但兩者都從頁面數(shù)量的提高中獲益。而且,值得注意的是,在8個(gè)頁面時(shí),2-3-3-8的表現(xiàn)最好,不光帶寬領(lǐng)先,而且在延遲方面也有了大的進(jìn)步。不過,在16頁面時(shí),2-3-3-8的延遲方面就全面落后了。我感覺ScienceMark采用了與眾不同的測試邏輯與方法,但也從側(cè)面反映了兩種tRAS設(shè)置的一些差異。七、QuakeIIIArena1.32測試QuakeIII就不用我多說了,它的引擎效率極為出眾,至今仍然是一款出色的測試軟件,并且,它對內(nèi)存的效率也是比較敏感的。是不是有些吃驚,隨著頁面的增加,2-3-3-5與2-3-3-8的性能都有較為明顯的增長。難道是Q3很吃內(nèi)存。我想應(yīng)該不是,如果你打開任務(wù)管理器,就會(huì)發(fā)現(xiàn)Q3的內(nèi)存占用量并不高,512MB已經(jīng)能滿足要求了。之所以能出現(xiàn)4、5幀的性能增長,原因除了1GB內(nèi)存本身對WindowsXP更適合外,可能就在于頁面的增多,提高了內(nèi)存管理效率,進(jìn)一步的降低了尋址沖突。而2-3-3-8的優(yōu)勢也在8個(gè)頁面時(shí)開始發(fā)揮出來。在測試中,我們感覺到Q3對默認(rèn)的HQ(800X600)模式似乎有著優(yōu)化,它在測試中的表現(xiàn)最為穩(wěn)定,而且性能提升顯著。Fastest模式由于顯卡基本上是在等內(nèi)存提供“原料”,所以對內(nèi)存的效率也非常的敏感。而在HQ(1280X1024)模式下處理的重任則落在了顯卡身上,內(nèi)存的供給倒是其次了。不過,與3DMark2001SE的表現(xiàn)相似,2-3-3-5的性能表現(xiàn)不是很穩(wěn)定,有時(shí)5次測試結(jié)果中最好成績與最差成績會(huì)有比較大的差距,這可能也由于較短的行選通周期所帶來的頁面管理不確定性所造成的。八、nForce2平臺下的測試升技的AN7主板可調(diào)節(jié)的tRAS范圍出奇的大,最高可到15,最低達(dá)到1。我們選擇了3和15兩個(gè)較為極端的參數(shù)進(jìn)行了對比測試,測試結(jié)果與875P平臺相差不多,但優(yōu)劣并不是很明顯。以下是PCMark04的測試結(jié)果。AIDA32的測試只在1GB容量下進(jìn)行,2-3-3-15的讀/寫速度(MB/s)為2991/1135,2-3-3-3時(shí)為2950/1080。在Q3的測試中,1.5GB時(shí),2-3-3-15出現(xiàn)了稍微明顯的領(lǐng)先(約一幀)。1GB時(shí),兩者的表現(xiàn)基本持平。對于這個(gè)表現(xiàn),筆者認(rèn)為首先可能因?yàn)槭琼撁嫒萘坎粔虼笏?,由于不?75P那樣的雙通道,nForce2平臺測試中的頁面容量只有16KB,我們在P75P平臺上進(jìn)行的1.5GB單通道(頁面容量降低為16KB)測試也反映出這一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年導(dǎo)電銀漿合作協(xié)議書
- 營銷推廣戰(zhàn)略合作協(xié)議細(xì)節(jié)規(guī)定
- 商務(wù)酒店客房預(yù)訂管理協(xié)議
- 2025年廣西2024危險(xiǎn)品從業(yè)資格考試
- 2025年鋼材:一級鋼項(xiàng)目發(fā)展計(jì)劃
- 公司職員職務(wù)晉升證明(6篇)
- 專業(yè)演出票務(wù)銷售網(wǎng)絡(luò)協(xié)議
- 電商倉儲管理系統(tǒng)開發(fā)合同
- 2025年移動(dòng)通信用智能天線項(xiàng)目發(fā)展計(jì)劃
- 跨文化交際培訓(xùn)方案實(shí)施指南
- 2024年熔化焊接與熱切理論考試1000題及答案
- 弱電機(jī)房設(shè)備與系統(tǒng)巡檢記錄表全套
- 工商管理論文8000字【9篇】
- 全自動(dòng)進(jìn)銷存電子表格系統(tǒng)模板53
- MOOC 豬生產(chǎn)學(xué)-南京農(nóng)業(yè)大學(xué) 中國大學(xué)慕課答案
- 內(nèi)蒙古呼和浩特市2024屆小升初考試語文試卷含答案
- 貴陽市普通住宅小區(qū)物業(yè)管理服務(wù)收費(fèi)參考標(biāo)準(zhǔn)
- MOOC 地學(xué)景觀探秘·審美·文化-重慶大學(xué) 中國大學(xué)慕課答案
- 丁苯橡膠工藝流程
- (高清版)WST 311-2023 醫(yī)院隔離技術(shù)標(biāo)準(zhǔn)
- 2024年電梯安裝與維修工理論考試題庫及答案(通用版)
評論
0/150
提交評論