[發明專利]一種基于多級Cache的數據預取編譯優化方法在審
| 申請號: | 202211446513.6 | 申請日: | 2022-11-18 |
| 公開(公告)號: | CN115794111A | 公開(公告)日: | 2023-03-14 |
| 發明(設計)人: | 姜軍;湛芳;黃亮明;張辰璐;周昀煊 | 申請(專利權)人: | 無錫先進技術研究院 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F8/33 |
| 代理公司: | 南京縱橫知識產權代理有限公司 32224 | 代理人: | 陳萍萍 |
| 地址: | 214122 江蘇省無錫市濱*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 多級 cache 數據 編譯 優化 方法 | ||
1.一種基于多級Cache的數據預取編譯優化方法,其特征在于,所述方法包括:
獲取函數體循環隊列中的各循環體的排列順序;
根據所述排列順序按照倒序的方式依次對各所述循環體分別進行插入分級預取指令的操作;
其中,對循環體進行插入分級預取指令的操作包括:
計算所述循環體的預估執行時間;
篩選出循環體中具備發射分級預取指令資格的訪存點;
將多級Cache中的MSHR資源按照一級Cache、二級Cache和三級Cache的順序依次分配給所篩選出的各個訪存點,直至MSHR資源分配完成;
對分配了一級Cache預取資源的訪存點按照計算的一級預取距離發射一級預取指令;
若編譯器內存在目標機器上的二級預取指令模板,則對分配了二級Cache預取資源的訪存點按照計算的二級預取距離發射二級預取指令;
若編譯器內存在目標機器上的三級預取指令模板,則對分配了三級Cache預取資源的訪存點按照計算的三級預取距離發射三級預取指令。
2.根據權利要求1所述的基于多級Cache的數據預取編譯優化方法,其特征在于,給所述訪存點分配Cache預取資源時,元素步長大的訪存點優先獲得MSHR資源。
3.根據權利要求1所述的基于多級Cache的數據預取編譯優化方法,其特征在于,所述循環體的預估執行時間的計算公式為:
式中:Tloop表示循環體loop的預估執行時間,m表示循環體loop的中間表示語句的總數,i=1,2...m;Si表示循環體loop中的第i條中間表示語句,Wi表示中間表示語句i所屬類型對應的權值。
4.根據權利要求1所述的基于多級Cache的數據預取編譯優化方法,其特征在于,所述篩選出循環體中具備發射分級預取指令資格的訪存點的步驟包括:
分別獲取循環體中的各基本塊的訪存點數量和指令數量;
將各所述基本塊的訪存點數量和指令數量分別代入公式(2)中進行計算:
式中:bb_refs表示基本塊中的訪存點數量,bb_insnsn表示基本塊中包含的指令數量,RATIOx表示第x級Cache預取時所能接受的計算與訪存最小并行度,x表示Cache的等級,x的取值為1,2或3;MSHR_NUMx表示第x級Cache的MSHR資源數,α為調優系數;
將計算結果滿足公式(2)中兩個條件的基本塊中的所有訪存點賦予具備發射分級預取指令的資格。
5.根據權利要求1至4任一所述的基于多級Cache的數據預取編譯優化方法,其特征在于,所述訪存點的一級預取距離的計算公式為:
式中:PDL1表示所計算的訪存點的一級預取距離,LatMEM表示主存訪問延遲,Latl1表示一級Cache訪問延遲,Latl2表示二級Cache訪問延遲,Latl3表示三級Cache訪問延遲,step表示訪存點的元素步長;l3pf表示訪存點的三級預取標志,當所計算的訪存點分配有三級Cache預取資源時,l3pf取值為1,否則l3pf取值為0;l2pf表示訪存點的二級預取標志,當所計算的訪存點分配有二級Cache預取資源時,l2pf取值為1,否則l2pf取值為0。
6.根據權利要求5所述的基于多級Cache的數據預取編譯優化方法,其特征在于,所述訪存點的二級預取距離的計算公式為:
式中:PDL2表示所計算的訪存點的二級預取距離。
7.根據權利要求6所述的基于多級Cache的數據預取編譯優化方法,其特征在于,所述訪存點的三級預取距離的計算公式為:
式中:PDL3表示所計算的訪存點的三級預取距離。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫先進技術研究院,未經無錫先進技術研究院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211446513.6/1.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





