一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

DDR內(nèi)存的終極優(yōu)化2——認清影響內(nèi)存性能的關鍵

 Kinetis 2013-05-13

在講完 SDRAM 的基本工作原理和主要操作之后,我們現(xiàn)在要重要分析一下 SDRAM 的時序與性能之間的關系,它不再局限于芯片本身,而是要從整體的內(nèi)存系統(tǒng)去分析。這也是廣大 DIYer 所關心的話題。比如 CL 值對性能的影響有多大幾乎是每個內(nèi)存論壇都會有討論,今天我們就詳細探討一下。這里需要強調一點,對于內(nèi)存系統(tǒng)整體而言,一次內(nèi)存訪問就是對一個頁 (Page)的訪問。由于在 P-Bank 中,每個芯片的尋址都是一樣的,所以可以將頁訪問“濃縮”等效為對每芯片中指定行的訪問,這樣可能比較好理解。但為了與官方標準統(tǒng)一,在下文中會經(jīng)常用頁來描述相關的內(nèi)容,請讀者注意理解。

    可能很多人還不清楚頁的概念,在這里有必要先講一講。從狹義上講,內(nèi)存芯片芯片中每個 L-Bank 中的行就是頁,即一行為一頁。但從廣義上說,頁是從整體角度講的,這個整體就是內(nèi)存子系統(tǒng)。

    對于內(nèi)存模組,與之進行數(shù)據(jù)交換的單位就是 P-Bank 的位寬。由于目前還沒有一種內(nèi)存芯片是 64bit 位寬的,所以就必須要用多個芯片的位寬來集成一個 P-Bank。如我們現(xiàn)在常見的內(nèi)存芯片是 8bit 位寬的,那么就需要 8 顆芯片組成一個 P-Bank 才能使系統(tǒng)正常工作。而 CPU 對內(nèi)存的尋址,一次就是一個 P-Bank,P-Bank 內(nèi)的所有芯片同時工作,這樣對 P-Bank 內(nèi)所有的芯片的尋址都是相同的。比如尋址指令是 B1、C2、R6,那么該 P-Bnak 內(nèi)的芯片的工作狀態(tài)都是打開 B1 的 L-Bank 的第 C2 行。好了,所謂廣義上的頁就是指 P-Bank 所包括的芯片內(nèi)相同 L-Bank 內(nèi)的相同工作行的總集合 。頁容量對于內(nèi)存子系統(tǒng)而言是一個很重要的指標。這個參數(shù)取決于芯片的容量與位寬的設計。由于與本文的關系不大,就不具體舉例了。


    早期 Intel 845 芯片組 MCH 的資料:它可以支持 2、4、8、16KB 的頁容量

    總之,我們要知道,由于尋址對同一 L-Bank 內(nèi)行地址的單一性,所以一個 L-Bank 在同一時間只能打開一個頁面,一個具有 4 個 L-Bank 的內(nèi)存芯片,可以打開 4 個頁面。這樣,以這種芯片組成的 P-Bank,也就最后具備了 4 個頁面,這是目前 DDR SDRAM 內(nèi)存模中每個 P-Bank 的頁面最大值。

1、影響性能的主要時序參數(shù)

    在講完內(nèi)存的基本操作流程與相關的 tRP、tRCD、CL、BL 之后,我們就開始深入分析這些參數(shù)對內(nèi)存性能的影響。所謂的影響性能是并不是指 SDRAM 的帶寬,頻率與位寬固定后,帶寬也就不可更改了。但這是理想的情況,在內(nèi)存的工作周期內(nèi),不可能總處于數(shù)據(jù)傳輸?shù)臓顟B(tài),因為要有命令、尋址等必要的過程。但這些操作占用的時間越短,內(nèi)存工作的效率越高,性能也就越好。

    非數(shù)據(jù)傳輸時間的主要組成部分就是各種延遲與潛伏期。通過上文的講述,大家應該很明顯看出有三個參數(shù)對內(nèi)存的性能影響至關重要,它們是 tRCD、CL 和 tRP。按照規(guī)定,每條正規(guī)的內(nèi)存模組都應該在標識上注明這三個參數(shù)值,可見它們對性能的敏感性。

    以內(nèi)存最主要的操作——讀取為例。tRCD 決定了行尋址(有效)至列尋址(讀 / 寫命令)之間的間隔 ,CL 決定了列尋址到數(shù)據(jù)進行真正被讀取所花費的時間,tRP 則決定了相同 L-Bank 中不同工作行轉換的速度?,F(xiàn)在可以想象一下對某一頁面進行讀取時可能遇到的幾種情況(分析寫入操作時不用考慮 CL 即可):

