當前位置:首頁 > IT技術

Ryzen平臺下內存超頻與內存時序

時間:2019-08-06 09:45:25來源:IT技術作者:seo實驗室小編閱讀:61次「手機版」
 

內存超頻

最近在AMD平臺內存,順便學習下內存知識,以下內容轉自:

內存的工作原理及時序介紹

#超頻甜點系列# ryzen內存超頻、選購二三事

RYZEN 平臺超頻的一點研究

在此感謝原貼作者們普及知識以及傳授經驗!

內存超頻軟件推薦:

Thaiphoon Burner (內存查看器)

DRAM Calculator for Ryzen 1.3.1 (AMD平臺內存超頻計算器)

MemTest Pro(內存壓力測試工具,一般跑200%無報錯即視為穩定)

Ryzen Timing Checker

基本術語:

所謂時序,就是內存的時鐘周期數值,脈沖信號經過上升再下降,到下一次上升之前叫做一個時鐘周期,隨著內存頻率提升,這個周期會變短。例如CL9的意思就是CL這個操作的時間是9個時鐘周期。

工作頻率:是內存顆粒實際的工作頻率,但是由于DDR內存可以在脈沖的上升和下降沿都傳輸數據,因此傳輸數據的等效頻率是工作頻率的兩倍;所以 工作頻率*2=等效頻率

Cell:顆粒中的一個數據存儲單元叫做一個Cell,由一個電容和一個N溝道MOSFET組成。

Bank:8bit的內存顆粒,一個顆粒叫做一個bank,4bit的顆粒,正反兩個顆粒合起來叫做一個bank。一根內存是64bit,如果是單面就是8個8bit顆粒,如果是雙面,那就是16個4bit的顆粒分別在兩面,不算ECC顆粒。

Rank:內存PCB的一面所有顆粒叫做一個rank,目前在Unbuffered臺式機內存上,通常一面是8個顆粒,所以單面內存就是1個rank,8個bank,雙面內存就是2個rank,8個bank。Bank與rank的定義是SPD信息的一部分,在AIDA64中SPD一欄可以看到。

DIMM:指一條可傳輸64bit數據的內存PCB,也就是內存顆粒的載體,算上ECC芯片,一條DIMM PCB最多可以容納18個芯片。

第一時序:CL-tRCD-tRP-tRAS-CR,就是我們常說的5個主要時序,前四個參數CL-tRCD-tRP-tRAS與內存包裝上的代碼從左至右一一對應。

CAS Latency(CL):CAS即Column Address Strobe,列地址信號,它定義了在讀取命令發出后到數據讀出到IO接口的間隔時間。由于CAS在幾乎所有的內存讀取操作中都會生效(除非是讀取到同一行地址中連續的數據,4bit顆粒直接讀取間隔3個地址,8bit顆粒直接讀取間隔7個地址,這時候CAS不生效),因此它是對內存讀取性能影響最強的。如下圖,藍色的Read表示讀取命令,綠色的方塊表示數據讀出IO,中間間隔的時間就是CL。

image022.png

已知CL時鐘周期值CAS,我們可以使用以下公式來計算實際延遲時間tCAS:

tCAS(ns)=(CAS*2000)/內存等效頻率

DRAM RAS to CAS Delay(tRCD):RAS的含義與CAS類似,就是行(Row)地址信號。它定義的是在內存的一個rank(內存的一面)之中,行地址激活(Active)命令發出之后,內存對行地址的操作所需要的時間。每一個內存cell就是一個可存儲數據的地址,每個地址都有對應的行號和列號,每一行包含1024個列地址,當某一行地址被激活后,多個CAS請求會被發送以進行讀寫操作。簡單的說,已知行地址位置,在這一行中找到相應的列地址,就可以完成尋址,進行讀寫操作,從已知行地址到找到列地址過去的時間就是tRCD。當內存中某一行地址被激活時,我們稱它為“open page”。在同一時刻,同一個rank可以打開8個行地址(8個bank,也就是8個顆粒各一個)。下圖顯示一個行地址激活命令發出,到尋找列地址并發出讀取指令,中間間隔的時間就是tRCD。tRCD值由于是最關鍵的尋址時間,它對內存最大頻率影響最大,一般想要上高頻,在加電壓和放寬CL值不奏效的時候,我們都要放寬這個延遲。

image024.png

