一種檢測(cè)內(nèi)存單元的方法及設(shè)備的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種檢測(cè)內(nèi)存單元的方法及設(shè)備,屬于計(jì)算機(jī)領(lǐng)域。所述方法包括:獲得內(nèi)存單元的地址,所述內(nèi)存單元的地址為存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址或者為內(nèi)存管理模塊分配的內(nèi)存單元的地址;根據(jù)所述內(nèi)存單元的地址獲取所述內(nèi)存單元的內(nèi)存狀態(tài);根據(jù)所述內(nèi)存單元的內(nèi)存狀態(tài)檢測(cè)所述內(nèi)存單元的地址的合法性;如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址,控制所述內(nèi)存管理模塊回收所述內(nèi)存單元的地址;如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述內(nèi)存管理模塊分配的內(nèi)存單元的地址,把所述內(nèi)存單元的地址分配給所述存儲(chǔ)訪問(wèn)模塊。本發(fā)明能夠避免引起系統(tǒng)癱瘓。
【專利說(shuō)明】一種檢測(cè)內(nèi)存單元的方法及設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)及通信領(lǐng)域,特別涉及一種檢測(cè)內(nèi)存單元的方法及設(shè)備。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)中的信息容量的增加,網(wǎng)絡(luò)設(shè)備在處理數(shù)據(jù)的過(guò)程中,會(huì)將大量的數(shù)據(jù)緩存在外部緩存中,并且在處理數(shù)據(jù)的過(guò)程中對(duì)外部緩存進(jìn)行有效的管理來(lái)充分利用外部緩存的帶寬和容量。
[0003]網(wǎng)絡(luò)設(shè)備通過(guò)存儲(chǔ)訪問(wèn)模塊和內(nèi)存管理模塊來(lái)對(duì)外部緩存進(jìn)行管理,其中,外部緩存被劃分成多個(gè)內(nèi)存單元,內(nèi)存管理模塊中包括外部緩存中空閑的內(nèi)存單元的MMU(Memory Management Unit,內(nèi)存管理單元)地址;存儲(chǔ)訪問(wèn)模塊當(dāng)需要將數(shù)據(jù)緩存到外部緩存中時(shí),向內(nèi)存管理模塊申請(qǐng)內(nèi)存單元,內(nèi)存管理模塊分配空閑的內(nèi)存單元的MMU地址并將該內(nèi)存單元的MMU地址發(fā)送給內(nèi)存訪問(wèn)模塊,內(nèi)存訪問(wèn)模塊根據(jù)該內(nèi)存單元的MMU地址將該數(shù)據(jù)存儲(chǔ)在外部緩存中對(duì)應(yīng)的內(nèi)存單元中;內(nèi)存訪問(wèn)模塊當(dāng)需要釋放申請(qǐng)的內(nèi)存單元的MMU地址時(shí),將該內(nèi)存單元的MMU地址發(fā)送給存儲(chǔ)管理模塊,以請(qǐng)求內(nèi)存管理模塊釋放該內(nèi)存單元的MMU地址。
[0004]在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題:
[0005]存儲(chǔ)訪問(wèn)模塊在向內(nèi)存管理模塊釋放內(nèi)存單元的MMU地址時(shí),可能會(huì)出現(xiàn)同一內(nèi)存單元的MMU地址被重復(fù)釋放;以及,存儲(chǔ)訪問(wèn)模塊向內(nèi)存管理模塊申請(qǐng)內(nèi)存單元時(shí),內(nèi)存管理模塊可能會(huì)出同一內(nèi)存單元的MMU地址被重復(fù)分配,從而可能引起系統(tǒng)癱瘓。
【發(fā)明內(nèi)容】
[0006]為了避免引起系統(tǒng)癱瘓,本發(fā)明提供了一種檢測(cè)內(nèi)存單元的方法及設(shè)備。所述技術(shù)方案如下:
[0007]一種檢測(cè)內(nèi)存單元的方法,所述方法包括:
[0008]獲得內(nèi)存單元的地址,所述內(nèi)存單元的地址為存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址或者為內(nèi)存管理模塊分配的內(nèi)存單元的地址,且所述內(nèi)存單元為外部緩存中的內(nèi)存單元;
[0009]根據(jù)所述內(nèi)存單元的地址獲取所述內(nèi)存單元的內(nèi)存狀態(tài);
[0010]根據(jù)所述內(nèi)存單元的內(nèi)存狀態(tài)檢測(cè)所述內(nèi)存單元的地址的合法性;
[0011]如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址,控制所述內(nèi)存管理模塊回收所述內(nèi)存單元的地址;
[0012]如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述內(nèi)存管理模塊分配的內(nèi)存單元的地址,把所述內(nèi)存單元的地址分配給所述存儲(chǔ)訪問(wèn)模塊。
[0013]一種檢測(cè)內(nèi)存單元的設(shè)備,所述設(shè)備包括:
[0014]第一獲取模塊,用于獲得內(nèi)存單元的地址,所述內(nèi)存單元的地址為存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址或者為內(nèi)存管理模塊分配的內(nèi)存單元的地址,且所述內(nèi)存單元為外部緩存中的內(nèi)存單元;
[0015]第二獲取模塊,用于根據(jù)所述內(nèi)存單元的地址獲取所述內(nèi)存單元的內(nèi)存狀態(tài);
[0016]檢測(cè)模塊,用于根據(jù)所述內(nèi)存單元的內(nèi)存狀態(tài)檢測(cè)所述內(nèi)存單元的地址的合法性,如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址,控制所述內(nèi)存管理模塊回收所述內(nèi)存單元的地址;如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述內(nèi)存管理模塊分配的內(nèi)存單元的地址,把所述內(nèi)存單元的地址分配給所述存儲(chǔ)訪問(wèn)模塊。
[0017]在本發(fā)明實(shí)施例中,當(dāng)存儲(chǔ)訪問(wèn)模塊需要釋放內(nèi)存單元的地址或者內(nèi)存管理模塊分配內(nèi)存單元的地址時(shí),獲得該內(nèi)存單元的地址,檢測(cè)該內(nèi)存單元的地址的合法性;如果該內(nèi)存單元的地址合法且該內(nèi)存單元的地址為存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址,控制內(nèi)存管理模塊回收該內(nèi)存單元的地址,如果該內(nèi)存單元的地址合法且該內(nèi)存單元的地址為內(nèi)存管理模塊分配的內(nèi)存單元的地址,把該內(nèi)存單元的地址分配給存儲(chǔ)訪問(wèn)模塊。其中,內(nèi)存訪問(wèn)模塊重復(fù)釋放同一內(nèi)存單元的地址為不合法的內(nèi)存單元的地址,以及內(nèi)存管理模塊重復(fù)分配同一內(nèi)存單元的地址為不合法的內(nèi)存單元的地址,如此能夠防止內(nèi)存訪問(wèn)模塊重復(fù)向內(nèi)存管理模塊釋放同一內(nèi)存單元的地址,以及能夠防止內(nèi)存管理模塊重復(fù)分配同一內(nèi)存單元的地址,從而避免引起系統(tǒng)癱瘓。
【專利附圖】
【附圖說(shuō)明】
[0018]圖1是本發(fā)明實(shí)施例提供的一種檢測(cè)內(nèi)存單元的方法流程圖;
[0019]圖2是本發(fā)明另一實(shí)施例提供的一種檢測(cè)內(nèi)存單元的方法流程圖;
[0020]圖3是本發(fā)明另一實(shí)施例應(yīng)用的系統(tǒng)架構(gòu);
[0021]圖4是本發(fā)明另一實(shí)施例提供的外部緩存的結(jié)構(gòu)示意圖;
[0022]圖5是本發(fā)明另一實(shí)施例提供的一種檢測(cè)內(nèi)存單元的設(shè)備結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0024]參見(jiàn)圖1,本發(fā)明實(shí)施例提供了一種檢測(cè)內(nèi)存單元的方法,包括:
[0025]步驟101:獲得內(nèi)存單元的地址,該內(nèi)存單元的地址為存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址或者為內(nèi)存管理模塊分配的內(nèi)存單元的地址,且該內(nèi)存單元為外部緩存中的內(nèi)存單元;
[0026]步驟102:根據(jù)該內(nèi)存單元的地址獲取該內(nèi)存單元的內(nèi)存狀態(tài);
[0027]步驟103:根據(jù)該內(nèi)存單元的內(nèi)存狀態(tài)檢測(cè)該內(nèi)存單元的地址的合法性;
[0028]步驟104:如果該內(nèi)存單元的地址合法且該內(nèi)存單元的地址為存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址,控制內(nèi)存管理模塊回收內(nèi)存單元的地址;
[0029]步驟105:如果該內(nèi)存單元的地址合法且該內(nèi)存單元的地址為內(nèi)存管理模塊分配的內(nèi)存單元的地址,把該內(nèi)存單元的地址分配給存儲(chǔ)訪問(wèn)模塊。
[0030]在本發(fā)明實(shí)施例中,當(dāng)存儲(chǔ)訪問(wèn)模塊需要釋放內(nèi)存單元的地址或者內(nèi)存管理模塊分配內(nèi)存單元的地址時(shí),獲得該內(nèi)存單元的地址,檢測(cè)該內(nèi)存單元的地址的合法性;如果該內(nèi)存單元的地址合法且該內(nèi)存單元的地址為存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址,控制內(nèi)存管理模塊回收該內(nèi)存單元的地址,如果該內(nèi)存單元的地址合法且該內(nèi)存單元的地址為內(nèi)存管理模塊分配的內(nèi)存單元的地址,把該內(nèi)存單元的地址分配給存儲(chǔ)訪問(wèn)模塊。其中,內(nèi)存訪問(wèn)模塊重復(fù)釋放同一內(nèi)存單元的地址為不合法的內(nèi)存單元的地址,以及內(nèi)存管理模塊重復(fù)分配同一內(nèi)存單元的地址為不合法的內(nèi)存單元的地址,如此能夠防止內(nèi)存訪問(wèn)模塊重復(fù)向內(nèi)存管理模塊釋放同一內(nèi)存單元的地址,以及能夠防止內(nèi)存管理模塊重復(fù)分配同一內(nèi)存單元的地址,從而避免引起系統(tǒng)癱瘓。
[0031]本發(fā)明實(shí)施例提供了一種檢測(cè)內(nèi)存單元的方法。其中,在本發(fā)明實(shí)施例中,通過(guò)檢測(cè)設(shè)備來(lái)檢測(cè)存儲(chǔ)訪問(wèn)模塊釋放的內(nèi)存單元的地址的合法性以及檢測(cè)內(nèi)存管理模塊分配的內(nèi)存單元的地址的合法性,參見(jiàn)圖2,該方法包括:
[0032]步驟201:檢測(cè)設(shè)備接收存儲(chǔ)訪問(wèn)模塊發(fā)送的釋放請(qǐng)求消息,且該釋放請(qǐng)求消息攜帶存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址;
[0033]其中,本實(shí)施例應(yīng)用如圖3所示的系統(tǒng)架構(gòu),該系統(tǒng)架構(gòu)包括外部緩存、存儲(chǔ)訪問(wèn)模塊、內(nèi)存管理模塊和檢測(cè)設(shè)備;外部緩存包括多個(gè)內(nèi)存單元,每個(gè)內(nèi)存單元對(duì)應(yīng)一個(gè)地址,內(nèi)存管理模塊包括外部緩存中空閑的內(nèi)存單元的地址,例如,參見(jiàn)圖4所示的外部緩存,該外部緩存包括5個(gè)內(nèi)存單元,分別為第一內(nèi)存單元、第二內(nèi)存單元、第三內(nèi)存單元、第四內(nèi)存單元和第五內(nèi)存單元,且第一內(nèi)存單元的地址、第二內(nèi)存單元的地址、第三內(nèi)存單元的地址、第四內(nèi)存單元的址址和第五內(nèi)存單元的地址分別為0000、0001、0002、0003和
0004。
[0034]其中,當(dāng)存儲(chǔ)訪問(wèn)模塊需要從外部緩存中讀取數(shù)據(jù)時(shí),根據(jù)存儲(chǔ)該數(shù)據(jù)的內(nèi)存單元的地址,從外部緩存對(duì)應(yīng)的內(nèi)存單元中讀取該數(shù)據(jù),當(dāng)從該內(nèi)存單元中讀取完數(shù)據(jù),則需要釋放該內(nèi)存單元的地址,并發(fā)送釋放請(qǐng)求消息給檢測(cè)設(shè)備,且該釋放請(qǐng)求消息攜帶該內(nèi)存單元的地址,以請(qǐng)求釋放該內(nèi)存單元的地址。
[0035]其中,內(nèi)存單元的地址可以為內(nèi)存單元的MMU地址等。
[0036]其中,檢測(cè)設(shè)備中包括內(nèi)存信息表,且內(nèi)存信息表包括以下兩種形式:
[0037]第一種形式、內(nèi)存信息表用于存儲(chǔ)外部緩存中的每個(gè)內(nèi)存單元的內(nèi)存狀態(tài);
[0038]其中,事先根據(jù)外部緩存中的每個(gè)內(nèi)存單元的地址計(jì)算出在內(nèi)存信息表中存儲(chǔ)每個(gè)內(nèi)存單元的內(nèi)存狀態(tài)的地址,根據(jù)存儲(chǔ)每個(gè)內(nèi)存單元的內(nèi)存狀態(tài)的地址將每個(gè)內(nèi)存單元的內(nèi)存狀態(tài)存儲(chǔ)在內(nèi)存信息表中。
[0039]進(jìn)一步地,如果外部緩存中的某個(gè)內(nèi)存單元的被存儲(chǔ)訪問(wèn)模塊申請(qǐng)占用,則在內(nèi)存信息表中存儲(chǔ)該內(nèi)存單元的內(nèi)存狀態(tài)的地址對(duì)應(yīng)的空間中除了存儲(chǔ)該內(nèi)存單元的內(nèi)存狀態(tài),還可以存儲(chǔ)該內(nèi)存單元的時(shí)間戳,該內(nèi)存單元的時(shí)間戳為內(nèi)存訪問(wèn)模塊申請(qǐng)?jiān)搩?nèi)存單元的時(shí)間戳。
[0040]例如,對(duì)于如圖3所示的外部緩存包括的5個(gè)內(nèi)存單元,事先根據(jù)第一內(nèi)存單元的地址0000、第二內(nèi)存單元的地址0001、第三內(nèi)存單元的地址0002、第四內(nèi)存單元的地址0003和第五內(nèi)存單元的地址0004分別計(jì)算出在內(nèi)存信息表中存儲(chǔ)第一內(nèi)存單元的內(nèi)存狀態(tài)的地址al,第二內(nèi)存單元的內(nèi)存狀態(tài)的地址a2、第三內(nèi)存單元的內(nèi)存狀態(tài)的地址a3、第四內(nèi)存單元的內(nèi)存狀態(tài)的地址a4以及第五內(nèi)存單元的內(nèi)存狀態(tài)的地址a5 ;并根據(jù)存儲(chǔ)第一內(nèi)存單元的內(nèi)存狀態(tài)的地址al,第二內(nèi)存單元的內(nèi)存狀態(tài)的地址a2、第三內(nèi)存單元的內(nèi)存狀態(tài)的地址a3、第四內(nèi)存單元的內(nèi)存狀態(tài)的地址a4以及第五內(nèi)存單元的內(nèi)存狀態(tài)的地址a5分別將第一內(nèi)存單元的內(nèi)存狀態(tài)、第二內(nèi)存單元的內(nèi)存狀態(tài)、第三內(nèi)存單元的內(nèi)存狀態(tài)、第四內(nèi)存單元的內(nèi)存狀態(tài)和第五內(nèi)存單元的內(nèi)存狀態(tài)存儲(chǔ)在如表1所示的內(nèi)存信息表中。
[0041]表1
【權(quán)利要求】
1.一種檢測(cè)內(nèi)存單元的方法,其特征在于,所述方法包括: 獲得內(nèi)存單元的地址,所述內(nèi)存單元的地址為存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址或者為內(nèi)存管理模塊分配的內(nèi)存單元的地址,且所述內(nèi)存單元為外部緩存中的內(nèi)存單元; 根據(jù)所述內(nèi)存單元的地址獲取所述內(nèi)存單元的內(nèi)存狀態(tài); 根據(jù)所述內(nèi)存單元的內(nèi)存狀態(tài)檢測(cè)所述內(nèi)存單元的地址的合法性; 如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址,控制所述內(nèi)存管理模塊回收所述內(nèi)存單元的地址; 如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述內(nèi)存管理模塊分配的內(nèi)存單元的地址,把所述內(nèi)存單元的地址分配給所述存儲(chǔ)訪問(wèn)模塊。
2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述內(nèi)存單元的地址獲取所述內(nèi)存單元的內(nèi)存狀態(tài),包括: 根據(jù)所述內(nèi)存單元的地址計(jì)算出在內(nèi)存信息表中存儲(chǔ)所述內(nèi)存單元的內(nèi)存狀態(tài)的地址,所述內(nèi)存信息表用于存儲(chǔ)所述外部緩存中的內(nèi)存單元的內(nèi)存狀態(tài); 根據(jù)所述計(jì)算出的在所述內(nèi)存信息表中存儲(chǔ)所述內(nèi)存單元的內(nèi)存狀態(tài)的地址,從所述內(nèi)存信息表中讀取所述內(nèi)存單元的內(nèi)存狀態(tài)。
3.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述內(nèi)存單元的地址獲取所述內(nèi)存單元的內(nèi)存狀態(tài),包括: 根據(jù)所述內(nèi)存單元的地址從內(nèi)存信息表中查找所述內(nèi)存單元的內(nèi)存狀態(tài),所述內(nèi)存信息表用于存儲(chǔ)所述外部緩存中的內(nèi)存單元的地址和內(nèi)存狀態(tài)。
4.如果權(quán)利要求1至3任一項(xiàng)權(quán)利要求所述的方法,其特征在于,所述獲得內(nèi)存單元的地址,包括: 接收所述內(nèi)存訪問(wèn)模塊發(fā)送的釋放請(qǐng)求消息,所述釋放請(qǐng)求消息攜帶所述內(nèi)存訪問(wèn)模塊需要釋放的內(nèi)存單元的地址; 相應(yīng)地,所述根據(jù)所述內(nèi)存單元的內(nèi)存狀態(tài)檢測(cè)所述內(nèi)存單元的地址的合法性,包括: 如果所述內(nèi)存單元的內(nèi)存狀態(tài)為忙碌狀態(tài),則檢測(cè)出所述內(nèi)存單元的地址合法,如果所述內(nèi)存單元的內(nèi)存狀態(tài)為空閑狀態(tài),則檢測(cè)出所述內(nèi)存單元的地址不合法。
5.如權(quán)利要求4所述的方法,其特征在于,所述檢測(cè)出所述內(nèi)存單元的地址合法之后,還包括: 在內(nèi)存信息表中將所述內(nèi)存單元的內(nèi)存狀態(tài)修改為空閑狀態(tài)。
6.如權(quán)利要求4所述的方法,其特征在于,所述內(nèi)存信息表還用于存儲(chǔ)所述內(nèi)存單元的時(shí)間戳,所述時(shí)間戳為所述內(nèi)存單元被所述內(nèi)存訪問(wèn)模塊申請(qǐng)時(shí)的時(shí)間; 相應(yīng)地,所述檢測(cè)出所述內(nèi)存單元的地址合法之后,還包括: 在內(nèi)存信息表中將所述內(nèi)存單元的時(shí)間戳清空。
7.如權(quán)利要求1至3任一項(xiàng)權(quán)利要求所述的方法,其特征在于,所述獲得內(nèi)存單元的地址,包括: 接收所述內(nèi)存管理模塊發(fā)送的申請(qǐng)響應(yīng)消息,所述申請(qǐng)響應(yīng)消息攜帶所述內(nèi)存管理模塊為所述內(nèi)存訪問(wèn)模塊分配的內(nèi)存單元的地址;相應(yīng)地,所述根據(jù)所述內(nèi)存單元的內(nèi)存狀態(tài)檢測(cè)所述內(nèi)存單元的地址的合法性,包括: 如果所述內(nèi)存單元的內(nèi)存狀態(tài)為忙碌狀態(tài),則檢測(cè)出所述內(nèi)存單元的地址不合法,如果所述內(nèi)存單元的內(nèi)存狀態(tài)為空閑狀態(tài),則檢測(cè)出所述內(nèi)存單元的地址合法。
8.如權(quán)利要求7所述的方法,其特征在于,所述檢測(cè)出所述內(nèi)存單元的地址合法之后,還包括: 在內(nèi)存信息表中將所述內(nèi)存單元的內(nèi)存狀態(tài)修改為忙碌狀態(tài)。
9.如權(quán)利要求7所述的方法,其特征在于,所述內(nèi)存信息表還用于存儲(chǔ)所述內(nèi)存單元的時(shí)間戳,所述時(shí)間戳用于存儲(chǔ)所述內(nèi)存單元被所述內(nèi)存訪問(wèn)模塊申請(qǐng)時(shí)的時(shí)間; 所述檢測(cè)出所述內(nèi)存單元的地址合法之后,還包括: 根據(jù)所述內(nèi)存單元被申請(qǐng)的時(shí)間獲取所述內(nèi)存單元的時(shí)間戳,并在內(nèi)存信息表中存儲(chǔ)所述內(nèi)存單元的 時(shí)間戳。
10.如權(quán)利要求9所述的方法,其特征在于,所述方法還包括: 對(duì)所述內(nèi)存信息表中狀態(tài)為忙碌狀態(tài)的內(nèi)存單元的時(shí)間戳進(jìn)行監(jiān)控; 當(dāng)監(jiān)控出在預(yù)設(shè)時(shí)間之前的時(shí)間戳,獲得所述時(shí)間戳對(duì)應(yīng)的內(nèi)存單元的地址,回收所述內(nèi)存單元的地址。
11.一種檢測(cè)內(nèi)存單元的設(shè)備,其特征在于,所述設(shè)備包括: 第一獲取模塊,用于獲得內(nèi)存單元的地址,所述內(nèi)存單元的地址為存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址或者為內(nèi)存管理模塊分配的內(nèi)存單元的地址,且所述內(nèi)存單元為外部緩存中的內(nèi)存單元; 第二獲取模塊,用于根據(jù)所述內(nèi)存單元的地址獲取所述內(nèi)存單元的內(nèi)存狀態(tài); 檢測(cè)模塊,用于根據(jù)所述內(nèi)存單元的內(nèi)存狀態(tài)檢測(cè)所述內(nèi)存單元的地址的合法性,如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址,控制所述內(nèi)存管理模塊回收所述內(nèi)存單元的地址;如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述內(nèi)存管理模塊分配的內(nèi)存單元的地址,把所述內(nèi)存單元的地址分配給所述存儲(chǔ)訪問(wèn)模塊。
12.如權(quán)利要求11所述的設(shè)備,其特征在于,所述獲取模塊包括: 計(jì)算單元,用于根據(jù)所述內(nèi)存單元的地址計(jì)算出在內(nèi)存信息表中存儲(chǔ)所述內(nèi)存單元的內(nèi)存狀態(tài)的地址,所述內(nèi)存信息表用于存儲(chǔ)所述外部緩存中的內(nèi)存單元的內(nèi)存狀態(tài); 讀取單元,用于根據(jù)所述計(jì)算出的在所述內(nèi)存信息表中存儲(chǔ)所述內(nèi)存單元的內(nèi)存狀態(tài)的地址從所述內(nèi)存信息表中讀取所述內(nèi)存單元的內(nèi)存狀態(tài)。
13.如權(quán)利要求11所述的設(shè)備,其特征在于, 所述第二獲取模塊,具體用于根據(jù)所述內(nèi)存單元的地址從內(nèi)存信息表中查找所述內(nèi)存單元的內(nèi)存狀態(tài),所述內(nèi)存信息表用于存儲(chǔ)所述外部緩存中的內(nèi)存單元的地址和內(nèi)存狀態(tài)。
14.如果權(quán)利要求11至13任一項(xiàng)權(quán)利要求所述的設(shè)備,其特征在于, 所述第一獲取模塊,具體用于接收所述內(nèi)存訪問(wèn)模塊發(fā)送的釋放請(qǐng)求消息,所述釋放請(qǐng)求消息攜帶所述內(nèi)存訪問(wèn)模塊需要釋放的內(nèi)存單元的地址; 相應(yīng)地,所述檢測(cè)模塊,具體用于如果所述內(nèi)存單元的內(nèi)存狀態(tài)為忙碌狀態(tài),則檢測(cè)出所述內(nèi)存單元的地址合法,如果所述內(nèi)存單元的內(nèi)存狀態(tài)為空閑狀態(tài),則檢測(cè)出所述內(nèi)存單元的地址不合法,如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址,控制所述內(nèi)存管理模塊回收所述內(nèi)存單元的地址;如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述內(nèi)存管理模塊分配的內(nèi)存單元的地址,把所述內(nèi)存單元的地址分配給所述存儲(chǔ)訪問(wèn)模塊。
15.如權(quán)利要求14所述的設(shè)備,其特征在于,所述設(shè)備還包括: 第一修改模塊,用于在內(nèi)存信息表中將所述內(nèi)存單元的內(nèi)存狀態(tài)修改為空閑狀態(tài)。
16.如權(quán)利要求14所述的設(shè)備,其特征在于,所述內(nèi)存信息表還用于存儲(chǔ)所述內(nèi)存單元的時(shí)間戳,所述時(shí)間戳為所述內(nèi)存單元被所述內(nèi)存訪問(wèn)模塊申請(qǐng)時(shí)的時(shí)間戳; 相應(yīng)地,所述設(shè)備還包括: 清空模塊,用于在內(nèi)存信息表中將所述內(nèi)存單元的時(shí)間戳清空。
17.如權(quán)利要求11至13任一項(xiàng)權(quán)利要求所述的設(shè)備,其特征在于, 所述第一獲取模塊,具體用于接收所述內(nèi)存管理模塊發(fā)送的申請(qǐng)響應(yīng)消息,所述申請(qǐng)響應(yīng)消息攜帶所述內(nèi)存管理模塊為所述內(nèi)存訪問(wèn)模塊分配的內(nèi)存單元的地址; 相應(yīng)地,所述檢測(cè)模塊,具體用于如果所述內(nèi)存單元的內(nèi)存狀態(tài)為忙碌狀態(tài),則檢測(cè)出所述內(nèi)存單元的地址不合法,如果所述內(nèi)存單元的內(nèi)存狀態(tài)為空閑狀態(tài),則檢測(cè)出所述內(nèi)存單元的地址合法,如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述存儲(chǔ)訪問(wèn)模塊需要釋放的內(nèi)存單元的地址,控制所述內(nèi)存管理模塊回收所述內(nèi)存單元的地址;如果所述內(nèi)存單元的地址合法且所述內(nèi)存單元的地址為所述內(nèi)存管理模塊分配的內(nèi)存單元的地址,把所述內(nèi)存單元的地址分配給所述存儲(chǔ)訪問(wèn)模塊。
18.如權(quán)利要求17所述的設(shè)備,其特征在于,所述設(shè)備還包括: 第二修改模塊,用于在內(nèi)存信息表中將所述內(nèi)存單元的內(nèi)存狀態(tài)修改為忙碌狀態(tài)。
19.如權(quán)利要求17所述的設(shè)備,其特征在于,所述內(nèi)存信息表還用于存儲(chǔ)所述內(nèi)存單元的時(shí)間戳,所述時(shí)間戳用于存儲(chǔ)所述內(nèi)存單元被所述內(nèi)存訪問(wèn)模塊申請(qǐng)時(shí)的時(shí)間; 所述設(shè)備還包括: 存儲(chǔ)模塊,用于根據(jù)所述內(nèi)存單元被申請(qǐng)的時(shí)間獲取所述內(nèi)存單元的時(shí)間戳,并在內(nèi)存信息表中存儲(chǔ)所述內(nèi)存單元的時(shí)間戳。
20.如權(quán)利要求19所述的設(shè)備,其特征在于,所述設(shè)備還包括: 回收模塊,用于對(duì)所述內(nèi)存信息表中狀態(tài)為忙碌狀態(tài)的內(nèi)存單元的時(shí)間戳進(jìn)行監(jiān)控;當(dāng)監(jiān)控出在預(yù)設(shè)時(shí)間之前的時(shí)間戳,獲得所述時(shí)間戳對(duì)應(yīng)的內(nèi)存單元的地址,回收所述內(nèi)存單元的地址。
【文檔編號(hào)】G06F12/02GK103984603SQ201410193185
【公開(kāi)日】2014年8月13日 申請(qǐng)日期:2012年3月31日 優(yōu)先權(quán)日:2012年3月31日
【發(fā)明者】江龍, 戴崇經(jīng), 張朋 申請(qǐng)人:華為技術(shù)有限公司