以下文章來源于郝旭帥電子設(shè)計(jì)團(tuán)隊(duì),作者郝旭帥
本篇主要是DDRX SDRAM中的預(yù)取技術(shù)說明
DDRX SDRAM外部接口數(shù)據(jù)傳輸率需要不斷提高(從DDR到DDR5),內(nèi)存芯片內(nèi)部的DRAM存儲(chǔ)單元(電容陣列)的物理訪問速度有上限,無法隨著接口速度的線性增長。
預(yù)取(Prefetch)技術(shù)是DDR SDRAM實(shí)現(xiàn)高速數(shù)據(jù)傳輸?shù)年P(guān)鍵技術(shù)之一。它的基本思想是:在內(nèi)存核心(存儲(chǔ)陣列)和外部數(shù)據(jù)總線之間設(shè)置一個(gè)緩沖區(qū),內(nèi)存核心工作在一個(gè)相對(duì)較低的頻率,而數(shù)據(jù)總線工作在一個(gè)較高的頻率,通過一次從存儲(chǔ)陣列中讀取多個(gè)數(shù)據(jù)(預(yù)取),然后在外部數(shù)據(jù)總線上通過多個(gè)時(shí)鐘周期(或雙沿傳輸)將數(shù)據(jù)依次傳輸出去,從而提升數(shù)據(jù)傳輸率。
具體來說,DDR SDRAM的預(yù)取長度(Prefetch Length)是指每次從存儲(chǔ)陣列中讀取的數(shù)據(jù)位數(shù)與每次對(duì)外傳輸?shù)臄?shù)據(jù)位數(shù)的比值。例如,對(duì)于DDR1,預(yù)取長度是2n;DDR2是4n;DDR3是8n;DDR4也是8n(但通過Bank Group分組來模擬更高的預(yù)取);DDR5則是16n(但通過兩個(gè)獨(dú)立的通道實(shí)現(xiàn))。
下面我們?cè)敿?xì)說明:
1. DDR1 (2n Prefetch) 內(nèi)存核心(存儲(chǔ)陣列)的工作頻率是外部數(shù)據(jù)傳輸頻率的一半。例如,對(duì)于DDR-400,外部數(shù)據(jù)傳輸頻率是400MT/s,內(nèi)存核心頻率是200MHz。 每次從存儲(chǔ)陣列中讀取2位數(shù)據(jù)(針對(duì)每個(gè)數(shù)據(jù)引腳),然后在外部數(shù)據(jù)總線上通過兩個(gè)時(shí)鐘邊沿(上升沿和下降沿)將這兩位數(shù)據(jù)依次傳輸出去。 這樣,在內(nèi)存核心工作頻率不變的情況下,外部數(shù)據(jù)傳輸率翻倍。
2. DDR2 (4n Prefetch) 內(nèi)存核心頻率進(jìn)一步降低,為外部數(shù)據(jù)傳輸頻率的四分之一。例如,DDR2-800,外部數(shù)據(jù)傳輸頻率為800MT/s,內(nèi)存核心頻率為200MHz。 每次從存儲(chǔ)陣列中讀取4位數(shù)據(jù),然后在外部數(shù)據(jù)總線上通過4個(gè)時(shí)鐘邊沿(兩個(gè)時(shí)鐘周期,因?yàn)槊總€(gè)周期有兩個(gè)邊沿)將這4位數(shù)據(jù)依次傳輸出去。 這樣,在相同的內(nèi)存核心頻率下,DDR2的數(shù)據(jù)傳輸率是DDR1的兩倍(因?yàn)轭A(yù)取長度翻倍)。
3. DDR3 (8n Prefetch) 內(nèi)存核心頻率為外部數(shù)據(jù)傳輸頻率的八分之一。例如,DDR3-1600,外部數(shù)據(jù)傳輸頻率為1600MT/s,內(nèi)存核心頻率為200MHz。 每次從存儲(chǔ)陣列中讀取8位數(shù)據(jù),然后在外部數(shù)據(jù)總線上通過8個(gè)時(shí)鐘邊沿(4個(gè)時(shí)鐘周期)將這8位數(shù)據(jù)依次傳輸出去。 這樣,在相同的內(nèi)存核心頻率下,DDR3的數(shù)據(jù)傳輸率是DDR2的兩倍,是DDR1的四倍。