1、要尋址的行與 L-Bank 是空閑的。也就是說該 L-Bank 的所有行是關閉的,此時可直接發(fā)送行有效命令,數(shù)據(jù)讀取前的總耗時為 tRCD+CL,這種情況我們稱之為頁命中 (PH,Page Hit)。

2、要尋址的行正好是現(xiàn)有的工作行,也就是說要尋址的行已經(jīng)處于選通有效狀態(tài),此時可直接發(fā)送列尋址命令,數(shù)據(jù)讀取前的總耗時僅為 CL,這就是所謂的背靠背 (Back to Back)尋址,我們稱之為頁快速命中(PFH,Page Fast Hit)或頁直接命中(PDH,Page Direct Hit)。

3、要尋址的行所在的 L-Bank 中已經(jīng)有一個行處于活動狀態(tài)(未關閉),這種現(xiàn)象就被稱作尋址沖突,此時就必須要進行預充電來關閉工作行,再對新行發(fā)送行有效命令。結果,總耗時就是 tRP+tRCD+CL,這種情況我們稱之為頁錯失 (PM,Page Miss)。

    顯然,PFH 是最理想的尋址情況,PM 則是最糟糕的尋址情況。上述三種情況發(fā)生的機率各自簡稱為 PHR —— PH Rate、PFHR —— PFH Rate、PMR —— PM Rate。因此,系統(tǒng)設計人員(包括內(nèi)存與北橋芯片)都盡量想提高 PHR 與 PFHR,同時減少 PMR,以達到提高內(nèi)存工作效率的目的。

二、增加 PHR 的方法

    顯然,這與預充電管理策略有著直接的關系,目前有兩種方法來盡量提高 PHR。自動預充電技術就是其中之一,它自動的在每次行操作之后進行預充電,從而減少了日后對同一 L-Bank 不同行尋址時發(fā)生沖突的可能性。但是,如果要在當前行工作完成后馬上打開同一 L-Bank 的另一行工作時,仍然存在 tRP 的延遲。怎么辦? 此時就需要 L-Bank 交錯預充電了。

    早期非常令人關注的VIA 4路交錯式內(nèi)存控制,就是在一個L-Bank工作時,對另一個L-Bank進行預充電或者尋址(如果要尋址的L-Bank是關閉的)。這樣,預充電與數(shù)據(jù)的傳輸交錯執(zhí)行,當訪問下一個L-Bank時,tRP已過,就可以直接進入行有效狀態(tài)了,如果配合得理想,那么就可以實現(xiàn)無間隔的L-Bank交錯讀/寫(一般的,交錯操作都會用到自動預充電),這是比PFH更好的情況,但它只出現(xiàn)在后續(xù)的數(shù)據(jù)不在同一頁面的時時候。當時VIA聲稱可以跨P-Bank進行16路內(nèi)存交錯,并以LRU(Least Recently Used,近期最少使用)算法進行 交錯預充電/尋址管理。

    L-Bank 交錯自動預充電 / 讀取時序圖: L-Bank 0 與 L-Bank 3 實現(xiàn)了無間隔交錯讀取,避免了 tRP與tRCD對性能的影響 ,是最理想的狀態(tài)

三、增加 PFHR 的方法

無論是自動預充電還是交錯工作的方法都無法消除同行(頁面)尋址時tRCD 所帶來的延遲。要解決這個問題,就要盡量讓一個工作行在進行預充電前盡可能多的接收工作命令,以達到背靠背的效果,此時就只剩下 CL 所造成的讀取延遲了(寫入時沒有延遲)。

