本申請涉及處理器的,尤其涉及一種risc-v上下文切換優(yōu)化方法、設(shè)備及介質(zhì)。
背景技術(shù):
1、risc-v指令集架構(gòu)因其模塊化、可擴(kuò)展性和開源特性,能夠通過靈活地添加不同的擴(kuò)展指令集來實現(xiàn)cpu或者gpu的計算核心,在嵌入式risc-v上下文切換優(yōu)化系統(tǒng)、個人電腦、服務(wù)器和gpu加速設(shè)備等許多計算領(lǐng)域展現(xiàn)出很大的應(yīng)用潛力。cpu架構(gòu)中,在軟件中斷、硬件中斷、硬件故障或者任務(wù)調(diào)度等情景中,都會發(fā)生上下文切換,保存當(dāng)前進(jìn)程的狀態(tài),然后加載另一個進(jìn)程的狀態(tài)以繼續(xù)執(zhí)行。gpu架構(gòu)中,在中斷處理、任務(wù)調(diào)度、線程調(diào)度或者線程同步等情景中,也會發(fā)生上下文切換。無論是cpu還是gpu,在程序執(zhí)行過程中上下文切換頻繁發(fā)生。
2、現(xiàn)有技術(shù)的堆棧都是定義在內(nèi)存當(dāng)中,數(shù)據(jù)壓棧操作是將通用寄存器中的數(shù)據(jù)保存到內(nèi)存堆棧中去,數(shù)據(jù)出棧操作是將數(shù)據(jù)從內(nèi)存堆棧加載到通用寄存器中。通用寄存器的讀寫速度基本接近計算核心的頻率,然而內(nèi)存的讀寫速度遠(yuǎn)低于計算核心的頻率,受限于電信號在半導(dǎo)體材料中的傳播速度,計算核心的頻率越高,這種速度差距會越大。如果上下文切換的速度不夠快,會對程序的響應(yīng)速度、整體性能、整體能耗和用戶體驗產(chǎn)生很大影響。
3、因此,如何提高risc-v中上下文的切換速度成為一個亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)思路
1、本申請實施例提供了一種risc-v上下文切換優(yōu)化方法、設(shè)備及介質(zhì),用以解決如下技術(shù)問題:如何提高risc-v中上下文的切換速度。
2、第一方面,本申請實施例提供了一種risc-v上下文切換優(yōu)化方法,其特征在于,應(yīng)用于risc-v上下文切換優(yōu)化系統(tǒng),risc-v上下文切換優(yōu)化系統(tǒng)包括計算核心和內(nèi)存,計算核心包括控制單元、寄存器堆棧、棧頂寄存器、通用寄存器和算術(shù)邏輯單元,方法包括:基于計算核心執(zhí)行當(dāng)前任務(wù);當(dāng)觸發(fā)上下文切換操作時,基于棧頂寄存器的數(shù)值確定寄存器堆棧的剩余空間;基于剩余空間和當(dāng)前任務(wù)判斷寄存器堆棧是否能夠保存當(dāng)前任務(wù);若否,基于內(nèi)存存儲當(dāng)前任務(wù);若是,基于寄存器堆棧存儲當(dāng)前任務(wù);基于計算核心執(zhí)行替換任務(wù),并在替換任務(wù)完成時通過棧頂寄存器切回當(dāng)前任務(wù)。
3、在本申請的一種實現(xiàn)方式中,在當(dāng)觸發(fā)上下文切換操作時,基于棧頂寄存器的數(shù)值確定寄存器堆棧的剩余空間前,方法還包括:基于控制單元監(jiān)測中斷信號、異常信號或任務(wù)調(diào)度指令,以確定是否觸發(fā)執(zhí)行上下文切換;基于預(yù)設(shè)的行為預(yù)測模塊監(jiān)測當(dāng)前任務(wù),以確定未來行為特征;基于預(yù)測結(jié)果和當(dāng)前任務(wù)調(diào)整寄存器堆棧的剩余空間。
4、在本申請的一種實現(xiàn)方式中,基于預(yù)設(shè)的行為預(yù)測模塊監(jiān)測當(dāng)前任務(wù),以確定未來行為特征,具體包括:收集當(dāng)前任務(wù)的執(zhí)行數(shù)據(jù);其中,執(zhí)行數(shù)據(jù)包括指令執(zhí)行頻率、內(nèi)存訪問模式和i/o操作;基于行為預(yù)測模塊處理執(zhí)行數(shù)據(jù),以識別當(dāng)前任務(wù)的行為模式;基于行為模式確定當(dāng)前任務(wù)的未來行為特征;其中,未來行為特征包括執(zhí)行時長、替換任務(wù)和占用堆棧大小。
5、在本申請的一種實現(xiàn)方式中,基于未來行為特征和當(dāng)前任務(wù)調(diào)整寄存器堆棧的剩余空間,具體包括:基于未來行為特征和當(dāng)前任務(wù),評估當(dāng)前任務(wù)在后續(xù)執(zhí)行過程中對寄存器堆棧的需求;對比需求與寄存器堆棧的剩余空間,以確定寄存差值,并基于寄存差值確定調(diào)整方式;其中,調(diào)整方式包括拓展調(diào)整和壓縮調(diào)整;當(dāng)調(diào)整方式為拓展調(diào)整時,基于寄存差值拓展寄存器堆棧的剩余空間;當(dāng)調(diào)整方式為壓縮調(diào)整時,基于寄存差值壓縮寄存器堆棧的剩余空間。
6、在本申請的一種實現(xiàn)方式中,方法還包括:在調(diào)整方式執(zhí)行完成后,更新棧頂寄存器的數(shù)值。
7、在本申請的一種實現(xiàn)方式中,在基于行為預(yù)測模塊處理執(zhí)行數(shù)據(jù),以識別當(dāng)前任務(wù)的行為模式前,方法還包括:獲取上下文切換數(shù)據(jù),并預(yù)處理上下文切換數(shù)據(jù),以構(gòu)建訓(xùn)練集、測試集和驗證集;其中,預(yù)處理包括:數(shù)據(jù)清洗、特征提取和標(biāo)準(zhǔn)化處理;基于訓(xùn)練集訓(xùn)練預(yù)設(shè)的深度神經(jīng)網(wǎng)絡(luò);基于驗證集和測試集驗證訓(xùn)練過的深度神經(jīng)網(wǎng)絡(luò),并在準(zhǔn)確率大于預(yù)設(shè)的行為閾值時輸出為行為預(yù)測模塊。
8、在本申請的一種實現(xiàn)方式中,當(dāng)觸發(fā)上下文切換操作時,基于棧頂寄存器的數(shù)值確定寄存器堆棧的剩余空間,具體包括:讀取棧頂寄存器的當(dāng)前數(shù)值,以確定寄存器堆棧的棧頂?shù)刂?;獲取寄存器堆棧的基地址;計算棧頂?shù)刂放c基地址之間的差值,以確定寄存器堆棧的使用量;根據(jù)寄存器堆棧的總?cè)萘亢褪褂昧?,計算寄存器堆棧的剩余空間。
9、在本申請的一種實現(xiàn)方式中,基于計算核心執(zhí)行替換任務(wù),并在替換任務(wù)完成時通過棧頂寄存器切回當(dāng)前任務(wù),具體包括:基于計算核心執(zhí)行替換任務(wù),并監(jiān)測是否觸發(fā)上下文操作;當(dāng)替換任務(wù)完成且需要切換回當(dāng)前任務(wù)時,保存替換任務(wù)的上下文信息;基于棧頂寄存器的數(shù)值定位當(dāng)前任務(wù)的上下文信息存儲位置,以將當(dāng)前任務(wù)的上下文信息恢復(fù)至技術(shù)核心;基于技術(shù)核心執(zhí)行當(dāng)前任務(wù),直到當(dāng)前任務(wù)完成或觸發(fā)上下文切換操作。
10、第二方面,本申請實施例還提供了一種risc-v上下文切換優(yōu)化設(shè)備,其特征在于,設(shè)備包括:至少一個處理器;以及,與至少一個處理器通信連接的存儲器;其中,存儲器存儲有可被至少一個處理器執(zhí)行的指令,指令被至少一個處理器執(zhí)行,以使至少一個處理器能夠:基于計算核心執(zhí)行當(dāng)前任務(wù);當(dāng)觸發(fā)上下文切換操作時,基于棧頂寄存器的數(shù)值確定寄存器堆棧的剩余空間;基于剩余空間和當(dāng)前任務(wù)判斷寄存器堆棧是否能夠保存當(dāng)前任務(wù);若否,基于內(nèi)存存儲當(dāng)前任務(wù);若是,基于寄存器堆棧存儲當(dāng)前任務(wù);基于計算核心執(zhí)行替換任務(wù),并在替換任務(wù)完成時通過棧頂寄存器切回當(dāng)前任務(wù)。
11、第三方面,本申請實施例還提供了一種risc-v上下文切換優(yōu)化的非易失性計算機(jī)存儲介質(zhì),存儲有計算機(jī)可執(zhí)行指令,其特征在于,計算機(jī)可執(zhí)行指令設(shè)置為:基于計算核心執(zhí)行當(dāng)前任務(wù);當(dāng)觸發(fā)上下文切換操作時,基于棧頂寄存器的數(shù)值確定寄存器堆棧的剩余空間;基于剩余空間和當(dāng)前任務(wù)判斷寄存器堆棧是否能夠保存當(dāng)前任務(wù);若否,基于內(nèi)存存儲當(dāng)前任務(wù);若是,基于寄存器堆棧存儲當(dāng)前任務(wù);基于計算核心執(zhí)行替換任務(wù),并在替換任務(wù)完成時通過棧頂寄存器切回當(dāng)前任務(wù)。
12、本申請實施例提供的一種risc-v上下文切換優(yōu)化方法、設(shè)備及介質(zhì),至少包括以下技術(shù)效果:
13、在觸發(fā)上下文切換操作時,利用棧頂寄存器的數(shù)值來精確確定寄存器堆棧的剩余空間,能夠?qū)崟r掌握堆棧的使用情況,為后續(xù)的任務(wù)保存和切換提供準(zhǔn)確的數(shù)據(jù)支持。
14、根據(jù)剩余空間和當(dāng)前任務(wù)的需求,智能判斷寄存器堆棧是否能夠保存當(dāng)前任務(wù),如果空間不足,則轉(zhuǎn)向內(nèi)存進(jìn)行存儲,從而確保了任務(wù)狀態(tài)的完整保存既充分利用了有限的寄存器堆棧資源,又保證了任務(wù)切換的順利進(jìn)行。
15、通過將當(dāng)前任務(wù)的狀態(tài)保存在寄存器堆?;騼?nèi)存中,risc-v上下文切換優(yōu)化系統(tǒng)能夠迅速切換到替換任務(wù)進(jìn)行執(zhí)行,同時,在替換任務(wù)完成后,通過棧頂寄存器快速恢復(fù)當(dāng)前任務(wù)的狀態(tài),實現(xiàn)了任務(wù)之間的無縫切換和連續(xù)執(zhí)行,能夠減少任務(wù)切換帶來的性能開銷,提高了risc-v上下文切換優(yōu)化系統(tǒng)的整體運行效率。
1.一種risc-v上下文切換優(yōu)化方法,其特征在于,應(yīng)用于risc-v上下文切換優(yōu)化系統(tǒng),所述risc-v上下文切換優(yōu)化系統(tǒng)包括計算核心和內(nèi)存,所述計算核心包括控制單元、寄存器堆棧、棧頂寄存器、通用寄存器和算術(shù)邏輯單元,所述方法包括:
2.根據(jù)權(quán)利要求1所述的一種risc-v上下文切換優(yōu)化方法,其特征在于,在當(dāng)觸發(fā)上下文切換操作時,基于所述棧頂寄存器的數(shù)值確定所述寄存器堆棧的剩余空間前,所述方法還包括:
3.根據(jù)權(quán)利要求2所述的一種risc-v上下文切換優(yōu)化方法,其特征在于,基于預(yù)設(shè)的行為預(yù)測模塊監(jiān)測所述當(dāng)前任務(wù),以確定未來行為特征,具體包括:
4.根據(jù)權(quán)利要求3所述的一種risc-v上下文切換優(yōu)化方法,其特征在于,基于所述未來行為特征和所述當(dāng)前任務(wù)調(diào)整所述寄存器堆棧的剩余空間,具體包括:
5.根據(jù)權(quán)利要求3所述的一種risc-v上下文切換優(yōu)化方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求3所述的一種risc-v上下文切換優(yōu)化方法,其特征在于,在基于所述行為預(yù)測模塊處理所述執(zhí)行數(shù)據(jù),以識別所述當(dāng)前任務(wù)的行為模式前,所述方法還包括:
7.根據(jù)權(quán)利要求1所述的一種risc-v上下文切換優(yōu)化方法,其特征在于,當(dāng)觸發(fā)上下文切換操作時,基于所述棧頂寄存器的數(shù)值確定所述寄存器堆棧的剩余空間,具體包括:
8.根據(jù)權(quán)利要求1所述的一種risc-v上下文切換優(yōu)化方法,其特征在于,基于所述計算核心執(zhí)行替換任務(wù),并在替換任務(wù)完成時通過所述棧頂寄存器切回所述當(dāng)前任務(wù),具體包括:
9.一種risc-v上下文切換優(yōu)化設(shè)備,其特征在于,所述設(shè)備包括:
10.一種risc-v上下文切換優(yōu)化的非易失性計算機(jī)存儲介質(zhì),存儲有計算機(jī)可執(zhí)行指令,其特征在于,所述計算機(jī)可執(zhí)行指令設(shè)置為: