[發明專利]用于基于預取指針的結構的系統和方法有效
| 申請號: | 202011007058.0 | 申請日: | 2020-09-23 |
| 公開(公告)號: | CN112100094B | 公開(公告)日: | 2021-07-23 |
| 發明(設計)人: | 王昊;陳飛;寇雷剛 | 申請(專利權)人: | 海光信息技術股份有限公司 |
| 主分類號: | G06F12/0862 | 分類號: | G06F12/0862;G06F12/0895;G06F9/312;G06F9/30;G06F9/32 |
| 代理公司: | 北京市柳沈律師事務所 11105 | 代理人: | 彭久云 |
| 地址: | 300392 天津市華苑產業區*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 基于 指針 結構 系統 方法 | ||
一種指針預取引擎,其包括調度器、鏈接器、步幅引擎和預取請求隊列器。調度器基于將數據加載到由指針標識的內存地址的加載指令來接收喚醒,基于喚醒識別從屬指令,并證實該從屬指令。鏈接器基于對從屬指令的證實識別包括加載指令和從屬指令的指令的生產者?消費者對,并基于指令的生產者?消費者對生成訓練請求。步幅引擎基于訓練請求確定指令的生產者?消費者對的規則重復步幅,并基于該規則重復步幅生成生產者預取請求。預取請求隊列器基于指針確定地址,修改地址,并生成預取請求,其中該預取請求用于包括修改后的虛擬地址的從屬指令。
技術領域
本公開涉及一種用于計算環境中的預取指針陣列結構的系統和方法。
背景技術
內存訪問延遲通常會導致數百個處理器周期的浪費,并且常常成為主要的性能瓶頸。該問題通常被稱為“內存墻”。
為了緩解上述問題而采取的相關方法包括緩沖和預取。緩沖是一種使用用于計算機的中央處理單元(CPU)的硬件緩存存儲器(“緩存”)來降低訪問數據的平均成本(如時間或能量)的方法。緩存是更小、更快的內存,并且更接近處理器核心,緩存可以存儲來自頻繁使用的主內存位置的數據的副本。緩沖利用了這種時間和空間的局部性。換句話說,緩沖使用緩存,其中緩存由于既可以快速傳輸數據又位于處理核心附近因而能夠被處理核心快速訪問。因此,緩沖存儲器可內置在CPU核心的管芯中。相關方法使用不同內存類型的內存架構,每級內存架構都更快,并且更接近CPU處理核心。由于更快且更接近處理核心的內存通常更昂貴,因此上述方法在內存成本與系統性能之間取得平衡。
預取是這樣一種方法,其嘗試預測將來將由處理器訪問的數據或指令,并預先準備該數據,以便在處理器需要時該數據已準備好。換句話說,預取通過預先將數據從較慢的內存引入較快的內存來優化內存架構的使用。預取方法可以被實現為預取引擎。
然而,許多程序使用指針以便于進行數據對象的動態構造。指針是一種編程語言對象,其存儲有位于計算機內存中的另一數據對象的內存地址。由于與動態分配的數據對象關聯的內存地址通常不具有規則或可預測的模式,被指針引用的數據對象可能很難預取。即使動態分配的數據對象中使用的指針本身以規則或可預測的方式組織,指針的這種不可預測的模式也是如此。例如,程序可以具有指針陣列,其中每個指針指向在程序執行期間分配和/或重新分配的對象。因此,對指針本身的訪問將具有順序模式,但是對指針所指向的對象的訪問不具有易于預取的模式。由于指針所指向的數據的內存地址無法由現有的預取引擎確定,因此無法對用于訪問指針所指向的對象的指令進行預取,由此,由于等待內存訪問(內存墻)而導致的停頓會造成處理器周期的浪費。
發明內容
本公開針對一種預取引擎,該預取引擎可以預取用于訪問由指針指向的數據的指令的數據塊,從而通過減少數據的訪問時間來提高對可用的處理器周期的有效利用。
為了使中央處理單元(CPU)對主內存中的數據進行操作,會將數據復制到寄存器中。加載指令是用于將數據從主內存復制到寄存器中的存儲指令。加載指令包括目標寄存器和主內存中的源地址,并且當處理器執行加載指令時,源地址處的數據被移動到目標寄存器中。相反,存儲指令是用于將數據從寄存器復制到主內存的存儲指令。存儲指令包括源寄存器和主內存中的目標地址,并且當執行該存儲指令時,源寄存器中的數據被移動到目標地址。由此,可以在和存儲器架構中在主內存與寄存器之間實施緩存,以加快對主內存的訪問,并有助于克服內存墻。預取器可以利用多個預取引擎來幫助預測在各種情況下對數據塊的內存訪問,并將預測的數據塊提前放入緩存中。
預取引擎基于過去的內存訪問進行訓練,根據訓練預測未來的內存訪問的地址,并嘗試訪問預測的內存地址并將其預先傳輸到緩存中。硬件預取引擎通常使用表來記錄過去的內存訪問信息,并將表中的數據用作訓練。例如,相關的預取引擎分析與存儲在表中的靜態指令或一組指令相關聯的地址歷史,以找到由靜態指令或指令組相關聯的地址歷史的常規模式。靜態指令是程序中建立的指令,并且可以由其程序計數器(PC)唯一標識,該程序計數器是相關指令的地址示例。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于海光信息技術股份有限公司,未經海光信息技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011007058.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種節能均化池曝氣系統
- 下一篇:能夠降低噴涂環境中粉末含量的噴涂系統





