[發明專利]多級指令高速緩存預取有效
| 申請號: | 201210520348.4 | 申請日: | 2012-12-06 |
| 公開(公告)號: | CN103218309A | 公開(公告)日: | 2013-07-24 |
| 發明(設計)人: | 王若凡;杰克·希萊爾·肖凱特 | 申請(專利權)人: | 輝達公司 |
| 主分類號: | G06F12/08 | 分類號: | G06F12/08 |
| 代理公司: | 北京市磐華律師事務所 11336 | 代理人: | 徐丁峰;魏寧 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 多級 指令 高速緩存 | ||
技術領域
本發明總地涉及計算機架構,并且,更具體地,涉及用于多線程處理器的多級指令高速緩存預取。
背景技術
在諸如多線程處理器的高速計算系統中的慣例是利用多級高速緩存系統來在獲取(fetch)指令期間減少延遲。第一級高速緩存級別稱為一級(L1)高速緩存并且一般是與處理器緊密相關的小型高速存儲器。L1高速緩存通常具有各種高速緩存級別的最低存儲器訪問延遲并且含有處理器頻繁訪問或有可能最近要訪問的指令。當在由處理器訪問指令之時或之前將指令存儲在L1高速緩存中時,性能得到提高。二級(L2)高速緩存一般是比L1高速緩存更大且更慢、但比系統存儲器快的存儲器。一些高速緩存系統可采用在L1和L2高速緩存之間的、延遲和大小處于L1和L2高速緩存之間某處的中間級(L1.5)高速緩存。
常規地,當處理器訪問新指令時,處理系統內的獲取單元首先在L1高速緩存中搜尋指令。如果L1高速緩存命中(即指令實際上存在于L1高速緩存中),那么轉移(transfer)指令并執行存儲器訪問操作。如果指令不在L1高速緩存中,那么L1高速緩存未命中(miss),并且獲取單元不得不嘗試在L1.5高速緩存中尋找指令。如果在L1.5高速緩存中未命中,那么獲取單元隨后在L2高速緩存中搜尋指令,并且如果L2高速緩存未命中,那么最后搜索系統存儲器。
當以可預見的方式進行指令訪問時,可通過在處理器嘗試從L1高速緩存訪問相應的指令之前從L1.5高速緩存預取高速緩存線并轉移這些高速緩存線至L1高速緩存來改善L1高速緩存命中率。處理器可預見地在連續的存儲器地址位置訪問指令,除非出現至非序列性(non-sequential)存儲器位置的支路。因此,如果處理器正在訪問在特定L1高速緩存線的位置,那么獲取單元一般從L1.5高速緩存預取高速緩存線,其含有緊跟隨當前L1高速緩存線的存儲器位置。該下一個的高速緩存線可稱為預取目標,并且位于在緊跟隨與當前L1高速緩存線相對應的L1.5高速緩存地址的L1.5高速緩存內。如果預取操作成功,那么到處理器到達緊跟隨當前L1高速緩存線的存儲器地址位置時,下一個L1高速緩存線已從L1.5高速緩存被預取并存儲在更快的L1高速緩存內。用這種方式,成功的預取增加了在L1高速緩存內的命中率。序列性的存儲器訪問一般致使高速緩存命中。可在高速緩存層級內的任一級采用類似的技術。例如,L1.5高速緩存可從L2高速緩存預取線,并且L2高速緩存可從系統存儲器預取線。
在一種預取方法中,處理器可一次從L1高速緩存訪問兩條指令,其中每個L1高速緩存線均包括八條指令。這種技術稱作“扇形”訪問,其中每對指令代表L1高速緩存線內的“扇區(sector)”,且每個L1高速緩存線具有四個扇區。獲取單元在任意給定時間監視處理器訪問哪個扇區并使用該信息來預取下一個L1高速緩存線。此外,如果預取操作成功,那么到處理器消耗當前L1高速緩存線中最后的扇區時,下一個L1高速緩存已從L1.5高速緩存被預取并存儲在L1高速緩存內。
該常規方法預取指令的一個缺點是,更快的處理器可一次轉移整個L1高速緩存線(在該示例中含有八條指令)。在這種情況下,為了從L1.5高速緩存預取附加的高速緩存線,獲取單元不能逐扇區地監視處理器訪問。該方法的另一個缺點是,更快的處理器可以以如此高的速率消耗指令,以致于獲取單元不能足夠快地預取L1高速緩存線,致使高速緩存未命中增加。為了克服該第二種問題,獲取單元可從L1.5高速緩存向前預取兩個L1高速緩存線,力圖在處理器訪問L1高速緩存線之前填充那些線。然而,如果有指向非序列性位置的支路,則處理器通常以引發兩個或更多個高速緩存未命中而結束,對于每條所執行的支路,不是只一個高速緩存未命中,而是支路目標的前兩個高速緩存線的每一個都有一個高速緩存未命中。因此,高速緩存未命中增加,從而降低了總體性能。
如前述示出的,本領域中需要更優化的方式來在具有多級指令高速緩存層級的系統中預取指令。
發明內容
本發明的一個實施例闡釋了用于預取高速緩存線的計算機實現的方法。獲取單元確定在第一高速緩存內的存儲器位置。所述獲取單元生成偽隨機數。所述獲取單元隨后選擇在所述第一高速緩存內的與所述存儲器位置和所述偽隨機數相關聯的第一高速緩存線。所述獲取單元在第二高速緩存內的第一高速緩存線內定位第一扇區,其中所述第一扇區與在所述第一高速緩存內的所述第一高速緩存線相對應。所述獲取單元隨后轉移所述第一扇區到在所述第一高速緩存內的所述第一高速緩存線。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于輝達公司,未經輝達公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210520348.4/2.html,轉載請聲明來源鉆瓜專利網。





