本發(fā)明屬于計算機,具體涉及一種用于存算一體架構的保持緩存一致性的方法及裝置。
背景技術:
1、今年來,隨著互聯(lián)網的快速發(fā)展,計算機架構已經從計算密集型轉向了內存密集型,為了降低計算和內存之間數(shù)據的頻繁交互所帶來的延遲和功耗,以內存為中心的計算架構也即存算一體架構開始興起,存算一體架構是通過在內存單元中部署計算單元,從而減少數(shù)據訪問延遲,但該架構在處理任務時,由于中央處理器cpu各核心包含其各自的私有緩存,當cpu的一個核心將數(shù)據寫入內存時,必須使用緩存一致性機制對其他核心緩存中的數(shù)據副本進行更新或者失效,而傳統(tǒng)的一致性協(xié)議應用在存算一體架構中會迫使大量的連貫性消息遍歷狹窄的處理器—內存總線,這可能會抵消存算一體架構所帶來的高帶寬和低延遲的優(yōu)勢。
2、因此,如何提高存算一體架構中保持緩存一致性的速度,減少資源的開銷,是本領域技術人員有待解決的技術問題。
技術實現(xiàn)思路
1、本發(fā)明的目的是為了解決存算一體架構中保持緩存一致性的速度較慢,且資源開銷較大的技術問題。
2、為實現(xiàn)上述技術目的,一方面,本發(fā)明提供了一種用于存算一體架構的保持緩存一致性的方法,該方法包括:
3、初始化存算一體架構,并響應于應用程序的啟動在應用程序中建立檢查點;
4、獲取中央處理器處的多個一致性操作請求,并將其組合為第一壓縮簽名,獲取所述存算一體架構處的多個一致性操作請求,并將其組合為第二壓縮簽名;
5、當?shù)谝粔嚎s簽名或第二壓縮簽名達到簽名最大數(shù)量時,將第一壓縮簽名和第二壓縮簽名進行沖突比對;
6、若存在沖突,則通過檢查點進行回滾至所述存算一體架構執(zhí)行的第一條指令地址處,若不存在沖突,則基于第一壓縮簽名和第二壓縮簽名更新動態(tài)隨機存儲器中的緩存行。
7、進一步地,所述初始化存算一體架構,具體包括確定存算一體架構中用于處理應用程序的邏輯核心,并為所述邏輯核心配置過濾條件,所述過濾條件用于過濾掉符合該條件的一致性操作請求。
8、進一步地,所述存算一體架構處的多個一致性操作請求具體包括所述邏輯核心讀取和寫入的所有緩存行地址。
9、進一步地,所述沖突比對具體包括:
10、將所述第一壓縮簽名進行解碼得到第一地址集;
11、遍歷所述存算一體架構讀取的緩存行地址,若所述第一地址集中至少一個地址在所述存算一體架構讀取的緩存行地址中存在,則判定為存在沖突。
12、進一步地,所述基于第一壓縮簽名和第二壓縮簽名更新動態(tài)隨機存儲器中的緩存行,具體包括:
13、確定出所述第一壓縮簽名所對應的第一地址集;
14、基于所述第一地址集與第二壓縮簽名中存算一體架構寫入的緩存行地址確定出待更新的緩存行;
15、將所述待更新的緩存行寫入動態(tài)隨機存儲器中。
16、進一步地,所述方法還包括將待更新的緩存行中重疊的部分進行合并,然后清除所述邏輯核心中第一級高速緩存中的未提交標志。
17、進一步地,所述方法還包括:
18、當存在多個所述邏輯核心處理應用程序時,當任意一個邏輯核心在處理過程中產生回滾時,其余邏輯核心均執(zhí)行相同的回滾操作。
19、進一步地,所述方法還包括:
20、若連續(xù)三次出現(xiàn)沖突,則將沖突地址以及所述存算一體架構這種所有的一致性目錄條目均鎖定,且清除所述中央處理器和存算一體架構中所有的簽名
21、另一方面,本發(fā)明還提供了一種用于存算一體架構的保持緩存一致性的裝置,所述裝置包括:
22、初始化模塊,用于初始化存算一體架構,并響應于應用程序的啟動在應用程序中建立檢查點;
23、獲取模塊,用于獲取中央處理處的多個一致性操作請求,并將其組合為第一壓縮簽名,獲取所述存算一體架構處的多個一致性操作請求,并將其組合為第二壓縮簽名;
24、比對模塊,用于當?shù)谝粔嚎s簽名或第二壓縮簽名達到簽名最大數(shù)量時,將第一壓縮簽名和第二壓縮簽名進行沖突比對;
25、更新模塊,用于若存在沖突,則通過檢查點進行回滾,若不存在沖突,則基于第一壓縮簽名和第二壓縮簽名更新動態(tài)隨機存儲器中的緩存行。
26、本發(fā)明提供的一種用于存算一體架構的保持緩存一致性的方法及裝置,與現(xiàn)有技術相比,本方法先初始化存算一體架構,并響應于應用程序的啟動在應用程序中建立檢查點;然后獲取中央處理處的多個一致性操作請求,并將其組合為第一壓縮簽名,獲取所述存算一體架構處的多個一致性操作請求,并將其組合為第二壓縮簽名;接著當?shù)谝粔嚎s簽名或第二壓縮簽名達到簽名最大數(shù)量時,將第一壓縮簽名和第二壓縮簽名進行沖突比對;最后若存在沖突,則通過檢查點進行回滾至所述存算一體架構執(zhí)行的第一條指令地址處,若不存在沖突,則基于第一壓縮簽名和第二壓縮簽名更新動態(tài)隨機存儲器中的緩存行,能夠有效提高存算一體架構中保持緩存一致性的速度,且減少了硬件資源的開銷。
1.用于存算一體架構的保持緩存一致性的方法,其特征在于,所述方法包括:
2.如權利要求1所述的用于存算一體架構的保持緩存一致性的方法,其特征在于,所述初始化存算一體架構,具體包括確定存算一體架構中用于處理應用程序的邏輯核心,并為所述邏輯核心配置過濾條件,所述過濾條件用于過濾掉符合該條件的一致性操作請求。
3.如權利要求2所述的用于存算一體架構的保持緩存一致性的方法,其特征在于,所述存算一體架構處的多個一致性操作請求具體包括所述邏輯核心讀取和寫入的所有緩存行地址。
4.如權利要求1所述的用于存算一體架構的保持緩存一致性的方法,其特征在于,所述沖突比對具體包括:
5.如權利要求2所述的用于存算一體架構的保持緩存一致性的方法,其特征在于,所述基于第一壓縮簽名和第二壓縮簽名更新動態(tài)隨機存儲器中的緩存行,具體包括:
6.如權利要求5所述的用于存算一體架構的保持緩存一致性的方法,其特征在于,所述方法還包括將待更新的緩存行中重疊的部分進行合并,然后清除所述邏輯核心中第一級高速緩存中的未提交標志。
7.如權利要求2所述的用于存算一體架構的保持緩存一致性的方法,其特征在于,所述方法還包括:
8.如權利要求2所述的用于存算一體架構的保持緩存一致性的方法,其特征在于,所述方法還包括:
9.一種用于存算一體架構的保持緩存一致性的裝置,其特征在于,所述裝置包括: