【技術實現步驟摘要】
一種基于自旋鎖的多核處理器共享數據訪問設計方法
[0001]本專利技術屬于線程同步領域,涉及到一種基于高安全高可靠自旋鎖的多核處理器共享數據訪問設計方法。
技術介紹
[0002]常見的通用多核處理器系統(比如桌面級、服務器級、移動端高性能多核處理器等)根據應用場景對高性能、高實時性調度的需求,在需要訪問共享數據時采用查詢獲取原子鎖的方式來對系統共享資源進行保護,通過處理器執行原子鎖操作,能夠在DDR等外部存儲器中設置原子鎖,對某些多核共享資源的訪問進行加、解鎖保護操作,避免其他核或其他線程同時對共享數據進行訪問,造成訪問沖突。
[0003]針對宇航領域應用場景研制的多核處理器,從高可靠設計考慮,存儲在DDR等外部存儲器中的原子鎖數據可能會受到宇宙環境輻射影響;從高安全設計考慮,現有操作系統多核調度主要依賴于軟件算法,可能受到針對原子操作的惡意攻擊而造成線程執行出錯,甚至導致多核系統崩潰。為了保證任務的可靠性,更安全的調度方法是根據應用程序需求實現相對固定的調度,減少對軟件算法的依賴。
技術實現思路
[0004]本專利技術的技術解決問題:針對航天領域中多核處理器的高可靠、高安全的應用要求,提出了一種滿足固定調度需求的寄存器原子鎖操作,是一種高安全、高可靠的多核調度原子鎖實現方法。
[0005]本專利技術的技術方案是:一種基于自旋鎖的多核處理器共享數據訪問設計方法,通過向多核處理器提供寄存器原子鎖的方式,實現線程對共享數據訪問的調度;所述的寄存器原子鎖由4N位的原子鎖寄存器實現;N為處理器 ...
【技術保護點】
【技術特征摘要】
1.一種基于自旋鎖的多核處理器共享數據訪問設計方法,其特征在于:通過向多核處理器提供寄存器原子鎖的方式,實現線程對共享數據訪問的調度;所述的寄存器原子鎖由4N位的原子鎖寄存器實現;N為處理器的核數;將原子鎖寄存器分為高2N位和低2N位兩個部分;設置原子鎖寄存器的低2N位為COREn_ID區域,保存正在申請該寄存器原子鎖的處理器核的識別號COREn_ID,其中COREn_ID區域中的低N位代表COREn_ID的值,高N位COREn_ID_WEN分別為低N位對應位的寫使能;設置原子鎖寄存器的高2N位為LOCKn_ID區域,保存當前嘗試獲取該寄存器原子鎖的處理器核的識別號LOCKn_ID,其中LOCKn_ID區域中的低N位代表LOCKn_ID的值,高N位LOCKn_ID_WEN分別為低N位對應位的寫使能;各個處理器核都有相同的機會獲取到寄存器原子鎖;在同一時刻,同一個寄存器原子鎖最多只能被一個處理器核所獲取。2.根據權利要求1所述的方法,其特征在于:原子鎖寄存器的位數根據處理器的核數確定,每個原子鎖寄存器實現一個寄存器原子鎖,由單個4N位的原子鎖寄存器實現的寄存器原子鎖適用于最多N個處理器核對共享地址的訪問調度。3.根據權利要求1所述的方法,其特征在于:所述原子鎖寄存器中保存當前嘗試獲取該寄存器原子鎖的處理器核識別號的LOCKn_ID區域,包括:該區域低N位LOCKn_ID只有在其對應使能位有效時才能夠寫入,對應使能位無效時LOCKn_ID只可讀,LOCKn_ID的值為0時代表寄存器原子鎖處于釋放狀態,LOCKn_ID的值不為0時,該值代表當前嘗試獲取該寄存器原子鎖的處理器核的識別號;該區域高N位LOCKn_ID_WEN為LOCKn_ID的使能位,分別對應低N位的寫使能,使能位為高時有效,使能位為低時無效,LOCKn_ID_WEN寫入后會自動清零。4.根據權利要求1所述的方法,其特征在于:所述原子鎖寄存器中保存正在申請該寄存器原子鎖的處理器核的識別號COREn_ID區域,包括:該區域低N位COREn_ID只有在其對應使能位有效時才能夠寫入,對應使能位無效時COREn_ID只可讀,COREn_ID保存當前正在申請該寄存器原子鎖的各個處理器核的識別號;該區域高N位COREn_ID_WEN為COREn_ID的使能位,分別對應低N位的寫使能,使能位為高時有效,使能位為低時無效,COREn_ID_WEN寫入后會自動清零。5.根據權利要求1所述的方法,其特征在于:處理器核獲取寄存器原子鎖包括:處理器核請求寄存器原子鎖,讀取該寄存器原子鎖對應的原子鎖寄存器中LOCKn_ID的值,判斷原子鎖寄存器是否處于釋放狀態,若處于,向該原子鎖寄存器中的COREn_ID區域寫入本處理器核的識別號,否則退出請求;從原子鎖寄存器中的COREn_ID區域讀出當前正在請求該原子鎖的處理器核識別號,并根據讀出的值進行優先級判斷,當本處理器核具有最高優先級時,向原子鎖寄存器的LOCKn_ID中寫入本處理器核的識別號,否則,清除COREn_ID區域中本處理器核的識別號;判斷原子鎖寄存器的LOCKn_ID中的處理器核是否唯一,若唯一,則本處理器核成功獲取寄存器原子鎖,否則清除清除原子鎖寄存器中LOCKn_ID區域和COREn_ID區域中本處理器核的識別號,釋放該寄存器原子鎖。6.根據權利要求5所述的方法,其特征在于:各個處理器核請求寄存器原子鎖的優先級
判斷方式為輪詢方式,在一次優先級判斷中,優先授權給與上次拿到該原子鎖的處理器核緊鄰的下一個處理器核,如果優先級授予到的處理器核輪空則優先權順延到下一個緊鄰的處理器核。7.根據權利要求5或6所述的方法,其特征在于:通過設置原子鎖...
【專利技術屬性】
技術研發人員:陳雷,王瀟瀟,莊偉,張世遠,侯國偉,楊雪,郭嘉,郝帥,李欣,趙晉,禹瑩,張麒,
申請(專利權)人:北京微電子技術研究所,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。