新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用基于CAM的DDR控制器架構(gòu)實現(xiàn)DDR DRAM效率最大化

用基于CAM的DDR控制器架構(gòu)實現(xiàn)DDR DRAM效率最大化

作者: 時間:2016-10-15 來源:網(wǎng)絡(luò) 收藏

多年來,對芯片外部DDR SDRAM的訪問已經(jīng)成為SoC設(shè)計的一個不可分割的部分。當(dāng)考慮DDR IP時,SoC設(shè)計師面臨的一個選擇是自己做IP還是從第三方IP供應(yīng)商那里獲得授權(quán)。

本文引用地址:http://butianyuan.cn/article/201610/307440.htm

正如大多數(shù)IP一樣,選擇DDR接口IP的標(biāo)準(zhǔn)包括面積、功耗、功能和性能。隨著更多的功能和應(yīng)用被集成到SoC之中,CPU所需的處理能力和其它處理功能也必須相應(yīng)地提高。與處理能力提高攜手并進的通常是DDR帶寬需求的提高,因此性能便成為了選擇DDR IP的最重要標(biāo)準(zhǔn)。

起初,DDR SDRAM被設(shè)計成目前架構(gòu)的一個主要原因是為了滿足我們熟知的DDR SDRAM體系結(jié)構(gòu)要求。它的主要目的就是創(chuàng)造一種小尺寸和引腳數(shù)量少的低成本片外存儲器。SDRAM的存儲單元非常小,它們由單通道柵極晶體管和儲存電荷的電容構(gòu)成。該接口通過共享相同的、用于讀寫的總線和分清行列的地址引腳來降低使用的引腳數(shù)量。雖然實現(xiàn)低成本這一主要目標(biāo)得以實現(xiàn),但它導(dǎo)致了一種不能以高效的方式進行隨機尋址的芯片外存儲器架構(gòu)。為適應(yīng)數(shù)據(jù)寫入或從SDRAM讀出的低效率,SoC需要使用一個控制器來管理對DDR SDRAM的訪問。當(dāng)今絕大多數(shù)存儲器控制器都會考慮DDR SDRAM的低效性,并且試圖重組到DDR SDRAM的命令,以將無效指令數(shù)量減至最少,并提高SoC訪問SDRAM的效率(帶寬)。

DDR SDRAM控制器傳統(tǒng)上通過使用一個先入先出(FIFO)架構(gòu)來評估流量請求隊列(通常被稱為一種前瞻性)來對流量重新排序。后來,隨著技術(shù)進步引入了一種新的DDR控制器,它充分利用了一種內(nèi)容可尋址存儲器(CAM)前瞻性架構(gòu)來對流量重新排序。

【分頁導(dǎo)航】

第1頁:背景介紹

第2頁:DDR SDRAM訪問特性和效率測試

第3頁:DDR控制器效率對比

DDR SDRAM訪問特性

DDR SDRAM芯片內(nèi)包含多個獨立的存儲體(Banks)—典型的是8個存儲體,如圖1所示。每個存儲體可以處于閑置、活躍或者依次充電的狀態(tài)。通過一個“激活”指令可以“打開”一個閑置bank,并將規(guī)定行的數(shù)據(jù)讀進一個感知放大器陣列中,它存儲了所有讀寫操作期間的數(shù)據(jù)。

EDA_AN_01.jpg onload=thumbImg(this) alt= />

這個過程需要一些時間,并導(dǎo)致在從任何給定行中讀取數(shù)據(jù)前就增加了開銷。訪問存儲于讀出放大器中的數(shù)據(jù)的速度會更快。此外,每條讀/寫命令在行內(nèi)使用一個列地址來訪問數(shù)據(jù)。

若存儲控制器想要訪問一個不同的行,它必須首先讓該存儲體的讀出放大器返回到一個閑置狀態(tài),準(zhǔn)備去讀出下一行。這被稱作“預(yù)充電”命令,或者“關(guān)閉”這一行。在該存儲體完全變成閑置狀態(tài)以便于在可以接受另一個激活指令之前,有一段必須清空的最短時間。

訪問時間從最長到最短,分為如下的層級:

1,在另一不同的行被打開時,訪問一行(要求處于打開的行先被關(guān)閉,另一個新的行才被打開)

2,訪問一個處于關(guān)閉的行(要求該行被打開)

3,訪問當(dāng)前被打開的行除了訪問時間之外,存儲控制器的實現(xiàn)還有許多其它時序考慮因素(如:刷新、斷電和初始化)。例如:將存儲子系統(tǒng)從讀狀態(tài)轉(zhuǎn)變?yōu)閷憼顟B(tài),或者從寫狀態(tài)轉(zhuǎn)變?yōu)樽x狀態(tài),會造成與接口總線轉(zhuǎn)換方向相關(guān)的延遲。如果發(fā)生次數(shù)太多,就會降低數(shù)據(jù)從SDRAM移進和移出的整體效率。

測量效率

