System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機應用領域,特別是涉及一種向共享緩存進行數據溢出的方法、裝置、計算機設備、存儲介質和計算機程序產品。
技術介紹
1、在編譯器對虛擬寄存器向物理寄存器分配過程中,當物理寄存器不夠用時,需要將虛擬寄存器數據做溢出?(spill),傳統的spill是將虛擬寄存器存入(store)到外存中,當再次訪問該變量的時候再從外存中讀取(load)回來。外存足夠大,可以保證即使有大量的變量溢出,但是store/load數據回路長,時延(latency)較大,容易造成后續指令等待,執行流水線產生氣泡(bubble),致使程序整體運行效率降低。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種能夠提高程序整體運行效率的向共享緩存進行數據溢出的方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產品。
2、第一方面,本申請提供了一種向共享緩存進行數據溢出的方法,包括:
3、獲取共享緩存狀態信息和待溢出虛擬寄存器數據的溢出狀態信息,其中,所述共享緩存狀態信息包括至少一個工作組的內存地址數據和內存容量數據;
4、根據所述內存容量數據計算可用地址數據,其中,所述可用地址數據用于表征共享緩存的剩余容量;
5、根據所述溢出狀態信息計算虛擬寄存器溢出量;
6、根據所述虛擬寄存器溢出量和所述內存地址數據計算目標存儲空間;
7、根據所述可用地址數據確定共享緩存可用條件,并在所述目標存儲空間符合所述共享緩存可用條件的情況下,將
8、在其中一個實施例中,所述根據所述虛擬寄存器溢出量和所述內存地址數據計算目標存儲空間,包括:
9、根據所述內存地址數據獲取共享緩存基地址;
10、根據所述內存容量數據和所述共享緩存基地址,計算內存偏移地址;
11、根據所述虛擬寄存器溢出量和所述內存偏移地址,確定目標存儲空間。
12、在其中一個實施例中,所述內存地址數據包括對應工作組的本地地址;所述根據所述內存地址數據獲取共享緩存基地址,包括:
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、根據所述虛擬寄存器溢出量和所述內存地址數據計算目標存儲空間;
48、根據所述可用地址數據確定共享緩存可用條件,并在所述目標存儲空間符合所述共享緩存可用條件本文檔來自技高網...
【技術保護點】
1.一種向共享緩存進行數據溢出的方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述根據所述虛擬寄存器溢出量和所述內存地址數據計算目標存儲空間,包括:
3.根據權利要求2所述的方法,其特征在于,所述內存地址數據包括對應工作組的本地地址;所述根據所述內存地址數據獲取共享緩存基地址,包括:
4.根據權利要求3所述的方法,其特征在于,所述方法用于單個處理單元,一個所述處理單元中包括至少一個工作組,一個所述工作組包括至少一個工作項,所述內存容量數據包括所述處理單元的共享緩存總容量、每個所述工作組當前已用的共享緩存容量和所述工作組中各個所述工作項的設定內存容量;所述根據所述內存地址數據和所述內存容量數據計算共享緩存基地址,包括:
5.根據權利要求1至4任意一項所述的方法,其特征在于,所述將所述待溢出虛擬寄存器數據存儲至所述目標存儲空間,包括:
6.根據權利要求5所述的方法,其特征在于,所述生命周期包括起始時間節點和結束時間節點;所述根據所述生命周期,將所述待溢出虛擬寄存器數據存儲至所述目標存儲空間,包括
7.一種向共享緩存進行數據溢出的裝置,其特征在于,所述裝置包括:
8.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至6中任一項所述的方法的步驟。
9.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1至6中任一項所述的方法的步驟。
10.一種計算機程序產品,包括計算機程序,其特征在于,該計算機程序被處理器執行時實現權利要求1至6中任一項所述的方法的步驟。
...【技術特征摘要】
1.一種向共享緩存進行數據溢出的方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述根據所述虛擬寄存器溢出量和所述內存地址數據計算目標存儲空間,包括:
3.根據權利要求2所述的方法,其特征在于,所述內存地址數據包括對應工作組的本地地址;所述根據所述內存地址數據獲取共享緩存基地址,包括:
4.根據權利要求3所述的方法,其特征在于,所述方法用于單個處理單元,一個所述處理單元中包括至少一個工作組,一個所述工作組包括至少一個工作項,所述內存容量數據包括所述處理單元的共享緩存總容量、每個所述工作組當前已用的共享緩存容量和所述工作組中各個所述工作項的設定內存容量;所述根據所述內存地址數據和所述內存容量數據計算共享緩存基地址,包括:
5.根據權利要求1至4任意一項所述的方法,其特征在于,所述將...
【專利技術屬性】
技術研發人員:王鋒,張淮聲,陶中玉,常竹林,
申請(專利權)人:格蘭菲智能科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。