介紹
DDR,DDR2,DDR3 記憶體是根據他們能夠工作的最高速度以及他們的timing進行分類的。Timing是由一系列數字表示如3-4-4-8,5-5-5-15,7-7-7-21或者9-9-9-24,越低越好。在本文中,會解釋這些數位含義。
DDR,DDR2和DDR3的記憶體遵守DDRxxx/PCxxx的分類規範。
第一組數字,xxx,代表記憶體晶片支援的最高時鐘頻率。例如DDR400記憶體晶片工作在最高400MHz下,DDR2-800工作在最高800MHz下。但是要注意的是這不是記憶體的實際時脈速度,DDR,DDR2,DDR3記憶體的時脈速度是標籤時鐘頻率的一半。所以DDR400的記憶體共走在200MHz下。
第二個數字代表記憶體達到的最大傳輸率,單位是MB/S。DDR400記憶體最高傳輸資料速度是3200MB/s.,因此它的標籤上標註的是PC3200.
上面提到的第一個分類DDRxxx是用來分類記憶體晶片的標準,第二個分類PCyyyy是用來分類記憶體模組的標準。
在上圖中,你可以看到pc3-10666記憶體模組,使用ddr3-1333記憶體晶片。注意到時序7-7-7-18以及電壓1.5v
一個記憶體模組的最大資料轉送率可以根據以下公式計算:
最高理論傳輸率 = 時鐘頻率 * 位元數/8
由於DIMM模組一次傳輸64位元。 位元數就是64
那麼上面的公式就簡化為:
最高理論傳輸率 = 時鐘頻率 * 8
如果記憶體模組安裝到的系統的記憶體匯流排運行在一個更低的時鐘頻率,那麼記憶體模組能夠達到的最高資料轉送速率會低於理論最高資料轉送率。
舉個例子,加入你買了一堆DDR3-2133/PC3-17000記憶體。儘管他們被腳趾尾DDR3-2133,它不會在系統總自動運行在2133MHz.。 這是它支援的最高時鐘頻率,而不是它運行在的時鐘頻率。如果你把它裝在一個普通的支援DDR3的PC中。它可能會運行在1333MHz.這是最高的DDR3標準速度。獲得最高傳輸鍍鋁為10664MB/S 【如果運行在雙通道模式中時,可以達到21328MB/S】所以他們是不會自動運行在21333MHz,也不會自動達到17000MB/s的。
那為什麼有人會購買這些模組呢。有得人買他們是為了超頻。由於製造商保證了這些模組會運行在高達2133MHz下。你就知道了你可以把記憶體匯流排的時鐘頻率提升到1066MHz來達到更高的效能。
然而你的主板必須支援這樣的超頻,因此如果不超頻,購買一個記憶體模組頻率高於系統支援的記憶體是沒用的。
時序 由於時序的存在,兩個有著相同理論最高傳輸率的記憶體模組會有不同的效能表現,為什麼會這樣呢。
時序是記憶體晶片內部做某些操作之間的延遲。考慮最有名的幾個參數,一個是CAS延遲,【或者CL或者訪問時間】。這個參數會告訴我們記憶體模組要貨多長時間返回CPU請求的資料。一個CL為9的記憶體模組會延遲9個時鐘後返回請求的資料。而CL為7的記憶體模組會延遲7個時鐘後返回資料。第二個記憶體模組啟動並執行更快,由於它返回資料的速度更快。
正如你在圖1中可以看到的。圖一中的記憶體模組的CL值為7.
記憶體時序是通過一系列數字給出的,例如,4-4-4-8,5-5-5-5-15,7-7-7-21或者9-9-9-24。數字代表記憶體執行某個操作所需要的刻度數。數字越小,記憶體的速度越快,圖1中的記憶體模組的時序為7-7-7-18,,下圖中的記憶體模組的時序是8-8-8-24、
這些操作的含義,按照順序分別是 CL-tRCD-tRP-tRAS-CMD 為了理解他們,要記住記憶體是被組織成矩陣的,資料存放區在旱行與列的交界處。
CL: CAS延遲,是從向記憶體發射一個命令到記憶體開始回答所花的時間。也就是從處理器向記憶體要資料開始到記憶體開始返回資料的時間。
tRCD: RAS到CAS的延遲,也就是從啟用一個行命令RAS到列選擇CAS的時間。
tRP:RAS Precharge的時間。是從關閉一個行到開始玲一行的訪問的時間。
tRAS; Active 到precharge的時間。記憶體要發射下一個記憶體請求要等待的時間。
CMD:命令速率,從晶片被activated到可以向記憶體發射第一條命令所花費的時間。通常這要花費一個或者兩個刻度。
通常,你有兩種選擇,配置PC來使用記憶體標準時序,通過在bios中設定記憶體配置為AUTO;或者人工設定PC來使用更低的記憶體時序,從而提高系統的效能,要注意的是不是所有的主板都支援改變記憶體時序,並且,有的主板可能不能夠在非常低的記憶體時序下運行。
當你要對記憶體進行超頻的時候,你可能需要增加你的記憶體時序,從而使得系統啟動並執行更穩定,這時其實有一個很有意思的事情發生了,通過提高記憶體時序,記憶體其實效能是更差了,即使是運行在更高的時鐘頻率下,這時由於提高記憶體時序引入了延遲。
這裡就是特別為超頻設計的記憶體模組的另一個優點,製造商在保證記憶體模組可以達到標籤上標註的時鐘頻率的同時,也保證你能夠在標註的時鐘頻率下獲得標註的時序。
例如,儘管你使用DDR3-1333/PC3-10600能夠達到1600MHz【800MHz*2】,在這些模組下,你可能需要增加記憶體時序。而在DDR3-1600/PC3-12800記憶體模組中,製造商保證了你在達到1600MHz時能夠不用調整記憶體時序。
下面詳細解釋每一個記憶體時序參數的含義。
CAL 延遲【CL】
正如之前提到的,CAS延遲是最著名的記憶體參數,它告訴我們記憶體需要延遲多少刻度才能夠返回我們請求的資料。
值得注意的是這裡提到的時鐘頻率是記憶體模組當前運行在的頻率【real clock rate】。也就是rated clock rate的一半,由於DDR,DDR2,與DDR3記憶體能夠每一個刻度傳輸兩個資料,他們rate clock rate是他們real clock rate的兩倍。
在上圖中,你可以看到CL的工作過程,我們給出兩個例子,例子中一個記憶體模組的CL=7,一個記憶體模組的CL=9。圖中藍色的命令是讀命令。
CL=7的記憶體模組的延遲比CL=9的記憶體模組延遲效能高22.2%。兩個模組運行在相同時鐘頻率下。
計算過程:首先DDR3-1333記憶體的每個刻度時間為1.5ns。注意這裡要使用real clock rate,這個real的是標籤標註的時鐘頻率的一半。
所以DDR3-1333記憶體對於CL=7需要延遲10.5ns,而對於CL=9需要延遲13.5ns。
SDRAM, DDR,DDR2,與DDR3記憶體實現了burst模式,這時儲存在下一個地址的資料可以突發傳輸。