,詳述如下:
[0066]本發(fā)明實(shí)施例所述Cache的分配裝置,其中的Cache存儲器包括若干個大小相同的存儲組,所述存儲組中包括數(shù)據(jù)及狀態(tài)存儲區(qū)、地址標(biāo)簽存儲區(qū)和寄存器組區(qū),所述寄存器組區(qū)包括處理器進(jìn)程號寄存器、Cache缺失率寄存器和Cache組標(biāo)記寄存器,所述裝置包括:
[0067]獲取單元401,用于獲取所述Cache缺失率寄存器所記錄的進(jìn)程號的Cache缺失率;
[0068]判斷單元402,用于判斷所述進(jìn)程號的Cache缺失率是否高于預(yù)設(shè)的Cache缺失率閾值;
[0069]第一調(diào)整單元403,用于如果所述進(jìn)程號的Cache缺失率高于預(yù)設(shè)的Cache缺失率閾值,調(diào)整Cache組標(biāo)記寄存器、進(jìn)程號寄存器增加所述進(jìn)程號對應(yīng)存儲組。
[0070]可選的,所述獲取單元401包括:
[0071]查詢子單元,用于根據(jù)所述Cache缺失率寄存器記錄的進(jìn)程號,查詢所述進(jìn)程號對應(yīng)的多個存儲組;
[0072]獲取子單元,用于根據(jù)所述查詢的進(jìn)程號對應(yīng)的多個存儲組,獲取所述多個存儲組的Cache缺失率的平均值,作為所述進(jìn)程號的Cache缺失率。
[0073]可選的,所述Cache存儲器還包括最小缺失率寄存器,所述裝置還包括:
[0074]記錄單元,用于由缺失率寄存器記錄每個周期中最小缺失率的存儲組;
[0075]查找替換單元,用于如果所述進(jìn)程號的Cache缺失率高于預(yù)設(shè)的Cache缺失率閾值,則對所述進(jìn)程號中的缺失率最小的存儲組,通過查找所述存儲組中最少使用的數(shù)據(jù)行作為替換數(shù)據(jù)行。
[0076]進(jìn)一步的,所述裝置還包括:
[0077]查找單元,用于查找Cache存儲器中是否還有未使用的存儲組;
[0078]第二調(diào)整單元,用于如果所述Cache存儲器中有未使用的存儲組,則調(diào)整Cache組標(biāo)記寄存器、進(jìn)程號寄存器為所述進(jìn)程號分配新的存儲組。
[0079]本發(fā)明實(shí)施例所述裝置與實(shí)施例一和實(shí)施例二中所述方法相對應(yīng),在此不作重復(fù)贅述。
[0080]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種Cache的分配方法,其特征在于,其中的Cache存儲器包括若干個大小相同的存儲組,所述存儲組中包括數(shù)據(jù)及狀態(tài)存儲區(qū)、地址標(biāo)簽存儲區(qū)和寄存器組區(qū),所述寄存器組區(qū)包括處理器進(jìn)程號寄存器、Cache缺失率寄存器和Cache組標(biāo)記寄存器,所述方法包括: 獲取所述Cache缺失率寄存器所記錄的進(jìn)程號的Cache缺失率; 判斷所述進(jìn)程號的Cache缺失率是否高于預(yù)設(shè)的Cache缺失率閾值; 如果所述進(jìn)程號的Cache缺失率高于預(yù)設(shè)的Cache缺失率閾值,調(diào)整Cache組標(biāo)記寄存器、進(jìn)程號寄存器增加所述進(jìn)程號對應(yīng)存儲組。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述獲取所述Cache缺失率寄存器記錄的進(jìn)程號的Cache缺失率步驟為: 根據(jù)所述Cache缺失率寄存器記錄的進(jìn)程號,查詢所述進(jìn)程號對應(yīng)的多個存儲組; 根據(jù)所述查詢的進(jìn)程號對應(yīng)的多個存儲組,獲取所述多個存儲組的Cache缺失率的平均值,作為所述進(jìn)程號的Cache缺失率。
3.根據(jù)權(quán)利要求1所述方法,其特征在于,所述Cache存儲器還包括最小缺失率寄存器,所述判斷所述進(jìn)程號的Cache缺失率是否高于預(yù)設(shè)的Cache缺失率閾值步驟之后,所述方法還包括: 由缺失率寄存器記錄每個周期中最小缺失率的存儲組; 在Cache數(shù)據(jù)行替換時,如果所述進(jìn)程號的Cache缺失率低于預(yù)設(shè)的Cache缺失率閾值,則對所述進(jìn)程號中的缺失率最小的存儲組,查找所述存儲組中最少使用的數(shù)據(jù)行作為替換數(shù)據(jù)行。
4.根據(jù)權(quán)利要求1所述方法,其特征在于,所述如果所述進(jìn)程號的Cache缺失率高于預(yù)設(shè)的Cache缺失率閾值,調(diào)整Cache組標(biāo)記寄存器、進(jìn)程號寄存器增加所述進(jìn)程號對應(yīng)存儲組步驟包括: 查找Cache存儲器中是否還有未使用的存儲組; 如果所述Cache存儲器中有未使用的存儲組,則調(diào)整Cache組標(biāo)記寄存器、進(jìn)程號寄存器為所述進(jìn)程號分配新的存儲組。
5.根據(jù)權(quán)利要求4所述方法,其特征在于,所述查看Cache存儲器中是否還有未使用的存儲組之后,所述方法還包括: 如果所述Cache存儲器中沒有未使用的存儲組,則查找最近最少使用的進(jìn)程號所對應(yīng)的存儲組; 將所述查找的存儲組作為Cache缺失率高于預(yù)設(shè)的Cache缺失率閾值的進(jìn)程號的新增加的存儲組。
6.根據(jù)權(quán)利要求1所述方法,其特征在于,在所述獲取所述Cache缺失率寄存器所記錄的進(jìn)程號的Cache缺失率的步驟之前,所述方法還包括: 判斷在Cache中是否存在所述操作的數(shù)據(jù)的硬件地址所屬的進(jìn)程號; 如果Cache存儲器中不存在所述硬件地址所屬的進(jìn)程號,分配新的存儲組寫入所述進(jìn)程號對應(yīng)的數(shù)據(jù); 如果Cache存儲器中存在所述硬件地址所屬的進(jìn)程號,則轉(zhuǎn)入獲取所述Cache缺失率寄存器所記錄的進(jìn)程號的Cache缺失率的步驟。
7.—種Cache的分配裝置,其特征在于,其中的Cache存儲器包括若干個大小相同的存儲組,所述存儲組中包括數(shù)據(jù)及狀態(tài)存儲區(qū)、地址標(biāo)簽存儲區(qū)和寄存器組區(qū),所述寄存器組區(qū)包括處理器進(jìn)程號寄存器、Cache缺失率寄存器和Cache組標(biāo)記寄存器,所述裝置包括: 獲取單元,用于獲取所述Cache缺失率寄存器所記錄的進(jìn)程號的Cache缺失率; 判斷單元,用于判斷所述進(jìn)程號的Cache缺失率是否高于預(yù)設(shè)的Cache缺失率閾值; 第一調(diào)整單元,用于如果所述進(jìn)程號的Cache缺失率高于預(yù)設(shè)的Cache缺失率閾值,調(diào)整Cache組標(biāo)記寄存器、進(jìn)程號寄存器增加所述進(jìn)程號對應(yīng)存儲組。
8.根據(jù)權(quán)利要求7所述裝置,其特征在于,所述獲取單元包括: 查詢子單元,用于根據(jù)所述Cache缺失率寄存器記錄的進(jìn)程號,查詢所述進(jìn)程號對應(yīng)的多個存儲組; 獲取子單元,用于根據(jù)所述查詢的進(jìn)程號對應(yīng)的多個存儲組,獲取所述多個存儲組的Cache缺失率的平均值,作為所述進(jìn)程號的Cache缺失率。
9.根據(jù)權(quán)利要求7所述裝置,其特征在于,所述Cache存儲器還包括最小缺失率寄存器,所述裝置還包括: 記錄單兀,用于由缺失率寄存器記錄每個周期中最小缺失率的存儲組; 查找替換單元,用于如果所述進(jìn)程號的Cache缺失率低于預(yù)設(shè)的Cache缺失率閾值,則對所述進(jìn)程號中的缺失率最小的存儲組,查找所述存儲組中最少使用的數(shù)據(jù)行作為替換數(shù)據(jù)行。
10.根據(jù)權(quán)利要求7所述裝置,其特征在于,所述裝置還包括: 查找單元,用于查找Cache存儲器中是否還有未使用的存儲組; 第二調(diào)整單元,用于如果所述Cache存儲器中有未使用的存儲組,則調(diào)整Cache組標(biāo)記寄存器、進(jìn)程號寄存器為所述進(jìn)程號分配新的存儲組。
【專利摘要】本發(fā)明適用于調(diào)整緩存領(lǐng)域,提供了一種Cache的分配方法和裝置,該方法包括:獲取所述Cache缺失率寄存器所記錄的進(jìn)程號的Cache缺失率;判斷所述進(jìn)程號的Cache缺失率是否高于預(yù)設(shè)的Cache缺失率閾值;如果所述進(jìn)程號的Cache缺失率高于預(yù)設(shè)的Cache缺失率閾值,調(diào)整Cache組標(biāo)記寄存器、進(jìn)程號寄存器增加所述進(jìn)程號對應(yīng)存儲組。本發(fā)明通過每個進(jìn)程的缺失率分配Cache空間的大小,可以有效減少同一個進(jìn)程的數(shù)據(jù)因存放在無序的不同的組內(nèi)而被經(jīng)常替換的情況;通過在硬件內(nèi)部設(shè)置寄存器組區(qū),根據(jù)硬件內(nèi)部寄存器組區(qū)數(shù)據(jù)來調(diào)整每個進(jìn)程的Cache的大小,調(diào)整更加及時,效率更高。
【IPC分類】G06F12-08
【公開號】CN104714898
【申請?zhí)枴緾N201310692431
【發(fā)明人】康海容, 邱均華, 錢少雄, 施懿
【申請人】深圳市國微電子有限公司
【公開日】2015年6月17日
【申請日】2013年12月16日