數(shù)據(jù)傳輸效率是通過一個存儲器接口的可用數(shù)據(jù)傳輸帶寬數(shù)值的一種度量。效率通常由一種特定的存儲器接口實現(xiàn)方式的理論最大存儲器傳輸帶寬的一個百分比來表示。

例如,如果一個DDR3SDRAM是八位寬度,工作在800MHz時鐘,那么理論上的最大傳輸速率為1600Mbps。如果該SDRAM實現(xiàn)的平均傳輸速率為800Mbps,那么該存儲控制器的效率為50%。各種不同的存儲控制器實現(xiàn)的效率通常為25%~90%。顯而易見,一個低效的設(shè)計實現(xiàn)會嚴(yán)重影響關(guān)鍵系統(tǒng)特性,增加整體解決方案的成本。

在某些情況下,高數(shù)據(jù)傳輸效率難以實現(xiàn),這是因為SoC中的訪問請求者的訪問模式是隨機的。因為打開的行具有更快的訪問時間,如果存儲器請求多數(shù)時間在一個打開的行上工作,那么在這些訪問期間就可以實現(xiàn)理論上的最大帶寬。如果存儲器訪問是凌亂分散的,那么可能很難再次訪問到相同的行,導(dǎo)致了去訪問不同的行更長的訪問時間,因此縮短了平均訪問時間,降低了整體的數(shù)據(jù)傳輸速率。很顯然,如果一個存儲控制器可以評估流量模式和發(fā)現(xiàn)一種以更高效的方式給操作排序的可能性—如集合在一起成組地訪問相同的存儲行,而不是僅僅依照存儲訪問的請求順序來執(zhí)行它們,或者為高優(yōu)先級數(shù)據(jù)提供快速訪問—那么就可以減小低效率流量模式所帶來的影響。一個能夠并特別擅長管理隨機流量的DDR存儲控制器可以顯著地提高效率。

【分頁導(dǎo)航】

第1頁:背景介紹

第2頁:DDR SDRAM訪問特性和效率測試

第3頁:DDR控制器效率對比

DDR控制器效率對比

圖2展示了由一個基于FIFO的DDR控制器的效率分析,數(shù)據(jù)結(jié)果來自于市場基準(zhǔn)研究。這些實例模式代表了三種不同的流量類型,分別被標(biāo)記為模式_80_20、模式_50_50和模式_20_80。標(biāo)記的命名代表了模式的類型:標(biāo)簽中第一個數(shù)字代表連續(xù)或遞增訪問的百分比,第二個數(shù)字代表隨機訪問的百分比。隨著隨機部分的百分比從20%增長到80%,效率則如預(yù)期一樣降低。模式中的連續(xù)部分為針對一個打開頁的流量請求,這是設(shè)計的最佳情況,提供了最高的效率。流量的隨機部分抑或是對一個關(guān)閉頁的訪問,或者是對一個帶有不同打開頁的存儲體的訪問請求。通過深入分析,模式_20_80的效率大概為55%,模式_50_50的效率大概為60%,而模式_80_20的效率可以達到75%。

圖3說明了一個基于CAM的DDR控制器在執(zhí)行這三種相同模式時產(chǎn)生的效率結(jié)果。帶有32個條目的CAM的效率大于或者等于基于FIFO的DDR控制器的效率結(jié)果,而擁有64個條目的CAM的效率結(jié)果則明顯更高。帶有64個條目的基于CAM的DDR控制器在模式_80_20下效率結(jié)果為接近98%,模式_50_50為80%,模式_20_80為65%。這表明了相對于基于FIFO的控制器,基于CAM的架構(gòu)在效率上實現(xiàn)了顯著的提高—這意味著提高了帶寬。

由于DRAM的存儲體(Bank)架構(gòu),設(shè)計師過去不得不很困難地分配到DDR SDRAM的存儲空間訪問,以使SoC循環(huán)讀寫8個可用的存儲體。在多種模式下循環(huán)訪問存儲體可使控制器工作在存儲體架構(gòu)范圍內(nèi),以提供合理的效率。然而,一些SoC系統(tǒng)并沒有在不同存儲體和DDR控制器之間定期發(fā)送循環(huán)數(shù)據(jù)流,而這正是基于CAM架構(gòu)的控制器足以勝任的?;贑AM的架構(gòu)可以調(diào)整整個指令序列,甚至為了更高的效率可以將最隨機的流量模式重新排序。

隨機模式1和隨機模式2是兩種不同種類的非常隨機的數(shù)據(jù)流,但它們不在各存儲體間循環(huán)。隨機/連續(xù)模式將隨機模式與相似的連續(xù)模式結(jié)合在一起,并應(yīng)用到那些在以上例子討論過的情況中。在圖4中,F(xiàn)IFO_CTL的效率在隨機/連續(xù)模式下有所提高,但是在圖中可以看到基于CAM的控制器的所有模式得到的效率數(shù)值均比FIFO_CTL的效率高出很多。



關(guān)鍵詞: CAM DDR控制器 DRAM效率

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