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

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