如何做到這一點呢?這就是北橋芯片的責任了。現(xiàn)在我們就又接觸到 tRAS 這個參數(shù),在 BIOS 中所設置的 tRAS 是指行有效至預充電的最短周期,在內(nèi)存規(guī)范中定義為 tRAS(min),過了這個周期后就可以發(fā)出預充電指令。對于 SDRAM 和 DDR SDRAM 而言,一般是預充電命令至少要在行有效命令 5 個時鐘周期之后發(fā)出,最長間隔視芯片而異(目前的 DDR SDRAM 標準一般基本在 70000ns 左右),否則工作行的數(shù)據(jù)將有丟失的危險。那么這也就意味著一個工作行從有效(選通)開始,可以有 70000ns 的持續(xù)工作時間而不用進行預充電。顯然,只要北橋芯片不發(fā)出預充電(包括允許自動預充電)的命令,行打開的狀態(tài)就會一直保持。在此期間的對該行的任何讀寫操作也就不會有 tRCD 的延遲??梢?,如果北橋芯片在能同時打開的行(頁)越多,那么 PFHR 也就越大。需要強調的是,這里的同時打開不是指對多行同時尋址(那是不可能的),而是指多行同時處于選通狀態(tài)。我們可以看到一些 SDRAM 芯片組的資料中會指出可以同時打開多少個頁的指標,這可以說是決定其內(nèi)存性能的一個重要因素。

Intel 845 芯片組 MCH 的資料:其中表明它可以支持 24 個頁面同時處于打開狀態(tài)

    但是,可同時打開的頁數(shù)也是有限制的。從 SDRAM 的尋址原理講,同一L-Bank 中不可能有兩個打開的行(讀出放大器只能為一行服務),這就限制了可同時打開的頁面總數(shù)。以 SDRAM 有 4 個 L-Bank,北橋最多支持 8 個 P-Bank(4 條 DIMM)為例,理論上最多只能有 32 個頁面能同時處于打開的狀態(tài)。而如果只有一個 P-Bank,那么就只剩下 4 個頁面,因為有幾個 L-Bank 才能有同時打開幾個行而互不干擾 。Intel 845 的 MHC 雖然可以支持 24 個打開的頁面,那也是指 6 個 P-Bank 的情況下(845MCH 只支持 6 個 P-Bank)??梢?845 已經(jīng)將同時打開頁數(shù)發(fā)揮到了極致。

    不過,同時打開頁數(shù)多了,也對存取策略提出了一定的要求。理論上,要盡量多地使用已打開的頁來保證最短的延遲周期,只有在數(shù)據(jù)不存在(讀取時)或頁存滿了(寫入時)再考慮打開新的指定頁,這也就是變向的連續(xù)讀 / 寫。而打開新頁時就必須要關閉一個打開的頁,如果此時打開的頁面已是北橋所支持的最大值但還不到理論極限的話 (如果已經(jīng)達到極限,就關閉有沖突的L-Bank內(nèi)的頁面即可),就需要一個替換策略,一般都是用 LRU 算法來進行,這與 VIA 的交錯控制大同小異。

    回到正題,雖然 tRAS 代表的是最小的行有效至預充電期限,但一般的,北橋芯片一般都會在這個期限后第一時間發(fā)出預充電指令(自動預充電時,會在tRAS之后自動執(zhí)行預充電命令),只有在與其他操作相沖突時預充電操作才被延后(比如,DDR SDRAM 標準中規(guī)定,在讀取命令發(fā)出后不能立即發(fā)出預充電指令)。因此,tRAS 的長短一直是內(nèi)存優(yōu)化發(fā)燒友所爭論的話題,在最近一兩年,由于這個參數(shù)在 BIOS 選項中越來越普及,所以也逐漸被用戶所關注。其實,在 SDRAM 時代就沒有對這個參數(shù)有刻意的設定,在 DDR SDRAM 的官方組織 JEDEC 的相關標準中,也沒有把其列為必須標明的性能參數(shù) (CL、tRCD、tRP 才是),tRAS 應該是某些主板廠商炒作出來的,并且在主板說明書上也注明越短越好。

    其實,縮小 tRAS 的本意在于,盡量壓縮行打開狀態(tài)下的時間,以減少同 L-Bank 下對其他行進行尋址時的沖突,從內(nèi)存的本身來講,這是完全正確的做法,符合內(nèi)存性能優(yōu)化的原則,但如果放到整體的內(nèi)存系統(tǒng)中,伴隨著主板芯片組內(nèi)存頁面控制管理能力的提升,這種做法可能就不見得是完全正確的,在下文中我們會繼續(xù)分析 tRAS 的不同長短設置對內(nèi)存性能所帶來的影響。

