System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及自旋鎖解鎖,具體而言,一種自旋鎖解鎖方法、自旋鎖裝置、電子設備以及存儲介質。
技術介紹
1、自旋鎖是一種用于保護共享資源的同步機制。在多線程編程中,當多個線程同時訪問一個共享資源時,為了競爭冒險問題,需要使用同步機制來確保每次只有一個線程可以訪問該資源。
2、自旋鎖是一種忙等待類型的鎖,即當一個線程在獲取鎖的時候,如果鎖已經被其它線程獲取,那么該線程將循環等待,然后不斷的判斷鎖是否能夠被成功獲取,直到獲取到鎖才會退出循環。通過硬件實現自旋鎖,可以提高系統的性能,使得鎖的操作變得更加高效。
3、目前常規
中,以ti公司的tda4芯片中的自旋鎖為例,該模塊共實現了256把鎖,每一把鎖的操作僅用一條指令(一個寄存器的讀或寫)即可完成,避免了軟件實現時的讀-改-寫操作,提高了效率。對于每一把鎖,它一次只接收一條指令(讀或者寫),在完成命令后才能接受下一條。鎖在復位后是未被占用的(not?taken)。若對該鎖進行讀操作且返回0,意味著當前鎖是被未占用的,并成功獲得了該鎖(taken);若對該鎖進行讀操作且返回1,意味著當前的鎖已經被占用,獲取鎖失敗。若要解鎖,只需要對被占用的鎖寫0即可。針對汽車電子等高功能安全和高信息安全需求的場景,由于鎖的狀態轉移僅需要讀寫0或者1即可完成,因此這種硬件鎖容易因為主觀或非主觀因素導致其狀態的非正常跳轉。主觀因素是指惡意代碼主動鎖定或解鎖其他線程正在使用的自旋鎖;非主觀因素是指由于代碼bug(系統性失效)或者硬件瞬態故障(隨機性失效)導致對自旋鎖相應寄存器的誤操作
4、因此,目前需要一種可以對非主觀因素的抑制,通過使秘鑰屬性實現對主觀因素的阻擋,可以實現高安全性的硬件鎖。
技術實現思路
1、有鑒于此,本公開實施例提供一種自旋鎖解鎖方法、自旋鎖裝置、電子設備以及存儲介質,至少部分解決現有技術中存在的問題,可以增加狀態轉移條件的冗余性實現對非主觀因素的抑制,通過使狀態轉移條件的具有密鑰屬性實現對主觀因素的阻擋。由此可以實現高安全性的硬件自旋鎖。
2、在一方面,本實施例公開了自旋鎖解鎖方法,其特征在于,包括:獲取目標解鎖需求,所述目標解鎖需求包括目標待使用鎖的鎖代碼;獲取所述目標待使用鎖的解鎖秘鑰,并向所述鎖代碼對應的寄存器寫入所述解鎖秘鑰,所述解鎖秘鑰包括秘鑰屬性和隨機數秘鑰;得到所述目標待使用鎖的解鎖結果,所述解鎖結果包括解鎖成功和解鎖失敗。
3、具體的,所述得到所述目標待使用鎖的解鎖結果包括:當所述目標待使用鎖未鎖定以及當所述解鎖秘鑰與所述目標待使用鎖的鎖定秘鑰不一致時,所述解鎖結果為解鎖失敗。
4、具體的,所述目標待使用鎖的鎖定秘鑰清除,并使所述于目標待使用鎖解鎖,所述解鎖結果為解鎖成功。
5、具體的,所述解鎖秘鑰還包括萬能秘鑰,當所述當所述解鎖秘鑰與所述鎖定秘鑰不一致時,判斷所述解鎖秘鑰是否為預設萬能秘鑰,若是,則使所述目標待使用鎖解鎖。
6、具體的,所述獲取目標解鎖需求之前還包括:獲取目標鎖定需求,所述目標鎖定需求包括所述目標待使用鎖的鎖代碼;基于所述目標待使用鎖的鎖代碼,讀取所述鎖代碼對應的寄存器;基于所述寄存器返回值判斷所述目標待使用鎖的使用狀態,其中,當所述寄存器返回值為0時,則判斷所述目標待使用鎖已被鎖定,當所述寄存器返回值為非零值時,則判斷所述目標待使用鎖未被鎖定,且成功鎖定當前所述目標待使用鎖。
7、具體的,當所述寄存器返回值為非零值時,所述非零值則為所述目標待使用鎖的解鎖秘鑰。
8、另一方面,本公開實施例提供了自旋鎖裝置,包括:控制器,一次性可編程存儲器,隨機數發生器,多個鎖;所述控制器用于,接收外部處理器的控制命令,并基于所述控制命令進行鎖定、查詢或解鎖操作;所述隨機數發生器,用于產生隨機數,當鎖接收到鎖定的命令時,會獲取一個隨機數;所述多個鎖存在于多個通道中,用于執行鎖定以及解鎖等命令;所述一次性可編程存儲器用于存儲所述萬能秘鑰,并在上電時發送給所述控制器。
9、具體的,隨機數發生器還包括基于lfsr的prng偽隨機數發生器。
10、第三方面,本公開實施例還提供了一種電子設備,該電子設備包括:至少一個處理器;以及,與該至少一個處理器通信連接的存儲器;其中,該存儲器存儲有可被該至少一個處理器執行的指令,該指令被該至少一個處理器執行,以使該至少一個處理器能夠執行權利要求1至7任意一項所述的。第四方面,本公開實施例還提供了一種非暫態計算機可讀存儲介質,該非暫態計算機可讀存儲介質存儲計算機指令,該計算機指令用于使該計算機執行第一方面所述的自旋鎖解鎖方法。
本文檔來自技高網...【技術保護點】
1.一種自旋鎖解鎖方法,其特征在于,包括:
2.如權利要求1所述的自旋鎖解鎖方法,其特征在于,所述得到所述目標待使用鎖的解鎖結果包括:
3.如權利要求2所述的自旋鎖解鎖方法,其特征在于,所述得到所述目標待使用鎖的解鎖結果還包括:
4.如權利要求2所述的自旋鎖解鎖方法,其特征在于,所述解鎖秘鑰還包括萬能秘鑰,當所述當所述解鎖秘鑰與所述鎖定秘鑰不一致時,判斷所述解鎖秘鑰是否為預設萬能秘鑰,若是,則使所述目標待使用鎖解鎖。
5.如權利要求1所述的自旋鎖解鎖方法,其特征在于,所述獲取目標解鎖需求之前還包括:
6.如權利要求5所述的自旋鎖解鎖方法,其特征在于,當所述寄存器返回值為非零值時,所述非零值則為所述目標待使用鎖的解鎖秘鑰。
7.一種自旋鎖裝置,其特征在于,應用于上述權利要求1-6中任一所述的自旋鎖解鎖方法,包括:控制器,一次性可編程存儲器,隨機數發生器,多個鎖;
8.如權利要求7所述的自旋鎖裝置,其特征在于,所述隨機數發生器還包括基于LFSR的PRNG偽隨機數發生器。
9.一種電子設備,
10.一種非暫態計算機可讀存儲介質,其特征在于,該非暫態計算機可讀存儲介質存儲計算機指令,該計算機指令用于使該計算機執行權利要求1至6任意一項所述的自旋鎖解鎖方法。
...【技術特征摘要】
1.一種自旋鎖解鎖方法,其特征在于,包括:
2.如權利要求1所述的自旋鎖解鎖方法,其特征在于,所述得到所述目標待使用鎖的解鎖結果包括:
3.如權利要求2所述的自旋鎖解鎖方法,其特征在于,所述得到所述目標待使用鎖的解鎖結果還包括:
4.如權利要求2所述的自旋鎖解鎖方法,其特征在于,所述解鎖秘鑰還包括萬能秘鑰,當所述當所述解鎖秘鑰與所述鎖定秘鑰不一致時,判斷所述解鎖秘鑰是否為預設萬能秘鑰,若是,則使所述目標待使用鎖解鎖。
5.如權利要求1所述的自旋鎖解鎖方法,其特征在于,所述獲取目標解鎖需求之前還包括:
6.如權利要求5所述的自旋鎖解鎖方...
【專利技術屬性】
技術研發人員:于謙,曾奇,劉洪運,梁爽,
申請(專利權)人:北京超星未來科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。