專利名稱:一種提高ram讀寫效率的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊技術(shù)領(lǐng)域,尤其涉及一種提高RAM讀寫效率的方法。
背景技術(shù):
在對(duì)DDR_RAM(雙倍數(shù)據(jù)讀寫RAM)進(jìn)行操作時(shí),受其條件限制,對(duì)同一bank(單元)的操作必須等待若干時(shí)間。以RLDRAM II(簡化等待時(shí)間的DDR_RAM)為例,對(duì)于RLDRAM器件來說,其相關(guān)操作條件如下表所示。
從上表可以看出,即使是在200M時(shí)鐘下,最少要等4個(gè)循環(huán)才能對(duì)同一個(gè)bark進(jìn)行第二次操作。這樣,對(duì)于某些字節(jié)的包長在按地址片外讀/寫操作時(shí)帶來一定的困難。例如,對(duì)于RLDRAM器件,一個(gè)地址有8個(gè)bank。如果每一個(gè)包長都占用(8×N+1)個(gè)bank,則包與包之間就會(huì)消耗3個(gè)循環(huán)等待時(shí)間的bank浪費(fèi)。如果N=1,讀或?qū)懙腷ank利用率就只有9/12,這就會(huì)對(duì)需要進(jìn)行大流量存儲(chǔ)轉(zhuǎn)發(fā)的操作帶來較大的影響。上述操作過程還存在讀寫轉(zhuǎn)換間隙和DDR-RAM刷新引起的bank浪費(fèi)。
對(duì)于上述問題,當(dāng)前提出了如下解決方案,包括通過提高接口頻率來補(bǔ)償bank損失、或者是對(duì)前后報(bào)文進(jìn)行拼包以減少?zèng)_突幾率、或者是對(duì)各個(gè)地址的信元所占用的起始bank,即start_bank進(jìn)行動(dòng)態(tài)分配,等等。所述的通過提高接口頻率來補(bǔ)償帶寬損失的方案,雖然提高了接口頻率,但tRC值也相應(yīng)的增大,結(jié)果又增加了更多的帶寬浪費(fèi)。
下面以Start_bank動(dòng)態(tài)分配的技術(shù)為例,其實(shí)現(xiàn)原理是將寫操作的每個(gè)cell(信元)對(duì)應(yīng)地址的Start_bank進(jìn)行動(dòng)態(tài)分配,以便避開tRC條件的限制。例如,有若干個(gè)包需要進(jìn)行存儲(chǔ)操作,如果第一個(gè)包占用的bank為3,第二個(gè)包占用的bank為4,第三個(gè)包占用的bank為8,則在操作RLDRAM第一個(gè)地址時(shí),分配Start_bank為0;操作第二個(gè)地址時(shí),分配Start_bank為3;操作第三個(gè)地址時(shí),分配的Start_bank為7。這樣,就可以在寫RAM時(shí),進(jìn)行連續(xù)操作了,具體如下表所示
由上述敘述可知,該方案只能用在對(duì)RLDRAM或其它DDR-RAM的寫操作上,不適用于讀操作。如果寫操作到讀操作的轉(zhuǎn)換時(shí)間相鄰很近,則寫操作用到的bank對(duì)后面讀操作也會(huì)產(chǎn)生tRC的影響,進(jìn)而影響讀操作的性能。因此,如果要規(guī)避該問題,還需要在寫操作選bank時(shí)判斷所選bank是否與相鄰的讀操作bank沖突。即使解決了該問題,在讀操作本身,如果讀操作是按調(diào)度器進(jìn)行QOS調(diào)度,也還是會(huì)存在bank沖突的可能。
上述Start_bank動(dòng)態(tài)分配的方案的缺點(diǎn)在于(1)只適合寫操作,不能解決讀操作本身的tRC沖突;
在對(duì)DDRRAM進(jìn)行讀操作時(shí),由于地址和Start_bank固定,無法動(dòng)態(tài)分配,因而必然影響讀操作效率。如果在緩存管理時(shí)采用指針回收的方案,則當(dāng)Buffer滿時(shí),也同樣會(huì)影響到寫操作上。
(2)增加了額外存儲(chǔ)空間;由于在寫操作時(shí),對(duì)每個(gè)地址都分配了一個(gè)start_bank,因此在管理地址指針時(shí),也同樣需要把start_bank的信息進(jìn)行存儲(chǔ),這就增加了額外的空間來存儲(chǔ)該信息。
因此現(xiàn)有技術(shù)都無法從根本上解決或規(guī)避tRC造成的帶寬浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種有效提高RAM讀寫效率的方法。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的一種提高RAM讀寫效率的方法,在讀/寫操作時(shí),同時(shí)操作相鄰多個(gè)信元,同時(shí)依次搜索需執(zhí)行讀/寫操作的多個(gè)隊(duì)列,對(duì)第一個(gè)搜索到的與之前讀/寫操作不沖突的可使用單元進(jìn)行相應(yīng)的讀/寫操作。
所述方法進(jìn)一步包括A、提供多個(gè)隊(duì)列,按順序存儲(chǔ)各信元的地址和使用單元個(gè)數(shù)的信息;B、在每一時(shí)鐘對(duì)各個(gè)隊(duì)列中可以使用的RAM的單元依次進(jìn)行搜索,直到搜索到第一個(gè)可用單元或搜索完本隊(duì)列的全部單元停止;C、按照隊(duì)列的順序從所述該時(shí)鐘搜索到的所有可用單元中搜索第一個(gè)與之前讀/寫操作不沖突的可用單元執(zhí)行讀/寫操作。
所述步驟B中搜索過程進(jìn)一步包括判斷讀、寫操作之間的相互影響、和/或讀、寫操作本身對(duì)后續(xù)讀、寫操作的影響。
所述方法還包括
當(dāng)一個(gè)隊(duì)列中的所有單元都被用完,則將與所述隊(duì)列相鄰的后面隊(duì)列中裝載的信息前推,裝載到當(dāng)前被用完的隊(duì)列中。
所述隊(duì)列更新操作在非工作時(shí)隙進(jìn)行。
當(dāng)讀/寫操作中的流量對(duì)應(yīng)的所有信元長度都小于操作時(shí)間間隔tRC要求的值,則結(jié)合拼包方法共同執(zhí)行讀/寫操作。
所述方法適用于對(duì)帶單元的RAM執(zhí)行讀/寫操作。
由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明有效規(guī)避了RAM讀寫操作中的bank沖突問題,提高了外部存儲(chǔ)器讀寫效率,同時(shí)不增加額外的存儲(chǔ)空間。
圖1為本發(fā)明所述方法原理圖。
具體實(shí)施例方式
本發(fā)明的核心思想是提供了一種有效規(guī)避RAM讀寫操作中bank沖突的方法,通過同時(shí)操作相鄰多個(gè)cell,按順序搜索需執(zhí)行讀/寫操作的隊(duì)列,對(duì)第一個(gè)搜索到的可使用的bank進(jìn)行相應(yīng)的讀/寫操作,有效提高了外部存儲(chǔ)器的讀/寫效率。
本發(fā)明提供一種提高RAM讀寫效率的方法,本發(fā)明通過提供若干個(gè)queue(隊(duì)列),按順序存儲(chǔ)各cell的地址和使用bank個(gè)數(shù)的信息,然后在每一個(gè)時(shí)鐘對(duì)各個(gè)queue里能使用的RAM的bank依次進(jìn)行搜索,找到第一個(gè)與之前讀/寫操作不沖突的可用bank后取出使用。當(dāng)某個(gè)queue里的所有操作bank都被用完,則可將后面queue里的信息前推進(jìn)行更新。
下面以對(duì)DDR-RAM的讀操作為例,其SLOT(讀/寫操作時(shí)間段)周期為8,即連續(xù)8拍的讀操作,RLDRAMII操作頻率為300M,tRC=6;假設(shè)該操作提供的queue為3個(gè),分別表示為q0、q1、q2;前一輪寫操作對(duì)本輪讀操作的影響為前2拍,其中第一拍影響到的bankbank0、bank1,第二拍影響到的bankbank1;當(dāng)前有4個(gè)Cell需要進(jìn)行讀操作,各Cell所用bank數(shù)信息如下表所示
其操作原理參照?qǐng)D1,具體操作流程包括如下步驟開始有3個(gè)cell的信息被依次裝入3個(gè)queuecell0對(duì)應(yīng)q0、cell1對(duì)應(yīng)q1、cell2對(duì)應(yīng)q2,對(duì)所述3個(gè)cell執(zhí)行讀操作;首先所述的3個(gè)queue同時(shí)依次進(jìn)行搜索,每個(gè)queue當(dāng)搜索到與之前讀/寫操作不沖突的可用的bank后停止搜索,然后按照從q0到q2的順序從所述搜索到的可用的bank中選擇最先與之前讀/寫操作不沖突的可用的bank進(jìn)行讀操作;在讀操作的第一拍,以T0表示,由于寫操作在第一拍影響到bank0和bank1,因此T0時(shí)刻讀操作選出的第一與之前讀/寫操作不沖突的可用的bank為q0的bank2,即讀出q0中bank2中的cell0的相應(yīng)信息;如果考慮電路實(shí)現(xiàn)方面邏輯量較大,可以不考慮讀寫操作之間的相互影響,則對(duì)于queue的空判斷及Cell信息的推進(jìn)只要考慮q0即可,不需要考慮其它queue;T1時(shí)刻,即讀操作的第二拍,由于寫操作影響到的為bank1,而q0的bank0不被限制,因此在按照上述方式進(jìn)行搜索過程中,q0的bank0作為第一個(gè)被找到的與之前讀/寫操作不沖突的可用bank,被選出使用,即讀出q0中bank0中的cell0對(duì)應(yīng)信息;T2時(shí)刻,即讀操作的第三拍,此時(shí)寫操作對(duì)讀操作已無影響,在按照上述方式進(jìn)行搜索過程中,讀操作選出的bank為q0的bank1。
此時(shí),q0對(duì)應(yīng)的cell中所有有效bank已被讀出,將后面queue信息依次前推,即將原q1中裝載的cell1信息裝載到q0中,q1中裝載cell2的信息,q2中裝載cell3的信息;對(duì)于queue的更新可以不實(shí)時(shí)進(jìn)行,而是在非工作時(shí)隙進(jìn)行,比如對(duì)讀操作queue的更新在寫操作時(shí)隙進(jìn)行,對(duì)寫操作queue的更新在讀操作時(shí)隙進(jìn)行;T3時(shí)刻,由于前面讀操作所選用bank的影響,且tRC=6,cell1占用4個(gè)bank,因此在按照上述方式進(jìn)行搜索過程中,選出的bank為q0的bank3,讀取cell1的對(duì)應(yīng)信息;T4時(shí)刻,由于前面讀操作的影響,q0已無可用bank,此時(shí)按所述搜索順序,選出q1的bank4,讀取其中cell2的對(duì)應(yīng)信息;在T5時(shí)刻,由于tRC=6,q0和q1都無可用bank,此時(shí)選出q2的bank5,讀取cell3的對(duì)應(yīng)信息;在T6時(shí)刻,由于對(duì)T0時(shí)刻的tRC限制已過,此時(shí)選出q0的bank2,讀取cell1對(duì)應(yīng)的信息;在T7時(shí)刻,由于對(duì)T1時(shí)刻的tRC限制已過,此時(shí)選出q0的bank0,讀取cell1對(duì)應(yīng)的信息,此時(shí)讀操作周期結(jié)束。
對(duì)于上述整個(gè)操作過程,用表格表示如下
上述操作中,如果流量對(duì)應(yīng)的cell長度都比較短,如小于tRC要求的值,則此時(shí)需要結(jié)合拼包方案共同操作以提高性能。
寫操作的操作原理同上,將相應(yīng)的讀取信息的操作改為相應(yīng)的寫信息的操作,本方法同樣適用于其他帶bank的RAM的操作。
綜上所述,本發(fā)明有效規(guī)避了RAM讀寫操作中的bank沖突問題,提高了外部存儲(chǔ)器讀寫效率。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種提高RAM讀寫效率的方法,其特征在于,在讀/寫操作時(shí),同時(shí)操作相鄰多個(gè)信元,同時(shí)依次搜索需執(zhí)行讀/寫操作的多個(gè)隊(duì)列,對(duì)第一個(gè)搜索到的與之前讀/寫操作不沖突的可使用單元進(jìn)行相應(yīng)的讀/寫操作。
2.如權(quán)利要求1所述的一種提高RAM讀寫效率的方法,其特征在于,所述方法進(jìn)一步包括A、提供多個(gè)隊(duì)列,按順序存儲(chǔ)各信元的地址和使用單元個(gè)數(shù)的信息;B、在每一時(shí)鐘對(duì)各個(gè)隊(duì)列中可以使用的RAM的單元依次進(jìn)行搜索,直到搜索到第一個(gè)可用單元或搜索完本隊(duì)列的全部單元停止;C、按照隊(duì)列的順序從所述該時(shí)鐘搜索到的所有可用單元中搜索第一個(gè)與之前讀/寫操作不沖突的可用單元執(zhí)行讀/寫操作。
3.如權(quán)利要求2所述的一種提高RAM讀寫效率的方法,其特征在于,所述步驟B中搜索過程進(jìn)一步包括判斷讀、寫操作之間的相互影響、和/或讀、寫操作本身對(duì)后續(xù)讀、寫操作的影響。
4.如權(quán)利要求1或2所述的一種提高RAM讀寫效率的方法,其特征在于,所述方法還包括當(dāng)一個(gè)隊(duì)列中的所有單元都被用完,則將與所述隊(duì)列相鄰的后面隊(duì)列中裝載的信息前推,裝載到當(dāng)前被用完的隊(duì)列中。
5.如權(quán)利要求4所述的一種提高RAM讀寫效率的方法,其特征在于,所述隊(duì)列更新操作在非工作時(shí)隙進(jìn)行。
6.如權(quán)利要求1所述的一種提高RAM讀寫效率的方法,其特征在于,當(dāng)讀/寫操作中的流量對(duì)應(yīng)的所有信元長度都小于操作時(shí)間間隔tRC要求的值,則結(jié)合拼包方法共同執(zhí)行讀/寫操作。
7.如權(quán)利要求1所述的一種提高RAM讀寫效率的方法,其特征在于,所述方法適用于對(duì)帶單元的RAM執(zhí)行讀/寫操作。
全文摘要
本發(fā)明涉及通訊技術(shù)領(lǐng)域中一種提高RAM讀寫效率的方法,所述方法包括首先,提供多個(gè)隊(duì)列,按順序存儲(chǔ)各信元的地址和使用bank個(gè)數(shù)的信息;在每一時(shí)鐘對(duì)各個(gè)隊(duì)列中可以使用的RAM的bank依次進(jìn)行搜索,直到搜索到第一個(gè)可用單元或搜索完本隊(duì)列的全部單元停止;按照隊(duì)列的順序從所述該時(shí)鐘搜索到的所有可用單元中搜索第一個(gè)與之前讀/寫操作不沖突的可用bank執(zhí)行讀/寫操作。本發(fā)明有效規(guī)避了DDR-RAM讀寫操作中的bank沖突問題,提高了外部存儲(chǔ)器讀寫效率,同時(shí)不增加額外的存儲(chǔ)空間。
文檔編號(hào)G11C7/10GK1983439SQ20061008130
公開日2007年6月20日 申請(qǐng)日期2006年5月16日 優(yōu)先權(quán)日2006年5月16日
發(fā)明者林濤, 林郁, 杜文華, 崔靖杰, 施雪峰, 付紅松 申請(qǐng)人:華為技術(shù)有限公司