本發(fā)明涉及芯片設(shè)計領(lǐng)域,尤其涉及一種ddr地址映射系統(tǒng)和方法。
背景技術(shù):
在移動終端中,為了完成移動通信、本地應(yīng)用等功能,有眾多的模塊會訪問ddr。眾多模塊例如包括多核應(yīng)用處理器、gpu、display、dsp、dma等,隨著sdr(軟件無線電)的發(fā)展以及移動通信速率的提高,移動終端的通信處理需要更多的dsp、高層處理器、信號處理加速器、dma等模塊,這些模塊都會訪問ddr。在極端情況下,會有多個模塊訪問ddr的同一個bank(塊)的不同行,由于一個bank只允許同時激活1行,所以會造成ddr不斷進行關(guān)閉行、激活行的過程,嚴(yán)重影響ddr的效率,同時也會增加ddr的功耗。
ddr的空間地址映射方式為【bank,row,col】或者【row,bank,col】,要對ddr的某個地址進行讀寫操作時,必須先激活所在的row,而一個bank只能同時有一個row(行)保持激活狀態(tài),如果要訪問該bank的另外一個row,必須先關(guān)閉原先激活的row,然后才能激活將要訪問的row,激活和關(guān)閉動作太多,就會極大降低ddr的效率。在某些系統(tǒng)里,對ddr效率要求比較高,采用【bank,row,col】的地址映射方式,然后將各模塊訪問ddr的空間規(guī)劃到不同的bank里,這樣就不會出現(xiàn)頻繁激活和關(guān)閉row的動作,從而大大提高ddr的效率。然而,ddr的bank數(shù)量是有限的,每個bank都是固定的大小,各模塊實際可能只使用很小的空間,這種方式就造成了大量空間的浪費,在消費類終端里是不實用的。因此,在終端系統(tǒng)中為了減少bank沖突的可能性,一般會采用【row,bank,col】的地址映射方式,這方式bank不是在地址的高位,大大減少了bank沖突的可能性,但是并不能消除這種可能性,在移動終端里,某些通信模塊對ddr訪問的實時性比較高,即使是低概率的ddr效率降低,也可能引起通信模塊的死機。
技術(shù)實現(xiàn)要素:
為解決現(xiàn)有技術(shù)存在的問題,本發(fā)明提供了一種ddr地址映射系統(tǒng),通過<row,bank,col>方式進行地址映射,其中row代表行地址,col代表列地址,bank代表塊地址,且不同模塊訪問所述ddr的地址位于不同的塊。
可選的,所述不同模塊至少包含數(shù)字信號處理器、cpu、信號處理加速器、gpu和dma其中之二。
可選的,所述不同模塊屬于同一移動終端。
可選的,不同模塊訪問所述ddr的地址位于不同的塊的實現(xiàn)方式是:在ddr的指定地址空間內(nèi)進行地址重排,使得該空間內(nèi)通過<bank,row,col>的方式進行地址映射。
可選的,在所述指定地址空間內(nèi)進行地址重排時,將所述指定地址空間平均分配給多個塊。
可選的,通過規(guī)定所述指定地址空間的起始地址大小和所述指定地址空間的大小獲取所述指定地址空間。
可選的,所述指定地址空間的大小為
其中,n、m為整數(shù),n為設(shè)定重排空間的行的bit數(shù),nbank為所述ddr的bank的數(shù)量2的對數(shù),ncol為所述ddr的col的大小的2的對數(shù),nbus為所述ddr總線的大小的2的對數(shù),ddr總線的大小以byte為單位。
可選的,不同模塊訪問所述ddr的地址位于不同的塊的實現(xiàn)方式是:將同一模塊訪問的某一段地址劃分至同一個塊,其余地址做適應(yīng)性調(diào)整。
一種ddr地址映射方法,通過<row,bank,col>方式進行地址映射,其中row代表行地址,col代表列地址,bank代表塊地址,且不同模塊訪問所述ddr的地址設(shè)置于不同的塊。
可選的,所述不同模塊至少包含數(shù)字信號處理器、cpu、信號處理加速器、gpu或dma其中之二。
可選的,所述不同模塊屬于同一移動終端。
可選的,不同模塊訪問所述ddr的地址位于不同的塊的實現(xiàn)方式是:在ddr的指定地址空間內(nèi)進行地址重排,使得該空間內(nèi)通過<bank,row,col>的方式進行地址映射。
可選的,在所述指定地址空間內(nèi)進行地址重排時,將所述指定地址空間平均分配給多個塊。
可選的,通過規(guī)定所述指定地址空間的起始地址大小和所述指定地址空間的大小獲取所述指定地址空間。
可選的,所述指定地址空間的大小為
其中,n、m為整數(shù),n為設(shè)定重排空間的行的bit數(shù),nbank為所述ddr的bank的數(shù)量2的對數(shù),ncol為所述ddr的col的大小的2的對數(shù),nbus為所述ddr總線的大小的2的對數(shù),上述ddr總線的大小以byte為單位。
可選的,不同模塊訪問所述ddr的地址位于不同的塊的實現(xiàn)方式是:將同一模塊訪問的某一段地址劃分至同一個塊,其余地址做適應(yīng)性調(diào)整。
本發(fā)明提供一種ddr地址映射系統(tǒng),在【row,bank,col】的地址映射方式基礎(chǔ)上把各模塊訪問ddr的空間進行重排,可以實現(xiàn)各模塊對ddr的訪問規(guī)劃到不同的bank,且占用指定的空間大小。本發(fā)明還相應(yīng)地提供了一種ddr地址映射方法,既能提高ddr的效率,又不造成ddr空間的浪費。
附圖說明
圖1為本發(fā)明第一實施例所述ddr地址映射系統(tǒng)中總線映射邏輯示意圖;
圖2為本發(fā)明第二實施例所述ddr地址映射系統(tǒng)中總線映射邏輯示意圖。
具體實施方式
以下結(jié)合附圖和具體實施例對本發(fā)明作進一步詳細說明。根據(jù)下面說明和權(quán)利要求書,本發(fā)明的優(yōu)點和特征將更清楚。需說明的是,附圖均采用非常簡化的形式且均使用非精準(zhǔn)的比率,僅用以方便、明晰地輔助說明本發(fā)明實施例的目的。
本發(fā)明提供了一種ddr地址映射系統(tǒng),通過<row,bank,col>方式進行地址映射,其中row代表行地址,col代表列地址,bank代表塊地址,并且不同模塊訪問所述ddr的地址位于不同的塊。
優(yōu)選方案中,所述不同模塊包含同一移動終端中的數(shù)字信號處理器、cpu、信號處理加速器、gpu或dma。
實施例一:
不同模塊訪問所述ddr的地址位于不同的塊的實現(xiàn)方式是:在ddr的指定地址空間內(nèi)進行地址重排,使得該空間內(nèi)通過<bank,row,col>的方式進行地址映射。在本實施例中,在所述指定地址空間內(nèi)進行地址重排時,將所述指定地址空間平均分配給多個塊。
具體而言,是在某一個指定的空間內(nèi)進行地址重排,從而實現(xiàn)在小范圍內(nèi)是【bank,row,col】的地址映射方式。例如,0~128m空間內(nèi),重新排列后,0~16m為bank0,16~32m為bank1,32~48m為bank2,以此類推。起始地址和重排的空間大小都可以設(shè)定,為了滿足地址總線的映射為簡單的循環(huán)移位操作,要求設(shè)定的重排的空間大小為
本實施例中,如果系統(tǒng)總線為32bit,則總線映射邏輯如圖1所示。首先分別配置需要重排的起始地址、結(jié)束地址:anbotm[31:0]~antop[31:0],然后在進行映射時判斷具體地址a[31:0]是否在起始地址到結(jié)束地址的范圍內(nèi)。即anbotm[31:0]<=a[31:0]<=antop[31:0]是否成立。當(dāng)上式成立時,則映射后的地址aout[31:0]={a[31:n+3+ncb],a[n+ncb-1:ncb],a[n+2+ncb:n+ncb],a[ncb-1:0]};當(dāng)上式不成立時,保持映射后的地址不變,即aout[31:0]=a[31:0]。
在圖1中,ncb=ncol+nbus,n為設(shè)定重排空間的row的bit數(shù),a為原始地址數(shù)據(jù),aout為映射后的地址??偩€映射器對地址a[n+ncb+2:ncb]的重新映射,實際是循環(huán)左移3位,這種移位操作時序簡單,不會給總線帶來較大的額外延遲。
本實施例中,以2row,8bank空間為例,則映射關(guān)系如下:
經(jīng)上述箭頭調(diào)整重排后,新的地址映射如下:
由此可見,在我們指定的ddr空間里經(jīng)過總線映射后,實現(xiàn)了【bank,row,col】的地址映射方式,從而將移動終端訪問ddr的各個空間劃分到不同的bank。
實施例二:
不同模塊訪問所述ddr的地址位于不同的塊的實現(xiàn)方式是:將同一模塊訪問的某一段地址劃分至同一個塊,其余地址做適應(yīng)性調(diào)整。
本實施例是將某一段地址映射為某一個指定的bank,例如16m~18m為映射為bank1,18m~25m映射為bank0等等。因此,其總線映射邏輯如圖2所示。
配置需要重排的起始地址、結(jié)束地址為anbotm[31:0]~antop[31:0],及要映射為哪個塊,即bank_x。之后,再進行映射時判斷具體地址a[31:0]是否在起始地址到結(jié)束地址的范圍內(nèi),即anbotm[31:0]<=a[31:0]<=antop[31:0]是否成立。當(dāng)上式成立時,則映射后的地址aout[31:0]={a[28:ncb],bank_x[2:0],a[ncb-1:0]};當(dāng)上式不成立時,判斷anbotm[28:ncb]<=a[31:ncb+3]<=antop[28:ncb]&a[ncb+2:ncb]==bank_x是否成立,若成立,則映射后的地址aout[31:0]={3'b0,a[31:ncb+3],a[ncb-1:0]}, 若不成立,則保持映射后的地址不變,即aout[31:0]=a[31:0]。
本實施例中,以2row,8bank空間為例,即將row為2的地址劃分至同一個bank,則映射關(guān)系如下:
映射前后的地址如下:
由此可見,row2的空間經(jīng)過總線映射后,實現(xiàn)了映射到bank1的地址空間??梢詫崿F(xiàn)將移動終端訪問ddr的各master空間經(jīng)過總線器以后映射到某一指定的bank。
本發(fā)明還提供了一種ddr地址映射方法,通過<row,bank,col>方式進行地址映射,其中row代表行地址,col代表列地址,bank代表塊地址,不同模塊訪問所述ddr的地址設(shè)置于不同的塊。該方法的其他技術(shù)特征與上述ddr地址映射系統(tǒng)相同,因此此處不再贅述。
本發(fā)明的ddr地址映射系統(tǒng)在【row,bank,col】的地址映射方式基礎(chǔ)上,把各模塊訪問ddr的空間進行重排,可以實現(xiàn)各模塊對ddr的訪問規(guī)劃到不同的bank,且占用指定的空間大小。本發(fā)明還相應(yīng)地提供了一種ddr地址映射方法,既能提高ddr的效率,又不造成ddr空間的浪費。
顯然,本領(lǐng)域的技術(shù)人員可以對發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包括這些改動和變型在內(nèi)。