本發明涉及處理器,特別涉及一種緩存控制方法、裝置、程序產品、處理器及存儲介質。
背景技術:
1、目前,計算機系統的迅猛發展導致了處理器(如中央處理器cpu)性能的顯著提升,但內存技術發展的相對滯后導致處理器周期時間內與內存訪問延遲之間的差距不斷擴大,進而形成了“內存墻”問題。為應對這一挑戰,現代的處理器依賴于由緩存層次結構構成的內存體系,通過將數據盡可能地存放在更接近處理器的緩存層級中,以提高系統的整體處理效率。然而,緩存未命中在緩存體系中是不可避免的,這使得選擇合適的緩存替換策略成為優化系統性能的關鍵。
2、相關技術中,lru(least?recently?used,最近最少使用)算法目前是處理器中廣泛應用的緩存替換算法之一,其核心思想是替換緩存中最久未使用的數據塊。然而,在高并行計算場景中,頻繁的緩存替換不僅會導致緩存污染,還可能造成性能瓶頸,影響系統的整體性能;特別是在多核處理器架構中,緩存一致性問題進一步加劇了緩存管理的復雜性。為了應對這些問題,通常會采用預測模型來優化緩存替換策略,這些模型通過分析數據訪問頻率、內存訪問模式和指令行為等特性來預測最合適的緩存替換策略;然而,這些模型在應對復雜動態的計算環境時,仍缺乏自適應性。
3、因此,如何能夠優化多核處理器中的緩存替換算法,提高緩存替換策略的自適應性和緩存命中率,減少緩存未命中所帶來的性能損失,是現今急需解決的問題。
技術實現思路
1、本發明的目的是提供一種緩存控制方法、裝置、計算機程序產品、處理器及計算機可讀存儲介質,以優化多核處理器中的緩存替換算法,提高緩存替換策略的自適應性和緩存命中率,減少緩存未命中所帶來的性能損失。
2、為解決上述技術問題,本發明提供一種緩存控制方法,應用于處理器的緩存控制器,包括:
3、獲取目標緩存區中當前候選塊的驅逐緩存信息;其中,當前候選塊為通過緩存替換算法選擇出的一個需要驅逐的緩存數據,所述驅逐緩存信息包括一致性狀態和共享狀態信息;
4、根據所述驅逐緩存信息和驅逐歷史信息集中的緩存條目,確定當前候選塊的保留價值;其中,所述緩存條目包括被驅逐的緩存數據的一致性狀態和共享狀態信息;
5、根據所述保留價值和價值閾值,判斷是否保留當前候選塊;
6、若是,則獲取所述目標緩存區中的下一候選塊的驅逐緩存信息,并將下一候選塊作為當前候選塊,執行所述根據所述驅逐緩存信息和驅逐歷史信息集中的緩存條目,確定當前候選塊的保留價值的步驟;
7、若否,則從所述目標緩存區中驅逐當前候選塊,并在所述驅逐歷史信息集中存儲所述驅逐緩存信息對應的緩存條目。
8、在另一方面,根據所述驅逐緩存信息和驅逐歷史信息集中的緩存條目,確定當前候選塊的保留價值,包括:
9、根據所述驅逐歷史信息集中的各緩存條目,確定各一致性狀態權重、共享數量超閾值權重和共享數量不超閾值權重;
10、根據各所述一致性狀態權重、所述共享數量超閾值權重、所述共享數量不超閾值權重以及所述驅逐緩存信息中的一致性狀態和共享狀態信息,確定當前候選塊的保留價值。
11、在另一方面,所述一致性狀態為已修改-獨占-共享-已失效協議中的狀態,所述一致性狀態權重包括臟態權重、獨占態權重和共享態權重;根據各所述一致性狀態權重、所述共享數量超閾值權重、所述共享數量不超閾值權重以及所述驅逐緩存信息中的一致性狀態和共享狀態信息,確定當前候選塊的保留價值,包括:
12、通過v=wm*m+we*e+ws*s+wat*at+wbt*bt,確定當前候選塊的保留價值;其中,v為所述保留價值,wm、we和ws分別為所述臟態權重、所述獨占態權重和所述共享態權重;m、e和s分別為所述驅逐緩存信息中的一致性狀態處于已修改態、獨占態和共享態時,所述驅逐緩存信息中的共享狀態信息對應的共享數量;wat和wbt分別為所述共享數量超閾值權重和所述共享數量不超閾值權重;at在所述共享數量超過數量閾值時為1,在所述共享數量不超過所述數量閾值時為0;bt在所述共享數量不超過所述數量閾值時為1,在所述共享數量超過所述數量閾值時為0。
13、在另一方面,根據所述驅逐歷史信息集中的各緩存條目,確定各一致性狀態權重、共享數量超閾值權重和共享數量不超閾值權重,包括:
14、根據所述驅逐歷史信息集中的緩存條目的數量和各所述緩存條目的一致性狀態,確定各所述一致性狀態權重;
15、根據所述驅逐歷史信息集中的緩存條目的數量、第一數量和第二數量,確定所述共享數量超閾值權重和所述共享數量不超閾值權重;其中,所述第一數量為共享狀態信息對應的共享數量超過數量閾值的緩存條目的數量,所述第二數量為共享狀態信息對應的共享數量不超過所述數量閾值的緩存條目的數量。
16、在另一方面,根據所述驅逐緩存信息和驅逐歷史信息集中的緩存條目,確定當前候選塊的保留價值之前,還包括:
17、判斷所述驅逐歷史信息集中的緩存條目的數量是否符合要求;
18、若符合要求,則執行所述根據所述驅逐緩存信息和驅逐歷史信息集中的緩存條目,確定當前候選塊的保留價值的步驟;
19、若不符合要求,則從所述目標緩存區中驅逐當前候選塊,并在所述驅逐歷史信息集中加入所述驅逐緩存信息對應的緩存條目。
20、在另一方面,所述驅逐歷史信息集為驅逐歷史表,判斷所述驅逐歷史信息集中的緩存條目的數量是否符合要求,包括:
21、判斷所述驅逐歷史表中的緩存條目的數量是否達到預設評估數量;
22、若達到所述預設評估數量,則執行所述根據所述驅逐緩存信息和驅逐歷史信息集中的緩存條目,確定當前候選塊的保留價值的步驟;
23、若未達到所述預設評估數量,則執行所述從所述目標緩存區中驅逐當前候選塊,并在所述驅逐歷史信息集中加入所述驅逐緩存信息對應的緩存條目的步驟。
24、在另一方面,在所述驅逐歷史信息集中存儲所述驅逐緩存信息對應的緩存條目,包括:
25、若所述驅逐歷史信息集中的緩存條目的數量為預設寫滿數量,則根據所述驅逐歷史信息集中各緩存條目的存儲時間、未命中時間和/或當前保留價值,確定一個目標緩存條目;
26、將所述驅逐緩存信息對應的緩存條目替換所述目標緩存條目。
27、在另一方面,根據所述驅逐歷史信息集中各緩存條目的存儲時間、未命中時間和/或當前保留價值,確定一個目標緩存條目,包括:
28、將所述驅逐歷史信息集中的未命中時間最長的緩存條目確定為所述目標緩存條目。
29、在另一方面,所述緩存條目還包括地址信息、閾值比較信息和有效位;所述緩存條目中的共享狀態信息為共享者向量位,所述閾值比較信息用于表示所述共享者向量位對應的共享數量是否超過數量閾值。
30、在另一方面,所述緩存替換算法為最近最少使用算法。
31、在另一方面,所述處理器采用至少兩層的緩存架構,所述目標緩存區包括所述緩存架構的底層緩存。
32、在另一方面,根據所述保留價值和價值閾值,判斷是否保留當前候選塊,包括:
33、判斷所述保留價值是否大于所述價值閾值;
34、若大于所述價值閾值,則確定保留當前候選塊;
35、若不大于所述價值閾值,則確定不保留當前候選塊。
36、在另一方面,獲取目標緩存區中當前候選塊的驅逐緩存信息,包括:
37、獲取緩存訪問請求;
38、檢查所述緩存訪問請求是否命中所述處理器的緩存中的緩存數據;
39、若未命中,則利用所述緩存替換算法,確定所述目標緩存區中的當前候選塊,并獲取當前候選塊的驅逐緩存信息。
40、在另一方面,該方法還包括:
41、檢查獲取的緩存訪問請求是否命中所述驅逐歷史信息集中的緩存條目;
42、若命中所述驅逐歷史信息集中的緩存條目,則從所述驅逐歷史信息集中刪除命中的緩存條目。
43、在另一方面,將下一候選塊作為當前候選塊,執行所述根據所述驅逐緩存信息和驅逐歷史信息集中的緩存條目,確定當前候選塊的保留價值的步驟之前,還包括:
44、若所述緩存訪問請求未命中所述驅逐歷史信息集中的緩存條目,則根據驅逐緩存信息,更新所述驅逐歷史信息集對應的各一致性狀態權重、共享數量超閾值權重和共享數量不超閾值權重。
45、在另一方面,根據驅逐緩存信息,更新所述驅逐歷史信息集對應的各一致性狀態權重、共享數量超閾值權重和共享數量不超閾值權重,包括:
46、計算目標一致性狀態權重與第一學習率之和,得到更新后的目標一致性狀態權重;其中,所述目標一致性狀態權重為所述驅逐緩存信息的一致性狀態對應的一致性狀態權重;
47、對更新后的目標一致性狀態權重和其他的一致性狀態權重進行歸一化,得到更新后的各一致性狀態權重;其中,更新后的各一致性狀態權重之和為1;
48、計算目標共享狀態權重與第二學習率之和,得到更新后的目標共享狀態權重;其中,所述目標共享狀態權重為所述驅逐緩存信息的共享狀態信息對應的共享數量超閾值權重或共享數量不超閾值權重;
49、對更新后的目標共享狀態權重和另一共享狀態權重進行歸一化,得到更新后的共享數量超閾值權重和共享數量不超閾值權重;其中,更新后的共享數量超閾值權重和共享數量不超閾值權重之和為1。
50、本發明還提供了一種緩存控制裝置,應用于處理器的緩存控制器,包括:
51、獲取模塊,用于獲取目標緩存區中當前候選塊的驅逐緩存信息;其中,當前候選塊為通過緩存替換算法選擇出的一個需要驅逐的緩存數據,所述驅逐緩存信息包括一致性狀態和共享狀態信息;
52、確定模塊,用于根據所述驅逐緩存信息和驅逐歷史信息集中的緩存條目,確定當前候選塊的保留價值;其中,所述緩存條目包括被驅逐的緩存數據的一致性狀態和共享狀態信息;
53、判斷模塊,用于根據所述保留價值和價值閾值,判斷是否保留當前候選塊;
54、保留模塊,用于若保留當前候選塊,則獲取所述目標緩存區中的下一候選塊的驅逐緩存信息,并將下一候選塊作為當前候選塊,向所述確定模塊發送啟動信號;
55、驅逐模塊,用于若不保留當前候選塊,則從所述目標緩存區中驅逐當前候選塊,并在所述驅逐歷史信息集中存儲所述驅逐緩存信息對應的緩存條目。
56、本發明還提供了一種計算機程序產品,包括計算機程序/指令,該計算機程序/指令被處理器執行時實現如上述所述的緩存控制方法的步驟。
57、本發明還提供了一種處理器,包括:
58、存儲器,用于存儲計算機程序;
59、緩存控制器,用于執行所述計算機程序時實現如上述所述的緩存控制方法的步驟。
60、此外,本發明還提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現如上述所述的緩存控制方法的步驟。
61、本發明所提供的一種緩存控制方法,應用于處理器的緩存控制器,包括:獲取目標緩存區中當前候選塊的驅逐緩存信息;其中,當前候選塊為通過緩存替換算法選擇出的一個需要驅逐的緩存數據,驅逐緩存信息包括一致性狀態和共享狀態信息;根據驅逐緩存信息和驅逐歷史信息集中的緩存條目,確定當前候選塊的保留價值;其中,緩存條目包括被驅逐的緩存數據的一致性狀態和共享狀態信息;根據保留價值和價值閾值,判斷是否保留當前候選塊;若是,則獲取目標緩存區中的下一候選塊的驅逐緩存信息,并將下一候選塊作為當前候選塊,執行根據驅逐緩存信息和驅逐歷史信息集中的緩存條目,確定當前候選塊的保留價值的步驟;若否,則從目標緩存區中驅逐當前候選塊,并在驅逐歷史信息集中存儲驅逐緩存信息對應的緩存條目。
62、可見,本發明能夠利用驅逐歷史信息集中被驅逐緩存塊的一致性狀態和共享狀態信息,確定緩存替換算法選擇的當前候選塊的保留價值,以判斷當前候選塊是否在未來可能再次訪問,從而對多核處理器中的緩存替換算法進行優化,提高了緩存替換策略的自適應性和緩存命中率,減少了緩存未命中帶來的性能損失;并且由于驅逐歷史信息集中不需儲存具體緩存塊數據,相較于增加緩存容量提升緩存命中率的方式,硬件開銷更小。此外,本發明還提供了一種緩存控制裝置、計算機程序產品、處理器及計算機可讀存儲介質,同樣具有上述有益效果。