以下文章來源于郝旭帥電子設(shè)計團(tuán)隊,作者郝旭帥
在進(jìn)行電子系統(tǒng)設(shè)計時,我們經(jīng)常會用到SDRAM(SDR SDRAM或者DDRX SDRAM)作為緩沖單元,但是如何評估SDRAM的有效帶寬呢(評估有效帶寬才能夠了解當(dāng)前緩沖單元以及驅(qū)動方式能否滿足我們的設(shè)計需求)?
SDRAM的“有效帶寬”指的是在實(shí)際系統(tǒng)中,扣除所有必要開銷后,能夠用于數(shù)據(jù)傳輸?shù)膶?shí)際可用帶寬。它總是顯著低于理論峰值帶寬。
理論帶寬
公式:
理論峰值帶寬 = (時鐘頻率 × 數(shù)據(jù)總線位寬 × 數(shù)據(jù)傳輸次數(shù)(每個時鐘周期傳輸?shù)腷it數(shù):SDR為1,DDR為2)) / 8
單位通常是 字節(jié)/秒(B/s) 或 GB/s。
舉例:
一片 DDR3-1600,位寬為 16位(2字節(jié));
核心時鐘頻率:800 MHz
數(shù)據(jù)傳輸率(DRAM Frequency):1600 MT/s(每秒百萬次傳輸)
理論峰值帶寬 = 800 × 10? × 2 x 16 /2 Bytes = 3200 MB/s = 3.2 GB/s
這個值通常被芯片廠商和市場宣傳所使用。
有效帶寬
SDRAM在進(jìn)行通信時,是無法每個時鐘周期都用于進(jìn)行數(shù)據(jù)讀寫的。
一次完整的訪問通常包含三步:
激活(Activate): 將指定Bank的指定Row數(shù)據(jù)送到該Bank的“行緩沖器”。此操作功耗較高,延遲較大。
讀/寫(Read/Write): 在行緩沖器中,根據(jù)列地址進(jìn)行精細(xì)的讀或?qū)懖僮鳌?梢赃B續(xù)進(jìn)行多個讀/寫(突發(fā)傳輸)。
預(yù)充電(Precharge): 操作完成后,必須將行緩沖器的數(shù)據(jù)寫回原Row,并關(guān)閉該行,為激活新的行做準(zhǔn)備。
下面以SDR SDRAM為例:

在上述時序中可以清楚的看到:為了將四個數(shù)據(jù)寫入到SDRAM中使用了九個周期(包括了激活、寫入、關(guān)閉等)。
那么也就是說:有效帶寬只是理論帶寬的一半不到(4/9).
下面給出DDR3的波形圖:

與SDR SDRAM類似。
SDRAM在工作時,還需要定時進(jìn)行刷新操作以避免數(shù)據(jù)丟失。所以有效帶寬就會更低。
提高有效帶寬的幾種方式
在此只是根據(jù)單個芯片進(jìn)行說明(關(guān)于多芯片擴(kuò)位寬以及RANK,在此不再說明)。
1. 增大突發(fā)長度
在每次突發(fā)讀寫中,無論突發(fā)長度為多少,前面的激活和后面的預(yù)充電所占用的時間是相同的。
例:激活4+讀寫4+預(yù)充電4:那么有效帶寬為三分之一;如果激活4+讀寫8+預(yù)充電4:那么有效帶寬為二分之一。
說明:在SDR SDRAM中經(jīng)常采用此方法進(jìn)行提高有效帶寬(可以利用頁突發(fā),幾乎可以達(dá)到百分之百)。在DDRX SDRAM中取消了頁突發(fā),并且突發(fā)長度一般固定,所以此方法在DDRX SDRAM中失效。
2. 連續(xù)突發(fā)訪問
在SDRAM中,如果第一次操作和第二次操作處于同一個bank的同一行,那么第一次操作可以不用關(guān)閉,第二次操作可以不用打開(節(jié)省了一次關(guān)閉,一次激活)。
以SDR SDRAM的寫入為例:

第一次寫入沒有關(guān)閉,第二次寫入沒有激活。
在電子設(shè)計開發(fā)時,如果采用的是DDRX SDRAM,一般主控芯片會有IP 控制器,不用我們直接操作DDRX SDRAM。在配置時,注意一個選項:命令的順序。
建議選擇可以優(yōu)化(重新排列序號)。
例:第一次操作N行,第二次操作M行,第三次操作N行。因?yàn)榈谝淮魏偷诙翁幱诓煌校缘谝淮侮P(guān)閉了以后才可以激活第二次操作(完成上述操作需要三次激活、三次操作、三次關(guān)閉)。如果我們可以將第三次操作和第二次操作對調(diào)執(zhí)行順序,那么只需要兩次激活、三次操作、兩次關(guān)閉。
操作的數(shù)據(jù)量沒有改變,但是縮短了需要的時間。
3. 改變地址映射
在SDRAM中,如果第一次操作和第二次操作處于不同bank時,那么可以利用第一次操作關(guān)閉的時間來激活第二次操作。
以SDR SDRAM為例:

我們在使用SDRAM在進(jìn)行緩沖時,一般是使用連續(xù)的一塊地址(邏輯地址),如果邏輯地址對應(yīng)的是:BANK ROW COL,那么將會出現(xiàn)用完ABANK的第一行,就會用ABANK的第二行(在同一個bank中,無法實(shí)現(xiàn)第一次操作的關(guān)閉和第二次操作的激活利用同一段時間)。如果邏輯地址對應(yīng)的是:ROW BANK COL,那么將會出現(xiàn)用完ABANK的第一行,就會用BBANK的第一行(此時第一次操作的關(guān)閉和第二次操作的激活利用的是同一段時間)。
評估有效帶寬
當(dāng)設(shè)計完控制器(IP控制器或自己設(shè)計控制器)后,可以自己寫一些邏輯進(jìn)行測試有效帶寬。
例:統(tǒng)計一秒鐘能夠?qū)懭攵嗌僮止?jié),統(tǒng)計一秒鐘能夠讀出多少字節(jié)。
說明:
1. 有效帶寬和地址的改變規(guī)律有一定的關(guān)系。
2. 測量時,應(yīng)該保證最大限度的給予命令或命令(反例:控制器能夠五個周期寫入一個數(shù)據(jù),測量者10個周期才給與一個數(shù)據(jù))。
設(shè)計注意事項
務(wù)必保證有效帶寬在你的設(shè)計需求之上,否則項目就會出現(xiàn)崩盤。
-
SDRAM
+關(guān)注
關(guān)注
7文章
457瀏覽量
57682 -
帶寬
+關(guān)注
關(guān)注
3文章
1040瀏覽量
43355 -
時鐘
+關(guān)注
關(guān)注
11文章
1971瀏覽量
134986
原文標(biāo)題:SDRAM有效帶寬解析與估算
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
SDRAM控制器的設(shè)計——Sdram_Control.v代碼解析(異步FIFO讀寫模塊、讀寫SDRAM過程)
有效的歐盟ErP認(rèn)證是如何評估的?
請問adxl326z評估板的帶寬跟串聯(lián)的電容有什么關(guān)系?
采樣寬帶寬模擬信號的AD9684評估板
自相似業(yè)務(wù)流的有效帶寬
SDRAM設(shè)計詳細(xì)說明
SDRAM內(nèi)存基礎(chǔ)知識
DRAM、SDRAM及DDR SDRAM之間的概念詳解
FPGA讀寫SDRAM的實(shí)例和SDRAM的相關(guān)文章及一些SDRAM控制器設(shè)計論文
在閉環(huán)電路中,使用放大器增益帶寬積,評估信號帶寬的方法
如何評估SDRAM的有效帶寬
評論