四、BL 長度對性能的影響

    從讀 / 寫之間的中斷操作我們又引出了 BL(突發(fā)長度)對性能影響的話題。首先,BL 的長短與其應用的領域有著很大關系,下表就是目前三個主要的內(nèi)存應用領域所使用的 BL,這是廠商們經(jīng)過多年的實踐總結出來的。

BL與相應的工作領域

    BL 越長,對于連續(xù)的大數(shù)據(jù)量傳輸很有好處,但是對零散的數(shù)據(jù),BL 太長反而會造成總線周期的浪費,雖然能通過一些命令來進行終止,便也占用了控制資源。以 P-Bank 位寬 64bit 為例 ,BL=4 時,一個突發(fā)操作能傳輸 32 字節(jié)的數(shù)據(jù),為了滿足 Cache Line 的容量需求,還得多發(fā)一次,如果是 BL=8,一次就可以滿足需要,不用再次發(fā)出讀取指令。而對于 2KB 的數(shù)據(jù) ,BL=4 的設置意味著要每隔 4 個周期發(fā)送新的列地址,并重復 63 次。而對于 BL=256,一次突發(fā)就可完成,并且不需要中途再進行控制,但如果僅傳輸 64 字節(jié),就需要額外的命令來中止 BL=256 的傳輸。而額外的命令越多,越占用內(nèi)存子系統(tǒng)的控制資源,從而降低總體的控制效率。從這可以看出 BL 對性能的影響因素,這也是為什么 PC 上的內(nèi)存子系統(tǒng)的 BL 一般為 4 或 8 的原因。但是不是 8 比 4 好,或者 4 比 8 好呢?并不能統(tǒng)一而論,這在下文會分析到。

    到此,大家應該有一些優(yōu)化的眉目了吧。我們可以先做一下界定,任何情況下,只要數(shù)值越小或越大(單一方向),內(nèi)存的性能會越好的參數(shù)為 絕對參數(shù) ,而數(shù)值越小或越大對性能的影響不固定的參數(shù)則為 相對參數(shù)。那么,CL、tRCD、tRP 顯然就是絕對參數(shù),任何情況下減少它們的周期絕對不會錯。而且從上文的分析可以發(fā)現(xiàn) ,從重要性來論,優(yōu)先優(yōu)化的順序也是 CL → tRCD → tRP,因為 CL 的遇到的機會最多,tRCD 其次,tRP 如果頁面交錯管理的好,大多不受影響。而 BL、tRAS 等則可以算是相對參數(shù)。也正是由于這些相對參數(shù)的存在,才使得內(nèi)存優(yōu)化不再那么簡單。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产成人精品99在线观看| 久久国产亚洲精品赲碰热| 国产精品99一区二区三区| 人妻巨大乳一二三区麻豆| 国产91人妻精品一区二区三区 | 狠狠干狠狠操亚洲综合| 亚洲国产精品一区二区| 国产av精品高清一区二区三区| 欧美日韩有码一二三区| 熟女中文字幕一区二区三区| 国产精品不卡高清在线观看| 色鬼综合久久鬼色88| 午夜福利在线观看免费| 色婷婷日本视频在线观看| 日韩视频在线观看成人| 九九九热在线免费视频| 国产又大又硬又粗又黄| 国产内射一级一片内射高清视频 | 亚洲一区二区福利在线| 日韩欧美国产亚洲一区| 精品日韩欧美一区久久| 黑人巨大精品欧美一区二区区 | 亚洲欧美日韩国产自拍| 国产午夜福利在线免费观看| 精品国产日韩一区三区| 欧美日韩校园春色激情偷拍| 好吊日视频这里都是精品| 日韩女优精品一区二区三区| 人妻巨大乳一二三区麻豆| 亚洲一区二区亚洲日本| 美女黄色三级深夜福利| 亚洲国产成人精品一区刚刚| 免费精品一区二区三区| 国产亚洲欧美另类久久久| 美女黄片大全在线观看| 欧美激情区一区二区三区| 国产欧美韩日一区二区三区| 老司机精品视频在线免费| 日本二区三区在线播放| 日韩av亚洲一区二区三区| 少妇人妻精品一区二区三区|