[發明專利]弱內存序的檢測修復方法、系統及相關設備在審
| 申請號: | 202111160173.6 | 申請日: | 2021-09-30 |
| 公開(公告)號: | CN115904768A | 公開(公告)日: | 2023-04-04 |
| 發明(設計)人: | 侯凱;張汝濤 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07;G06F8/76 |
| 代理公司: | 廣州三環專利商標代理有限公司 44202 | 代理人: | 熊永強;李稷芳 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 檢測 修復 方法 系統 相關 設備 | ||
本申請提供了弱內存序的檢測修復方法、系統及相關設備,其特征在于,該方法包括以下步驟:提供程序輸入接口,程序輸入接口用于獲取用戶上傳的程序,對程序進行弱內存序檢測,輸出檢測結果,檢測結果包括需要修復的代碼在程序中的位置信息,根據位置信息,輸出程序進行弱內存序修復的范圍信息,范圍信息對應的代碼至少包括需要修復的代碼,對范圍信息對應的代碼進行弱內存序修復。根據范圍信息進行弱內存序的修復,可以減少弱內存序修復時內存屏障指令插入的數量,提高程序運行效率,而且當程序的規模較大時,通過對范圍信息對應的代碼進行修復,可以提高修復的效率。
技術領域
本申請涉及計算機領域,尤其涉及弱內存序的檢測修復方法、系統及相關設備。
背景技術
中央處理器(central?processing?unit,CPU)為了使得處理器內部的運算單元盡量被充分利用,處理器可能會對輸入代碼進行亂序執行(out-of?order?excution)優化,也就是改變程序中部分語句執行的先后順序。但是在多處理器系統中,處理器上運行的多線程在不同內存模型的處理器上可能會具有不同的指令執行順序,從而導致多線程程序運行出現邏輯上的錯誤。
舉例來說,當基于非弱內存模型開發的多線程,在采用弱內存模型(weak?memorymodel)的處理器中運行時,由于不同內存模型下硬件所支持的指令語義不同,因此可能會導致多線程關聯的程序中并行運行的線程在執行用于訪存的讀寫指令時亂序,從而出現弱內存序的問題。這樣的話,該程序所要實現的功能可能會出現邏輯上的錯誤,從而導致該程序運行后輸出的結果不準確。
對于上述弱內存序問題,通常可以在訪存指令之前插入內存屏障指令,以保證該兩條訪存指令能夠按照程序要求的順序執行。然而,對于程序中需要插入內存屏障指令的位置的確定,一般是通過開發人員基于經驗確定的。當程序的規模較大時,該方法的效率極為低下,影響處理器所在系統的處理效率。因此,如何提供一種高效的弱內存序檢測修復方法成為亟待解決的技術問題。
發明內容
本申請提供了一種弱內存序的檢測修復方法、系統及相關設備,用于解決弱內存序檢測修復方法效率低、影響處理器所在系統處理效率的問題。
第一方面,提供了一種弱內存序的檢測修復方法,該方法包括以下步驟:提供程序輸入接口,程序輸入接口用于獲取用戶上傳的程序,對程序進行弱內存序檢測,輸出檢測結果,檢測結果包括需要修復的代碼在程序中的位置信息,根據位置信息,輸出程序進行弱內存序修復的范圍信息,范圍信息對應的代碼至少包括需要修復的代碼,最后對范圍信息對應的代碼進行弱內存序修復。
具體實現中,該程序輸入接口可以是GUI也可以是API本申請不作具體限定。上述用戶上傳的程序可包括至少一個程序文件,程序文件的數量為多個時,上述多個程序文件還可以包括多個文件類別,比如用戶提供5個程序文件,其中3個程序文件屬于類別1,剩余2個程序文件屬于類別2;上述多個程序文件還可以屬于不同的程序函數庫(比如so庫),比如用戶提供45個程序文件,其中15個程序文件屬于第一so庫,剩余30個程序文件屬于第二so庫;上述多個程序文件還可以歸屬于不同的軟件模塊,比如用戶提供150個程序文件,其中50個程序文件屬于第一軟件模塊,剩余100個程序文件屬于第二軟件模塊,應理解,上述舉例用于說明,本申請不作具體限定。
實施第一方面描述的方法,通過對程序進行弱內存序檢測,獲得檢測結果,并根據檢測結果確定弱內存序修復的修復范圍,然后針對修復范圍對應的代碼進行弱內存序的修復,可以減少參與弱內存序修復的程序數量,減少不必要的內存屏障指令的插入,從而提高修復后的多線程程序的運行性能。
在一種可能的實現方式中,可以獲取用戶輸入的修復粒度,根據修復粒度對上述需要修復的代碼的位置進行擴大,獲得范圍信息,使得擴大后的范圍信息對應的代碼至少包括上述需要修復的代碼。
可選地,該范圍信息可以包括文件列表,該文件列表可包括待修復文件的文件名稱和/或文件路徑,還可包括其他供修復單元獲取上述待修復文件的獲取方式,本申請不作具體限定。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111160173.6/2.html,轉載請聲明來源鉆瓜專利網。





