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