本申請屬于計算機,具體涉及了一種預取指令管理方法、系統(tǒng)及設備。
背景技術:
1、指令預取技術對于提高處理器性能、減少延遲和提高能效至關重要,已成為現(xiàn)代處理器設計中的一個關鍵組件。一方面,通過將可能需要的指令預先載入高速緩存,減少了從內(nèi)存提取指令的延遲,確保流水線持續(xù)地有指令可執(zhí)行,能夠提高流水線效率;另一方面,通過預取策略,可以提前將指令移入緩存,可以更好地利用緩存資源,提高緩存命中率,進而提高緩存利用率。
2、指令預取技術往往伴隨著分支預測,即分支預測單元(branch?prediction?unit,bpu)與取指單元(instruction?fetch?unit,ifu)緊密耦合,協(xié)同工作,而bpu的預測速度通常快于ifu的取指速度,處理器運行時,bpu可能需等待ifu就位,造成硬件利用率低;若bpu同時處理預測與預取請求,在分支密集型負載中易引發(fā)端口競爭,可能會導致流水線空閑。
3、因此,現(xiàn)有的指令預取技術取指效率較低,存在流水線空泡的風險。
技術實現(xiàn)思路
1、為了解決現(xiàn)有技術中的上述問題,即指令預取技術取指效率較低的問題,本申請第一方面,提出了一種預取指令管理方法,應用于取指目標隊列,方法包括:
2、步驟s10,接收來自分支預測單元的分支預測信息,并對取指目標隊列中的表項和分支預測信息進行標簽對比;
3、步驟s20,在表項命中的情況下,在命中表項中查詢分支預測信息對應的取指地址;
4、步驟s30,在表項未命中的情況下,為分支預測信息分配一個新的存儲表項,并通過存儲表項確定分支預測信息攜帶的取指地址;
5、步驟s40,響應于接收到預取單元發(fā)送的預取請求,基于預取請求,確定目標表項,并將在目標表項中查詢到的取指地址返回預取單元;
6、步驟s50,將目標表項中的穩(wěn)定緩存行存儲至流緩沖區(qū),其中,穩(wěn)定緩存行是不需要進行沖刷或預取的緩存行。
7、作為一種優(yōu)選的實施方式,方法還包括:
8、響應于接收到回填單元發(fā)送的缺失地址,基于缺失地址重新發(fā)起取指請求;
9、響應于接收到流緩沖區(qū)返回的淘汰信息,基于淘汰信息更新取指目標隊列中的表項。
10、作為一種優(yōu)選的實施方式,表項對應有多個標志位,標志位用于標記表項的狀態(tài)或?qū)傩?,基于缺失地址重新發(fā)起取指請求,包括:
11、確定命中缺失地址的缺失命中表項,并讀取缺失命中表項中的請求發(fā)出標志位,其中,請求發(fā)出標志位用于標識請求發(fā)送狀態(tài);
12、基于請求發(fā)出標志位,確定是否取消重新發(fā)起取指請求的操作。
13、作為一種優(yōu)選的實施方式,表項對應有多個標志位,基于淘汰信息更新取指目標隊列中的表項,包括:
14、對淘汰信息和表項進行標簽對比;
15、在表項命中的情況下,將命中淘汰信息的表項中的預譯碼標志位進行更新,其中,預譯碼標志位用于標識指令預取狀態(tài)。
16、作為一種優(yōu)選的實施方式,基于預取請求,確定目標表項,包括:
17、讀取預取請求攜帶的有效信號標識符和預取請求標識符,其中,有效信號標識符用于響應有效信號,預取請求標識符用于定位目標表項;
18、在有效信號標識符指示為預取請求有效的情況下,在取指目標隊列中,確定預取請求標識符指示位置所對應的表項作為目標表項。
19、作為一種優(yōu)選的實施方式,將目標表項中的穩(wěn)定緩存行存儲至流緩沖區(qū),包括:
20、讀取目標表項的取指完成標志位和沖刷狀態(tài)標志位;
21、在取指完成標志位指示當前預取指令有效,且沖刷狀態(tài)標志位指示當前數(shù)據(jù)有效的情況下,將目標表項內(nèi)存儲的指令地址作為穩(wěn)定緩存行存儲至流緩沖區(qū)。
22、作為一種優(yōu)選的實施方式,方法還包括:
23、接收來自分支預測單元的沖刷信息;
24、基于沖刷信息對取指目標隊列中各表項的沖刷狀態(tài)標志位進行更新。
25、本申請的第二方面,提出了一種預取指令管理系統(tǒng),應用于取指目標隊列,系統(tǒng)包括:
26、標簽對比模塊,用于接收來自分支預測單元的分支預測信息,并對取指目標隊列中的表項和分支預測信息進行標簽對比;
27、第一預取請求發(fā)送模塊,用于在表項命中的情況下,在命中表項中查詢分支預測信息對應的取指地址,并基于取指地址向預取單元發(fā)出預取請求;
28、第二預取請求發(fā)送模塊,用于在表項未命中的情況下,為分支預測信息分配一個新的存儲表項,并通過存儲表項將分支預測信息攜帶的取指地址發(fā)送至預取單元;
29、暫存模塊,用于接收預取單元返回的預取指令查詢請求,并基于預取指令查詢請求將查詢到的預取指令地址暫時存儲至流緩沖區(qū)。
30、本申請的第三方面,提出了一種電子設備,包括:
31、至少一個處理器;以及
32、與至少一個所述處理器通信連接的存儲器;其中,
33、所述存儲器存儲有可被所述處理器執(zhí)行的指令,所述指令用于被所述處理器執(zhí)行以實現(xiàn)上述的預取指令管理方法。
34、本申請的第四方面,提出了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機指令,所述計算機指令用于被所述計算機執(zhí)行以實現(xiàn)上述的預取指令管理方法。
35、本申請的有益效果:
36、通過接收并處理分支預測信息,在不同命中情況下,相應提取分支預測信息攜帶的取指地址,在接收到預取單元發(fā)送的預取請求時,基于預取請求,確定目標表項,并將在目標表項中查詢到的取指地址返回預取單元,解耦bpu與ifu,實現(xiàn)分支預測與指令取指并行執(zhí)行,并且能夠并行處理多個預測請求,使得ifu無需等待分支指令譯碼完成即可獲取下一指令塊的地址,避免流水線空泡,提升前端吞吐量,提高取指效率;通過狀態(tài)跟蹤和條件觸發(fā),減少無效預取對緩存帶寬的占用,優(yōu)化預取效率;通過將指令地址暫存至流緩沖區(qū),能夠使順序預取指令與流緩沖區(qū)內(nèi)的指令地址進行對比,在命中的情況下能夠輸出指令地址,減少從一級緩存等傳統(tǒng)緩存層級通路預取指令發(fā)生氣泡的可能,進一步提高取指效率,尤其在高性能處理器中,能夠大大提升取指效率。
1.一種預取指令管理方法,其特征在于,應用于取指目標隊列,所述方法包括:
2.根據(jù)權利要求1所述的預取指令管理方法,其特征在于,所述方法還包括:
3.根據(jù)權利要求2所述的預取指令管理方法,其特征在于,所述表項對應有多個標志位,所述標志位用于標記所述表項的狀態(tài)或?qū)傩裕龌谒鋈笔У刂分匦掳l(fā)起取指請求,包括:
4.根據(jù)權利要求2所述的預取指令管理方法,其特征在于,所述表項對應有多個標志位,所述基于所述淘汰信息更新所述取指目標隊列中的表項,包括:
5.根據(jù)權利要求1所述的預取指令管理方法,其特征在于,所述基于所述預取請求,確定目標表項,包括:
6.根據(jù)權利要求5所述的預取指令管理方法,其特征在于,所述將所述目標表項中的穩(wěn)定緩存行存儲至流緩沖區(qū),包括:
7.根據(jù)權利要求1所述的預取指令管理方法,其特征在于,所述方法還包括:
8.一種預取指令管理系統(tǒng),其特征在于,應用于取指目標隊列,所述系統(tǒng)包括:
9.一種電子設備,其特征在于,包括:
10.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)存儲有計算機指令,所述計算機指令用于被所述計算機執(zhí)行以實現(xiàn)權利要求1-7任一項所述的預取指令管理方法。