DRAM RAS Precharge Time(tRP):RAS預充電時間。它定義的是前一個行地址操作完成并在行地址關閉(page close)命令發出之后,準備對同一個bank中下一個行地址進行操作,tRP就是下一個行地址激活信號發出前對其進行的預充電時間。由于在行地址關閉命令發出之前,一個rank中的多個行地址可能正在被讀寫,tRP對內存性能影響不如CL和tRCD。雖然tRP的影響會隨著多個行地址激活與關閉信號頻繁操作一個bank而加大,但是它的影響會被bank interleaving(bank交叉操作)和command scheduling(命令調配)所削弱。交叉讀寫會交替使用不同的bank進行讀寫,減少對一個bank的操作頻率;命令調配則是由cpu線程訪問不同的內存地址,同樣是減少對一個bank的頻繁操作次數。例如SNB CPU的內存控制器可以對讀寫操作命令進行有效地重新分配,以使得行地址激活命中率最大化(如果重復激活一個已經處于激活狀態的行地址,那就是RAS激活命令未命中),所以tRP在SNB平臺對性能的影響不大,并且放寬它有可能可以幫助提升穩定性。下圖顯示的是一個即將被激活的行地址開始預充電,到它被激活間隔的時間,就是tRP。

image026.png

DRAM RAS Active Time(tRAS):行地址激活的時間。它其實就是從一個行地址預充電之后,從激活到尋址再到讀取完成所經過的整個時間,也就是tRCD+tCL的意思。這個操作并不會頻繁發生,只有在空閑的內存新建數據的時候才會使用它。太緊的tRAS值,有可能會導致數據丟失或不完整,太寬的值則會影響內存性能,尤其是在內存使用量增加的時候。所以一般為了穩定性,我們設置tRAS≥tRTP+tRCD+CL即可(tRTP不是tRP,將在第二時序中介紹),尤其是PCB不好或者跑高頻的時候,多幾個周期比較穩妥。

DRAM Command Mode(Command Rate,CR):首命令延遲,也就是我們平時說的1T/2T模式。是指從選定bank之后到可以發出行地址激活命令所經過的時間。CR可能對性能的影響有比較大的變數:如果CPU所需要的數據都在內存的一個行地址上,就不需要進行重復多次的bank選擇,CR的影響就很小;但是如果一個rank中同時多個bank要激活行地址,或者不同的rank中不同bank需要同時激活的時候,CR對性能的影響就會提升。但是隨著內存頻率的提升,CR=1T/2T的時間差越短,它的影響就會越來越小,這就是我們看到DDR1的時候1T/2T對性能影響挺大,但是到了DDR3影響就很小的其中一個原因。但是為了性能最大化,我們盡量把CR設為1T,但是如果bank數很多的時候,例如插滿四條內存,就有32個bank,bank選擇隨機性增大,1T的首命令時間可能會不穩定。

所以,內存的基本讀取操作的時序角度流程就是把上面那三張圖合起來:預充電-激活行地址并尋找列地址-發送讀取命令-讀出數據,這四步操作中間的三個延遲就分別是tRP、tRCD和CL。和我們常說的時序順序剛好是反過來的。

第二時序

尤其注意tRRD和tRFC這兩個時序,其它的則一般不影響。

DRAM CAS Write Latency(tWCL):列地址寫入延遲,也就是DRAM的最小寫入操作時間,與CL剛好是讀寫對應關系,一般跟CL值設為同一個值就是可以穩定的。由于內存讀取之前必須先寫入,所以這個值可以說與CL一樣重要。但是在BiOS里一般沒得設置,可能是與CL綁定了。

DRAM Row Cycle Time(tRC):行周期時間。定義了同一bank兩次行激活命令所間隔的最小時間,或者說是一個bank中完成一次行操作周期(Row Cycle)的時間,即tRP+tRAS(預充電加上激活的整個過程),tRC設得太緊可能會直接點開不了機,一般只要能進系統再多加一兩個周期都是可以穩定的。下圖顯示的就是tRC的時間。

image028.png

DRAM Row Refresh Cycle Time(tRFC):行地址刷新周期,定義了一個bank中行地址刷新所需要的時間。重提一下刷新的含義,由于cell中電容的電荷在MOSFET關閉之后一段時間就會失去,為了維持數據,每隔很短一段時間就需要重新充電。這里多提一句,Intel平臺和AMD平臺對tRFC的含義不一樣,AMD平臺的tRFC是DRAM刷新延遲時間,單位是ns,通常有90/110/160/300幾個值可以調整,也就是說它的tRFC時鐘周期會隨著頻率的提升而提升;而Intel平臺的單位則直接是時鐘周期,相反地延遲時間會隨著頻率的提升而降低。容量大的bank行地址和cell會更多,刷新時間也更長,因此tRFC也要更高。另外,tRFC如果太快會導致數據出錯,太慢則影響性能,但可以增加穩定性。

DRAM Refresh Interval(tREFI):內存刷新時間間隔,也就是內存的刷新命令生效前要經過的時間。刷新的時間間隔一般取決于內存顆粒的容量(density),容量越大,就越需要頻繁刷新,tREFI值就要越低。另外tREFI的時間也會受到內存工作溫度與內存電壓(Vdimm)影響,因為溫度越高電容漏電越快。一般在AMD主板的BIOS里,這個值只有3.9us和7.8us可選,而在SNB平臺,則是按時鐘周期算,例如DDR3-1333下默認值為5199T,換算過來就是2000/1333x5199=7800ns,也就是7.8us。一般DRAM顆粒的spec中都是規定工作溫度大于85度時采用3.9us。

