[發明專利]實現混合預取的方法及相應的裝置有效
| 申請號: | 201210077583.9 | 申請日: | 2012-03-22 |
| 公開(公告)號: | CN102662862A | 公開(公告)日: | 2012-09-12 |
| 發明(設計)人: | 程旭;黨向磊;王簫音;佟冬;陸俊林;易江芳;王克義 | 申請(專利權)人: | 北京北大眾志微系統科技有限責任公司 |
| 主分類號: | G06F12/08 | 分類號: | G06F12/08 |
| 代理公司: | 常州市維益專利事務所 32211 | 代理人: | 路接洲 |
| 地址: | 100080 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 實現 混合 方法 相應 裝置 | ||
技術領域
本發明涉及現代微處理器訪存性能優化方法,尤其涉及一種實現混合預取的方法及相應的裝置。
背景技術
隨著處理器與存儲器之間性能差距的不斷擴大,訪存延遲逐漸成為制約處理器性能的關鍵因素。數據預取技術在處理器訪問數據之前預測其訪存地址并提前發出訪存請求,以隱藏訪存延遲。數據預取技術主要可分為軟件預取技術和硬件預取技術。其中,硬件預取技術通過捕獲程序運行過程中可重復的訪存模式(Memory?Access?Pattern)來預測后續的訪存地址并自動發起預取請求。
所有緩存失效地址按時間順序組成全局失效地址流(Miss?Address?Stream)。因程序行為的復雜性,全局失效地址流的規律性較差,通常的做法是對其進行局部化(Localization),即按照某種屬性將其劃分成局部失效地址流,并在每個局部失效地址流中捕獲跨距(Stride)、地址相關(Address?Correlation)、差值相關(Delta?Correlation)等可重復訪存模式,以預測后續的訪存地址并發出預取請求。常見的局部化策略主要有兩種。PC(Program?Counter)局部化策略將訪存指令PC相同的所有失效地址劃分為一個局部失效地址流,從而可以利用一條訪存指令產生的不同訪存地址之間的訪存規律。存儲區域(Memory?Region)局部化策略將物理地址空間劃分為大小相同的存儲區域并將屬于同一存儲區域的所有失效地址劃分為一個局部失效地址流,從而可以利用不同訪存指令對同一存儲區域的訪問規律。
但是,一種局部化策略只能利用程序運行過程中的某一種訪存規律,而程序運行過程中往往同時存在多種不同的訪存規律,單一的局部化策略并不能充分利用這些訪存規律,這限制了數據預取的范圍。因此,如何以較低的開銷結合利用多種訪存規律以預取更多有用數據是提高預取性能的關鍵。
發明內容
本發明要解決的技術問題是:提出一種實現混合預取的方法及相應的裝置,能夠同時利用程序運行過程中的多種訪存規律來預取更多有用數據,以提高預取的性能。
本發明所采用的技術方案為:一種實現混合預取的方法,包括:
本發明使用全局歷史緩沖器按時間順序保存所有失效地址,使用索引表按照數據預取方法的局部化策略劃分局部失效地址流,并使用指針將屬于同一局部失效地址流的失效地址鏈接起來。
本發明在保持全局歷史緩沖器中保存的失效地址不變的基礎上,通過多個索引表和多組指針來同時實現多種數據預取方法。每增加一種數據預取方法(比如預取方法1、預取方法2、…、預取方法N),只需要增加一個索引表和一組指針。在將新的失效地址存入全局歷史緩沖器時,本發明逐個更新索引表中的指針,以將新的失效地址鏈接到按照每個預取方法的局部化策略劃分的局部失效地址流中。
在查找可重復的訪存模式并產生預取請求時,本發明按照某種順序(比如從預取方法1到預取方法N)逐個查找各預取方法的局部失效地址流。
為減少查找的時間和能耗開銷,本發明在某種預取方法下找到可重復的訪存模式時,即停止查找并產生預取請求,不再查找其余預取方法的局部失效地址流。
同時,本發明還提供了一種實現混合預取的預取器裝置,包括:
多個索引表(Index?Table),用于按照不同的局部化策略將全局失效地址流劃分成局部失效地址流,以實現多種不同的數據預取方法。每個索引表使用一種局部化策略劃分全局失效地址流,與一種數據預取方法相對應,含有全相聯或組相聯結構的多個表項,每個表項保存一個局部失效地址流的歷史訪存信息,并將該局部化策略的關鍵字作為標簽位進行索引查找,每一表項包含如下各個域:
有效位,用于標識該表項是否保存有效信息;
標簽域,用于在索引表所對應的數據預取方法中標識不同的局部失效地址流;
指針域,用于在索引表所對應的數據預取方法中指向全局歷史緩沖器中屬于該局部失效地址流的失效地址鏈。
進一步地,該裝置還包括:
包含多組指針的全局歷史緩沖器(Global?History?Buffer,GHB),用于按時間順序保存所有的緩存失效地址,并使用多組指針按照不同的局部化策略將屬于同一局部失效地址流的所有地址鏈接起來。其中,每一組指針對應一種數據預取方法,按照該數據預取方法的局部化策略,將屬于同一局部失效地址流的所有失效地址鏈接起來,以在查找可重復訪存模式時,順著指針讀出局部失效地址流的所有失效地址。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京北大眾志微系統科技有限責任公司,未經北京北大眾志微系統科技有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210077583.9/2.html,轉載請聲明來源鉆瓜專利網。





