本技術(shù)涉及處理器資源管理。尤其是涉及一種任務(wù)隊(duì)列調(diào)度方法、處理方法、處理器、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、處理器是具有運(yùn)算能力的設(shè)備中重要的硬件資源,可以并行執(zhí)行多個作業(yè)任務(wù),以提升處理效率。在執(zhí)行多個作業(yè)任務(wù)時,處理器中會配置一個硬件隊(duì)列資源池用于支持任務(wù)隊(duì)列處理任務(wù)。其中,硬件隊(duì)列資源池包括至少一個硬件執(zhí)行資源槽,用于對應(yīng)處理至少一個任務(wù)隊(duì)列,當(dāng)任務(wù)隊(duì)列的數(shù)量超過可用硬件執(zhí)行資源槽的數(shù)量時,處理器會對任務(wù)隊(duì)列進(jìn)行分配和調(diào)度,主要涉及確定任務(wù)隊(duì)列與硬件執(zhí)行資源槽之間的匹配關(guān)系,并依次通知正在工作的隊(duì)列進(jìn)行卸載,同時讓未工作的任務(wù)隊(duì)列進(jìn)行加載。
2、當(dāng)前的調(diào)度策略主要包括時間片調(diào)度和優(yōu)先級搶占調(diào)度兩種,盡管通過開通高優(yōu)先級命令路徑來提升頻繁工作任務(wù)的執(zhí)行效率,但這些方案仍需不斷卸載和加載隊(duì)列,可能導(dǎo)致正在工作的隊(duì)列被打斷,降低了整體處理效率。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本技術(shù)實(shí)施例提供一種任務(wù)隊(duì)列調(diào)度方法、處理方法、處理器、電子設(shè)備及存儲介質(zhì),便于有效地提高多任務(wù)作業(yè)的整體處理效率。
2、為達(dá)到上述申請目的,采用如下技術(shù)方案:
3、本技術(shù)實(shí)施例提供一種處理器,包括:至少兩個硬件執(zhí)行資源槽,其中,至少一個第一硬件執(zhí)行資源槽被配置為執(zhí)行第一類型的任務(wù)隊(duì)列,至少一個第二硬件執(zhí)行資源槽被配置為執(zhí)行第二類型的任務(wù)隊(duì)列,所述第二類型的任務(wù)隊(duì)列占用硬件執(zhí)行資源槽的時間片長度或優(yōu)先級高于第一類型的任務(wù)隊(duì)列占用硬件執(zhí)行資源槽的時間片長度或優(yōu)先級。
4、
5、硬件調(diào)度模塊,配置為當(dāng)接收到的任務(wù)隊(duì)列的數(shù)量大于硬件執(zhí)行資源槽的數(shù)量時,對至少一個所述第一硬件執(zhí)行資源槽進(jìn)行卸載任務(wù)隊(duì)列操作,保持至少一個所述第二硬件執(zhí)行資源槽的狀態(tài)不變。
6、根據(jù)本技術(shù)實(shí)施例的一種具體實(shí)現(xiàn)方式,所述硬件調(diào)度模塊,配置為當(dāng)接收到的任務(wù)隊(duì)列的數(shù)量大于硬件執(zhí)行資源槽的數(shù)量時,對至少一個所述第一硬件執(zhí)行資源槽進(jìn)行卸載任務(wù)隊(duì)列操作,包括:
7、查詢當(dāng)前所有硬件資源槽的屬性,獲取各所述硬件執(zhí)行資源槽的占用狀態(tài);
8、判斷當(dāng)前接收到的任務(wù)隊(duì)列的數(shù)量是否大于當(dāng)前空閑狀態(tài)的硬件執(zhí)行資源槽的數(shù)量;
9、若是,則根據(jù)至少一個所述第一硬件執(zhí)行資源槽的占用狀態(tài),確定使能相應(yīng)的廣播標(biāo)記;其中,所述廣播標(biāo)記至少用于標(biāo)記的第一硬件執(zhí)行資源槽;
10、根據(jù)所述廣播標(biāo)記發(fā)送卸載通知至相應(yīng)的第一硬件執(zhí)行資源槽,以卸載相應(yīng)的第一類型的任務(wù)隊(duì)列,并將本次卸載的第一類型的任務(wù)隊(duì)列送入調(diào)度排序名單。
11、根據(jù)本技術(shù)實(shí)施例的一種具體實(shí)現(xiàn)方式,所述硬件調(diào)度模塊,還配置為當(dāng)接收到的任務(wù)隊(duì)列的數(shù)量大于硬件執(zhí)行資源槽的數(shù)量時,對至少一個所述第一硬件執(zhí)行資源槽進(jìn)行加載任務(wù)隊(duì)列操作,包括:
12、查詢當(dāng)前所有第一硬件執(zhí)行資源槽的占用狀態(tài),判斷是否有空閑的第一硬件執(zhí)行資源槽;
13、若有,則從調(diào)度排序名單中選出待加載的第一類型的任務(wù)隊(duì)列;
14、將所述第一類型的任務(wù)隊(duì)列與空閑的第一硬件執(zhí)行資源槽進(jìn)行匹配,并更新所述第一硬件執(zhí)行資源槽的占用狀態(tài)。
15、根據(jù)本技術(shù)實(shí)施例的一種具體實(shí)現(xiàn)方式,在將所述第一類型的任務(wù)隊(duì)列與空閑的第一硬件執(zhí)行資源槽進(jìn)行匹配之后,所述硬件調(diào)度模塊,還配置為:查詢在當(dāng)前調(diào)度周期內(nèi),是否所有第一硬件執(zhí)行資源槽的占用狀態(tài)已更新;
16、若是,則結(jié)束當(dāng)前周期內(nèi)的調(diào)度任務(wù);
17、若否,則輪詢當(dāng)前所有第一硬件執(zhí)行資源槽的占用狀態(tài)。
18、第二方面,本技術(shù)還實(shí)施例提供一種任務(wù)隊(duì)列調(diào)度方法,包括:當(dāng)接收到的任務(wù)隊(duì)列的數(shù)量大于硬件執(zhí)行資源槽的數(shù)量時,對至少一個第一硬件執(zhí)行資源槽進(jìn)行卸載任務(wù)隊(duì)列操作,保持至少一個第二硬件執(zhí)行資源槽的占用狀態(tài)不變;其中,所述至少一個第一硬件執(zhí)行資源槽被配置為執(zhí)行第一類型的任務(wù)隊(duì)列,所述至少一個第二硬件執(zhí)行資源槽被配置為執(zhí)行第二類型的任務(wù)隊(duì)列,所述第二類型的任務(wù)隊(duì)列占用硬件執(zhí)行資源槽的時間片長度或優(yōu)先級高于第一類型的任務(wù)隊(duì)列占用硬件執(zhí)行資源槽的時間片長度或優(yōu)先級。
19、根據(jù)本技術(shù)實(shí)施例的一種具體實(shí)現(xiàn)方式,所述當(dāng)接收到的任務(wù)隊(duì)列的數(shù)量大于硬件執(zhí)行資源槽的數(shù)量時,對至少一個所述第一硬件執(zhí)行資源槽進(jìn)行卸載任務(wù)隊(duì)列操作,包括:
20、查詢當(dāng)前所有硬件資源槽的屬性,獲取各所述硬件執(zhí)行資源槽的占用狀態(tài);
21、判斷當(dāng)前接收到的任務(wù)隊(duì)列的數(shù)量是否大于當(dāng)前空閑的硬件執(zhí)行資源槽的數(shù)量;
22、若是,則根據(jù)至少一個所述第一硬件執(zhí)行資源槽的占用狀態(tài),確定使能相應(yīng)的廣播標(biāo)記;其中,所述廣播標(biāo)記至少用于標(biāo)記的第一硬件執(zhí)行資源槽;
23、根據(jù)所述廣播標(biāo)記發(fā)送卸載通知至相應(yīng)的第一硬件執(zhí)行資源槽,以卸載相應(yīng)的第一類型的任務(wù)隊(duì)列,并將本次卸載的第一類型的任務(wù)隊(duì)列送入調(diào)度排序名單。
24、根據(jù)本技術(shù)實(shí)施例的一種具體實(shí)現(xiàn)方式,所述方法還包括:所述當(dāng)接收到的任務(wù)隊(duì)列的數(shù)量大于硬件執(zhí)行資源槽的數(shù)量時,對至少一個所述第一硬件執(zhí)行資源槽進(jìn)行加載任務(wù)隊(duì)列操作,包括:查詢當(dāng)前所有第一硬件執(zhí)行資源槽的占用狀態(tài),判斷是否有空閑的第一硬件執(zhí)行資源槽;
25、若有,則從調(diào)度排序名單中選出待加載的第一類型的任務(wù)隊(duì)列;
26、將所述第一類型的任務(wù)隊(duì)列與空閑的第一硬件執(zhí)行資源槽進(jìn)行匹配。
27、根據(jù)本技術(shù)實(shí)施例的一種具體實(shí)現(xiàn)方式,在將所述第一類型的任務(wù)隊(duì)列與空閑的第一硬件執(zhí)行資源槽進(jìn)行匹配之后,還包括:查詢在當(dāng)前調(diào)度周期內(nèi),是否所有第一硬件執(zhí)行資源槽的占用狀態(tài)已更新;
28、若是,則結(jié)束當(dāng)前周期內(nèi)的調(diào)度任務(wù);
29、若否,則輪詢當(dāng)前所有第一硬件執(zhí)行資源槽的占用狀態(tài)。
30、第三方面,本技術(shù)還實(shí)施例提供一種任務(wù)作業(yè)處理方法,包括:根據(jù)接收到的任務(wù)作業(yè)創(chuàng)建至少一個任務(wù)隊(duì)列,每個任務(wù)隊(duì)列攜帶有屬性信息;所述屬性信息包括:任務(wù)隊(duì)列的身份標(biāo)識符、時間戳和優(yōu)先級;
31、根據(jù)所述屬性信息,判斷當(dāng)前創(chuàng)建的所述至少一個任務(wù)隊(duì)列申請的硬件執(zhí)行資源槽的類型;所述硬件執(zhí)行資源槽的類型與任務(wù)隊(duì)列的時間片長度或優(yōu)先級相關(guān);
32、根據(jù)確定的硬件執(zhí)行資源槽的類型,將該類型的硬件執(zhí)行資源槽與所述至少一個任務(wù)隊(duì)列進(jìn)行匹配。
33、根據(jù)本技術(shù)實(shí)施例的一種具體實(shí)現(xiàn)方式,所述根據(jù)確定的硬件執(zhí)行資源槽的類型,將該類型的硬件執(zhí)行資源槽與所述至少一個任務(wù)隊(duì)列進(jìn)行匹配,包括:
34、若根據(jù)所述硬件執(zhí)行資源槽的類型確定為第一硬件執(zhí)行資源槽,則判斷是否有空閑的第一硬件執(zhí)行資源槽;
35、若根據(jù)所述硬件執(zhí)行資源槽的類型確定為第二硬件執(zhí)行資源槽,則對當(dāng)前所述第二硬件執(zhí)行資源槽的申請事件進(jìn)行合法性檢測;所述合法性檢測用于檢測當(dāng)前第二硬件執(zhí)行資源槽的申請數(shù)量是否超出閾值;
36、若合法,則繼續(xù)判斷是否存在空閑狀態(tài)的第二硬件執(zhí)行資源槽;
37、若不合法,則反饋第二硬件執(zhí)行資源槽申請失敗。
38、根據(jù)本技術(shù)實(shí)施例的一種具體實(shí)現(xiàn)方式,在繼續(xù)判斷是否有空閑的第二硬件執(zhí)行資源槽之后,還包括:若存在空閑狀態(tài)的第二硬件執(zhí)行資源槽,則選擇一個空閑的第二硬件執(zhí)行資源槽;
39、若不存在空閑狀態(tài)的第二硬件執(zhí)行資源槽,則卸載一個第一硬件執(zhí)行資源槽,以使其變?yōu)榭臻e狀態(tài);
40、將變?yōu)榭臻e狀態(tài)的所述第一硬件執(zhí)行資源槽的類型屬性配置變更為第二硬件執(zhí)行資源槽;
41、以及,將變更后的第二硬件執(zhí)行資源槽與所述至少一個任務(wù)隊(duì)列進(jìn)行匹配。
42、根據(jù)本技術(shù)實(shí)施例的一種具體實(shí)現(xiàn)方式,在反饋第二硬件執(zhí)行資源槽申請失敗之后,還包括:為所述至少一個任務(wù)隊(duì)列申請第一硬件執(zhí)行資源槽以進(jìn)行匹配,并繼續(xù)判斷是否存在空閑狀態(tài)的第一硬件執(zhí)行資源槽;
43、若存在空閑狀態(tài)的第一硬件執(zhí)行資源槽,將該空閑狀態(tài)的第一硬件執(zhí)行資源槽與所述至少一個任務(wù)隊(duì)列進(jìn)行匹配,并更新所述第一硬件執(zhí)行資源槽的占用狀態(tài)。
44、第四方面,本技術(shù)實(shí)施例提供一種電子設(shè)備,包括:
45、一個或者多個處理器;
46、存儲器;
47、所述存儲器中存儲有一個或者多個可執(zhí)行程序代碼,所述一個或者多個處理器讀取存儲器中存儲的可執(zhí)行程序代碼,運(yùn)行與可執(zhí)行程序代碼對應(yīng)的程序,以用于執(zhí)行第二方面任一所述的任務(wù)隊(duì)列調(diào)度方法;或者,
48、以用于執(zhí)行第三方面任一所述的任務(wù)作業(yè)處理方法。
49、第五方面,本技術(shù)實(shí)施例提供一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執(zhí)行,以用于執(zhí)行第二方面任一所述的任務(wù)隊(duì)列調(diào)度方法;或者,
50、以用于執(zhí)行第三方面任一所述的任務(wù)作業(yè)處理方法。