[發明專利]內存數據預取方法和裝置有效
| 申請號: | 201410157970.2 | 申請日: | 2014-04-18 |
| 公開(公告)號: | CN103914394B | 公開(公告)日: | 2017-06-23 |
| 發明(設計)人: | 黃帥;王煥東;陳新科;陳廈 | 申請(專利權)人: | 龍芯中科技術有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02;G06F12/0862 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司11205 | 代理人: | 劉芳 |
| 地址: | 100095 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 數據 方法 裝置 | ||
技術領域
本發明涉及計算機存儲技術,尤其涉及一種內存數據預取方法和裝置。
背景技術
預取技術是利用處理器訪存行為的時間和空間局部性,在處理器發生高速緩沖存儲器缺失前預測需要的數據,并提前取回至離高速緩沖存儲器較近的位置,在發生高速緩沖存儲器缺失時,先查看預取的地址,如果命中則直接返回數據,可以極大的縮小訪存延遲,減少存儲器緩存缺失引起的流水線停頓,從而提高系統的性能。
為了減小對處理器硬件設計的影響,目前通常在內存控制器中增加流預取模塊(stream buffer),其主要組成部分為一個先入先出隊列(FIFO,First Input First Output),FIFO一般包含N項,每一項包含一個地址存儲單元,一個有效位和一個高速緩沖存儲器行的數據,如圖1所示的FIFO包含4項,每一項包含一個地址存儲單元,一個有效位和一個高速緩存行數據,每當檢測到高速緩沖存儲器缺失時,stream buffer向內存發出預取命令,以將下一高速緩沖存儲器行的數據預取至stream buffer,該預取過程將持續到FIFO填滿。
對于多組stream buffer結構,針對數據流的訪存請求之間存在訪存沖突時,多個訪存沖突的訪存請求交叉訪問內存將導致大量的頁打開和頁關閉操作,增加內存數據返回時延,同時增加內存功率消耗。
發明內容
本發明提供一種內存數據預取方法和裝置,以縮短內存數據返回時延,減少內存功率的消耗。
第一方面,本發明提供一種內存數據預取方法,包括:
向內存發送預取命令;
將N個預取地址分別寫入一個N項先入先出隊列FIFO的每一項中,其中,N≥1;
從所述內存一次獲取存儲在所述N個預取地址的N個數據項;
將所述N個數據項存儲于所述N項FIFO的每一項中。
在第一方面的第一種可能的實現方式中,所述將N個預取地址分別寫入一個N項FIFO的每一項中,包括:
將所述N個預取地址分別寫入所述N項FIFO的N個地址存儲單元中,所述N個地址存儲單元中設有與所述N個預取地址對應的N個地址有效位;并將與所述N個預取地址對應的所述N個地址有效位均置為有效;
相應的,所述將所述N個數據項存儲于所述N項FIFO的每一項中,包括:
將所述N個數據項分別存儲于所述N項FIFO的N個數據存儲單元中,所述N個數據存儲單元中設有與所述N個數據項對應的N個數據有效位;并將與所述N個數據項對應的所述N個數據有效位置為有效。
根據第一方面的第一種可能的實現方式,在第二種可能的實現方式中,所述方法還包括:
接收高速緩存缺失命令,所述高速緩存缺失命令中包含缺失地址;
若判斷出所述缺失地址與所述N個地址存儲單元中的首個預取地址相同,且所述首個預取地址對應的地址有效位為有效,則判定為命中預取數據;
將所述首個預取地址所對應的地址有效位置為無效。
根據第一方面的第二種可能的實現方式,在第三種可能的實現方式中,所述將所述首個預取地址所對應的地址有效位置為無效之后,還包括:
若與所述缺失地址相同的所述首個預取地址的地址有效位為無效,且與所述首個預取地址對應的數據項的數據有效位為有效,則將所述數據項返回高速緩沖存儲器;
在將所述數據項返回所述高速緩沖存儲器后,將所述數據項對應的數據有效位置為無效。
根據第一方面的第二種可能的實現方式,在第四種可能的實現方式中,還包括:
若判斷出所述缺失地址與所述N個地址存儲單元中的首個預取地址不相同,則判定為沒有命中預取數據。
結合第一方面的第二種至第四種可能的實現方式,在第五種可能的實現方式中,所述向內存發送預取命令包括:
判斷出所述N個預取地址對應的地址有效位均為無效,且所述N個數據項的對應的數據有效位均為無效時,向所述內存發送所述預取命令。
第二方面,本發明提供一種內存數據預取裝置,包括:
發送模塊,用于向內存發送預取命令;
寫入模塊,用于將N個預取地址分別寫入一個N項先入先出隊列FIFO的每一項中,其中,N≥1;
獲取模塊,用于從所述內存一次獲取存儲在所述N個預取地址的N個數據項;
存儲模塊;用于將所述N個數據項存儲于所述N項FIFO的每一項中。
在第二方面的第一種可能的實現方式中,還包括:置位模塊;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于龍芯中科技術有限公司,未經龍芯中科技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410157970.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:控制乙醇生產中的細菌生物膜
- 下一篇:通過超級電子供體的砜轉化方法
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