上述結(jié)構(gòu)為ddr3 sdram 內(nèi)部結(jié)構(gòu)圖。8bank,16krow,1kcol,x16.
按照我們正常的理解:
每一個(gè)bank應(yīng)該有16k行,1k列,每個(gè)存儲(chǔ)空間可以存儲(chǔ)16bit。
但是實(shí)際上我們通過結(jié)構(gòu)圖看到的是:16k行,128列,每個(gè)存儲(chǔ)空間可以存儲(chǔ)128bit。
那也就是說:每次讀寫都是128位,而接口的寬度是16,相當(dāng)于讀取出來了8個(gè)我們認(rèn)為的存儲(chǔ)地址。
所以ddr3的內(nèi)部就可以以接口速率的1/8運(yùn)行。
4. DDR4 (8n Prefetch with Bank Group) DDR4也使用8n預(yù)取,但是引入了Bank Group(存儲(chǔ)體分組)的概念。每個(gè)Bank Group可以獨(dú)立操作,從而可以在不同的Bank Group之間交替執(zhí)行操作,類似于提高了并行度,從而在保持8n預(yù)取的情況下進(jìn)一步提升了性能。 例如,DDR4-3200,外部數(shù)據(jù)傳輸頻率為3200MT/s,內(nèi)存核心頻率為400MHz(因?yàn)?n預(yù)取,核心頻率為3200/8=400MHz)。注意,這里核心頻率比DDR3的例子高,因?yàn)镈DR4的速度更高,但預(yù)取倍數(shù)相同。
5. DDR5 (16n Prefetch) DDR5將預(yù)取長度提升到16n,但這是通過兩個(gè)獨(dú)立的通道(每個(gè)通道40位,其中32位數(shù)據(jù)位和8位ECC位)來實(shí)現(xiàn)的。實(shí)際上,每個(gè)通道的預(yù)取長度可以認(rèn)為是8n,但整體上,內(nèi)存核心一次提供16n的數(shù)據(jù),然后通過兩個(gè)通道傳輸。 例如,DDR5-6400,每個(gè)通道的數(shù)據(jù)傳輸率是3200MT/s,整體是6400MT/s。內(nèi)存核心頻率為400MHz(假設(shè)每個(gè)通道是8n預(yù)取,那么每個(gè)通道的核心頻率為3200/8=400MHz,兩個(gè)通道共享核心陣列,但可以交錯(cuò)訪問)。
預(yù)取技術(shù)的優(yōu)點(diǎn):
允許內(nèi)存核心工作在相對(duì)較低的頻率,從而降低功耗和制造難度(因?yàn)榇鎯?chǔ)陣列的訪問速度難以提升)。
通過提高預(yù)取長度,可以在不提高內(nèi)存核心頻率的情況下增加外部數(shù)據(jù)傳輸率。
預(yù)取技術(shù)的缺點(diǎn):
預(yù)取長度增加會(huì)導(dǎo)致訪問延遲(Latency)的增加,因?yàn)槊看卧L問需要從存儲(chǔ)陣列中讀取更多的數(shù)據(jù),而且如果訪問模式不是順序的(例如隨機(jī)訪問),那么預(yù)取的數(shù)據(jù)可能用不上,造成浪費(fèi)。
為了緩解這個(gè)問題,DDR4和DDR5引入了Bank Group,通過并行操作來隱藏延遲。
總結(jié):
預(yù)取技術(shù)是DDR SDRAM實(shí)現(xiàn)高速數(shù)據(jù)傳輸?shù)暮诵募夹g(shù),它通過降低內(nèi)存核心工作頻率并提高每次訪問的數(shù)據(jù)量來實(shí)現(xiàn)更高的數(shù)據(jù)傳輸率。隨著DDR代際的升級(jí),預(yù)取長度不斷增加,同時(shí)通過其他技術(shù)(如Bank Group、多通道)來克服預(yù)取帶來的延遲增加問題。
-
SDRAM
+關(guān)注
關(guān)注
7文章
457瀏覽量
57678 -
接口
+關(guān)注
關(guān)注
33文章
9518瀏覽量
156996 -
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4786瀏覽量
90052 -
DDR
+關(guān)注
關(guān)注
11文章
753瀏覽量
69088
原文標(biāo)題:DDRX SDRAM中的預(yù)取技術(shù)說明
文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
DDRx的關(guān)鍵技術(shù)介紹(上)
DDRx的關(guān)鍵技術(shù)介紹(中)
請(qǐng)問如何理解C6678中對(duì)預(yù)取數(shù)據(jù)的描述?
可以在不關(guān)閉緩存的情況下關(guān)閉FMC預(yù)取器嗎?
Cortex-R82的預(yù)取器功能分析
片上多處理器中基于步長和指針的預(yù)取
SDRAM設(shè)計(jì)詳細(xì)說明
一種幫助線程預(yù)取質(zhì)量的實(shí)時(shí)在線評(píng)價(jià)方法
面向系統(tǒng)的程序基本塊指令預(yù)取技術(shù)
PIC32MX系列參考手冊(cè)之預(yù)取高速緩存模塊
如何評(píng)估SDRAM的有效帶寬
DDRX SDRAM中的預(yù)取技術(shù)說明
評(píng)論