DRAM RAS to RAS Delay(tRRD):行地址間延遲,定義的是同一rank不同bank間兩個連續激活命令的最短延遲,在DDR3時代一般最小是4T。它的作用和CR有點像,不過比CR更多的時候對性能有較大的影響,所以這個時序可盡量縮小。

DRAM Write Recovery Time(tWR):內存寫入恢復時間,它定義了內存從寫入命令發出(從開始寫入算起)到下一次預充電間隔的時間,也就是tRP的前一個操作。如果這個時間設得太短,可能會導致前一次寫入未完成就開始下一次預充電,進行尋址,那么前一次寫入的數據就會不完整,造成丟數據的情況。這個周期也是第二時序中比較長的,DDR3-2000一般需要10-14個周期,甚至更高。

DRAM Read to Precharge Time(tRTP):與tWR類似,定義了同一rank上內存從讀取命令發出到tRP之前的間隔時間,但是它在讀取完成并且行地址關閉之后才會生效。單顆128MB的內存顆粒可以在DDR3-2000下運行在4到6個時鐘周期,如果bank容量增大時,這個時序有可能要放寬。

DRAM Four Active Window(tFAW):它定義了同一rank中允許同時發送大于四個行激活命令的間隔時間,因此最小值應該不小于tRRD的四倍。在DDR3上,tRRD的最小值是4T,因此tFAW的最小值就是16T。這個tFAW由于是在一個rank中大于四個bank同時激活之后才生效,因此在內存不是很繁忙的時候,它對性能的影響并不是很大。但是對一些頻繁讀寫內存的操作(例如SuperPI 32M),tFAW對性能的影響可能會加大。由于現在內存用滿的幾率非常非常小,兩根雙面的內存更是有4個rank,配合上interleaving,一個rank中同時激活大于四個bank的幾率應該不大,所以通常我們把它設為tRRD的四倍應該就不會出問題。

DRAM Write to Read Delay(tWTR):內存寫-讀延遲,它定義的是內存寫入命令發出后到下一個讀取命令之間的時間間隔,最小為4T,與tRTP類似,提升內存的頻率或者容量提升時,這個值需要提高。

第三時序

第三時序中對性能影響最大的是tRDRD和tWRWR。當內存頻率小于2133MHz時,第三時序對性能的影響非常小。當內存頻率超過2400MHz之后,tRDRD和tWRWR對內存帶寬的影響非常大,這兩個參數的最小值為4個周期,每加1個周期,內存讀寫性能就會出現較大幅度的下降,每放大一個周期內存帶寬大約下降10%~15%。內存頻率達到2800MHz之后這兩個小參往往要放大到6個周期,性能上會有較大的損失,因此犧牲tRDRD和tWRWR換取超高頻的做法是不可取的。其余第三時許的各個小參對性能影響不大,一般全部設置為Auto即可。

第二類,其中三個是tRDWR、tRDWR_dr和tRDWR_dd,這三個時序對效能影響不大也不小,一般2400-2800這段頻率都設置在10-12,2133以下可使用BIOS Auto。另外還有一個最大的tWRRD,一般在2400以下可設16,2666以上需要設到20,對性能影響不大。

第三類,除了上邊提到的之外剩下其它的六個。這當中除了tRDRD_dr和tWRWR_dr之外,其它四個都可以設為1T,設為4T效能最好,不過影響其實都非常非常小。而tRDRD_dr一般設為5T不用動,tWRWR_dr大多數時候可設為4T,單條8G的跑高頻(2666以上)可能要設為8T。

頻率和時序 哪個對內存性能影響更大?

相關閱讀

32位CPU支持多大內存 詳細解析內存尋址能力和CPU位寬

今天給大家科普一個電腦知識,那就是內存尋址能力與CPU的位寬有關系嗎?答案是沒有關系。這個問題以訛傳訛了很多人,傳了很久,確實有必

金士頓內存條真假辨別圖文教程

金士頓內存條真假辨別圖文教程。內存在電腦硬件里算是最常見的,金士頓市場占有率高,數量多,因此出現了一些良莠不齊的內存條。大家快

9550顯卡超頻后玩游戲死機問題

問:我的顯卡是雙敏Power9508增強版每次玩CS1.6必死機,玩其他游戲沒事。是不是顯卡超頻到398/526的關系?不超頻就不會死機,但失去了955

virtualBox經常報錯“內存不能為written”解決方法

在使用virtualBox的時候經常發生如下所示的錯誤,很難受,再次重啟虛擬機還是會這樣,找了很久,找到一個辦法,算是管用的 1、運行Universa

堆、棧、方法區、直接內存、堆和棧區別

JVM的體系結構(1) Class Loader類加載器??負責加載 .class文件,class文件在文件開頭有特定的文件標示,并且ClassLoader負責class

分享到:

欄目導航

推薦閱讀

熱門閱讀

云南彩票投注站申请