一種同步動態存儲器控制器的設計方法
2023-07-20 14:11:41 1
專利名稱:一種同步動態存儲器控制器的設計方法
技術領域:
本發明涉及一種存儲器控制器的設計方法,特別涉及一種同步動態存儲器控制器的設計方法。
背景技術:
AVS是中國第一個具有自主智慧財產權的數字音視頻編解碼標準,全稱是《信息技術先進音視頻編碼標準》。H.264是由ITU-T和ISO兩個國際標準化組織的有關視頻編碼專家聯合組成的視頻聯合工作組(JVT)開發制定的一個視頻編碼標準,這兩種標準在編碼效率上較之以往的視頻壓縮標準都有了顯著的提高,但是與此同時硬體實現解碼的複雜度也隨之上升,給硬體設計帶來一定的挑戰。
在實時高清視頻解碼運算中,有大量中間數據需要保存和讀取,其中的絕大部分數據,比如已經解碼完成的圖像的所有象素值,由於數據量很大,因而需要保存到片外存儲器中,以備後解碼的圖像作為參考數據或者直接用於顯示。另一方面,系統的總線頻率和帶寬往往受到實際條件以及成本,功耗的限制,由於成本的原因,使用速度最快的SRAM是不切實際的。本文提到的高清視頻解碼晶片採用片外的SDRAM作為解碼數據的存儲載體,SDRAM的固有性質以及高清視頻解碼中龐大的數據量,決定了要實現實時解碼必須提高SDRAM的數據訪問效率,這就要求設計一種高效的SDRAM控制方案。
發明內容
本發明所要解決的技術問題是針對上述現有技術現狀而提供一種能夠提高SDRAM的數據訪問效率的同步動態存儲器控制器的設計方法。
本發明解決上述技術問題所採用的技術方案為一種同步動態存儲器(SDRAM)控制器的設計方法,包括針對視頻解碼進行優化,可以大幅度提高存儲器數據讀寫的效率,易於硬體的實現,其特徵在於(1)地址解析優化;(2)一次狀態寄存器設置和使用自動預充電(Auto Pre-charge)模式;(3)對激活(Active)命令發送時間優化;(4)對刷新(Refresh)的時間間隔動態控制;(5)緩存讀寫命令,劃分讀寫時間片,讀寫命令分別集中發送。
對地址解析優化,使數據平均分布在各個Bank中,使得對各個Bank的訪問平均化,避免在時間上需要連續取得的數據都存儲在一個Bank中,造成頻繁的行激活和預充電的時間的等待,降低效率;地址映射公式如下設使用的SDRAM存儲器Column地址為m位,Row地址為n位,請求讀寫的邏輯地址為Address[m+n-1:0]取X=Address[m-1:0],Y=Address[m+n-1:m],Bottom_field=Y
則對應於邏輯地址Address的SDRAM物理地址為Bank=Bottom_field?{!Y[2],Y[1]}:Y[2:1]Row={Y[n-1:3],Bottom_field}Column=X。
只在上電初始化時設置一次狀態寄存器,並且使用自動預充電(Auto Pre-charge)模式,提高命令管道的利用率。
對激活(Active)命令發送時間優化,一個Bank的Active指令在其餘3個Bank的Idle,tRCD,tRP時間內或者在兩個讀寫指令的間隔時間內發出,減少命令管道衝突的發生和等待激活的時間。
對刷新(Refresh)的時間間隔在預設的閾值範圍內動態控制,減少刷新在數據讀寫過程中的幹擾。
對讀寫命令進行緩存,並在調度時劃分為讀時間片和寫時間片,讀寫命令在相應時間片內集中發送時間,消除讀寫銜接引起的時間浪費。設置兩個計數器,第一個計數器對當前時間片周期進行計數,另一個計數器對當前時間片連續空閒周期進行計數,當其中一個計數器達到預設的閾值時即進行讀寫時間片的切換。
與現有技術相比,本發明的優點在於,通過SDRAM中的4個Bank協同工作,充分利用SDRAM的通訊能力,滿足大量數據高速通訊的需求,其帶寬利用率進行在視頻解碼時能達到85%以上,可以實現AVS和H.264的高清視頻實時解碼。本發明不僅僅適用於SDRAM和DDR SDRAM以及視頻解碼。
圖1是SDRAM讀寫時序示意圖;圖2是SDRAM控制器邏輯框圖。
具體實施例方式
以下結合附圖實施例對本發明作進一步詳細描述。
本發明在SDRAM上的具體實現如下所述,在DDR SDRAM上的實現與SDRAM類似。
1.SDRAM控制器的技術方案如圖1所示,根據SDRAM的規範,對SDRAM上任意數據的讀寫,須先激活以打開其所在行,然後進行讀寫,讀寫完成後還需要對該行預充電以關閉這一行。為了得到一個數據,必須額外附加時間tRCD,tRP,來打開和關閉這個數據所在的行,而且整個過程還受到tRC和tRAS的限制。
SDRAM中含有4個相對獨立的Bank,在完成初始化操作後,除了刷新(Refresh),重置寄存器(LMR)等命令以外,各個Bank是基本獨立的,但是他們共用同一套接口(命令,地址和數據接口)。因此在實際應用中,既要充分的保證4個Bank的工作,儘量保證數據總線的非空閒狀態,又不能造成命令,數據,地址接口的數據衝突。
(1)SDRAM的地址解析優化經過統計,在視頻解碼中,系統對SDRAM中數據的訪問是隨機而且分散的,特別是對內存讀取最多的讀取參考幀數據,在H.264中佔總讀取數據量的80%,在AVS中總讀取量的76-88%,而且平均數據長度不超過3,所以把內存中的數據在地址解析的時候平均分布在4個Bank中,使各個模塊對內存的訪問平均化,這樣才不會存在所有在時間上需要連續取得的數據都存在於一個Bank中,造成頻繁的行激活和預充電的時間的等待,導致數據總線處於無數據的空閒狀態。
設使用的SDRAM存儲器Column地址為m位,Row地址為n位,請求讀寫的邏輯地址為Address[m+n-1:0]。
取X=Address[m-1:0],Y=Address[m+n-1:m],Bottom_field=Y
。
則對應於邏輯地址Address的SDRAM物理地址為Bank=Bottom_field?{!Y[2],Y[1]}:Y[2:1]Row={Y[n-1:3],Bottom_field}Column=X這樣映射處理以後視頻數據中各行像素平均分配到了4個Bank中,且對各個Bank的操作互相交錯開來,提高了帶寬利用率。
(2)一次狀態寄存器設置和使用自動預充電(Auto Pre-charge)模式為了數據的最大吞吐流量,儘量把指令拼接在一起,此時命令總線可能產生衝突。為了解決這一點,本發明採用了自動預充電(Auto Pre-charge)模式,這樣減少了一個命令,對於一個Bank來說,減少了1tCK/tRC的指令佔用。根據系統頻率的不同,這個改變在效率上的效果在1/8-1/12之間,同時由於4個Bank的協同操作,由此引來的在tWR等時間上的增加並不減少數據總線的利用率。
(3)對激活(Active)命令發送時間優化激活(Active)命令經常與讀寫指令衝突,它同時還受到tRRD的限制。本發明將一個Bank的active指令在其餘3個Bank的Idle,tRCD,tRP時間內或者在兩個讀寫指令的間隔時間內發出,保證數據管道流水線暢通。為了達到此目的,必須在一個Bank的讀寫將要結束時就判斷其它Bank是否有讀寫請求,提前做出判斷並根據規則對其他Bank的請求進行仲裁,同時還要考慮時序和實際硬體電路的實現難易程度,對邏輯進行優化。
(4)對刷新(Refresh)的時間間隔動態控制SDRAM為了保持其中的數據不丟失,需要在64ms內刷新4096或8096次,本發明中預設了一個閾值範圍,適當彈性的控制了每次刷新的時間間隔,既使SDRAM在規定時間內能夠得到刷新,又能減少刷新在數據讀寫過程中的幹擾。
(5)緩存讀寫命令,劃分讀寫時間片,讀寫命令分別集中發送在SDRAM中,由於數據輸入寄存器和數據輸出寄存器的存在,4個Bank如果同為讀或者寫是可以緊密銜接的,數據在其中形成流水線式的傳送。但是,同一個Bank或者不同Bank之間寫命令不能緊接著讀命令,否則造成數據的衝突。本發明設計了一個對讀寫命令的緩存,並在調度時劃分為讀時間片和寫時間片,讀寫命令在相應時間片內集中發送時間,消除讀寫銜接引起的時間浪費。本發明設置了兩個計數器,第一個計數器對當前時段周期進行計數,另一個計數器對當前時段連續空閒周期進行計數,當其中一個計數器達到預設的閾值時即進行讀寫時段的切換。這樣就能把讀寫操作分別集中起來,同時保證請求的響應時間具有可預測的上限,又不會因為在某一時段中長時間沒有相應的請求而降低利用率。
2.SDRAM控制器的設計實現如圖2所示,SDRAM控制器採用模塊化設計,包括了仲裁器,初始化控制器,管道控制器,刷新控制器,狀態控制器,命令解析器,響應發生器,數據控制器等模塊。
仲裁器接收對SDRAM的讀寫請求,進行地址解析,緩存並進行優化排序,輸出給狀態控制器。
初始化控制器負責在系統上電初始化時配置SDRAM的各種參數。
刷新控制器動態計算刷新周期來控制SDRAM的刷新周期,保持SDRAM的數據完整性。
狀態控制器控制4個Bank的狀態轉換,響應信號的處理等過程。
管道控制器根據4個Bank的狀態來預測管道的使用情況,協調控制4個Bank狀態控制器的平衡運轉,並保證命令通道不會衝突,數據通道儘量保持有效狀態並且不衝突。
命令解析器接收狀態控制器和初始化控制器發出的命令並轉換成符合SDRAM規範的控制信號輸出給SDRAM晶片。
響應發生器根據狀態控制器發出SDRAM讀寫請求的響應信號。
數據控制器接收狀態控制器發出的命令選擇寫入SDRAM的數據,並從SDRAM讀出的數據中選擇有效數據。
本發明已經在高清實時解碼SOC晶片鳳芯一號和鳳芯二號上得到實際應用。採用這種方法設計的SDRAM控制器的帶寬利用率能達到85%以上,通過SDRAM中的4個Bank的協同工作,極大的利用了SDRAM的通訊能力,滿足高速大量數據通訊的需求,可以實現AVS和H.264的高清視頻實時解碼。
權利要求
1.一種同步動態存儲器(SDRAM)控制器的設計方法,包括針對視頻解碼進行優化,可以大幅度提高存儲器數據讀寫的效率,易於硬體的實現,其特徵在於(1)地址解析優化;(2)一次狀態寄存器設置和使用自動預充電(Auto Pre-charge)模式;(3)對激活(Active)命令發送時間優化;(4)對刷新(Refresh)的時間間隔動態控制;(5)緩存讀寫命令,劃分讀寫時間片,讀寫命令分別集中發送。
2.如權利要求1所述的同步動態存儲器(SDRAM)控制器的設計方法,其特徵在於對地址解析優化,使數據平均分布在各個Bank中,使得對各個Bank的訪問平均化,避免在時間上需要連續取得的數據都存儲在一個Bank中,造成頻繁的行激活和預充電的時間的等待,降低效率;地址映射公式如下設使用的SDRAM存儲器Column地址為m位,Row地址為n位,請求讀寫的邏輯地址為Address[m+n-1:0]取X=Address[m-1:0],Y=Address[m+n-1:m],Bottom_field=Y
則對應於邏輯地址Address的SDRAM物理地址為Bank=Bottom_field?{!Y[2],Y[1]}Y[2:1]Row={Y[n-1:3],Bottom_field}Column=X。
3.如權利要求1所述的同步動態存儲器(SDRAM)控制器的設計方法,其特徵在於只在上電初始化時設置一次狀態寄存器,並且使用自動預充電(Auto Pre-charge)模式,提高命令管道的利用率。
4.如權利要求1所述的同步動態存儲器(SDRAM)控制器的設計方法,其特徵在於對激活(Active)命令發送時間優化,一個Bank的Active指令在其餘3個Bank的Idle,tRCD,tRP時間內或者在兩個讀寫指令的間隔時間內發出,減少命令管道衝突的發生和等待激活的時間。
5.如權利要求1所述的同步動態存儲器(SDRAM)控制器的設計方法,其特徵在於對刷新(Refresh)的時間間隔在預設的閾值範圍內動態控制,減少刷新在數據讀寫過程中的幹擾。
6.如權利要求1所述的同步動態存儲器(SDRAM)控制器的設計方法,其特徵在於對讀寫命令進行緩存,並在調度時劃分為讀時間片和寫時間片,讀寫命令在相應時間片內集中發送時間,消除讀寫銜接引起的時間浪費;設置兩個計數器,第一個計數器對當前時段周期進行計數,另一個計數器對當前時段連續空閒周期進行計數,當其中一個計數器達到預設的閾值時即進行讀寫時段的切換。
全文摘要
一種同步動態存儲器(SDRAM)控制器的設計方法,包括針對視頻解碼進行優化,可以大幅度提高存儲器數據讀寫的效率,易於硬體的實現,(1)地址解析優化;(2)一次狀態寄存器設置和使用自動預充電(Auto Pre-charge)模式;(3)對激活(Active)命令發送時間優化;(4)對刷新(Refresh)的時間間隔動態控制;(5)緩存讀寫命令,劃分讀寫時間片,讀寫命令分別集中發送。其優點在於,通過SDRAM中的4個Bank協同工作,充分利用SDRAM的通訊能力,滿足大量數據高速通訊的需求,其帶寬利用率進行在視頻解碼時能達到85%以上,可以實現AVS和H.264的高清視頻實時解碼。本發明不僅僅適用於SDRAM和DDR SDRAM以及視頻解碼。
文檔編號H04N7/24GK1815625SQ20051006165
公開日2006年8月9日 申請日期2005年11月18日 優先權日2005年11月18日
發明者彭聰, 黃晁, 孫寧, 龔國旺 申請人:寧波中科集成電路設計中心有限公司