<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 為系統(tǒng)設(shè)計(jì)人員提供的DRAM控制器

          為系統(tǒng)設(shè)計(jì)人員提供的DRAM控制器

          作者: 時(shí)間:2012-11-07 來(lái)源:網(wǎng)絡(luò) 收藏

          即使?jié)M足了這一要求,也還有其他問(wèn)題。您必須對(duì)陣列預(yù)充電。預(yù)充電命令使得傳感放大器中的數(shù)據(jù)無(wú)效,提升陣列和傳感放大器輸入之間導(dǎo)線上的電壓,使得電壓值位于邏輯0和邏輯1電平之間。這種準(zhǔn)備是必要的,比特單元電容上很小的電荷都會(huì)傳送到導(dǎo)線上,以某種方式提示傳感放大器。

          對(duì)導(dǎo)線進(jìn)行預(yù)充電之后,您必須向新行發(fā)送一個(gè)激活命令,等待操作完成,然后,您最終可以發(fā)送一個(gè)讀操作新命令。加上所有涉及到的延時(shí)后,即,讀取字節(jié)序列的最差情況,每一字節(jié)都來(lái)自不同的行,這要比讀取來(lái)自一個(gè)新行連續(xù)位置相同數(shù)量字節(jié)的時(shí)間慢十倍。

          這種不同還只是部分問(wèn)題。如圖2 所示,DDR 有多個(gè)塊:與比特單元無(wú)關(guān)的陣列。DDR3 中有八個(gè)塊,每一塊都有自己排列成行的傳感放大器。因此,原理上,您可以通過(guò)激活每一個(gè)塊中的一行,讀寫(xiě)較長(zhǎng)的突發(fā),然后,對(duì)每一激活后的行進(jìn)行讀寫(xiě)操作——實(shí)際上是對(duì)塊進(jìn)行間插操作。唯一增加的延時(shí)是連接每一塊的傳感放大器和芯片內(nèi)部總線的緩沖的切換時(shí)間。這一延時(shí)要比對(duì)相同塊中一個(gè)新行進(jìn)行預(yù)充電和激活的時(shí)間短得多。

          2.一個(gè)典型的DDR 結(jié)構(gòu)圖。一個(gè)DDR3器件會(huì)有8個(gè)塊,而不是4個(gè)。

          Figure 2. A typical DDR DRAM block diagram. A DDR3 device would have eight banks instead of four.

          這就是原理。實(shí)際中,您可以對(duì)塊進(jìn)行間插處理,但是有一個(gè)限制,不是基于DRAM邏輯,而是芯片能夠承受的熱量。這種限制可以通過(guò)著名的“滾動(dòng)四塊訪問(wèn)窗口”,即,tRAW來(lái)表達(dá):您一次能夠有四個(gè)激活塊的最長(zhǎng)時(shí)間。這一規(guī)則實(shí)際上有例外,只要您從一個(gè)塊轉(zhuǎn)向下一塊之前,在一個(gè)塊上保持一定的時(shí)間,那么,您可以有連續(xù)激活的8個(gè)塊。但是您應(yīng)該知道:這比較復(fù)雜。

          建立一個(gè)

          與前面所述不同的是DRAM時(shí)序非常復(fù)雜,接近混沌。從DRAM芯片設(shè)計(jì)人員的角度看,這非常合理,但是,很難滿足多核SoC的需求。DRAM序列或者時(shí)序命令上看起來(lái)無(wú)關(guān)緊要的小改動(dòng)會(huì)導(dǎo)致您訪問(wèn)存儲(chǔ)器的帶寬的巨大變化。由于存儲(chǔ)器帶寬通常是關(guān)鍵任務(wù)的瓶頸所在,因此,帶寬的變化很快就會(huì)影響系統(tǒng)性能。然而,命令序列和時(shí)序來(lái)自應(yīng)用程序和系統(tǒng)軟件之間,以及系統(tǒng)硬件各種單元之間復(fù)雜的交互——包括緩存、存儲(chǔ)器管理器、直接存儲(chǔ)器訪問(wèn)(DMA)和加速器,以及DRAM控制器。

          SoC的功能越來(lái)越強(qiáng)大,這種情況會(huì)更加復(fù)雜。目前,一個(gè)多核系統(tǒng)級(jí)IC會(huì)有同時(shí)運(yùn)行的兩個(gè)甚至更多的多線程CPU,導(dǎo)致共享L2高速緩存來(lái)讀取指令線,隨機(jī)對(duì)數(shù)據(jù)線進(jìn)行讀寫(xiě)操作。同時(shí),計(jì)算加速器以自己的方式遍歷數(shù)據(jù)結(jié)構(gòu)。一個(gè)器件可以處理流視頻,另一個(gè)用于矩陣乘法預(yù)讀取,第三個(gè)執(zhí)行路由表的隨機(jī)訪問(wèn)。增加一個(gè)散射收集DMA控制器,處理光纖接口、硬盤(pán)和顯示器之間的數(shù)據(jù),結(jié)果是,在DRAM控制器的系統(tǒng)側(cè)會(huì)有些不協(xié)調(diào)。

          如果DRAM控制器只是按照系統(tǒng)接收順序進(jìn)行操作,那么,優(yōu)化DRAM操作的工作會(huì)同等落在規(guī)劃人員、設(shè)計(jì)人員和軟件開(kāi)發(fā)人員上——這是很難做到的。Altera公司戰(zhàn)略市場(chǎng)經(jīng)理Argy Krikelis提醒說(shuō):“特別是多核設(shè)計(jì),規(guī)劃人員遇到定位和性能問(wèn)題。”責(zé)任落在DRAM控制器上,那么,盡可能利用其信息消除這種不協(xié)調(diào),轉(zhuǎn)換為經(jīng)過(guò)優(yōu)化的命令流。

          深入了解DRAM控制器就會(huì)知道,這些模塊的設(shè)計(jì)人員怎樣處理這些難題。您可以認(rèn)為一個(gè)現(xiàn)代DRAM控制器有三個(gè)主要模塊——物理接口、命令處理器以及事物處理器——如圖3 所示。

          3.一個(gè)現(xiàn)代DRAM控制器涉及到事物處理器、命令處理器和物理接口。

          DRAM_Controllers_figure3.jpg

          物理接口連接DRAM芯片或者存儲(chǔ)器模塊。它讀取來(lái)自命令處理器的一個(gè)命令流,將具有正確時(shí)序的命令發(fā)送至DRAM芯片,管理相關(guān)的數(shù)據(jù)字節(jié)流。接口收發(fā)器、命令和數(shù)據(jù)同步緩沖,以及產(chǎn)生正確命令和數(shù)據(jù)時(shí)序的狀態(tài)機(jī)都含在這一模塊中。而且,還有用于進(jìn)行復(fù)雜的初始化操作的狀態(tài)機(jī),校準(zhǔn)DDR3 DRAM規(guī)范設(shè)定的序列,如圖1所示。此外,某些應(yīng)用的物理接口還會(huì)包括自測(cè)試、診斷和誤碼探測(cè)以及糾錯(cuò)硬件。當(dāng)您改變DRAM的容量或者速率等級(jí)時(shí),必須調(diào)整物理接口。



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();