天天看點

DDR科普:什麼是記憶體時序?

作者:嵌入式Linux

當我們購買記憶體條的時候,通常會看到記憶體條有如下規格11-11-11-28。那麼,它代表什麼意思呢?

它是一種記憶體時序,指的是記憶體在處理各種任務時,遇到的固有延遲的一種數值描述。

簡單來講,就是CPU在向記憶體索要資料,或者在向記憶體寫入資料的時候,記憶體要經曆一系列的操作,才能把CPU想要的資料給出來或寫進去。而這一系列的操作所需要花費的時間周期,就是記憶體時序。

DDR科普:什麼是記憶體時序?

這四個數值分别表示CL,tRCD,tRP,tRAS,機關ns。這個數值越短,表示延遲越低,記憶體的性能越好。

DDR科普:什麼是記憶體時序?

其實時序還有很多,隻不過以上四個參數相對來說比較重要。

在講解之前,我們先來了解一下記憶體是怎麼存取資料的。

首先,要知道SDRAM(記憶體顆粒),DDR就是将這些顆粒內建在一起,然後再加一個控制器。

記憶體在存取資料時,是以行列的方式進行,跟excel表格類似,通過行列方式定位資料,這個表格我們稱為邏輯BANK(L-BANK)。

DDR科普:什麼是記憶體時序?

▲SDRAM内部L-BANK示意圖,8X8陣列

  • B:L-BANK(邏輯logic bank)位址編号
  • C:column列支援編号
  • R:row行位址編号

如果我們要找到BANK中的黃色位置,先指定L-BANK位址B1,然後指定行位址R6,再指定列位址C4,最終就能找到尋址單元。

談到BANK,我們順便了解一下RANK這個概念(經常容易搞混,分不清楚)。

DDR資料存儲時,以64bit資料線為例,CPU每次從記憶體裡面讀取資料都是一次64bits,而記憶體顆粒一般沒有64bit,大多為4bits,8bits,16bits。為了湊夠CPU通路所需的64bits,假設每個顆粒是8bits,就需要8個顆粒并在一起,并在一起的8個顆粒就叫Rank。

DDR科普:什麼是記憶體時序?

假設記憶體晶片基本上是8個L-BANK位址,也就是8個這樣的表格。

在了解資料如何存取後,下面具體看看這四個參數:

DDR科普:什麼是記憶體時序?

記憶體行位址傳輸到列位址的延遲時間為tRCD(RAS to CAS delay),因為在行激活指令發出之後,晶片存儲陣列電子元件響應需要一定的時間。

簡單來說,在記憶體控制器接收到行的指令後,需要等待一定的時間才能通路這一行,這個等待時間就是tRCD。

DDR科普:什麼是記憶體時序?

tRCD以時鐘周期為機關,例:tRCD=2,代表延遲兩個時鐘周期。

這個參數對系統影響不大,因為程式存儲資料到記憶體中是一個持續過程。同一個程式中一般都會在同一行中尋址。

DDR科普:什麼是記憶體時序?

記憶體先确定了行,要想找出資料,還需要确定列,這時我們就能準确的找到目标資料。

記憶體确定了行數之後,還需要等待一定的時間才能通路具體列數,這個等待的時間就是CL。CL就是列位址通路的延遲時間,是時序中最重要的參數。

DDR科普:什麼是記憶體時序?

關于CL,這裡必須強調幾點:

  • CL(CAS Latency,CAS潛伏期),在頻率相同的情況下,CL值越小,記憶體速度越快。由于CL隻在讀取時出現,是以CL又被稱為讀取潛伏期。
  • CL的值随着記憶體頻率的增加而增大。
  • CL數值也以時鐘周期數表示,是以必須知道記憶體的頻率才可以知道CL延遲的具體時間,比較才會更有意義。
  • 例如:

◎ DDR-400記憶體,CL=2.5,時鐘頻率為200MHz,實際CL=12.5ns。

◎ DDR2-800記憶體,CL=5,時鐘頻率為400MHz,實際也是CL=12.5ns。

二者一樣。

  • 選擇購買記憶體時,最好選擇同樣CL值的記憶體,不同速度的記憶體混插在系統内,會以較慢的那塊記憶體來運作,進而造成資源的浪費。

嵌入式物聯網需要學的東西真的非常多,千萬不要學錯了路線和内容,導緻工資要不上去!

無償分享大家一個資料包,差不多150多G。裡面學習内容、面經、項目都比較新也比較全!某魚上買估計至少要好幾十。

點選這裡找小助理0元領取:二維碼詳情

DDR科普:什麼是記憶體時序?
DDR科普:什麼是記憶體時序?
DDR科普:什麼是記憶體時序?

tRP(RAS Precharge Time )行預充電時間。假如目前尋址的存儲單元是B1、R5、C2。如果接下來的尋址指令是B1、R6、C2,由于是同一L-Bank的不同行,那麼就必須要先把R5關閉,才能對R6進行尋址。

從開始關閉現有的工作行,到可以打開新的工作行之間的間隔就是tRP,機關也是時鐘周期數。

DDR科普:什麼是記憶體時序?
DDR科普:什麼是記憶體時序?

tRAS表示記憶體行有效至預充電的最短周期 ,可以簡單了解成記憶體寫入或讀取資料的一個時間,一般接近前三個參數的總和。

調整這個參數須要結合具體狀況而定,通常咱們最好設在5-10之間。這個參數要根據實際狀況而定,并非說越大或越小就越好。

若tRAS的周期太長,會影響系統的性能。

若tRAS的周期太短,則可能因缺少足夠的時間而沒法完成資料傳輸,容易引起資料丢失或損壞。該值通常設定為CAS latency + tRCD + 2個時鐘周期。

最後簡單概況一下:

DDR科普:什麼是記憶體時序?
DDR科普:什麼是記憶體時序?

END

文章連結:https://mp.weixin.qq.com/s/RzBgw-C9VXqCJWmD9Dk83Q

轉載自:嵌入式微處理器

文章來源:硬體筆記本 ,作者蝸牛

文章連結:DDR科普:什麼是記憶體時序?

版權申明:本文來源于網絡,免費傳達知識,版權歸原作者所有。如涉及作品版權問題,請聯系我進行删除。