專利名稱:緩存地址的處理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別涉及一種緩存地址的處理方法和裝置。
背景技術(shù):
緩存地址管理是外置超大緩存類芯片的核心技術(shù)之一,用于完成一塊或多塊數(shù)據(jù) /包存儲(chǔ)RAM (Random Access Memory,隨機(jī)存儲(chǔ)器)的地址管理。緩存地址管理可通過外置大緩存的芯片系統(tǒng)架構(gòu)實(shí)現(xiàn),該架構(gòu)包含一個(gè)內(nèi)置的緩存地址管理模塊,如AM (Address Management,地址管理)模塊。當(dāng)報(bào)文進(jìn)入某芯片內(nèi)部時(shí),PWC(Packets Write Controller, 包寫控制器)生成一個(gè)入隊(duì)信息用于調(diào)度,報(bào)文被寫入外部大緩存,寫緩存的地址從AM模塊獲取,當(dāng)報(bào)文被成功調(diào)度出隊(duì),PRC(PaCketS Read Controller,包讀控制器)根據(jù)出隊(duì)信息中的報(bào)文緩存地址從外部緩存讀出報(bào)文數(shù)據(jù),一個(gè)完整的報(bào)文讀完后將緩存報(bào)文的緩存地址送到AM模塊進(jìn)行地址回收釋放。當(dāng)有報(bào)文要寫到外部Memory時(shí),PWC向AM申請(qǐng)空閑地址,AM輸出分配的空閑地址給PWC,PWC將報(bào)文寫到分配的地址對(duì)應(yīng)的存儲(chǔ)塊,并生成報(bào)文入隊(duì)信息參與調(diào)度。當(dāng)一個(gè)報(bào)文成功調(diào)度出隊(duì)時(shí),PRC根據(jù)出隊(duì)信息里的報(bào)文存儲(chǔ)信息,從外部存儲(chǔ)讀出數(shù)據(jù)報(bào)文,報(bào)文成功讀出后將報(bào)文的緩存地址送到AM模塊進(jìn)行地址回收釋放。在對(duì)現(xiàn)有技術(shù)進(jìn)行分析后,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少具有如下缺點(diǎn)現(xiàn)有技術(shù)中對(duì)緩存地址的處理方法是一讀一寫,當(dāng)收到分配地址請(qǐng)求時(shí),則分配相應(yīng)的地址,回收時(shí),由于每次回收時(shí)都要寫第一 Bitmap,導(dǎo)致第一 Bitmap寫操作頻繁,在某些高速場景,由于讀寫隨時(shí)可能同時(shí)要進(jìn)行操作,資源和功耗都較大,拖慢了系統(tǒng)的運(yùn)轉(zhuǎn)速度,處理速度慢,效率低。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種緩存地址的處理方法和裝置。所述技術(shù)方案如下一種緩存地址的處理方法,所述方法包括從第二 bitmap表中獲得空閑的基地址;根據(jù)所述基地址,從第一 bitmap表中的所述基地址的范圍內(nèi)選擇空閑的緩存地址。一種緩存地址的處理裝置,所述裝置包括第一位圖bitmap表管理模塊,用于通過第一位圖bitmap表對(duì)緩存地址進(jìn)行 bitmap管理,其中,所述第一位圖bitmap表包括用于指示各個(gè)緩存地址的狀態(tài)的表項(xiàng);第二位圖bitmap表管理模塊,用于通過第二位圖bitmap表對(duì)第一位圖bitmap表中的基地址進(jìn)行管理,其中,所述第二位圖bitmap表中包括用于指示第一 bitmap表中的基地址的狀態(tài)的表項(xiàng),其中,所述基地址用于指示所述第一 bitmap表中所有低比特為所述基地址的緩存地址;處理模塊,用于從所述第二 bitmap表中獲得第一 bitmap表中的空閑的基地址,然后再從所述第一 bitmap表中獲得處于所述基地址范圍內(nèi)的空閑的第一地址,根據(jù)所述第一地址進(jìn)行分配。本發(fā)明實(shí)施例提供的技術(shù)方案的有益效果是通過第一 Bitmap對(duì)緩存地址進(jìn)行Bitmap管理,第二 Bitmap對(duì)第一 Bitmap的基地址進(jìn)行管理,在接收到地址分配請(qǐng)求時(shí),根據(jù)第二 Bitmap中各個(gè)比特位的空閑或占用狀態(tài)獲取第一 Bitmap中空閑的緩存地址,對(duì)該緩存地址進(jìn)行分配,改變了現(xiàn)有技術(shù)中一次只分配一個(gè)地址的流程,在回收地址時(shí),也將大量地址集中回收,降低了緩存的處理壓力,提高了存儲(chǔ)的穩(wěn)定性。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例提供的一種緩存地址的處理方法的流程圖;圖2是本發(fā)明實(shí)施例提供的一種緩存地址的處理方法的流程圖;圖3是本發(fā)明實(shí)施例提供的一種緩存地址的處理裝置的結(jié)構(gòu)示意圖;圖4是本發(fā)明實(shí)施例提供的一種緩存地址的處理裝置的結(jié)構(gòu)示意圖;圖5是本發(fā)明實(shí)施例提供的一種緩存地址的處理裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。圖1是本發(fā)明實(shí)施例提供的一種緩存地址的處理方法的流程圖。參見圖1,該方法包括101、從第二 bitmap表中獲得空閑的基地址;在本實(shí)施例中,所述基地址用于指示所述第一 bitmap表中低比特為所述基地址的緩存地址。在本實(shí)施例中,用第一 Bitmap表對(duì)緩存地址進(jìn)行Bitmap管理,Bitmap表是一個(gè)二維表,第一 Bitmap表中的每個(gè)比特位的地址對(duì)應(yīng)一個(gè)緩存地址。緩存地址與第一 Bitmap 表的映射關(guān)系為第一Bitmap表中比特位的行地址為緩存地址的高比特,第一Bitmap表的列地址為緩存地址的低比特。第一 Bitmap表中每個(gè)Bit位的比特值用于表示對(duì)應(yīng)緩存地址的狀態(tài),當(dāng)比特位為0時(shí),表示該比特位的地址所指示的緩存地址被占用,當(dāng)比特位為1 時(shí),表示該比特位的地址所指示的緩存地址空閑。進(jìn)一步,用第二 Bitmap表對(duì)第一 Bitmap 表進(jìn)行Bitmap管理,第二 Bitmap表中的每個(gè)比特位的地址對(duì)應(yīng)第一 Bitmap表中的一個(gè)基地址?;刂放c第二 Bitmap表的映射關(guān)系為第二 Bitmap表中比特位的行地址為基地址的高比特,第二 Bitmap表的列地址為基地址的低比特。第二 Bitmap表中每個(gè)Bit位的比特值用于表示對(duì)應(yīng)基地址的狀態(tài),當(dāng)比特位為0時(shí),表示該比特位的地址所指示的基地址被占用,當(dāng)比特位為1時(shí),表示該比特位的地址所指示的基地址空閑。優(yōu)選地,Bitmap表可以使用RAM來實(shí)現(xiàn)。本領(lǐng)域技術(shù)人員可以獲知,該Bitmap表的設(shè)置方法為現(xiàn)有技術(shù),在此不再贅述。需要說明的是,本發(fā)明的緩存地址的處理方法是以Bitmap表為基礎(chǔ)的,凡是在對(duì)緩存進(jìn)行管理時(shí)使用到Bitmap表的,本發(fā)明均適用。本發(fā)明中的緩存包括共享緩存。102、根據(jù)獲得的基地址,從第一 bitmap表中的該基地址的范圍內(nèi)選擇空閑的緩存地址。從所述第二 Bitmap表中獲取1個(gè)空閑的比特位,該比特位的行地址為基地址的高比特,第二 Bitmap表的列地址為基地址的低比特,得到空閑的基地址,在該獲取的所述第一 Bitmap表的基地址的范圍內(nèi),選擇空閑的緩存地址。進(jìn)一步地,該方法還包括讀取待回收緩存地址,將所述第一 Bitmap表中與所述待回收緩存地址對(duì)應(yīng)的比特位置為空閑狀態(tài)。通過第一 Bitmap對(duì)緩存地址進(jìn)行Bitmap管理,第二 Bitmap對(duì)第一 Bitmap的基地址進(jìn)行管理,在接收到地址分配請(qǐng)求時(shí),根據(jù)第二 Bitmap中各個(gè)比特位的占用或非占用狀態(tài)獲取第一 Bitmap中空閑的緩存地址,對(duì)該緩存地址進(jìn)行分配,改變了現(xiàn)有技術(shù)中一次只分配一個(gè)地址的流程,在回收地址時(shí),也將大量地址集中回收,降低了緩存的處理壓力, 提高了存儲(chǔ)的穩(wěn)定性。圖2是本發(fā)明實(shí)施例提供的一種緩存地址的處理方法的流程圖。參見圖2,該方法包括201、通過第一位圖bitmap表對(duì)緩存地址進(jìn)行bitmap管理,其中,所述第一位圖 bitmap表包括用于指示各個(gè)緩存地址的狀態(tài)的表項(xiàng);本實(shí)施例中,采用第一 Bitmap表來管理緩存地址的分配狀態(tài),其具體的劃分方式和原理為現(xiàn)有技術(shù),在本實(shí)施例中不作贅述。舉例說明,將外置的32(ibits外置DDR3緩存劃分成多個(gè)區(qū)域即Block來管理,每個(gè)Block具有一定的容量,如Block容量為4Kbyte,每個(gè)Block對(duì)應(yīng)一個(gè)地址,則共需要 32GBits/(4KX8) = IM個(gè)地址來管理,相應(yīng)的AM模塊需要管理IM個(gè)Block地址。將IM個(gè) Block地址用IM的Bitmap管理,稱為第一 Bitmap表,可用IM的RAM實(shí)現(xiàn),該RAM的每一 Bit對(duì)應(yīng)一個(gè)緩存地址,Bit值為1表示該Bit對(duì)應(yīng)的地址處于空閑狀態(tài),可以分配,Bit值為0表示該Bit對(duì)應(yīng)的地址已分配出去,當(dāng)?shù)刂坊厥諘r(shí),將相應(yīng)的Bit位置為1即可,該Bit 在IM的RAM的地址用于指示該Block的緩存地址,該Bit在IM的RAM的列地址為Block 地址的高比特,行地址即為Block地址的低比特。202、通過第二位圖b i tmap表對(duì)第一位圖b i tmap表中的基地址進(jìn)行管理,其中,所述第二位圖bitmap表中包括用于指示第一 bitmap表中的基地址的狀態(tài)的表項(xiàng),其中,所述基地址用于指示所述第一 bitmap表中所有低比特為所述基地址的緩存地址;其中,基地址是指第一Bitmap表中的列地址,以一個(gè)8KX128Bits的IM RAM為例, 8K列地址稱為基地址,可見,一個(gè)基地址對(duì)應(yīng)1 個(gè)Block地址,如列地址為IK的128Block 地址范圍為16,h20000 2007f。設(shè)列地址用CA來表示,行地址用RA來表示,則每個(gè)Bit 表示的 Block 地址為{13,hCA,7,hRA}。本實(shí)施例中,采用第二 Bitmap表來管理第一 Bitmap表的分配狀態(tài),其具體的劃分原理為與步驟201相同,在本實(shí)施例中不作贅述。
基于步驟201的例子,該步驟202中,8KX 128bits的RAM采用Bitmap方式管理, 該Bitmap只管理IM的RAM的8K個(gè)基地址,只需要一塊8K的RAM,如一塊U8X64Bits的 RAM,該RAM的每一 bit代表了 IM的第一 Bitmap RAM的8K基地址中的一個(gè)地址。203、從所述第二 Bitmap表中獲取至少一個(gè)比特位,根據(jù)該比特位得到所述第一 Bitmap表的基地址,在該獲取的基地址的范圍內(nèi),獲取所述第一 Bitmap表的第一地址,將所述獲取的第一地址作為緩存地址保存在FIFO (First In FirstOut,先入先出隊(duì)列)中; 所述FIFO用于存儲(chǔ)緩存地址;如果直接從第二 Bitmap表中搜索空閑的比特位,可能會(huì)消耗很多個(gè)時(shí)鐘周期,所以本實(shí)施例中,可以結(jié)合使用一個(gè)指定深度的FIFO來進(jìn)行緩存地址的分配和回收,如256 深度的FIFO。在系統(tǒng)初始化時(shí),在FIFO隊(duì)列中預(yù)存空閑緩存地址,并設(shè)定FIFO的兩個(gè)水線,第一水線為回收水線,即高閾值,第二水線為搜索空閑比特位的水線,即低閾值。204、當(dāng)所述FIFO的深度高于第一水線時(shí),從所述FIFO讀取預(yù)設(shè)數(shù)值個(gè)緩存地址, 將所述第一 Bitmap表中與所述預(yù)設(shè)數(shù)值個(gè)緩存地址對(duì)應(yīng)的比特位置為空閑狀態(tài);在本實(shí)施例中,當(dāng)FIFO的深度高于第一水線時(shí),從FIFO讀出預(yù)設(shè)數(shù)值個(gè)緩存地址,將第一 Bitmap表中與該預(yù)設(shè)數(shù)值個(gè)緩存地址對(duì)應(yīng)的比特位置為空閑狀態(tài),也即是將 Bitmap表中對(duì)應(yīng)的bit置為1 ;優(yōu)選地,該預(yù)設(shè)數(shù)值應(yīng)為第一 Bitmap表和第二 Bitmap表的對(duì)應(yīng)關(guān)系相關(guān),如第一 Bitmap表的容量為Z5iBits,第二 Bitmap表的容量為2、its,則預(yù)設(shè)數(shù)值為的整數(shù)倍。需要說明的是,對(duì)第一 Bitmap表中的每一個(gè)Bit來說,只要該Bit對(duì)應(yīng)的多個(gè)緩存地址中有一個(gè)是空閑狀態(tài),則該Bit位也應(yīng)為空閑狀態(tài),直到該Bit對(duì)應(yīng)的全部緩存地址都已經(jīng)分配出去,則將該Bit置為被占用狀態(tài)。同理,對(duì)第二 Bitmap表中的每一個(gè)Bit來說,只要該Bit對(duì)應(yīng)的多個(gè)第一 Bitmap表地址中有一個(gè)是空閑狀態(tài),則該Bit位也應(yīng)為空閑狀態(tài),直到該Bit對(duì)應(yīng)的全部第一 Bitmap表地址都已經(jīng)是被占用狀態(tài),則將該Bit置為被占用狀態(tài)。205、當(dāng)所述FIFO的深度低于第二水線時(shí),從所述第二 Bitmap表中取出一個(gè)第二地址作為第一 Bitmap表的基地址,在該基地址的范圍內(nèi),獲取所述第一 Bitmap表的第一地址作為緩存地址,將所述緩存地址保存在所述FIFO中;所述第一水線不等于第二水線。需要說明的是,該第一水線不等于第二水線。進(jìn)一步地,第一水線大于第二水線, 具體地,第一和第二水線之間相差多個(gè)周期,若第一水線設(shè)為224,第二水線設(shè)為32,則相差至少192個(gè)周期,這樣使用能有效避免讀寫同時(shí)操作的情況,IM的第一 Bitmap可以采用單端口的存儲(chǔ)器件實(shí)現(xiàn),大大節(jié)省存儲(chǔ)器面積資源。206、當(dāng)接收到地址分配請(qǐng)求時(shí),從該FIFO中獲取緩存地址進(jìn)行分配;在本實(shí)施例中,F(xiàn)IFO中預(yù)存了多個(gè)緩存地址,則當(dāng)接收到地址分配請(qǐng)求時(shí),直接從 FIFO分配,延時(shí)很小,速度快,可以支持背靠背應(yīng)用。如上文的例子,F(xiàn)IFO存儲(chǔ)的是20Bit的Block地址,當(dāng)有地址分配請(qǐng)求時(shí),從FIFO 取出一個(gè)Block地址直接分配出去。207、當(dāng)接收到地址回收請(qǐng)求時(shí),將待回收的緩存地址保存在該FIFO中。在本實(shí)施例中,當(dāng)?shù)刂坊厥諘r(shí),首先將待回收緩存地址回收到FIFO,當(dāng)FIFO達(dá)到第二水線,從FIFO讀出預(yù)設(shè)數(shù)值個(gè)Block地址,并將第一 Bitmap表中該預(yù)設(shè)數(shù)值個(gè)Block 地址對(duì)應(yīng)的比特位置為空閑狀態(tài)。需要說明的是,系統(tǒng)在運(yùn)行前需要初始化,初始化將FIFO都充滿緩存地址。通過第一 Bitmap表對(duì)緩存地址進(jìn)行Bitmap管理,第二 Bitmap表對(duì)第一 Bitmap表的基地址進(jìn)行管理,并在第二 Bitmap表上設(shè)置一 FIFO隊(duì)列,利用該FIFO隊(duì)列對(duì)緩存地址的分配和回收進(jìn)行緩沖,進(jìn)一步改變了現(xiàn)有技術(shù)中一次只分配一個(gè)地址的流程,在回收地址時(shí),也將大量地址集中回收,降低了緩存的處理壓力,提高了存儲(chǔ)的穩(wěn)定性。進(jìn)一步地,利用雙水線的FIFO來吸收地址回收和地址分配,分配地址直接從FIFO分配,回收地址先回收到FIFO,使地址回收到第一 Bitmap表和從第一 Bitmap表分配操作的隔離,使第一 Bitmap 表用單口 RAM即可實(shí)現(xiàn),達(dá)到優(yōu)化第一 Bitmap表面積的目的。圖3是本發(fā)明實(shí)施例提供的一種緩存地址的處理裝置的結(jié)構(gòu)示意。參見圖3, 該裝置包括第一位圖bitmap表管理模塊301,用于通過第一位圖bitmap表對(duì)緩存地址進(jìn)行 bitmap管理,其中,所述第一位圖bitmap表包括用于指示各個(gè)緩存地址的狀態(tài)的表項(xiàng);第二位圖bitmap表管理模塊302,用于通過第二位圖bitmap表對(duì)第一位圖 bitmap表中的基地址進(jìn)行管理,其中,所述第二位圖bitmap表中包括用于指示第一 bitmap 表中的基地址的狀態(tài)的表項(xiàng),其中,所述基地址用于指示所述第一 bitmap表中所有低比特為所述基地址的緩存地址;處理模塊303,用于從所述第二 bitmap表中獲得第一 bitmap表中的空閑的基地址,然后再從所述第一 bitmap表中獲得處于所述基地址范圍內(nèi)的空閑的第一地址,根據(jù)所述第一地址進(jìn)行分配。圖4是本發(fā)明實(shí)施例提供的一種緩存地址的處理裝置的結(jié)構(gòu)示意圖。參見圖4,該裝置包括第一位圖bitmap表管理模塊301、第二位圖bitmap表管理模塊302和處理模塊 303,其中,所述處理模塊303包括處理單元303a,用于從所述第二 bitmap表中獲得第一 bitmap表中的空閑的基地址,然后再從所述第一 bitmap表中獲得處于所述基地址范圍內(nèi)的空閑的第一地址;第一存儲(chǔ)單元303b,用于將所述處理單元303a獲取的第一地址作為緩存地址,并保存所述緩存地址;所述處理單元303a,還用于從所述第一存儲(chǔ)單元303b中獲取所述緩存地址進(jìn)行分配;并將待回收緩存地址保存在所述第一存儲(chǔ)單元中。所述處理單元303a,還用于當(dāng)所述第一存儲(chǔ)單元30 的深度高于第一水線時(shí),從所述第一存儲(chǔ)模塊讀取預(yù)設(shè)數(shù)值個(gè)緩存地址,將所述第一 Bitmap表中與所述預(yù)設(shè)數(shù)值個(gè)緩存地址對(duì)應(yīng)的比特位置為空閑狀態(tài);所述處理單元303a,還用于當(dāng)所述第一存儲(chǔ)單元30 的深度低于第二水線時(shí), 從所述第二 Bitmap表中取出一個(gè)第二地址作為所述第一 Bitmap表的基地址,在所述第一 Bitmap表的基地址的范圍內(nèi),獲取所述第一 Bitmap表的第一地址,將所述第一地址保存在所述第一存儲(chǔ)單元中;所述第一水線不等于第二水線。該第一存儲(chǔ)單元30 可以為FIFO。當(dāng)FIFO深度低于第二水線時(shí),也即是需要向 FIFO補(bǔ)充緩存地址,每次從該第一 Bitmap表緩存將Bitmap映射成Block地址后補(bǔ)充到FIFO,在第二 Bitmap表與FIFO間插入第一 Bitmap表緩存,能夠進(jìn)一步提升地址分配性能, 使地址分配在有空閑地址分配的情況下都能達(dá)到線速。當(dāng)?shù)谝?Bitmap表緩存中的緩存地址少于預(yù)設(shè)水線,則從第二 Bitmap表中取出一個(gè)為1的Bit位換算成基地址,表示該區(qū)域有空閑地址可分配,獲取到基地址后,用基地址從第一 Bitmap讀出一個(gè)區(qū)域,該區(qū)域必然包含多個(gè)空閑的Block地址,將該區(qū)域放到第一 Bitmap表緩存里。圖5是本發(fā)明實(shí)施例提供的一種緩存地址的處理裝置的結(jié)構(gòu)示意圖。參見圖5, 該裝置包括第一位圖bitmap表管理模塊301、第二位圖bitmap表管理模塊302和處理模塊,其中,所述處理模塊303包括處理單元303a和第一存儲(chǔ)單元30北,所述處理模塊303還包括第二存儲(chǔ)單元303c,用于從所述第二 Bitmap表中獲取至少一個(gè)第二地址,將所述獲取的第二地址作為所述第一 Bitmap表的基地址,在所述第一 Bitmap表的基地址的范圍內(nèi),獲取所述第一 Bitmap表的第一地址,保存所述獲取的第一地址;所述處理單元303a,還用于當(dāng)所述第一存儲(chǔ)單元30 的深度低于第二水線時(shí),從所述第二存儲(chǔ)單元303c中獲取預(yù)設(shè)數(shù)值個(gè)緩存地址,并將所述緩存地址保存在所述第一存儲(chǔ)單元30 中。最壞情況下,只要第二存儲(chǔ)單元達(dá)到一定的深度,能夠緩存獲取的、但未分配出去的緩存地址,使得地址分配側(cè)就可以達(dá)到線速,通常該第二存儲(chǔ)單元深度大于4即可滿足要求,在正常情況下,往往一個(gè)區(qū)域不止一個(gè)空閑狀態(tài)地址,采用第二存儲(chǔ)單元后,還能減小在地址補(bǔ)充時(shí)對(duì)第一 Bitmap表的讀操作,降低了功耗。在回收側(cè),由于將待回收地址回收到第一 Bitmap時(shí)必然不會(huì)有讀第一 Bitmap表的操作,使地址補(bǔ)充和回寫分離,第一 Bitmap采用單端口 RAM即可,大大節(jié)省面積資源,且回收也可以達(dá)到線速。因此,采用該方案的緩存地址管理結(jié)構(gòu)在節(jié)省面積資源和能耗的同時(shí),提供地址線速分配和回收的能力。在本實(shí)施例中,在上一實(shí)施例的基礎(chǔ)上在第二 Bitmap表與FIFO間插入第二存儲(chǔ)單元,采用緩存方式緩存基地址和第一 Bitmap表讀出的多個(gè)區(qū)域的緩存地址,能夠快速搜索到空閑地址所在的區(qū)域,達(dá)到線速補(bǔ)充FIFO地址的能力,也使得分配地址達(dá)到線速;同時(shí)還能減少讀Block地址Bitmap操作的目的,當(dāng)出現(xiàn)大量地址分配請(qǐng)求時(shí),進(jìn)一步降低了系統(tǒng)的壓力,提高了處理的速度,特別適用于超高帶寬處理類芯片。需要說明的是,系統(tǒng)在運(yùn)行前需要初始化,初始化將第一存儲(chǔ)單元和第二存儲(chǔ)單元都充滿緩存地址。本實(shí)施例提供的裝置,具體可以RAM,與方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。本實(shí)施例提供的裝置,第一 Bitmap對(duì)緩存地址進(jìn)行Bitmap管理,第二 Bitmap對(duì)第一 Bitmap的基地址進(jìn)行管理,在接收到地址分配請(qǐng)求時(shí),根據(jù)第二 Bitmap中各個(gè)比特位的空閑或占用狀態(tài)獲取第一 Bitmap中空閑的緩存地址,對(duì)該緩存地址進(jìn)行分配,改變了現(xiàn)有技術(shù)中一次只分配一個(gè)地址的流程,在回收地址時(shí),也將大量地址集中回收,降低了緩存的處理壓力,提高了存儲(chǔ)的穩(wěn)定性。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種緩存地址的處理方法,其特征在于,所述方法包括從第二 bitmap表中獲得空閑的基地址;根據(jù)所述基地址,從第一 bitmap表中的所述基地址的范圍內(nèi)選擇空閑的緩存地址。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基地址用于指示所述第一bitmap表中低比特為所述基地址的緩存地址。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括讀取待回收緩存地址,將所述第一 Bitmap表中與所述待回收緩存地址對(duì)應(yīng)的比特位置為空閑狀態(tài)。
4.一種緩存地址的處理裝置,其特征在于,所述裝置包括第一位圖bitmap表管理模塊,用于通過第一位圖bitmap表對(duì)緩存地址進(jìn)行bitmap管理,其中,所述第一位圖bitmap表包括用于指示各個(gè)緩存地址的狀態(tài)的表項(xiàng);第二位圖bitmap表管理模塊,用于通過第二位圖bitmap表對(duì)第一位圖bitmap表中的基地址進(jìn)行管理,其中,所述第二位圖bitmap表中包括用于指示第一 bitmap表中的基地址的狀態(tài)的表項(xiàng),其中,所述基地址用于指示所述第一 bitmap表中所有低比特為所述基地址的緩存地址;處理模塊,用于從所述第二bitmap表中獲得第一bitmap表中的空閑的基地址,然后再從所述第一 bitmap表中獲得處于所述基地址范圍內(nèi)的空閑的第一地址,根據(jù)所述第一地址進(jìn)行分配。
5.根據(jù)權(quán)利要求4所述的處理裝置,其特征在于,所述處理模塊包括處理單元,用于從所述第二 bitmap表中獲得第一 bitmap表中的空閑的基地址,然后再從所述第一 bitmap表中獲得處于所述基地址范圍內(nèi)的空閑的第一地址;第一存儲(chǔ)單元,用于將所述所述處理模塊獲取的第一地址作為緩存地址,并保存所述緩存地址;所述處理單元,還用于從所述第一存儲(chǔ)單元中獲取所述緩存地址進(jìn)行分配;并將待回收緩存地址保存在所述第一存儲(chǔ)單元中。
6.根據(jù)權(quán)利要求5所述的處理裝置,其特征在于,所述處理單元,還用于當(dāng)所述第一存儲(chǔ)單元的深度高于第一水線時(shí),從所述第一存儲(chǔ)模塊讀取預(yù)設(shè)數(shù)值個(gè)緩存地址,將所述第一 Bitmap表中與所述預(yù)設(shè)數(shù)值個(gè)緩存地址對(duì)應(yīng)的比特位置為空閑狀態(tài);所述處理單元,還用于當(dāng)所述第一存儲(chǔ)單元的深度低于第二水線時(shí),從所述第二 Bitmap表中取出一個(gè)第二地址作為所述第一 Bitmap表的基地址,在所述第一 Bitmap表的基地址的范圍內(nèi),獲取所述第一 Bitmap表的第一地址,將所述第一地址保存在所述第一存儲(chǔ)單元中;所述第一水線不等于第二水線。
7.根據(jù)權(quán)利要求4-6任一項(xiàng)所述的處理裝置,其特征在于,所述處理模塊還包括第二存儲(chǔ)單元,用于從所述第二 Bitmap表中獲取至少一個(gè)第二地址,將所述獲取的第二地址作為所述第一 Bitmap表的基地址,在所述第一 Bitmap表的基地址的范圍內(nèi),獲取所述第一 Bitmap表的第一地址,保存所述獲取的第一地址;所述處理單元,還用于當(dāng)所述第一存儲(chǔ)單元的深度低于第二水線時(shí),從所述第二存儲(chǔ)單元中獲取預(yù)設(shè)數(shù)值個(gè)緩存地址,并將所述緩存地址保存在所述第一存儲(chǔ)單元中。
全文摘要
本發(fā)明公開了一種緩存地址的處理方法和裝置,屬于數(shù)據(jù)處理領(lǐng)域。該方法包括從第二bitmap表中獲得空閑的基地址;根據(jù)所述基地址,從第一bitmap表中的所述基地址的范圍內(nèi)選擇空閑的緩存地址。該裝置包括第一位圖bitmap表管理模塊、第二位圖bitmap表管理模塊和處理模塊。本發(fā)明通過第一Bitmap對(duì)緩存地址進(jìn)行Bitmap管理,第二Bitmap對(duì)第一Bitmap的基地址進(jìn)行管理,改變了現(xiàn)有技術(shù)中一次只分配一個(gè)地址的流程,在回收地址時(shí),也將大量地址集中回收,降低了緩存的處理壓力,提高了存儲(chǔ)的穩(wěn)定性。
文檔編號(hào)G06F12/08GK102411543SQ20111037170
公開日2012年4月11日 申請(qǐng)日期2011年11月21日 優(yōu)先權(quán)日2011年11月21日
發(fā)明者游游, 陳文 , 魏華 申請(qǐng)人:華為技術(shù)有限公司