本發(fā)明涉及計算機,更具體地說,涉及一種指令調(diào)度方法、計算機程序產(chǎn)品、電子設(shè)備及介質(zhì)。
背景技術(shù):
1、在計算機中,指令調(diào)度是影響性能的因素之一,因此需要通過優(yōu)化指令的發(fā)射順序,充分利用流水線和執(zhí)行單元資源,減少流水線停滯時間,提升指令吞吐率。比如通過亂序執(zhí)行對指令進行調(diào)度,也即通過動態(tài)追蹤指令依賴關(guān)系,優(yōu)先調(diào)度操作數(shù)就緒的指令。
2、然而,亂序執(zhí)行依賴復(fù)雜的硬件結(jié)構(gòu),如保留站和重排序緩沖區(qū),導(dǎo)致指令調(diào)度功耗高,硬件成本大,難以在多核和高負載場景下進一步擴展。此外,隨著多任務(wù)、多線程的普及,指令調(diào)度需要面對更加復(fù)雜的動態(tài)負載,但亂序調(diào)度已難以保持良好的適應(yīng)性。
3、綜上所述,如何靈活的對指令進行適應(yīng)性調(diào)度是目前本領(lǐng)域技術(shù)人員亟待解決的問題。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的是提供一種指令調(diào)度方法,其能在一定程度上解決如何靈活的對指令進行適應(yīng)性調(diào)度的技術(shù)問題。本發(fā)明還提供了一種計算機程序產(chǎn)品、電子設(shè)備及計算機可讀存儲介質(zhì)。
2、為了實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
3、第一方面,提供一種指令調(diào)度方法,包括:
4、采集待調(diào)度指令的指令信息;
5、確定當(dāng)前與所述指令信息對應(yīng)的指令權(quán)重;
6、根據(jù)所述指令信息和所述指令權(quán)重,生成待調(diào)度指令的優(yōu)先級信息;
7、根據(jù)所述優(yōu)先級信息,在待調(diào)度指令中選取目標(biāo)指令進行處理;
8、采集處理所述目標(biāo)指令的處理信息;
9、根據(jù)所述處理信息,生成用于評估指令處理性能的目標(biāo)獎勵值;
10、根據(jù)所述目標(biāo)獎勵值,對所述指令權(quán)重進行調(diào)整,以基于調(diào)整后的所述指令權(quán)重對待調(diào)度指令進行處理。
11、另一方面,采集待調(diào)度指令的指令信息,包括:
12、對待調(diào)度指令的指令延遲進行預(yù)測,得到預(yù)估延遲;
13、采集待調(diào)度指令的類型信息和目標(biāo)路徑深度;
14、采集待調(diào)度指令所對應(yīng)資源的可用性信息;
15、將所述類型信息、所述預(yù)估延遲、所述目標(biāo)路徑深度和所述可用性信息作為待調(diào)度指令的指令信息;
16、確定當(dāng)前與所述指令信息對應(yīng)的指令權(quán)重,包括;
17、確定當(dāng)前與所述指令信息對應(yīng)的指令權(quán)重,所述指令權(quán)重包括指令類型權(quán)重、平滑因子、路徑深度權(quán)重、資源可用性權(quán)重。
18、另一方面,根據(jù)所述指令信息和所述指令權(quán)重,生成待調(diào)度指令的優(yōu)先級信息,包括:
19、按照優(yōu)先級與所述目標(biāo)路徑深度正相關(guān)的關(guān)系,根據(jù)所述目標(biāo)路徑深度和所述路徑深度權(quán)重,生成路徑深度信息;
20、對所述路徑深度信息進行平滑,得到路徑優(yōu)先級;
21、按照優(yōu)先級與所述預(yù)估延遲負相關(guān)的關(guān)系,根據(jù)所述預(yù)估延遲和所述平滑因子,生成延遲優(yōu)先級;
22、按照優(yōu)先級與所述可用性信息正相關(guān)的關(guān)系,根據(jù)所述可用性信息和所述資源可用性權(quán)重,生成可用性優(yōu)先級;
23、按照優(yōu)先級與所述指令類型權(quán)重正相關(guān)的關(guān)系,根據(jù)所述指令類型權(quán)重、所述路徑優(yōu)先級、所述延遲優(yōu)先級和所述可用性優(yōu)先級,生成待調(diào)度指令的優(yōu)先級信息。
24、另一方面,按照優(yōu)先級與所述指令類型權(quán)重正相關(guān)的關(guān)系,根據(jù)所述指令類型權(quán)重、所述路徑優(yōu)先級、所述延遲優(yōu)先級和所述可用性優(yōu)先級,生成待調(diào)度指令的優(yōu)先級信息,包括:
25、根據(jù)所述指令類型權(quán)重,對所述路徑優(yōu)先級和所述延遲優(yōu)先級進行正相關(guān)的運算,生成初始優(yōu)先級;
26、對所述初始優(yōu)先級和所述可用性優(yōu)先級進行正相關(guān)的運算,生成待調(diào)度指令的優(yōu)先級信息。
27、另一方面,采集處理所述目標(biāo)指令的處理信息,包括:
28、采集處理所述目標(biāo)指令的目標(biāo)路徑發(fā)射成功數(shù);
29、采集處理所述目標(biāo)指令的停頓周期數(shù);
30、采集處理所述目標(biāo)指令的資源沖突次數(shù);
31、將所述目標(biāo)路徑發(fā)射成功數(shù)、所述停頓周期數(shù)和所述資源沖突次數(shù)作為處理所述目標(biāo)指令的處理信息。
32、另一方面,根據(jù)所述處理信息,生成用于評估指令處理性能的目標(biāo)獎勵值,包括:
33、獲取設(shè)定的與所述處理信息對應(yīng)的獎勵權(quán)重;
34、基于所述獎勵權(quán)重對所述處理信息進行加權(quán)運算,得到用于評估指令處理性能的目標(biāo)獎勵值。
35、另一方面,獲取設(shè)定的與所述處理信息對應(yīng)的獎勵權(quán)重,包括:
36、獲取設(shè)定的用于調(diào)節(jié)路徑發(fā)射對獎勵影響的第一調(diào)節(jié)權(quán)重;
37、獲取設(shè)定的用于調(diào)節(jié)停頓對獎勵影響的第二調(diào)節(jié)權(quán)重;
38、獲取設(shè)定的用于調(diào)節(jié)資源沖突對獎勵影響的第三調(diào)節(jié)權(quán)重;
39、將所述第一調(diào)節(jié)權(quán)重、所述第二調(diào)節(jié)權(quán)重和所述第三調(diào)節(jié)權(quán)重作為所述處理信息對應(yīng)的獎勵權(quán)重。
40、另一方面,基于所述獎勵權(quán)重對所述處理信息進行加權(quán)運算,得到用于評估指令處理性能的目標(biāo)獎勵值,包括:
41、確定所述第一調(diào)節(jié)權(quán)重與所述目標(biāo)路徑發(fā)射成功數(shù)的第一乘積值;
42、確定所述第二調(diào)節(jié)權(quán)重與所述停頓周期數(shù)的第二乘積值;
43、生成所述第一乘積值與所述第二乘積值的第一差值;
44、確定所述第三調(diào)節(jié)權(quán)重與所述資源沖突次數(shù)的第三乘積值;
45、生成所述第一差值與所述第三乘積值的第二差值;
46、將所述第二差值作為用于評估指令處理性能的目標(biāo)獎勵值。
47、另一方面,根據(jù)所述目標(biāo)獎勵值,對所述指令權(quán)重進行調(diào)整,包括:
48、獲取所述目標(biāo)指令的實際延遲;
49、檢測所述實際延遲與所述預(yù)估延遲間的差值是否大于預(yù)設(shè)閾值;
50、響應(yīng)于所述實際延遲與所述預(yù)估延遲間的差值大于所述預(yù)設(shè)閾值,則對所述平滑因子進行調(diào)整,并根據(jù)所述目標(biāo)獎勵值,對所述路徑深度權(quán)重或所述資源可用性權(quán)重進行調(diào)整;
51、響應(yīng)于所述實際延遲與所述預(yù)估延遲間的差值小于或等于所述預(yù)設(shè)閾值,則根據(jù)所述目標(biāo)獎勵值,對所述路徑深度權(quán)重或所述資源可用性權(quán)重進行調(diào)整。
52、另一方面,根據(jù)所述目標(biāo)獎勵值,對所述路徑深度權(quán)重或所述資源可用性權(quán)重進行調(diào)整之前,還包括:
53、檢測所述目標(biāo)獎勵值是否小于第一設(shè)定值;
54、響應(yīng)于所述目標(biāo)獎勵值小于所述第一設(shè)定值,則執(zhí)行根據(jù)所述目標(biāo)獎勵值,對所述路徑深度權(quán)重或所述資源可用性權(quán)重進行調(diào)整的步驟。
55、另一方面,根據(jù)所述目標(biāo)獎勵值,對所述路徑深度權(quán)重或所述資源可用性權(quán)重進行調(diào)整,包括:
56、響應(yīng)于所述目標(biāo)獎勵值小于所述第一設(shè)定值且大于或等于第二設(shè)定值,則對所述路徑深度權(quán)重進行調(diào)整。
57、另一方面,根據(jù)所述目標(biāo)獎勵值,對所述路徑深度權(quán)重或所述資源可用性權(quán)重進行調(diào)整,包括:
58、響應(yīng)于所述目標(biāo)獎勵值小于所述第二設(shè)定值,則對所述資源可用性權(quán)重進行調(diào)整。
59、第二方面,提供一種計算機程序產(chǎn)品,包括計算機程序/指令,該計算機程序/指令被處理器執(zhí)行時實現(xiàn)如上任一所述指令調(diào)度方法的步驟。
60、第三方面,提供一種電子設(shè)備,包括:
61、存儲器,用于存儲計算機程序;
62、處理器,用于執(zhí)行所述計算機程序時實現(xiàn)如上任一所述指令調(diào)度方法的步驟。
63、第四方面,提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)中存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上任一所述指令調(diào)度方法的步驟。
64、本發(fā)明提供的一種指令調(diào)度方法,采集待調(diào)度指令的指令信息;確定當(dāng)前與指令信息對應(yīng)的指令權(quán)重;根據(jù)指令信息和指令權(quán)重,生成待調(diào)度指令的優(yōu)先級信息;根據(jù)優(yōu)先級信息,在待調(diào)度指令中選取目標(biāo)指令進行處理;采集處理目標(biāo)指令的處理信息;根據(jù)處理信息,生成用于評估指令處理性能的目標(biāo)獎勵值;根據(jù)目標(biāo)獎勵值,對指令權(quán)重進行調(diào)整,以基于調(diào)整后的指令權(quán)重對待調(diào)度指令進行處理。
65、本發(fā)明的有益效果是:可以根據(jù)指令信息和當(dāng)前的指令權(quán)重生成待調(diào)度指令的優(yōu)先級信息,并根據(jù)優(yōu)先級信息選取目標(biāo)指令進行處理,從而使得指令處理過程受到指令權(quán)重的管控;且之后根據(jù)目標(biāo)指令的處理信息生成目標(biāo)獎勵值,從數(shù)據(jù)層面反映目標(biāo)指令的處理性能,從而實現(xiàn)對目標(biāo)指令處理過程的量化;之后根據(jù)目標(biāo)獎勵值對指令權(quán)重進行調(diào)整,相當(dāng)于從數(shù)據(jù)層面來根據(jù)目標(biāo)指令的處理性能對指令權(quán)重進行調(diào)整,使得調(diào)整后的指令權(quán)重與目標(biāo)指令的處理過程相適配,后續(xù)再選取目標(biāo)指令進行處理的話,相當(dāng)于應(yīng)用調(diào)整后的指令權(quán)重進行指令選取,從而實現(xiàn)對指令的動態(tài)適應(yīng)性調(diào)度,無需依賴復(fù)雜的硬件結(jié)構(gòu),靈活性好。本發(fā)明提供的一種計算機程序產(chǎn)品、電子設(shè)備及計算機可讀存儲介質(zhì)也解決了相應(yīng)技術(shù)問題。