實施例中以寫回標(biāo)示為計數(shù)器的值為例進(jìn)行說明,如圖5所示,本實施例的方法包括以下步驟:
[0111]步驟201、緩存控制器判斷關(guān)聯(lián)緩存行的計數(shù)器的值是否小于寫回閾值N。
[0112]本實施例的方法,需要為每個緩存行設(shè)置一個計數(shù)器,該計數(shù)器的寫回閾值N為正整數(shù),若緩存行的計數(shù)器的值小于寫回閾值N,說明該緩存行距離上次寫回時間較短,不適合被再次寫回內(nèi)存,若緩存行的計數(shù)器的值不小于寫回閾值N,則將該緩存行中的數(shù)據(jù)寫回內(nèi)存。本步驟中,若關(guān)聯(lián)緩存行的計數(shù)器的值小于寫回閾值N,則執(zhí)行步驟202,若關(guān)聯(lián)緩存行的計數(shù)器的值不小于寫回閾值N,執(zhí)行步驟203。
[0113]步驟202、緩存控制器將關(guān)聯(lián)緩存行的計數(shù)器的值加I。
[0114]當(dāng)關(guān)聯(lián)緩存行的計數(shù)器的值小于寫回閾值N時,不需要將關(guān)聯(lián)緩存行中的數(shù)據(jù)寫回內(nèi)存,但要執(zhí)行本步驟,將關(guān)聯(lián)緩存行的計數(shù)器的值加I。
[0115]步驟203、緩存控制器將待替換緩存行中的數(shù)據(jù)寫回內(nèi)存,并將待替換緩存行的計數(shù)器的值置為O。
[0116]當(dāng)緩存控制器根據(jù)關(guān)聯(lián)緩存行的訪問次數(shù)和寫回標(biāo)示從關(guān)聯(lián)緩存池中確定待寫回緩存行時,緩存控制器根據(jù)關(guān)聯(lián)緩存行的訪問次數(shù)判斷關(guān)聯(lián)緩存行是否屬于LRU的最后M個緩存行,若關(guān)聯(lián)緩存行屬于LRU的最后M個緩存行,并且關(guān)聯(lián)緩存行的寫回標(biāo)示表示關(guān)聯(lián)緩存行需要寫回內(nèi)存,則緩存控制器確定聯(lián)緩存行為待寫回緩存行。本實施例中,M的值可以根據(jù)計數(shù)器的寫回閾值N動態(tài)調(diào)整,當(dāng)N值較大時,說明對內(nèi)存的寫回次數(shù)要求較嚴(yán),為了提高行緩沖區(qū)的命中率,M值可較大。相應(yīng)地,當(dāng)N值較小時,說明對內(nèi)存的寫回次數(shù)要求不嚴(yán),M值可較小。
[0117]圖6為本發(fā)明實施例提供的一種緩存控制器的結(jié)構(gòu)示意圖,如圖6所示,本實施例的緩存控制器包括:接收模塊11、查找模塊12、第一確定模塊13、第二確定模塊14、第三確定模塊15和讀寫模塊16。
[0118]其中,接收模塊11,用戶接收內(nèi)存訪問請求;
[0119]查找模塊12,用于根據(jù)所述內(nèi)存訪問請求的地址查找緩存;
[0120]第一確定模塊13,用于若所述查找模塊在所述緩存中沒有查找到所述內(nèi)存訪問請求的地址,則從所述緩存中確定待替換緩存行;
[0121]第二確定模塊14,用于若所述待替換緩存行為臟緩存行,則根據(jù)所述待替換緩存行的地址確定關(guān)聯(lián)緩存池,所述關(guān)聯(lián)緩存池包括至少一個關(guān)聯(lián)緩存行,所述關(guān)聯(lián)緩存行與所述待替換緩存行屬于同一內(nèi)存行,所述關(guān)聯(lián)緩存行位于所述緩存中,所述關(guān)聯(lián)緩存行為臟緩存行,所述臟緩存行的數(shù)據(jù)被修改過;
[0122]第三確定模塊15,用于根據(jù)所述關(guān)聯(lián)緩存行的訪問信息從所述關(guān)聯(lián)緩存池中確定待寫回緩存行;
[0123]讀寫模塊16,用于將所述待替換緩存行以及所述待寫回緩存行中的數(shù)據(jù)寫入內(nèi)存,并將所述內(nèi)存訪問請求所需的數(shù)據(jù)從所述內(nèi)存中讀入所述待替換緩存行的位置。
[0124]所述第三確定模塊15具體用于:根據(jù)所述關(guān)聯(lián)緩存行的訪問次數(shù)和/或?qū)懟貥?biāo)示從所述關(guān)聯(lián)緩存池中確定待寫回緩存行,所述寫回標(biāo)示用于表示所述關(guān)聯(lián)緩存行是否需要寫回內(nèi)存。
[0125]可選地,若所述第三確定模塊15根據(jù)所述關(guān)聯(lián)緩存行的訪問次數(shù)從所述關(guān)聯(lián)緩存池中確定待寫回緩存行,則第三確定模塊15具體用于:確定所述關(guān)聯(lián)緩存行是否屬于最近最少訪問緩存鏈表的最后M個緩存行,所述最近最少訪問緩存鏈表用于根據(jù)各緩存行在預(yù)設(shè)時間內(nèi)的訪問次數(shù)進(jìn)行排序,所述最近最少訪問緩存鏈表的最后M個緩存行為所述預(yù)設(shè)時間內(nèi)訪問次數(shù)最少的緩存行,M為正整數(shù);若所述關(guān)聯(lián)緩存行屬于所述最近最少訪問緩存鏈表的最后M個緩存行,則確定所述關(guān)聯(lián)緩存行為所述待寫回緩存行。
[0126]可選地,若所述第三確定模塊15根據(jù)所述關(guān)聯(lián)緩存行的寫回標(biāo)示從所述關(guān)聯(lián)緩存池中確定待寫回緩存行,則第三確定模塊15具體用于:若所述關(guān)聯(lián)緩存行的寫回標(biāo)示表示所述關(guān)聯(lián)緩存行需要寫回內(nèi)存,則確定所述關(guān)聯(lián)緩存行為待寫回緩存行。
[0127]可選地,若所述第三確定模塊15根據(jù)所述關(guān)聯(lián)緩存行的訪問次數(shù)和寫回標(biāo)示從所述關(guān)聯(lián)緩存池中確定待寫回緩存行,則第三確定模塊15具體用于:根據(jù)所述關(guān)聯(lián)緩存行的訪問次數(shù)判斷所述關(guān)聯(lián)緩存行是否屬于最近最少訪問緩存鏈表的最后M個緩存行,所述最近最少訪問緩存鏈表用于根據(jù)各緩存行在預(yù)設(shè)時間內(nèi)的訪問次數(shù)進(jìn)行排序,所述最近最少訪問緩存鏈表的最后M個緩存行為所述預(yù)設(shè)時間內(nèi)訪問次數(shù)最少的緩存行,M為正整數(shù);若所述關(guān)聯(lián)緩存行屬于所述最近最少訪問緩存鏈表的最后M個緩存行,并且所述關(guān)聯(lián)緩存行的寫回標(biāo)示表示所述關(guān)聯(lián)緩存行需要寫回內(nèi)存,則確定所述關(guān)聯(lián)緩存行為待寫回緩存行。
[0128]本實施例的緩存控制器可用于執(zhí)行方法實施例一和實施例二的技術(shù)方案,具體實現(xiàn)方式和技術(shù)效果類型,這里不再贅述。
[0129]圖7為本發(fā)明實施例提供的另一種緩存控制器的結(jié)構(gòu)示意圖,本實施例的裝置在圖6所示裝置結(jié)構(gòu)的基礎(chǔ)上,進(jìn)一步地,所述第二確定模塊14包括:地址計算單元141和判斷單元142。
[0130]其中,地址計算單元141,用于根據(jù)所述待替換緩存行的地址確定備用緩存行,所述備用緩存行與所述待替換緩存行屬于同一內(nèi)存行;判斷單元142,用于判斷所述備用緩存行是否位于所述緩存中;若所述備用緩存行位于所述緩存中,則進(jìn)一步判斷所述備用緩存行是否為臟緩存行;若所述備用緩存行為臟緩存行,則確定所述備用緩存行為關(guān)聯(lián)緩存行。
[0131]地址計算單元141具體用于:將所述待替換緩存行的地址與第一掩碼相與得到所述待替換緩存行的行地址;在得到所述行地址后,將所述行地址與第二掩碼相與得到所述備用緩存行,所述第二掩碼的初始值為零,每次將所述行地址與所述第二掩碼相與后,對所述第二掩碼的值加一個緩存行的大小,直到得到所有的備用緩存行。
[0132]本實施例中,所述讀寫模塊16還用于:在將所述待寫回緩存行對應(yīng)的數(shù)據(jù)寫回所述內(nèi)存后,將所述待寫回緩存行的寫回標(biāo)示的值置為表示不需要寫回內(nèi)存。
[0133]在一種可行的實現(xiàn)方式中,所述讀寫模塊16還用于:將每個緩存行的寫回標(biāo)示的值周期性的置為表示需要寫回內(nèi)存。在具體實現(xiàn)時,所述寫回標(biāo)示可以為計數(shù)器的值,若所述計數(shù)器的值不小于寫回閾值,則所述寫回標(biāo)示用于表示所述關(guān)聯(lián)緩存行需要寫入內(nèi)存;若所述計數(shù)器的值小于所述寫回閾值,則所述寫回標(biāo)示用于表示所述關(guān)聯(lián)緩存行不需要寫入內(nèi)存,讀寫模塊16還用于將所述計數(shù)器的值加一。當(dāng)所述寫回標(biāo)示為計數(shù)器的值時,所述讀寫模塊16在將所述待寫回緩存行的寫回標(biāo)示的值置為表示不需要寫回內(nèi)存時,具體用于:將所述計數(shù)器的值置為零。
[0134]本實施例的緩存控制器可用于執(zhí)行方法實施例一和實施例二的技術(shù)方案,具體實現(xiàn)方式和技術(shù)效果類型,這里不再贅述。
[0135]需要說明的是,上述功能模塊劃分僅僅是其中的一種實施方式,【具體實施方式】中,本領(lǐng)域技術(shù)人員可以在參考上述各實施例的描述下,根據(jù)具體情況做不同的功能模塊劃分以執(zhí)行上述方法,完成本發(fā)明的功能,達(dá)到本發(fā)明的效果。
[0136]本發(fā)明實施例還提供一種處理器,圖8為本發(fā)明實施例提供的處理器的結(jié)構(gòu)示意圖,如圖8所示,本實施例提供的處理器200包括:中央處理器單元CPU21、緩存22、緩存控制器23、內(nèi)存控制器24,緩存22通過系統(tǒng)總線分別與CPU21和內(nèi)存控制器24連接并通信,緩存控制器23位于緩存22中,內(nèi)存控制器24可以通過系統(tǒng)總線與內(nèi)存連接并通信。
[0137]其中,CPU21,用于向緩存控制器23發(fā)送內(nèi)存訪問請求;緩存控制器23,用于執(zhí)行圖3和圖5所示實施例的方法;內(nèi)存控制器24,用于接收緩存控制器23發(fā)送的待替換緩存行以及待寫回緩存行的地址和數(shù)據(jù),根據(jù)待替換緩存行以及待寫回緩存行的地址將待替換緩存行以及待寫回緩存行的數(shù)據(jù)寫入內(nèi)存;內(nèi)存控制器24還用于,接收緩存控制器23發(fā)送的內(nèi)存訪問請求的地址,根據(jù)內(nèi)存訪問請求的地址從內(nèi)存中讀取內(nèi)存訪問請求所需的數(shù)據(jù),并將內(nèi)存訪問請求所需的數(shù)據(jù)發(fā)送給緩存控制器23 ;緩存控制器23還用于,將內(nèi)存訪問請求所需的數(shù)據(jù)讀入待替換緩存的位置。
[0138]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0139]最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【主權(quán)項】
1.一種緩存替換的方法,其特征在于,包括: 緩存控制器接收內(nèi)存訪問請求,根據(jù)所述內(nèi)存訪問請求的地址查找緩存,若在所述緩存中沒有查找到所述內(nèi)存訪問請求的地址,則從所述緩存中確定待替換緩存行; 若所述待替換緩存行為臟緩存行,則所述緩存控制器根據(jù)所述待替換緩存行的地址確定關(guān)聯(lián)緩存池,所述關(guān)聯(lián)緩存池包括至少一個關(guān)聯(lián)緩存行,所述關(guān)聯(lián)緩存行與所述待替換緩存行屬于同一內(nèi)存行,所述關(guān)聯(lián)緩存行位于所述緩存中,所述關(guān)聯(lián)緩存行為臟緩存行,所述臟緩存行的數(shù)據(jù)被修改過; 所述緩存控制器根據(jù)所述關(guān)聯(lián)緩存行的訪問信息從所述關(guān)聯(lián)緩存池中確定待寫回緩存行; 所述緩存控制器將所述待替換緩存行以及所述待寫回緩存行的地址和數(shù)據(jù)發(fā)送給內(nèi)存控制器,以使所述內(nèi)存控制器根據(jù)所述待替換緩存行以及所述待寫回緩存行的地址將所述待替換緩存行以及所述待寫回緩存行的數(shù)據(jù)寫入內(nèi)存,并將所述內(nèi)存訪問請求所需的數(shù)據(jù)從所述內(nèi)存中讀入所述待替換緩存行的位置。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述緩存控制器根據(jù)所述關(guān)聯(lián)緩存行的訪問信息從所述關(guān)聯(lián)緩存池中確定待寫回緩存行,包括: 所述緩存控制器根據(jù)所述關(guān)聯(lián)緩存行的訪問次數(shù)和/或?qū)懟貥?biāo)示從所述關(guān)聯(lián)緩存池中確定待寫回緩存行,所述寫回標(biāo)示用于表示所述關(guān)聯(lián)緩存行是否需要寫回內(nèi)存。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述緩存控制器根據(jù)所述關(guān)聯(lián)緩存行的訪問次數(shù)從所述關(guān)聯(lián)緩存池中確定