內存延遲

標籤: 暫無標籤

143

更新時間: 2013-08-29

廣告

內存延遲是指等待對系統內存中存儲數據的訪問完成時引起的延期。根本問題在於處理器 (如英特爾®至強TM處理器) 的主頻接近4 GHz, 而內存晶元速率僅為400 MHz (如DDR 3200內存) —時鐘速度之比為10:1。因此,當處理器需要處於內存高速緩存之外的數據項時,每個周期必須等待10個時鐘周期才能使內存晶元完成數據的提取和發送。通常,這些提取需要檢索多個內存周期,然後需要更長時間通過到處理器的路徑。這就意味著提取數據會佔用數百個處理器時鐘周期,在此期間應用不能處理其它任何任務。

簡介
內存延遲表示系統進入數據存取操作就緒狀態前等待內存響應的時間,它通常用4個連著的阿拉伯數字來表示,例如「3-4-4-8」,一般而言四個數中越往後值越大,這4個數字越小,表示內存性能越好。由於沒有比2-2-2-5更低的延遲,因此國際內存標準組織認為以現在的動態內存技術還無法實現0或者1的延遲。但也並非延遲越小內存性能越高,因為CL-TRP-TRCD-TRAS這四個數值是配合使用的,相互影響的程度非常大,並且也不是數值最大時其性能也最差,那麼更加合理的配比參數很重要。
第一個數字最為重要,表示註冊讀取命令到第一個輸出數據之間的延遲(CAS Latency),即CL值,單位是時鐘周期。這是縱向地址脈衝的反應時間。
第二個數字錶示 內存行地址控制器預充電時間(RAS Precharge),即tRP。指內存從結束一個行訪問到重新開始的間隔時間。
第三個數字錶示從內存行地址到列地址的延遲時間(RAS to CAS Delay),即tRCD。
第四個數字錶示內存行地址控制器激活時間Act-to-Precharge Precharge Delay(tRAS),
詳解
內存延遲時間有個專門的術語叫「Latency」。要形象的了解延遲,我們不妨把內存當成一個存儲著數據的數組,或者一個EXCEL表格,要確定每個數據的位置,每個數據都是以行和列編排序號來標示,在確定了行、列序號之後該數據就唯一了。內存工作時,在要讀取或寫入某數據,內存控制晶元會先把數據的列地址傳送過去,這個RAS信號(Row Address Strobe,行地址信號)就被激活,而在轉化到行數據前,需要經過幾個執行周期,然後接下來CAS信號(Column Address Strobe,列地址信號)被激活。在RAS信號和CAS信號之間的幾個執行周期就是RAS-to-CAS延遲時間。在CAS信號被執行之後同樣也需要幾個執行周期。此執行周期在使用標準PC133的SDRAM大約是2到3個周期,而DDR RAM則是4到5個周期。在DDR中,真正的CAS延遲時間則是2到2.5個執行周期。RAS-to-CAS的時間則視技術而定,大約是5到7個周期,這也是延遲的基本因素。
CL設置較低的內存具備更高的優勢,這可以從總的延遲時間來表現。內存總的延遲時間有一個計算公式,總延遲時間=系統時鐘周期×CL模式數+存取時間(tAC)。首先來了解一下存取時間(tAC)的概念,tAC是Access Time from CLK的縮寫,是指最大CAS延遲時的最大數輸入時鐘,是以納秒為單位的,與內存時鐘周期是完全不同的概念,雖然都是以納秒為單位。存取時間(tAC)代表著讀取、寫入的時間,而時鐘頻率則代表內存的速度。
操作方法
舉個例子來計算一下總延遲時間,比如一條DDR333內存其存取時間為6ns,而其內存時鐘周期為6ns(DDR內存時鐘周期=1X2/內存頻率,DDR400內存頻率為400,則可計算出其時鐘周期為6ns)。我們在主板的BIOS中將其CL設置為2.5,則總的延遲時間=6ns X2.5+6ns=21ns,而如果CL設置為2,那麼總的延遲時間=6ns X2+6ns=18 ns,就減少了3ns的時間。
從總的延遲時間來看,CL值的大小起到了很關鍵的作用。所以對系統要求高和喜歡超頻的用戶通常喜歡購買CL值較低的內存。目前各內存顆粒廠商除了從提高內存時鐘頻率來提高DDR的性能之外,已經考慮通過更進一步的降低CAS延遲時間來提高內存性能。
不過,並不是說CL值越低性能就越好,因為其它的因素會影響這個數據。例如,新一代處理器的高速緩存較有效率,這表示處理器比較少地直接從內存讀取數據。再者,列的數據會比較常被存取,所以RAS-to-CAS的發生幾率也大,讀取的時間也會增多。最後,有時會發生同時讀取大量數據的情形,在這種情形下,相鄰的內存數據會一次被讀取出來,CAS延遲時間只會發生一次。
實際建議
選擇購買內存時,最好選擇同樣CL設置的內存,因為不同速度的內存混插在系統內,系統會以較慢的速度來運行,也就是當CL2.5和CL2的內存同時插在主機內,系統會自動讓兩條內存都工作在CL2.5狀態,造成資源浪費。

廣告

廣告