1.一種面向混合主存的多核共享末級緩存管理方法,其特征在于,混合主存包括DRAM和NVM,末級緩存分為多個緩存組,每個緩存組包括多個緩存行,所述混合主存和末級緩存中的數(shù)據(jù)存在多路組相聯(lián)映射關系,管理方法包括以下步驟:
S1:獲得處理器的多核的末級緩存路數(shù)劃分方式;
S2:判斷末級緩存接收到的訪問請求是否命中末級緩存的緩存行,
如果命中,則執(zhí)行緩存行提升策略;
如果未命中,則需要從上級緩存或主存中獲取數(shù)據(jù),直接執(zhí)行緩存行插入策略,或者先執(zhí)行緩存行回收策略,然后執(zhí)行緩存行插入策略。
2.根據(jù)權利要求1所述的面向混合主存的多核共享末級緩存管理方法,其特征在于,步驟S1具體包括:
S11:為處理器的每個核配置一個訪問特性監(jiān)控器,識別對應核上應用程序的內存訪問特性;
S12:采用動態(tài)抽樣機制,在每一個計數(shù)周期開始,從處理器的多個核對應的末級緩存中的所有緩存組中選取多個緩存組作為訪問特性監(jiān)控器的監(jiān)控樣本,選取的上述多個緩存組采用最近最少使用替換策略;
S13:在每一個計數(shù)周期結束時,讀取訪問特性監(jiān)控器所獲得的每個核上應用程序所對應的緩存行的命中權重值;
S14:根據(jù)上述命中權重值,得到處理器的所有核上應用程序所對應的緩存行的命中權重值之和最大時每個核對應的末級緩存路數(shù),即為處理器的多核的末級緩存路數(shù)劃分方式。
3.根據(jù)權利要求1所述的面向混合主存的多核共享末級緩存管理方法,其特征在于,在步驟S1之后,還包括:
將末級緩存中的緩存行分成四種類型:DN、DD、CN和CD,所述DN、DD、CN和CD四種緩存行的優(yōu)先級分別用DNP、DDP、CNP和CDP代表,并設定上述四種緩存行的優(yōu)先級高低關系為DNP>DDP>CNP>CDP;
為末級緩存中的每個緩存組配置一個飽和計數(shù)器,用于動態(tài)地調整不同緩存行的插入位置和提升幅度;
為每個緩存組中的每個緩存行設置標記,用于指示該緩存行中的數(shù)據(jù)是來源于NVM還是DRAM。
4.根據(jù)權利要求1所述的面向混合主存的多核共享末級緩存管理方法,其特征在于,所述緩存行提升策略包括:判斷命中的緩存行的數(shù)據(jù)是來源于NVM還是DRAM,
如果命中的緩存行的數(shù)據(jù)來源于NVM,則將該緩存行在其當前優(yōu)先級位置的基礎上再提升(DNP)p個位置,其中(DNP)p=(ai+(A-飽和計數(shù)器的數(shù)值))/2,其中ai為每個核對應的末級緩存路數(shù),A為末級緩存的組相聯(lián)度;
如果命中的緩存行的數(shù)據(jù)來源于DRAM,則將該緩存行在其當前優(yōu)先級位置的基礎上再提升(DDP)p個位置,其中(DDP)p=(ai+飽和計數(shù)器的數(shù)值)/8,其中ai為每個核對應的末級緩存路數(shù),A為末級緩存的組相聯(lián)度。
5.根據(jù)權利要求1所述的面向混合主存的多核共享末級緩存管理方法,其特征在于,所述緩存行回收策略是指選取在緩存組中處于最低優(yōu)先級位置的緩存行進行回收。
6.根據(jù)權利要求1所述的面向混合主存的多核共享末級緩存管理方法,其特征在于,所述緩存行插入策略包括:判斷未命中緩存行的訪問請求是寫回訪問還是按需訪問,以及待插入的緩存行的數(shù)據(jù)是來源于NVM還是DRAM,
如果是寫回訪問,并且上級緩存的數(shù)據(jù)來源于NVM,則將存儲該數(shù)據(jù)的緩存行插入末級緩存的緩存組的位置的位數(shù)值設定為(DNP)i,其中(DNP)i=ai+(A-飽和計數(shù)器的數(shù)值)/2,其中ai為每個核對應的末級緩存路數(shù),A為末級緩存的組相聯(lián)度;
如果是寫回訪問,并且上級緩存的數(shù)據(jù)來源于DRAM,則存儲該數(shù)據(jù)的緩存行插入末級緩存的緩存組的位置的位數(shù)值設定為(DDP)i,其中(DDP)i=ai+飽和計數(shù)器的數(shù)值/8,其中ai為每個核對應的末級緩存路數(shù),A為末級緩存的組相聯(lián)度;
如果是按需訪問,并且主存的數(shù)據(jù)來源于NVM,則先將飽和計數(shù)器的數(shù)值減一,然后存儲該數(shù)據(jù)的緩存行插入末級緩存的緩存組的位置的位數(shù)值設定為(CNP)i,其中(CNP)i=ai-飽和計數(shù)器的數(shù)值/8,其中ai為每個核對應的末級緩存路數(shù),A為末級緩存的組相聯(lián)度;
如果是按需訪問,并且主存的數(shù)據(jù)來源于DRAM,則先將飽和計數(shù)器的數(shù)值加一,然后存儲該數(shù)據(jù)的緩存行插入末級緩存的緩存組的位置的位數(shù)值設定為(CDP)i,其中(CDP)i=ai-(A-飽和計數(shù)器的數(shù)值)/4,其中ai為每個核對應的末級緩存路數(shù),A為末級緩存的組相聯(lián)度。
7.根據(jù)權利要求2所述的面向混合主存的多核共享末級緩存管理方法,其特征在于,所述一個計數(shù)周期是指當處理器的多個核運行的指令數(shù)之和從零達到100Million的時間。
8.基于權利要求1~7中任一項所述的面向混合主存的多核共享末級緩存管理方法的面向混合主存的多核共享末級緩存管理裝置,其特征在于,混合主存包括DRAM和NVM,末級緩存分為多個緩存組,每個緩存組包括多個緩存行,所述混合主存和末級緩存中的數(shù)據(jù)存在多路組相聯(lián)映射關系,管理裝置包括以下模塊:
末級緩存路數(shù)劃分模塊,用于獲得處理器的多核的末級緩存路數(shù)劃分方式;
判斷模塊,用于判斷末級緩存接收到的訪問請求是否命中末級緩存的緩存行,如果命中,則執(zhí)行緩存行提升模塊;如果未命中,則需要從上級緩存或主存中獲取數(shù)據(jù),直接執(zhí)行緩存行插入模塊,或者先執(zhí)行緩存行回收模塊,然后執(zhí)行緩存行插入模塊。
9.根據(jù)權利要求8所述的面向混合主存的多核共享末級緩存管理裝置,其特征在于,末級緩存路數(shù)劃分模塊進一步包括:
訪問特性監(jiān)控器配置模塊,用于為每個核配置一個訪問特性監(jiān)控器,識別對應核上應用程序的內存訪問特性;
動態(tài)抽樣模塊,用于采用動態(tài)抽樣機制,在每一個計數(shù)周期開始,從多個核對應的末級緩存中的所有緩存組中選取多個緩存組作為訪問特性監(jiān)控器的監(jiān)控樣本,選取的上述多個緩存組采用最近最少使用替換策略;
命中權重值讀取模塊,用于在每一個計數(shù)周期結束時,讀取訪問特性監(jiān)控器所獲得的每個核上應用程序所對應的緩存行的命中權重值;
末級緩存路數(shù)獲取模塊,用于根據(jù)上述命中權重值,得到處理器的所有核上應用程序所對應的緩存行的命中權重值之和最大時每個核對應的末級緩存路數(shù),即為處理器的多核的末級緩存路數(shù)劃分方式。
10.根據(jù)權利要求8所述的面向混合主存的多核共享末級緩存管理裝置,其特征在于,還包括:
緩存行分類模塊,用于將末級緩存中的緩存行分成四種類型:DN、DD、CN和CD,所述DN、DD、CN和CD四種緩存行的優(yōu)先級分別用DNP、DDP、CNP和CDP代表,并設定上述四種緩存行的優(yōu)先級高低關系為DNP>DDP>CNP>CDP;
飽和計數(shù)器配置模塊,用于為末級緩存中的每個緩存組配置一個飽和計數(shù)器,以動態(tài)地調整不同緩存行的插入位置和提升幅度;
緩存行標記模塊,用于為每個緩存組中的每個緩存行設置標記,以指示該緩存行中的數(shù)據(jù)是來源于NVM還是DRAM;
優(yōu)選地,所述緩存行提升模塊,用于判斷命中的緩存行的數(shù)據(jù)是來源于NVM還是DRAM,進行緩存行的位置提升操作;
優(yōu)選地,所述緩存行回收模塊,用于選取在緩存組中處于最低優(yōu)先級位置的緩存行進行回收操作;
優(yōu)選地,所述緩存行插入模塊,用于判斷未命中緩存行的訪問請求是寫回訪問還是按需訪問,以及待插入的緩存行的數(shù)據(jù)是來源于NVM還是DRAM,進行緩存行的位置插入操作。