[發明專利]數據預取方法和內存控制器有效
| 申請號: | 201710343796.4 | 申請日: | 2017-05-16 |
| 公開(公告)號: | CN108874691B | 公開(公告)日: | 2021-04-30 |
| 發明(設計)人: | 劉天義;章隆兵;肖俊華;沈海華 | 申請(專利權)人: | 龍芯中科技術股份有限公司 |
| 主分類號: | G06F12/0862 | 分類號: | G06F12/0862 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司 11205 | 代理人: | 宋揚;劉芳 |
| 地址: | 100095 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據 方法 內存 控制器 | ||
本發明提供一種數據預取方法和內存控制器,其中,數據預取方法包括:接收高速緩沖存儲器發送的第一訪存請求,第一訪存請求包括加載地址;判斷第一訪存請求是否還包括鏈式數據預取標識,鏈式數據預取標識指示了加載地址中存儲的數據為指針,指針指向鏈式數據;若第一訪存請求包括鏈式數據預取標識,則根據加載地址獲取指針;將指針返回至高速緩沖存儲器;根據指針預取鏈式數據,并將鏈式數據存儲在預取結果緩沖器中。本發明提供的數據預取方法,提高了鏈式數據預取的效率和準確率,縮短了鏈式數據預取訪問時延。
技術領域
本發明涉及計算機技術領域的處理器設計,尤其涉及一種數據預取方法和內存控制器。
背景技術
現代處理器普遍采用多級高速緩存結構,以彌補處理器與主儲存器之間的速度差距。為了進一步提高處理器的執行效率和數據吞吐率,通常采用數據預取技術。該技術將處理器隨后要處理的數據提前放置在高速緩存中,以減少臨時訪問數據時,需要的較長延遲。
目前市場上大多數的處理器中,數據預取通常采用順序預取和跨步預取技術。順序預取是指一個接一個地連續讀取數據的預取方法,例如讀取:地址1的數據、地址2的數據、地址3的數據....。跨步預取是指按照一定的規律讀取數據的預取方法,例如讀取:地址1的數據、地址3的數據、地址5的數據…。順序預取和跨步預取多應用于提升數據局部性較好或者訪存模式比較規律的應用程序的訪存性能。數據的空間局部性較好,則數據在存儲器中的存放方式是連續的或者是有規律的。因此,對于這些數據集,采用順序預取和跨步預取的方式可以達到很好的預取效率和預取精度。
但是,對于基于鏈式數據結構(Linked Data Structure,簡稱LDS)(例如指針,鏈表,棧,圖)等的不規則數據集,物理存儲上表現為不連續或者根本沒有規律性。這種情況下,順序預取和跨步預取就無法應對這種非規則的訪存模式,因此導致傳統的預取方法對鏈式數據結構的預取效率和準確率較低、預取效果往往很差。
發明內容
本發明提供一種數據預取方法和內存控制器,縮短了鏈式數據預取訪問時延,提高了鏈式數據預取的效率和準確率。
本發明提供的數據預取方法,包括:
接收高速緩沖存儲器發送的第一訪存請求,所述第一訪存請求包括加載地址;所述第一訪存請求指示向所述高速緩沖存儲器返回所述加載地址中存儲的數據;
判斷所述第一訪存請求是否還包括鏈式數據預取標識,所述鏈式數據預取標識指示了所述加載地址中存儲的數據為指針,所述指針指向鏈式數據;
若所述第一訪存請求包括所述鏈式數據預取標識,則根據所述加載地址獲取所述指針,并將所述指針返回至所述高速緩沖存儲器;
根據所述指針預取所述鏈式數據,并將所述鏈式數據存儲在預取結果緩沖器中。
本發明提供的內存控制器,包括:
接收模塊,用于接收高速緩沖存儲器發送的第一訪存請求,所述第一訪存請求包括加載地址;所述第一訪存請求指示向所述高速緩沖存儲器返回所述加載地址中存儲的數據;
處理模塊,用于判斷所述第一訪存請求是否還包括鏈式數據預取標識,所述鏈式數據預取標識指示了所述加載地址中存儲的數據為指針,所述指針指向鏈式數據;若所述第一訪存請求包括所述鏈式數據預取標識,則根據所述加載地址獲取所述指針;
發送模塊,用于將所述指針返回至所述高速緩沖存儲器;
預取模塊,用于根據所述指針預取所述鏈式數據,并將所述鏈式數據存儲在預取結果緩沖器中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于龍芯中科技術股份有限公司,未經龍芯中科技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710343796.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:數據預取的實現方法和處理器
- 下一篇:空間存儲器流傳輸置信機制
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





