本申請(qǐng)涉及計(jì)算機(jī),尤其涉及一種分支預(yù)測(cè)方法、裝置、設(shè)備及程序產(chǎn)品。
背景技術(shù):
1、分支預(yù)測(cè)技術(shù)是指處理器處理分支指令時(shí),不等待分支指令執(zhí)行完成,直接預(yù)測(cè)當(dāng)前分支跳轉(zhuǎn)方向以及跳轉(zhuǎn)目標(biāo)。使用分支預(yù)測(cè)技術(shù)可以實(shí)現(xiàn)不間斷的指令流,分支預(yù)測(cè)技術(shù)可以有效地提升指令執(zhí)行速度,但是也帶來一定的隱患,若預(yù)測(cè)方向錯(cuò)誤,處理器提取了錯(cuò)誤的下一條指令,為了糾正這種錯(cuò)誤,流水線會(huì)將這一條指令之后的所有指令排出流水線,重新讀入正確的指令,這將極大程度的降低處理器的性能。
2、通過分支預(yù)測(cè)模型進(jìn)行分支預(yù)測(cè)是具有廣闊應(yīng)用前景的分支預(yù)測(cè)方案,但是現(xiàn)階段的分支預(yù)測(cè)模型的分支預(yù)測(cè)準(zhǔn)確率不高,難以滿足準(zhǔn)確的流水線分支預(yù)測(cè)需求。
技術(shù)實(shí)現(xiàn)思路
1、基于上述技術(shù)問題,本申請(qǐng)?zhí)岢鲆环N分支預(yù)測(cè)方法、裝置、設(shè)備及程序產(chǎn)品,能夠提高分支預(yù)測(cè)模型的指令預(yù)測(cè)準(zhǔn)確率。
2、本申請(qǐng)第一方面提出一種分支預(yù)測(cè)方法,包括:
3、在利用分支預(yù)測(cè)模型進(jìn)行在線分支預(yù)測(cè)的過程中,獲取所述分支預(yù)測(cè)模型對(duì)指令流水線中的分支指令進(jìn)行預(yù)測(cè)得到的預(yù)測(cè)結(jié)果,并基于所述預(yù)測(cè)結(jié)果以及實(shí)際的指令跳轉(zhuǎn)情況,生成預(yù)測(cè)結(jié)果統(tǒng)計(jì)數(shù)據(jù);
4、利用所述預(yù)測(cè)結(jié)果統(tǒng)計(jì)數(shù)據(jù)對(duì)分支預(yù)測(cè)訓(xùn)練模型進(jìn)行分支預(yù)測(cè)訓(xùn)練,得到訓(xùn)練后的分支預(yù)測(cè)訓(xùn)練模型;其中,在對(duì)所述分支預(yù)測(cè)訓(xùn)練模型進(jìn)行分支預(yù)測(cè)訓(xùn)練之前,所述分支預(yù)測(cè)訓(xùn)練模型的權(quán)重與所述分支預(yù)測(cè)模型的權(quán)重相同;
5、在確定所述訓(xùn)練后的分支預(yù)測(cè)訓(xùn)練模型的分支預(yù)測(cè)結(jié)果優(yōu)于所述分支預(yù)測(cè)模型的分支預(yù)測(cè)結(jié)果的情況下,利用所述訓(xùn)練后的分支預(yù)測(cè)訓(xùn)練模型的權(quán)重對(duì)所述分支預(yù)測(cè)模型的權(quán)重進(jìn)行更新。
6、本申請(qǐng)第二方面提出一種分支預(yù)測(cè)裝置,包括:
7、數(shù)據(jù)獲取單元,用于在利用分支預(yù)測(cè)模型進(jìn)行在線分支預(yù)測(cè)的過程中,獲取所述分支預(yù)測(cè)模型對(duì)指令流水線中的分支指令進(jìn)行預(yù)測(cè)得到的預(yù)測(cè)結(jié)果,并基于所述預(yù)測(cè)結(jié)果以及實(shí)際的指令跳轉(zhuǎn)情況,生成預(yù)測(cè)結(jié)果統(tǒng)計(jì)數(shù)據(jù);
8、模型訓(xùn)練單元,用于利用所述預(yù)測(cè)結(jié)果統(tǒng)計(jì)數(shù)據(jù)對(duì)分支預(yù)測(cè)訓(xùn)練模型進(jìn)行在線分支預(yù)測(cè)訓(xùn)練,得到訓(xùn)練后的分支預(yù)測(cè)訓(xùn)練模型;其中,在對(duì)所述分支預(yù)測(cè)訓(xùn)練模型進(jìn)行在線分支預(yù)測(cè)訓(xùn)練之前,所述分支預(yù)測(cè)訓(xùn)練模型的權(quán)重與所述分支預(yù)測(cè)模型的權(quán)重相同;
9、模型更新單元,用于在確定所述訓(xùn)練后的分支預(yù)測(cè)訓(xùn)練模型的分支預(yù)測(cè)結(jié)果優(yōu)于所述分支預(yù)測(cè)模型的分支預(yù)測(cè)結(jié)果的情況下,利用所述訓(xùn)練后的分支預(yù)測(cè)訓(xùn)練模型的權(quán)重對(duì)所述分支預(yù)測(cè)模型的權(quán)重進(jìn)行更新。
10、本申請(qǐng)第三方面提出一種分支預(yù)測(cè)設(shè)備,包括:
11、存儲(chǔ)器和處理器;
12、所述存儲(chǔ)器與所述處理器連接,用于存儲(chǔ)程序;
13、所述處理器用于通過運(yùn)行所述存儲(chǔ)器中的程序,實(shí)現(xiàn)上述的分支預(yù)測(cè)方法。
14、本申請(qǐng)第四方面提出一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序指令,所述計(jì)算機(jī)程序指令在被處理器運(yùn)行時(shí)使得所述處理器執(zhí)行上述的分支預(yù)測(cè)方法。
15、本申請(qǐng)?zhí)岢龅姆种ьA(yù)測(cè)方法在利用分支預(yù)測(cè)模型進(jìn)行在線分支預(yù)測(cè)的過程中,獲取分支預(yù)測(cè)模型對(duì)指令流水線中的分支指令進(jìn)行預(yù)測(cè)得到的預(yù)測(cè)結(jié)果,并基于所述預(yù)測(cè)結(jié)果以及實(shí)際的指令跳轉(zhuǎn)情況,生成預(yù)測(cè)結(jié)果統(tǒng)計(jì)數(shù)據(jù);然后基于預(yù)測(cè)結(jié)果統(tǒng)計(jì)數(shù)據(jù)對(duì)分支預(yù)測(cè)訓(xùn)練模型進(jìn)行分支預(yù)測(cè)訓(xùn)練,得到訓(xùn)練后的分支預(yù)測(cè)訓(xùn)練模型;在確定所述訓(xùn)練后的分支預(yù)測(cè)訓(xùn)練模型的分支預(yù)測(cè)結(jié)果優(yōu)于所述分支預(yù)測(cè)模型的分支預(yù)測(cè)結(jié)果的情況下,利用所述訓(xùn)練后的分支預(yù)測(cè)訓(xùn)練模型的權(quán)重對(duì)所述分支預(yù)測(cè)模型的權(quán)重進(jìn)行更新。上述方案可以在分支預(yù)測(cè)模型的應(yīng)用過程中,實(shí)時(shí)地基于指令流水線中的指令跳轉(zhuǎn)情況,對(duì)分支預(yù)測(cè)模型進(jìn)行權(quán)重更新,從而使得分支預(yù)測(cè)模型的權(quán)重與指令流水線的實(shí)時(shí)狀態(tài)相適應(yīng),并且能夠保持實(shí)時(shí)更新,從而能夠提高分支預(yù)測(cè)模型的指令預(yù)測(cè)準(zhǔn)確率。
1.一種分支預(yù)測(cè)方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,在獲取到被預(yù)測(cè)分支指令時(shí),對(duì)所述被預(yù)測(cè)分支指令進(jìn)行分類,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述分支分類器包括程序計(jì)數(shù)器、飽和計(jì)數(shù)器組,以及更新模塊;
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述被預(yù)測(cè)分支指令的地址,包括所述被預(yù)測(cè)分支指令的后k位地址;
7.根據(jù)權(quán)利要求1至6中任意一項(xiàng)所述的方法,其特征在于,所述方法還包括:
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,將被預(yù)測(cè)分支指令的歷史信息輸入預(yù)先訓(xùn)練的分支預(yù)測(cè)模型,包括:
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述分支預(yù)測(cè)模型包括5個(gè)卷積神經(jīng)網(wǎng)絡(luò)切片;基于被預(yù)測(cè)分支指令的歷史信息,生成多個(gè)歷史信息集合,包括:
10.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述被預(yù)測(cè)分支指令的歷史信息包括所述被預(yù)測(cè)分支指令所在分支路徑的各個(gè)歷史地址以及對(duì)應(yīng)的跳轉(zhuǎn)方向的編碼矩陣,所述編碼矩陣包括所述被預(yù)測(cè)分支指令所在分支路徑的各個(gè)歷史地址以及對(duì)應(yīng)的跳轉(zhuǎn)方向的編碼。
11.根據(jù)權(quán)利要求7所述的方法,其特征在于,卷積神經(jīng)網(wǎng)絡(luò)切片包括第一卷積層、第一平均池化層、第一全連接層、第二卷積層、第二平均池化層和輸出層,所述第一卷積層中包括注意力機(jī)制模塊;
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述第一卷積層的輸入通道數(shù)為1,輸出通道數(shù)為16,卷積核大小為3×3,步長(zhǎng)為1;所述第一平均池化層的池化核大小為2×2,步長(zhǎng)為1;所述第二卷積層的輸入通道數(shù)為16,輸出通道數(shù)為4,卷積核大小為3×3,步長(zhǎng)為1;所述第二平均池化層的池化核大小為2×2,步長(zhǎng)為1。
13.根據(jù)權(quán)利要求1至6中任意一項(xiàng)所述的方法,其特征在于,所述方法還包括:基于設(shè)定數(shù)據(jù)庫的測(cè)試程序的運(yùn)行流程記錄,訓(xùn)練得到所述分支預(yù)測(cè)模型;
14.一種分支預(yù)測(cè)裝置,其特征在于,包括:
15.一種分支預(yù)測(cè)設(shè)備,其特征在于,包括:
16.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,包括計(jì)算機(jī)程序指令,所述計(jì)算機(jī)程序指令在被處理器運(yùn)行時(shí)使得所述處理器執(zhí)行如權(quán)利要求1至13中任意一項(xiàng)所述的分支預(yù)測(cè)方法。