午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種讀取緩存數(shù)據(jù)的方法、旁路裝置及緩存系統(tǒng)的制作方法

文檔序號:10624516閱讀:511來源:國知局
一種讀取緩存數(shù)據(jù)的方法、旁路裝置及緩存系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例提供了一種讀取緩存數(shù)據(jù)的方法、旁路裝置及緩存系統(tǒng),其中方法包括:根據(jù)i級緩存中各數(shù)據(jù)的重用概率以及緩存系統(tǒng)的旁路特征值λ確定i級緩存和i-1級緩存間的旁路深度d,其中i是大于或等于3的整數(shù),旁路特征值λ與緩存系統(tǒng)中i級緩存和i-1級緩存的讀寫能耗有關;從i級緩存讀取數(shù)據(jù)之前,查詢數(shù)據(jù)的第一重用次數(shù),并將第一重用次數(shù)與旁路深度d進行比較;若第一重用次數(shù)小于旁路深度d,則從i級緩存讀取數(shù)據(jù)后,將數(shù)據(jù)寫入i-2級緩存,使所述數(shù)據(jù)從所述i-2級緩存逐級加載到一級緩存,以減少讀取所述數(shù)據(jù)所消耗的能量。本發(fā)明實施例適用于對稱性緩存和非對稱性緩存,能降低緩存系統(tǒng)的讀寫能耗,確保旁路決策能提高緩存系統(tǒng)的讀寫效率。
【專利說明】
-種讀取緩存數(shù)據(jù)的方法、旁路裝置及緩存系統(tǒng)
技術領域
[0001] 本發(fā)明設及存儲技術領域,尤其設及一種讀取緩存數(shù)據(jù)的方法、旁路裝置及緩存 系統(tǒng)。
【背景技術】
[0002] 緩存(Cache)是可W進行高速數(shù)據(jù)交換的存儲器,緩存的出現(xiàn)主要是為了解決 CPU運算速率與內(nèi)存讀寫速率不匹配的問題。在緩存中的數(shù)據(jù)是內(nèi)存中的一小部分,但運一 小部分是短時間內(nèi)CPU即將訪問的,由此能夠加快讀取速率。
[0003] 緩存通常分為一級高速緩存化ICache)、二級高速緩存化2Cache)或Ξ級高速緩 存化3Cache)。為了改善緩存性能和功耗,現(xiàn)有技術提出一種末級高速緩存旁路的方法,在 Ξ級高速緩存中,當CPU想訪問的數(shù)據(jù)A不在一級緩存中時便產(chǎn)生失效,若數(shù)據(jù)A在第Ξ級 高速緩存中,通過記錄數(shù)據(jù)A和數(shù)據(jù)B的訪問順序決定將數(shù)據(jù)A與二級緩存的數(shù)據(jù)B替換, 或者旁路數(shù)據(jù)A,即繞過二級緩存,將數(shù)據(jù)A直接調(diào)入一級緩存。記錄訪問順序的方法可通 過計算數(shù)據(jù)的重用距離實現(xiàn),重用距離是指同一數(shù)據(jù)的相鄰兩次訪問之間所間隔的數(shù)據(jù)的 訪問個數(shù)。若數(shù)據(jù)A在第二次訪問時被先訪問,例如圖1所示,CPU訪問數(shù)據(jù)的順序如下: DBACGAE陽B,則數(shù)據(jù)A的重用距離為2,數(shù)據(jù)B的重用距離為7,說明數(shù)據(jù)A的重用距離小于 數(shù)據(jù)B的重用距離,則可將數(shù)據(jù)A與數(shù)據(jù)B直接替換;若數(shù)據(jù)B在第二次訪問時被先訪問, 說明數(shù)據(jù)A的重用距離大于數(shù)據(jù)B的重用距離,則可直接旁路數(shù)據(jù)A,將數(shù)據(jù)A直接調(diào)入一 級緩存;若數(shù)據(jù)A與數(shù)據(jù)B的重用距離都為無窮大,或者數(shù)據(jù)A與數(shù)據(jù)B的重用距離相同, 則依然直接旁路數(shù)據(jù)A。
[0004] 然而,現(xiàn)有技術僅僅根據(jù)記錄數(shù)據(jù)的訪問順序來決定是否旁路該數(shù)據(jù),而不關屯、 每個訪問的數(shù)據(jù)的重用次數(shù)。在數(shù)據(jù)A的重用距離小于數(shù)據(jù)B的重用距離的情況下,若數(shù) 據(jù)A的重用次數(shù)小于數(shù)據(jù)B的重用次數(shù),將數(shù)據(jù)A與數(shù)據(jù)B直接替換會導致重用次數(shù)多的 數(shù)據(jù)B反而被排除,使得旁路效率下降。此外,替換過程中也會帶來讀寫能量的額外開銷, 導致緩存的性能降低。

【發(fā)明內(nèi)容】

[0005] 本發(fā)明提供一種讀取緩存數(shù)據(jù)的方法及旁路裝置,可提高緩存效率,降低讀寫操 作消耗的能量。
[0006] 本發(fā)明實施例第一方面提供一種讀取緩存數(shù)據(jù)的方法,應用于緩存系統(tǒng),所述緩 存系統(tǒng)包括N級緩存和至少一個旁路裝置,所述方法可包括:
[0007] 根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值λ確定所述i級 緩存和i-1級緩存間的旁路深度d,其中i是大于或等于3的整數(shù),所述旁路特征值λ與所 述緩存系統(tǒng)中所述i級緩存和所述i-1級緩存的讀寫能耗有關,所述i級緩存中一塊數(shù)據(jù) 的重用概率為在所述i級緩存中與所述一塊數(shù)據(jù)的重用次數(shù)相同的數(shù)據(jù)量占所述i級緩存 的總數(shù)據(jù)量的比例,所述旁路深度d表示從所述i級緩存讀取所述數(shù)據(jù)后,當將所述數(shù)據(jù)寫 入i-2級緩存所消耗的能量小于將所述數(shù)據(jù)寫入i-1級緩所消耗的能量時,所述數(shù)據(jù)的最 大重用次數(shù);
[0008] 從所述i級緩存讀取數(shù)據(jù)之前,向所述i級緩存查詢所述數(shù)據(jù)的第一重用次數(shù),并 將所述第一重用次數(shù)與所述旁路深度d進行比較,其中所述第一重用次數(shù)為所述數(shù)據(jù)放置 入所述i級緩存之后在所述i級緩存中被訪問的次數(shù);
[0009] 若所述第一重用次數(shù)小于所述旁路深度d,則從所述i級緩存讀取所述數(shù)據(jù)后,將 所述數(shù)據(jù)寫入i-2級緩存,使所述數(shù)據(jù)從所述i-2級緩存逐級加載到一級緩存,W減少讀取 所述數(shù)據(jù)所消耗的能量。
[0010] 結合第一方面,在第一種可能的實現(xiàn)方式中,所述將所述第一重用次數(shù)與所述旁 路深度d進行比較之后,所述方法還包括:
[0011] 若所述第一重用次數(shù)大于或等于所述旁路深度d,則從所述i級緩存讀取所述數(shù) 據(jù)后,將所述數(shù)據(jù)寫入i-1級緩存,使所述數(shù)據(jù)從所述i-1級緩存逐級加載到所述一級緩 存。
[0012] 結合第一方面,在第二種可能的實現(xiàn)方式中,所述將所述數(shù)據(jù)寫入i-2級緩存之 后,所述方法還包括:
[0013] 統(tǒng)計每個數(shù)據(jù)的第二重用次數(shù),其中一個數(shù)據(jù)的第二重用次數(shù)為所述一個數(shù)據(jù)在 所述緩存系統(tǒng)的所有緩存層中的總重用次數(shù);
[0014] 統(tǒng)計第二重用次數(shù)大于或等于所述旁路深度d的數(shù)據(jù)第一數(shù)量d、第二重用次 數(shù)大于或等于d+n的數(shù)據(jù)的第二數(shù)量d+。、W及第二重用次數(shù)大于或等于d-m的數(shù)據(jù)的第 Ξ數(shù)量d m,其中η和m為正整數(shù);
[0015] 根據(jù)所述第一數(shù)量d、所述第二數(shù)量d+。和所述第Ξ數(shù)量N > d m之間的比例關 系調(diào)整所述旁路深度d。
[0016] 結合第一方面的第二種可能的實現(xiàn)方式,在第Ξ種可能的實現(xiàn)方式中,所述根據(jù) 所述第一數(shù)量d、所述第二數(shù)量d+。和所述第Ξ數(shù)量N > d m之間的比例關系調(diào)整所述旁 路深度d,包括:
[0017] 若
則將所述旁路深度d至少加1 ;
[0018] 重
則將所述旁路深度d至少減1。
[0019] 結合第一方面W及第一方面的第一至第Ξ種可能的實現(xiàn)方式中的任一項,在第四 種可能的實現(xiàn)方式中,
[0020] 所述旁路特征值
[0021] 其中所述Ri為從所述i級緩存讀取所述數(shù)據(jù)所消耗的能量,所述R α mw為檢測所 述i-1級緩存未存儲有所述數(shù)據(jù)所消耗的能量,所述Ri 1為從所述i-1級緩存加載所述數(shù) 據(jù)所消耗的能量,所述Wi 1為將所述數(shù)據(jù)寫入所述i-1級緩存所消耗的能量,所述Ri、所述 R。lUag、所述Ri郝所述W i 1是預先測量的定值。
[0022] 結合第一方面的第二種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述根據(jù) 所述第一數(shù)量d、所述第二數(shù)量d+。和所述第Ξ數(shù)量N > d m之間的比例關系調(diào)整所述旁 路深度d,具體為:
[0023] 在每一段時間間隔,根據(jù)所述第一數(shù)量N > t所述第二數(shù)量N > d+n和所述第Ξ 數(shù)量N > d-m之間的比例關系判斷是否需要調(diào)整所述旁路深度山并在判斷結果為"是"時 調(diào)整所述旁路深度d ;
[0024] 所述方法還包括:
[00巧]若判斷為需要調(diào)整所述旁路深度d,則縮短所述時間間隔;
[00%] 若判斷為不需要調(diào)整所述旁路深度d,則延長所述時間間隔。
[0027] 本發(fā)明實施例第二方面提供了一種旁路裝置,可包括輸入裝置、輸出裝置和處理 器,其中所述所述處理器用于:
[0028] 根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值λ確定所述i級 緩存和i-1級緩存間的旁路深度d,其中i是大于或等于3的整數(shù),所述旁路特征值λ與所 述緩存系統(tǒng)中所述i級緩存和所述i-1級緩存的讀寫能耗有關,所述i級緩存中一塊數(shù)據(jù) 的重用概率為在所述i級緩存中與所述一塊數(shù)據(jù)的重用次數(shù)相同的數(shù)據(jù)量占所述i級緩存 的總數(shù)據(jù)量的比例,所述旁路深度d表示從所述i級緩存讀取所述數(shù)據(jù)后,當將所述數(shù)據(jù)寫 入i-2級緩存所消耗的能量小于將所述數(shù)據(jù)寫入i-1級緩所消耗的能量時,所述數(shù)據(jù)的最 大重用次數(shù);
[0029] 從所述i級緩存讀取數(shù)據(jù)之前,向所述i級緩存查詢所述數(shù)據(jù)的第一重用次數(shù),并 將所述第一重用次數(shù)與所述旁路深度d進行比較,其中所述第一重用次數(shù)為所述數(shù)據(jù)放置 入所述i級緩存之后在所述i級緩存中被訪問的次數(shù);
[0030] 當所述第一重用次數(shù)小于所述旁路深度d時,從所述i級緩存讀取所述數(shù)據(jù)后,將 所述數(shù)據(jù)寫入i-2級緩存,使所述數(shù)據(jù)從所述i-2級緩存逐級加載到一級緩存,W減少讀取 所述數(shù)據(jù)所消耗的能量。
[0031] 結合第二方面,在第一種可能的實現(xiàn)方式中,將所述第一重用次數(shù)與所述旁路深 度d進行比較之后,所述處理器還用于:
[0032] 當所述第一重用次數(shù)大于或等于所述旁路深度d時,從所述i級緩存讀取所述數(shù) 據(jù)后,將所述數(shù)據(jù)寫入i-1級緩存,使所述數(shù)據(jù)從所述i-1級緩存逐級加載到所述一級緩 存。
[0033] 結合第二方面,在第二種可能的實現(xiàn)方式中,所述將所述數(shù)據(jù)寫入i-2級緩存之 后,所述處理器還用于:
[0034] 通過計數(shù)器統(tǒng)計每個數(shù)據(jù)的第二重用次數(shù),其中一個數(shù)據(jù)的第二重用次數(shù)為所述 一個數(shù)據(jù)在所述緩存系統(tǒng)的所有緩存層中的總重用次數(shù);
[0035] 統(tǒng)計第二重用次數(shù)大于或等于所述旁路深度d的數(shù)據(jù)的第一數(shù)量d、第二重用 次數(shù)大于或等于d+n的數(shù)據(jù)的第二數(shù)量d+。、W及第二重用次數(shù)大于或等于d-m的數(shù)據(jù)的 第Ξ數(shù)量d m,其中η和m為正整數(shù);
[0036] 調(diào)整模塊,用于根據(jù)所述第一數(shù)量d、所述第二數(shù)量d+。和所述第Ξ數(shù)量N > d m 之間的比例關系調(diào)整所述旁路深度d。
[0037] 結合第二方面的第二種可能的實現(xiàn)方式,在第Ξ種可能的實現(xiàn)方式中,所述調(diào)整 模塊,具體用于:
[0038] 老
則在所述旁路深度d的預設范圍內(nèi)將所述旁路深度d至少加 1 ;
[0039] 若
,則在所述旁路深度d的預設范圍內(nèi)將所述旁路深度d至少減 1〇
[0040] 結合第二方面W及第二方面的第一至第Ξ種可能的實現(xiàn)方式中的任一項,在第四 種可能的實現(xiàn)方式中,
[0041] 所述旁路特征值
[00創(chuàng)其中所述Ri為從所述i級緩存讀取所述數(shù)據(jù)所消耗的能量,所述R ut。,為檢測所 述i-1級緩存未存儲有所述數(shù)據(jù)所消耗的能量,所述Ri 1為從所述i-1級緩存加載所述數(shù) 據(jù)所消耗的能量,所述Wi 1為將所述數(shù)據(jù)寫入所述i-1級緩存所消耗的能量,所述Ri、所述 R。lUag、所述Ri郝所述W i 1是預先測量的定值。
[0043] 結合第二方面的第二種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述處理 器根據(jù)所述第一數(shù)量d、所述第二數(shù)量d+。和所述第Ξ數(shù)量N > d m之間的比例關系調(diào)整 所述旁路深度d,具體為:
[0044] 在每一段時間間隔,根據(jù)所述第一數(shù)量N > t所述第二數(shù)量N > d+n和所述第Ξ 數(shù)量N > d-m之間的比例關系判斷是否需要調(diào)整所述旁路深度d,并在所述判斷的結果為 "是"時調(diào)整所述旁路深度d;
[0045] 所述處理器還用于:
[0046] 在所述判斷的結果為"是"時,縮短所述時間間隔;
[0047] 在所述判斷的結果為"否"時,延長所述時間間隔。
[0048] 本發(fā)明實施例第Ξ方面提供了一種緩存系統(tǒng),所述緩存系統(tǒng)包括至少一個旁路裝 置W及N級緩存,其中所述至少一個旁路裝置為第二方面W及第二方面的第一至第六種可 能的實現(xiàn)方式中任一項所述的旁路裝置,用于在處理核屯、請求從i級緩存讀取數(shù)據(jù)時,決 定所述數(shù)據(jù)從所述i級緩存到一級緩存的路徑,其中i和N都是整數(shù)并且3《i《N。
[0049] 本發(fā)明實施例中,根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值 λ確定旁路深度d,查詢待讀取的數(shù)據(jù)在i級緩存的第一重用次數(shù),如果該數(shù)據(jù)在i級緩存 的第一重用次數(shù)小于旁路深度山則旁路該數(shù)據(jù),即從i級緩存讀取該數(shù)據(jù)后,繞開i-1級 緩存,直接將該數(shù)據(jù)寫入i-2級緩存。由于旁路特征值λ是結合緩存系統(tǒng)中i級緩存和 i-1級緩存的寫能耗和讀能耗來計算得到的,根據(jù)旁路特征值λ確定旁路深度d并結合旁 路深度d和數(shù)據(jù)的第一重用次數(shù)進行旁路決策,不僅適用于一般的對稱性緩存,還能為非 對稱緩存提供準確的判斷依據(jù)W判斷將數(shù)據(jù)旁路是否確實能降低緩存系統(tǒng)的讀寫能耗,確 保旁路決策能提高緩存系統(tǒng)的讀寫效率。
【附圖說明】
[0050] 為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例描述中所需要使用 的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域 普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可W根據(jù)運些附圖獲得其他的附 圖。
[0051] 圖1是現(xiàn)有技術中數(shù)據(jù)的重用距離的示意圖;
[0052] 圖2是本發(fā)明實施例提供的讀取緩存數(shù)據(jù)的方法的第一實施例流程示意圖;
[0053] 圖3是本發(fā)明實施例提供的讀取緩存數(shù)據(jù)的方法的第二實施例流程示意圖;
[0054] 圖4是本發(fā)明實施例的緩存系統(tǒng)中數(shù)據(jù)被訪問時的情況示意圖;
[0055] 圖5是本發(fā)明實施例提供的旁路裝置的第一實施例結構示意圖;
[0056] 圖6是本發(fā)明實施例提供的緩存系統(tǒng)的第一實施例結構示意圖。
【具體實施方式】
[0057] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā) 明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施 例,都屬于本發(fā)明保護的范圍。
[0058] 貫穿本說明書,術語"重用"指的是數(shù)據(jù)在初始放置入緩存系統(tǒng)之后被訪問。
[0059] 貫穿本說明書,術語"第一重用次數(shù)"指的是數(shù)據(jù)在初始放置入某一緩存層后在該 緩存層中被訪問的次數(shù)。
[0060] 貫穿本說明書,術語"第二重用次數(shù)"指的是數(shù)據(jù)在初始放置入緩存系統(tǒng)后在該緩 存系統(tǒng)的所有緩存層中被訪問的次數(shù)。
[0061] 貫穿本說明書,術語"重用概率"指的是在某一緩存層中第一重用次數(shù)相同的一 些數(shù)據(jù)占該緩存層中總數(shù)據(jù)量的比例。
[0062] 貫穿本說明書,術語"旁路"指的是從低級緩存讀取數(shù)據(jù)時,繞過與該低級緩存相 鄰的一層或多層較高級緩存,將數(shù)據(jù)直接寫入到更高級的緩存。
[0063] 貫穿本說明書,術語"旁路特征值"是緩存系統(tǒng)的固有屬性,用于計算將數(shù)據(jù)旁路 是否比不旁路所消耗的能量更少。
[0064] 貫穿本說明書,術語"旁路深度"指的是當數(shù)據(jù)旁路所消耗的能量少于不旁路所消 耗的能量時,該數(shù)據(jù)的最大重用次數(shù)。 W65]貫穿本說明書,術語"讀寫能耗"指的是緩存系統(tǒng)對數(shù)據(jù)進行讀操作所消耗的能量 W及緩存系統(tǒng)對數(shù)據(jù)進行寫操作所消耗的能量。
[0066] 本發(fā)明實施例提供了一種讀取緩存數(shù)據(jù)的方法、旁路裝置及緩存系統(tǒng),可做出正 確的旁路決策W提高緩存系統(tǒng)的讀寫效率。W下將結合附圖進行詳細說明。
[0067] 請參閱圖2,圖2是本發(fā)明實施例提供的讀取緩存數(shù)據(jù)的方法的第一實施例流程 示意圖。該方法由旁路裝置執(zhí)行,可應用于包括N級緩存和至少一個上述旁路裝置的緩存 系統(tǒng),如圖2所示,該方法可W包括W下步驟。
[0068] S200,根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值λ確定所述 i級緩存和i-1級緩存間的旁路深度d。
[0069] 其中i和N都是整數(shù)并且3《i《N,例如在如今應用的大多數(shù)緩存系統(tǒng)中,N最 多等于3,但隨著存儲技術的發(fā)展,或者在如今的一些的緩存系統(tǒng)中,N也可能大于3,例如N =4。本發(fā)明實施例中,旁路深度d表示從所述i級緩存讀取所述數(shù)據(jù)后,當將所述數(shù)據(jù)寫 入i-2級緩存所消耗的能量小于將所述數(shù)據(jù)寫入i-1級緩所消耗的能量時,所述數(shù)據(jù)的最 大重用次數(shù)。
[0070] 在一些可行的實施方式中,i級緩存中任意一塊數(shù)據(jù)的重用概率可W用i級緩存 中與該塊數(shù)據(jù)的重用次數(shù)相同的數(shù)據(jù)量占 i級緩存中總數(shù)據(jù)量的比例來表示。假設在i級 緩存中重用次數(shù)為j的數(shù)據(jù)量占 i級緩存總數(shù)據(jù)量的比例為P,,j為大于或等于0的整數(shù), 則旁路深度d可根據(jù)公式
嵩到。
[0071] 所述旁路特征值λ與所述緩存系統(tǒng)中所述i級緩存和所述i-1級緩存的讀寫能 耗有關。具體地,λ可W根據(jù)從i級緩存讀取所述數(shù)據(jù)所需的能量、將所述數(shù)據(jù)寫入i-1級 緩存所需的能量、從i-1級緩存至二級緩存取所述數(shù)據(jù)所需的能量和/或檢測確定i-1級 緩存至二級緩存都未存儲有所述數(shù)據(jù)所需的能量等參數(shù)計算得到。
[0072] 可選地,本發(fā)明實施例中的數(shù)據(jù),可W是W塊為單位的大小相等的數(shù)據(jù)塊,也可W 是W文件為單位的大小不等的數(shù)據(jù)。
[0073] S201,從所述i級緩存讀取數(shù)據(jù)之前,向所述i級緩存查詢所述數(shù)據(jù)的第一重用次 數(shù),并將所述第一重用次數(shù)與所述旁路深度d進行比較。
[0074] 本發(fā)明實施例中,所述數(shù)據(jù)的所述第一重用次數(shù)為所述數(shù)據(jù)放置入所述i級緩存 之后在所述i級緩存中被訪問的次數(shù),所述數(shù)據(jù)若在其他緩存層中被重用,不計入所述第 一重用次數(shù)。本發(fā)明實施例中,第一重用次數(shù)用DRC值ata Reuse count,數(shù)據(jù)重用計數(shù))來 表不。
[00巧]在一些可行的實施方式中,各緩存層可通過計數(shù)器統(tǒng)計每個數(shù)據(jù)的第一重用次 數(shù)。當一塊數(shù)據(jù)被初始放置到某一級緩存時,該數(shù)據(jù)在該級緩存的DRC值為0。此后該數(shù)據(jù) 每在該級緩存中被訪問一次,該級緩存的計數(shù)器則將該數(shù)據(jù)的DRC值加1。
[0076] 當確定了需要從i級緩存讀取的數(shù)據(jù)后,可W向i級緩存層查詢該數(shù)據(jù)在i級緩 存中的DRC值,并將該數(shù)據(jù)的DRC值與旁路深度d進行比較。
[0077] S202,若所述第一重用次數(shù)小于所述旁路深度d,則從所述i級緩存讀取所述數(shù)據(jù) 后,將所述數(shù)據(jù)寫入i-2級緩存,使所述數(shù)據(jù)從所述i-2級緩存逐級加載到一級緩存,W減 少讀取所述數(shù)據(jù)所消耗的能量。
[0078] 本發(fā)明實施例中,旁路深度d是自定義的用于篩選需要旁路的數(shù)據(jù)的一個參數(shù)。 當i級緩存中某些數(shù)據(jù)的DRC值小于旁路深度d時,認為將該數(shù)據(jù)旁路更加節(jié)能,即讀取該 數(shù)據(jù)所花的代價更小,此時可作出旁路決策:從i級緩存讀取該數(shù)據(jù)后應將該數(shù)據(jù)直接寫 入i-2級緩存。本發(fā)明實施例中,旁路表示數(shù)據(jù)繞過某一級緩存直接寫入到更高級的緩存, 例如從Ξ級緩存讀取的數(shù)據(jù)繞過二級緩存而直接寫入到一級緩存。
[0079] 具體實施中,將數(shù)據(jù)寫入i-2級緩存之后,該數(shù)據(jù)可W從i-2級緩存逐級加載到一 級緩存(即按照i-2、i-3、……1的順序逐級加載),處理核屯、最終從一級緩存讀取該數(shù)據(jù)。
[0080] 考慮到對一些緩存器而言,讀操作和寫操作的所花的代價是不一樣的,例如非易 失存儲技術中,寫操作的延遲和能耗是讀操作的數(shù)倍,而旁路特征值λ是結合緩存系統(tǒng)中 一些緩存級的寫能耗和讀能耗來計算得到的,根據(jù)旁路特征值λ確定旁路深度d,能更加 準確地判斷一些數(shù)據(jù)是否旁路能更加節(jié)能。
[0081] 本發(fā)明實施例中,根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值 λ確定旁路深度d,查詢待讀取的數(shù)據(jù)在i級緩存的第一重用次數(shù),如果該數(shù)據(jù)在i級緩存 的第一重用次數(shù)小于旁路深度d,則旁路該數(shù)據(jù),即從i級緩存讀取該數(shù)據(jù)后,繞開i-1級緩 存,直接將該數(shù)據(jù)寫入i-2級緩存。由于旁路特征值λ是結合緩存系統(tǒng)中i級緩存和i-1 級緩存的寫能耗和讀能耗來計算得到的,根據(jù)旁路特征值λ確定旁路深度d并結合旁路深 度d和數(shù)據(jù)的第一重用次數(shù)進行旁路決策,不僅適用于一般的對稱性緩存,還能為非對稱 緩存提供準確的判斷依據(jù)W判斷將數(shù)據(jù)旁路是否確實能降低緩存系統(tǒng)的讀寫能耗,確保旁 路決策能提高緩存系統(tǒng)的讀寫效率。
[0082] 請參閱圖3,圖3是本發(fā)明實施例提供的讀取緩存數(shù)據(jù)的方法的第二實施例流程 示意圖。該方法由旁路裝置執(zhí)行,可應用于包括N級緩存和至少一個上述旁路裝置的緩存 系統(tǒng),如圖3所示,該方法可W包括W下步驟。
[0083] S300,根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值λ確定所述 i級緩存和i-1級緩存間的旁路深度d。
[0084] 其中i和N都是整數(shù)并且3《i《N,例如在如今應用的大多數(shù)緩存系統(tǒng)中,i最 多等于3,但隨著存儲技術的發(fā)展,或者在如今的一些緩存系統(tǒng)中,i也可能大于3,例如i =4。本發(fā)明實施例中,旁路深度d表示從所述i級緩存讀取所述數(shù)據(jù)后,當將所述數(shù)據(jù)寫 入i-2級緩存所消耗的能量小于將所述數(shù)據(jù)寫入i-1級緩所消耗的能量時,所述數(shù)據(jù)的最 大重用次數(shù)。
[00化]在一些可行的實施方式中,i級緩存中任意一塊數(shù)據(jù)的重用概率可W用i級緩存 中與該塊數(shù)據(jù)的重用次數(shù)相同的數(shù)據(jù)量占 i級緩存中總數(shù)據(jù)量的比例來表示。假設在i級 緩存中重用次數(shù)為j的數(shù)據(jù)量占 i級緩存總數(shù)據(jù)量的比例為門,j為大于或等于0的整數(shù), 則旁路深度d可根據(jù)公
得到。
[0086] 所述旁路特征值λ與所述緩存系統(tǒng)中所述i級緩存和所述i-1級緩存的讀寫能 耗有關。具體地,λ可W根據(jù)從i級緩存讀取所述數(shù)據(jù)所需的能量、將所述數(shù)據(jù)寫入i-1級 緩存所需的能量、從i-1級緩存至二級緩存取所述數(shù)據(jù)所需的能量和/或檢測確定i-1級 緩存至二級緩存都未存儲有所述數(shù)據(jù)所需的能量等參數(shù)計算得到。在一些可行的實施方 式中,所述旁路特征值λ可W根據(jù)公式
計算得到。
[0087] 其中所述Ri為從所述i級緩存讀取所述數(shù)據(jù)所消耗的能量,所述R Ut。,為檢測所 述i-1級緩存未存儲有所述數(shù)據(jù)所消耗的能量,所述Ri 1為從所述i-1級緩存加載所述數(shù) 據(jù)所消耗的能量,所述Wi 1為將所述數(shù)據(jù)寫入所述i-1級緩存所消耗的能量,所述Ri、所述 R。lUw、所述Ri郝所述W1 1是預先測量的定值。
[0088] 可選地,本發(fā)明實施例中的數(shù)據(jù),可W是W塊為單位的大小相等的數(shù)據(jù)塊,也可W 是W文件為單位的大小不等的數(shù)據(jù)。
[0089] S301,從所述i級緩存讀取數(shù)據(jù)之前,向所述i級緩存查詢所述數(shù)據(jù)的第一重用次 數(shù),并將所述第一重用次數(shù)與所述旁路深度d進行比較。
[0090] 可選地,步驟S301的【具體實施方式】可W參照圖2所示實施例中的步驟S201,在此 不寶述。
[0091] S302,若所述第一重用次數(shù)小于所述旁路深度d,則從所述i級緩存讀取所述數(shù)據(jù) 后,將所述數(shù)據(jù)寫入i-2級緩存,使所述數(shù)據(jù)從所述i-2級緩存逐級加載到一級緩存,W減 少讀取所述數(shù)據(jù)所消耗的能量。
[0092] 可選地,步驟S302的【具體實施方式】可W參照圖2所示實施例中的步驟S202,在此 不寶述。
[0093] S303,若所述第一重用次數(shù)大于或等于所述旁路深度d,則從所述i級緩存讀取所 述數(shù)據(jù)后,將所述數(shù)據(jù)寫入i-1級緩存,使所述數(shù)據(jù)從所述i-1級緩存逐級加載到所述一級 緩存。
[0094] 本發(fā)明實施例中,若i級緩存中待讀取的數(shù)據(jù)的DRC值大于或等于旁路深度d,可 認為將該數(shù)據(jù)旁路并不能減少緩存系統(tǒng)的能量消耗,此時做出的決策是:將從i級緩存讀 取的數(shù)據(jù)寫入i-i級緩存,然后從i-1級緩存加載到i-2級緩存,逐級加載,直到最后將該 數(shù)據(jù)寫入一級緩存。
[00巧]S304,統(tǒng)計每個數(shù)據(jù)的第二重用次數(shù),其中一個數(shù)據(jù)的第二重用次數(shù)為所述一個 數(shù)據(jù)在所述緩存系統(tǒng)的所有緩存層中的總重用次數(shù)。
[0096] 具體實施中,可通過計數(shù)器統(tǒng)計每個數(shù)據(jù)的第二重用次數(shù)。當一個數(shù)據(jù)初始放置 入緩存系統(tǒng)時,其第二重用次數(shù)為0,此后該數(shù)據(jù)每被訪問一次,其第二重用次數(shù)加1。第二 重用次數(shù)為該數(shù)據(jù)在緩存系統(tǒng)的所有緩存層中被訪問的次數(shù)。
[0097] S305,在每一段時間間隔,統(tǒng)計第二重用次數(shù)大于或等于所述旁路深度d的數(shù)據(jù) 的第一數(shù)量d、第二重用次數(shù)大于或等于d+n的數(shù)據(jù)的第二數(shù)量d+。、W及第二重用次 數(shù)大于或等于d-m的數(shù)據(jù)的第Ξ數(shù)量d m,其中η和m為正整數(shù)。
[0098] 在一些可行的實施方式中,可W通過3個計數(shù)器,在每一段時間間隔內(nèi)分別統(tǒng)計 一次整個緩存系統(tǒng)中第二重用次數(shù)大于或等于旁路深度d的數(shù)據(jù)的第一數(shù)量d、第二重 用次數(shù)大于或等于d+n的數(shù)據(jù)的第二數(shù)量及第二重用次數(shù)大于或等于d-m的數(shù)據(jù) 的第Ξ數(shù)量dm??蛇x地,所述一段時間間隔的長度可W在lOks~looks范圍內(nèi)變化。
[0099] 請一并參閱圖4,下面將結合圖4舉例說明緩存系統(tǒng)中數(shù)據(jù)被訪問時的情況。如圖 4所示,假設Ξ級緩存L3和二級緩存L2之間的旁路深度d = 2, η和m都等于1。
[0100] (a)初始狀態(tài)下,Ξ級緩存L3中各數(shù)據(jù)的第一重用次數(shù)DRC都為0,第一數(shù)量^4、 第二數(shù)量d+。和第Ξ數(shù)量N > d m均為0。 陽101] 化)處理核屯、第一次請求訪問數(shù)據(jù)C,由于C的第一重用次數(shù)小于旁路深度d,數(shù)據(jù) C從L2旁路,直接傳輸給一級緩存L1。之后數(shù)據(jù)C的第一重用次數(shù)變?yōu)镈RC = 1。 陽102] (C)處理核屯、第一次請求訪問數(shù)據(jù)D,由于D的第一重用次數(shù)小于旁路深度d,數(shù)據(jù) D從L2旁路,直接傳輸給L1。之后數(shù)據(jù)D的第一重用次數(shù)變?yōu)镈RC = 1。 陽103] (d)處理核屯、第二次請求訪問數(shù)據(jù)C,此時C的第一重用次數(shù)DRC= 1,仍然小于旁 路深度d,數(shù)據(jù)C從L2旁路,直接傳輸給L1。由于有1個數(shù)據(jù)(數(shù)據(jù)C)的第二重用次數(shù)大 于或等于d-m,第Ξ數(shù)量d m加1,之后數(shù)據(jù)C的第一重用次數(shù)變?yōu)镈RC = 2。
[0104] (e)處理核屯、第二次請求訪問數(shù)據(jù)D,此時D的第一重用次數(shù)DRC = 1,仍然小于旁 路深度d,數(shù)據(jù)D從L2旁路,直接傳輸給L1。由于多了 1個數(shù)據(jù)(數(shù)據(jù)D)的第二重用次數(shù) 大于或等于d-m,第Ξ數(shù)量d m再加1,之后數(shù)據(jù)D的第一重用次數(shù)變?yōu)镈RC = 2。
[01化](f)處理核屯、第Ξ次請求訪問數(shù)據(jù)C,此時C的第一重用次數(shù)DRC等于旁路深度2, 數(shù)據(jù)C先傳輸?shù)絃2,再從L2傳輸?shù)絃1。由于有1個數(shù)據(jù)(數(shù)據(jù)C)的第二重用次數(shù)大于或 等于山第一數(shù)量^4加1。之后可W刪除L3中的數(shù)據(jù)C,將數(shù)據(jù)C替換到L2,同時L2中 數(shù)據(jù)C的第一重用次數(shù)DRC = 0。
[0106] (g)處理核屯、第Ξ次請求訪問數(shù)據(jù)D,此時D的第一重用次數(shù)DRC等于旁路深度2, 數(shù)據(jù)D先傳輸?shù)絃2,再從L2傳輸?shù)絃1。由于多了 1個數(shù)據(jù)(數(shù)據(jù)D)的第二重用次數(shù)大于 或等于山第一數(shù)量d再加1,之后可W刪除L3中的數(shù)據(jù)D,將數(shù)據(jù)D替換到L2,同時L2 中數(shù)據(jù)D的第一重用次數(shù)DRC = 0。
[0107] 化)處理核屯、第四次請求訪問數(shù)據(jù)C,數(shù)據(jù)C從L2傳輸給L1,之后L2中數(shù)據(jù)C的 第一重用次數(shù)DRC = 1,第二數(shù)量d Jra 1。
[0108] (i)處理核屯、第五次請求訪問數(shù)據(jù)C,數(shù)據(jù)C從L2傳輸給LI,L2中數(shù)據(jù)C的第一 重用次數(shù)和第二數(shù)量d+。均保持不變。
[0109] S306,在每一段時間間隔,根據(jù)所述第一數(shù)量d、所述第二數(shù)量d+。和所述第; 數(shù)量d m之間的比例關系判斷是否需要調(diào)整所述旁路深度山若判斷結果為是,轉到S307, 否則轉到S309。
[0110] 具體實施中,旁路深度d與各數(shù)據(jù)的重用概率有關,隨著數(shù)據(jù)的重用概率的變化, 旁路深度d也應適當進行調(diào)整??蛇x地,每次統(tǒng)計完第一數(shù)量d、第二數(shù)量d+。和第Ξ 數(shù)量d m之后,可W判斷是否需要調(diào)整旁路深度d。調(diào)整旁路深度d的原則是:隨著各數(shù) 據(jù)的重用概率發(fā)生變化,若加大旁路深度d的值可W進一步減小緩存系統(tǒng)的讀寫能耗時, 則加大旁路深度d的值,若當前的旁路深度d已經(jīng)不能減小緩存系統(tǒng)的讀寫能耗,則減小旁 路深度d的值。 陽11U 具體地,可W判斷
I否大于λ,若是,則認為應該增大旁路深度d; 此外還可W判斷
是否小于λ,若是,則認為應該減小旁路深度d。
[0112] η和m都是正整數(shù),可選地,η和m可W都等于1。
[0113] S307,調(diào)整所述旁路深度d。
[0114] 具體實施中,調(diào)整所述旁路深度d可包括:
[0115] 若
,則在所述旁路深度d的預設范圍內(nèi)將所述旁路深度d至 少加1 ;
[0116] 若
,則在所述旁路深度d的預設范圍內(nèi)將所述旁路深度d至 少減1。
[0117] 具體實施中,在所述旁路深度d的預設范圍內(nèi),對所述旁路深度d的調(diào)整幅度可W 自由設定,旁路深度d的預設范圍也可W自由設定。在一些可行的實施方式總,可W設定旁 路深度d的預設范圍為1《d《22°。
[0118] S308,縮短所述時間間隔。
[0119] 具體實現(xiàn)中,若旁路深度d在一段時間內(nèi)發(fā)生了變化,說明i級緩存中各數(shù)據(jù)的重 用概率可能經(jīng)常發(fā)生變化,為了適應各數(shù)據(jù)的重用概率的變化及時調(diào)整旁路深度d,可適當 縮短上述時間間隔,從而增加判斷是否要調(diào)整旁路深度d的次數(shù)。
[0120] 在一些可行的實施方式中,每次縮短所述時間間隔時,可W按比例縮短所述時間 間隔,例如,若原有的時間間隔為2i5s,若需要縮短所述時間間隔,可W縮短為2i4s。在另一 些可行的實施方式中,還可W按照預先設置好的時間長度縮短所述時間間隔,例如每次縮 短10s。具體實施中,上述時間間隔的變化可控制在一定范圍內(nèi),不會無限地縮短。 陽121] S309,延長所述時間間隔。
[0122] 具體實現(xiàn)中,若旁路深度d在一段時間內(nèi)沒有發(fā)生變化,說明i級緩存中各數(shù)據(jù)的 重用概率在當前時間段內(nèi)比較穩(wěn)定,此時無需頻繁地調(diào)整旁路深度d,因此可W延長所述時 間間隔W減少判斷是否要調(diào)整旁路深度d的頻率。
[0123] 在一些可行的實施方式中,每次延長所述時間間隔時,可W按比例延長所述時間 間隔,例如,若原有的時間間隔為2i5s,若需要延長所述時間間隔,可W延長為2i6s。在另一 些可行的實施方式中,還可W按照預先設置好的時間長度延長所述時間間隔,例如每次延 長10s。具體實施中,上述時間間隔的變化可控制在一定范圍內(nèi),不會無限地延長。
[0124] 本發(fā)明實施例中,根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值 λ確定旁路深度d,查詢待讀取的數(shù)據(jù)在i級緩存的第一重用次數(shù),如果該數(shù)據(jù)在i級緩存 的第一重用次數(shù)小于旁路深度山則從i級緩存讀取該數(shù)據(jù)后,繞開i-1級緩存,直接將該數(shù) 據(jù)寫入i-2級緩存;如果該數(shù)據(jù)在i級緩存的第一重用次數(shù)小于旁路深度山則逐級加載所 述數(shù)據(jù)。由于旁路特征值λ是結合緩存系統(tǒng)中i級緩存和i-1級緩存的寫能耗和讀能耗 來計算得到的,根據(jù)旁路特征值λ確定旁路深度d并結合旁路深度d和數(shù)據(jù)的第一重用次 數(shù)進行旁路決策,不僅適用于一般的對稱性緩存,還能為非對稱緩存提供準確的判斷依據(jù) W判斷將數(shù)據(jù)旁路是否確實能降低緩存系統(tǒng)的讀寫能耗,確保旁路決策能提高緩存系統(tǒng)的 讀寫效率。此外,本發(fā)明實施例還可隨數(shù)據(jù)的重用概率的變化調(diào)整旁路深度d,并根據(jù)旁路 深度d的變化改變其調(diào)整頻率,使旁路深度d能自適應調(diào)整,無論緩存系統(tǒng)的數(shù)據(jù)訪問情況 如何改變,都能做出正確的旁路決策。
[0125] 參閱圖5,為本發(fā)明實施例提供的旁路裝置的第一實施例結構示意圖。所述旁路裝 置可應用于緩存系統(tǒng),所述緩存系統(tǒng)包括N級緩存和至少一個所述旁路裝置。如圖5所示, 所述旁路裝置可包括輸入裝置501、輸出裝置502和處理器503,其中所述輸入裝置501、所 述輸出裝置502和所述處理器503可通過總線或其他方式進行連接,本發(fā)明實施例W通過 總線連接為例進行說明。 陽126] 所述輸入裝置501可用于接收用戶或其他設備輸入的指令或數(shù)據(jù)。
[0127] 所述輸出裝置502可用于將指令或數(shù)據(jù)輸出給其他設備,例如輸出指令給緩存系 統(tǒng)中的各級緩存。
[0128] 所述處理器503可用于:
[0129] 根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值λ確定所述i級 緩存和i-1級緩存間的旁路深度d。 陽130] 其中i和N都是整數(shù)并且3《i《N,例如在如今應用的大多數(shù)緩存系統(tǒng)中,N最 多等于3,但隨著存儲技術的發(fā)展,或者在如今的一些的緩存系統(tǒng)中,N也可能大于3,例如N =4。本發(fā)明實施例中,旁路深度d表示從所述i級緩存讀取所述數(shù)據(jù)后,當將所述數(shù)據(jù)寫 入i-2級緩存所消耗的能量小于將所述數(shù)據(jù)寫入i-1級緩所消耗的能量時,所述數(shù)據(jù)的最 大重用次數(shù)。 陽131] 在一些可行的實施方式中,i級緩存中任意一塊數(shù)據(jù)的重用概率可W用i級緩存 中與該塊數(shù)據(jù)的重用次數(shù)相同的數(shù)據(jù)量占 i級緩存中總數(shù)據(jù)量的比例來表示。假設在i級 緩存中重用次數(shù)為j的數(shù)據(jù)量占 i級緩存總數(shù)據(jù)量的比例為P,,j為大于或等于0的整數(shù), 則旁路深度d可根據(jù)公式
隹導得到。
[0132] 所述旁路特征值λ與所述緩存系統(tǒng)中所述i級緩存和所述i-1級緩存的讀寫能 耗有關。具體地,λ可W根據(jù)從i級緩存讀取所述數(shù)據(jù)所需的能量、將所述數(shù)據(jù)寫入i-1級 緩存所需的能量、從i-1級緩存至二級緩存取所述數(shù)據(jù)所需的能量和/或檢測確定i-1級 緩存至二級緩存都未存儲有所述數(shù)據(jù)所需的能量等參數(shù)計算得到。
[0133] 可選地,本發(fā)明實施例中的數(shù)據(jù),可W是W塊為單位的大小相等的數(shù)據(jù)塊,也可W 是W文件為單位的大小不等的數(shù)據(jù)。
[0134] 處理器503還用于在從所述i級緩存讀取數(shù)據(jù)之前,向所述i級緩存查詢所述數(shù) 據(jù)的第一重用次數(shù),并將所述第一重用次數(shù)與所述旁路深度d進行比較,其中所述第一重 用次數(shù)為所述數(shù)據(jù)放置入所述i級緩存之后在所述i級緩存中被訪問的次數(shù)。
[0135] 本發(fā)明實施例中,所述數(shù)據(jù)的所述第一重用次數(shù)為所述數(shù)據(jù)放置入所述i級緩存 之后在所述i級緩存中被訪問的次數(shù),所述數(shù)據(jù)若在其他緩存層中被重用,不計入所述第 一重用次數(shù)。本發(fā)明實施例中,第一重用次數(shù)用DRC值ata Reuse count,數(shù)據(jù)重用計數(shù))來 表不。
[0136] 在一些可行的實施方式中,各緩存層可通過計數(shù)器統(tǒng)計每個數(shù)據(jù)的第一重用次 數(shù)。當一塊數(shù)據(jù)被初始放置到某一級緩存時,該數(shù)據(jù)在該級緩存的DRC值為0。此后該數(shù)據(jù) 每在該級緩存中被訪問一次,該級緩存的計數(shù)器則將該數(shù)據(jù)的DRC值加1。
[0137] 當確定了需要從i級緩存讀取的數(shù)據(jù)后,可W向i級緩存層查詢該數(shù)據(jù)在i級緩 存中的DRC值,并將該數(shù)據(jù)的DRC值與旁路深度d進行比較。
[0138] 處理器503還用于當所述第一重用次數(shù)小于所述旁路深度d時,從所述i級緩存 讀取所述數(shù)據(jù)后,將所述數(shù)據(jù)寫入i-2級緩存,使所述數(shù)據(jù)從所述i-2級緩存逐級加載到一 級緩存,W減少讀取所述數(shù)據(jù)所消耗的能量。
[0139] 本發(fā)明實施例中,旁路深度d是自定義的用于篩選需要旁路的數(shù)據(jù)的一個參數(shù)。 當i級緩存中某些數(shù)據(jù)的DRC值小于旁路深度d時,認為將該數(shù)據(jù)旁路更加節(jié)能,即讀取該 數(shù)據(jù)所花的代價更小,此時決策模塊403可做出旁路決策:從i級緩存讀取該數(shù)據(jù)后應將該 數(shù)據(jù)直接寫入i-2級緩存。本發(fā)明實施例中,旁路表示數(shù)據(jù)繞過某一級緩存直接寫入到更 高級的緩存,例如從Ξ級緩存讀取的數(shù)據(jù)繞過二級緩存而直接寫入到一級緩存。
[0140] 具體實施中,將數(shù)據(jù)寫入i-2級緩存之后,該數(shù)據(jù)可W從i-2級緩存逐級加載到一 級緩存(即按照i-2、i-3、……1的順序逐級加載),處理核屯、最終從一級緩存讀取該數(shù)據(jù)。 陽141] 考慮到對一些緩存器而言,讀操作和寫操作的所花的代價是不一樣的,例如非易 失存儲技術中,寫操作的延遲和能耗是讀操作的數(shù)倍,而旁路特征值λ是結合緩存系統(tǒng)中 一些緩存級的寫能耗和讀能耗來計算得到的,根據(jù)旁路特征值λ確定旁路深度d,能更加 準確地判斷一些數(shù)據(jù)是否旁路能更加節(jié)能。
[0142]本發(fā)明實施例中,根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值 λ確定旁路深度d,查詢待讀取的數(shù)據(jù)在i級緩存的第一重用次數(shù),如果該數(shù)據(jù)在i級緩存 的第一重用次數(shù)小于旁路深度山則旁路該數(shù)據(jù),即從i級緩存讀取該數(shù)據(jù)后,繞開i-1級緩 存,直接將該數(shù)據(jù)寫入i-2級緩存。由于旁路特征值λ是結合緩存系統(tǒng)中i級緩存和i-1 級緩存的寫能耗和讀能耗來計算得到的,根據(jù)旁路特征值λ確定旁路深度d并結合旁路深 度d和數(shù)據(jù)的第一重用次數(shù)進行旁路決策,不僅適用于一般的對稱性緩存,還能為非對稱 緩存提供準確的判斷依據(jù)W判斷將數(shù)據(jù)旁路是否確實能降低緩存系統(tǒng)的讀寫能耗,確保旁 路決策能提高緩存系統(tǒng)的讀寫效率。 陽143] 在一些可行的實施方式中,旁路特征值λ可W根據(jù)公式
計算 得到。
[0144] 其中所述Ri為從所述i級緩存讀取所述數(shù)據(jù)所消耗的能量,所述R Utw為檢測所 述i-1級緩存未存儲有所述數(shù)據(jù)所消耗的能量,所述Ri 1為從所述i-1級緩存加載所述數(shù) 據(jù)所消耗的能量,所述Wi 1為將所述數(shù)據(jù)寫入所述i-1級緩存所消耗的能量,所述Ri、所述 R。lUw、所述Ri郝所述W 1 1是預先測量的定值。
[0145] 在一些可行的實施方式中,處理器503將第一重用次數(shù)與旁路深度d進行比較之 后,還可W執(zhí)行如下操作:
[0146] 當所述第一重用次數(shù)大于或等于所述旁路深度d時,從所述i級緩存讀取所述數(shù) 據(jù)后,將所述數(shù)據(jù)寫入i-1級緩存,使所述數(shù)據(jù)從所述i-1級緩存逐級加載到所述一級緩 存。 陽147] 本發(fā)明實施例中,若i級緩存中待讀取的數(shù)據(jù)的DRC值大于或等于旁路深度山可 認為將該數(shù)據(jù)旁路并不能減少緩存系統(tǒng)的能量消耗,此時做出的決策是:將從i級緩存讀 取的數(shù)據(jù)寫入i-i級緩存,然后從i-1級緩存加載到i-2級緩存,逐級加載,直到最后將該 數(shù)據(jù)寫入一級緩存。
[0148] 在一些可行的實施方式中,處理器503將數(shù)據(jù)從i級緩存加載到i-2級緩存或i-1 級緩存之后,還可W執(zhí)行如下操作:
[0149] 通過計數(shù)器統(tǒng)計每個數(shù)據(jù)的第二重用次數(shù),其中一個數(shù)據(jù)的第二重用次數(shù)為所述 一個數(shù)據(jù)在所述緩存系統(tǒng)的所有緩存層中的總重用次數(shù)。
[0150] 統(tǒng)計第二重用次數(shù)大于或等于所述旁路深度d的數(shù)據(jù)的第一數(shù)量d、第二重用 次數(shù)大于或等于d+n的數(shù)據(jù)的第二數(shù)量d+。、W及第二重用次數(shù)大于或等于d-m的數(shù)據(jù)的 第Ξ數(shù)量d m,其中η和m為正整數(shù)。 陽151] 根據(jù)所述第一數(shù)量d、所述第二數(shù)量d+。和所述第Ξ數(shù)量N > d m之間的比例關 系調(diào)整所述旁路深度d。 陽152] 具體實施中,可通過計數(shù)器統(tǒng)計每個數(shù)據(jù)的第二重用次數(shù)。當一個數(shù)據(jù)初始放置 入緩存系統(tǒng)時,其第二重用次數(shù)為0,此后該數(shù)據(jù)每被訪問一次,其第二重用次數(shù)加1。第二 重用次數(shù)為該數(shù)據(jù)在緩存系統(tǒng)的所有緩存層中被訪問的次數(shù)。
[0153] 在一些可行的實施方式中,可W通過3個計數(shù)器,在每一段時間間隔內(nèi)分別統(tǒng)計 一次整個緩存系統(tǒng)中第二重用次數(shù)大于或等于旁路深度d的數(shù)據(jù)的第一數(shù)量d、第二重 用次數(shù)大于或等于d+n的數(shù)據(jù)的第二數(shù)量及第二重用次數(shù)大于或等于d-m的數(shù)據(jù) 的第Ξ數(shù)量dm??蛇x地,所述一段時間間隔的長度可W在lOks~looks范圍內(nèi)變化。 [0154] 在一些可行的實施方式中,處理器503根據(jù)所述第一數(shù)量d、所述第二數(shù)量d+。 和所述第Ξ數(shù)量d m之間的比例關系調(diào)整所述旁路深度d,具體為:
[01W] 在每一段時間間隔,根據(jù)所述第一數(shù)量N > t所述第二數(shù)量N > d+n和所述第Ξ 數(shù)量N > d-m之間的比例關系判斷是否需要調(diào)整所述旁路深度d,并在所述判斷的結果為 "是"時調(diào)整所述旁路深度d;
[0156] 具體實施中,旁路深度d與各數(shù)據(jù)的重用概率有關,隨著數(shù)據(jù)的重用概率的變化, 旁路深度d也應適當進行調(diào)整??蛇x地,每次統(tǒng)計完第一數(shù)量1^> d、第二數(shù)量?^> d+。和第Ξ 數(shù)量d m之后,可W判斷是否需要調(diào)整旁路深度d。調(diào)整旁路深度d的原則是:隨著各數(shù) 據(jù)的重用概率發(fā)生變化,若加大旁路深度d的值可W進一步減小緩存系統(tǒng)的讀寫能耗時, 則加大旁路深度d的值,若當前的旁路深度d已經(jīng)不能減小緩存系統(tǒng)的讀寫能耗,則減小旁 路深度d的值。 陽157] 具體地,可W判斷
曼否大于λ,若是,則認為應該增大旁路深度d ; 此外還可W判斷
I否小于λ,若是,則認為應該減小旁路深度d。
[0158] η和m都是正整數(shù),可選地,η和m可W都等于1。
[0159] 具體實施中,在一些可行的實施方式中,處理器503根據(jù)所述第一數(shù)量N>d、所述 第二數(shù)量d+。和所述第Ξ數(shù)量N > d m之間的比例關系調(diào)整所述旁路深度山可包括:
[0160] 若
則在所述旁路深度d的預設范圍內(nèi)將所述旁路深度d至少加 1 ; 陽161] 若
,則在所述旁路深度d的預設范圍內(nèi)將所述旁路深度d至少減 1〇
[0162] 具體實施中,在所述旁路深度d的預設范圍內(nèi),對所述旁路深度d的調(diào)整幅度可W 自由設定,旁路深度d的預設范圍也可W自由設定。在一些可行的實施方式總,可W設定旁 路深度d的預設范圍為1《d《22°。 陽163] 處理器503還用于:
[0164] 在所述判斷的結果為"是"時,縮短所述時間間隔; 陽1化]在所述判斷的結果為"否"時,延長所述時間間隔。
[0166] 具體實現(xiàn)中,若旁路深度d在一段時間內(nèi)發(fā)生了變化,說明i級緩存中各數(shù)據(jù)的重 用概率可能經(jīng)常發(fā)生變化,為了適應各數(shù)據(jù)的重用概率的變化及時調(diào)整旁路深度d,可適當 縮短上述時間間隔,從而增加判斷是否要調(diào)整旁路深度d的次數(shù)。
[0167] 在一些可行的實施方式中,每次縮短所述時間間隔時,可W按比例縮短所述時間 間隔,例如,若原有的時間間隔為2i5s,若需要縮短所述時間間隔,可W縮短為2i4s。在另一 些可行的實施方式中,還可W按照預先設置好的時間長度縮短所述時間間隔,例如每次縮 短10s。具體實施中,上述時間間隔的變化可控制在一定范圍內(nèi),不會無限地縮短。
[0168] 具體實現(xiàn)中,若旁路深度d在一段時間內(nèi)沒有發(fā)生變化,說明i級緩存中各數(shù)據(jù)的 重用概率在當前時間段內(nèi)比較穩(wěn)定,此時無需頻繁地調(diào)整旁路深度d,因此可W延長所述時 間間隔W減少判斷是否要調(diào)整旁路深度d的頻率。
[0169] 在一些可行的實施方式中,每次延長所述時間間隔時,可W按比例延長所述時間 間隔,例如,若原有的時間間隔為2i5s,若需要延長所述時間間隔,可W延長為2i6s。在另一 些可行的實施方式中,還可W按照預先設置好的時間長度延長所述時間間隔,例如每次延 長10s。具體實施中,上述時間間隔的變化可控制在一定范圍內(nèi),不會無限地延長。
[0170] 本發(fā)明實施例中,根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值 λ確定旁路深度山查詢待讀取的數(shù)據(jù)在i級緩存的第一重用次數(shù),如果該數(shù)據(jù)在i級緩存 的第一重用次數(shù)小于旁路深度山則從i級緩存讀取該數(shù)據(jù)后,繞開i-1級緩存,直接將該數(shù) 據(jù)寫入i-2級緩存;如果該數(shù)據(jù)在i級緩存的第一重用次數(shù)小于旁路深度山則逐級加載所 述數(shù)據(jù)。由于旁路特征值λ是結合緩存系統(tǒng)中i級緩存和i-1級緩存的寫能耗和讀能耗 來計算得到的,根據(jù)旁路特征值λ確定旁路深度d并結合旁路深度d和數(shù)據(jù)的第一重用次 數(shù)進行旁路決策,不僅適用于一般的對稱性緩存,還能為非對稱緩存提供準確的判斷依據(jù) W判斷將數(shù)據(jù)旁路是否確實能降低緩存系統(tǒng)的讀寫能耗,確保旁路決策能提高緩存系統(tǒng)的 讀寫效率。此外,本發(fā)明實施例還可隨數(shù)據(jù)的重用概率的變化調(diào)整旁路深度d,并根據(jù)旁路 深度d的變化改變其調(diào)整頻率,使旁路深度d能自適應調(diào)整,無論緩存系統(tǒng)的數(shù)據(jù)訪問情況 如何改變,都能做出正確的旁路決策。 陽171] 參閱圖6,為本發(fā)明實施例提供的緩存系統(tǒng)的第一實施例結構示意圖。如圖6所 示,該緩存系統(tǒng)可包括至少一個旁路裝置601 W及N級緩存602,其中所述至少一個旁路裝 置601為圖5所示實施例中所描述的旁路裝置,用于在處理核屯、請求從所述至少i級緩存 讀取數(shù)據(jù)時,決定所述數(shù)據(jù)從所述i級緩存層到一級緩存的路徑,其中i和N都是整數(shù)并且 3《i《N。 陽17引根據(jù)圖5所示實施例的相關描述,可知本發(fā)明實施例的緩存系統(tǒng),根據(jù)i級緩存中 各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值λ確定旁路深度d,查詢待讀取的數(shù)據(jù)在i 級緩存的第一重用次數(shù),如果該數(shù)據(jù)在i級緩存的第一重用次數(shù)小于旁路深度d,則旁路該 數(shù)據(jù),即從i級緩存讀取該數(shù)據(jù)后,繞開i-1級緩存,直接將該數(shù)據(jù)寫入i-2級緩存。由于旁 路特征值λ是結合緩存系統(tǒng)中i級緩存和i-1級緩存的寫能耗和讀能耗來計算得到的,根 據(jù)旁路特征值λ確定旁路深度d并結合旁路深度d和數(shù)據(jù)的第一重用次數(shù)進行旁路決策, 不僅適用于一般的對稱性緩存,還能為非對稱緩存提供準確的判斷依據(jù)W判斷將數(shù)據(jù)旁路 是否確實能降低緩存系統(tǒng)的讀寫能耗,確保旁路決策能提高緩存系統(tǒng)的讀寫效率。
[0173] W上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的模塊 可W是或者也可W不是物理上分開的,作為模塊顯示的部件可W是或者也可W不是物理模 塊,即可W位于一個地方,或者也可W分布到多個網(wǎng)絡模塊上??蒞根據(jù)實際的需要選擇其 中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性 的勞動的情況下,即可W理解并實施。
[0174] 本發(fā)明實施例方法中的步驟可W根據(jù)實際需要進行順序調(diào)整、合并和刪減。
[0175] 本發(fā)明實施例裝置中的模塊或單元可W根據(jù)實際需要進行合并、劃分和刪減。 陽176] 本發(fā)明實施例的模塊或單元,可通用集成電路(如中央處理器CPU),或W專 用集成電路(ASIC)來實現(xiàn)。
[0177] 通過W上的實施方式的描述,本領域的技術人員可W清楚地了解到各實施方式可 借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可W通過硬件?;谶\樣的理解,上 述技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可軟件產(chǎn)品的形式體現(xiàn)出來,該 計算機軟件產(chǎn)品可W存儲在計算機可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指 令用W使得一臺計算機設備(可W是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行各個實施 例或者實施例的某些部分所述的方法。
[0178] W上所述的實施方式,并不構成對該技術方案保護范圍的限定。任何在上述實施 方式的精神和原則之內(nèi)所作的修改、等同替換和改進等,均應包含在該技術方案的保護范 圍之內(nèi)。
【主權項】
1. 一種讀取緩存數(shù)據(jù)的方法,其特征在于,應用于緩存系統(tǒng),所述緩存系統(tǒng)包括N級緩 存和至少一個旁路裝置,所述方法包括: 根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值A確定所述i級緩存 和i-1級緩存間的旁路深度d,其中i和N都是整數(shù)并且3《i《N,所述旁路特征值入與 所述緩存系統(tǒng)中所述i級緩存和所述i-1級緩存的讀寫能耗有關,所述i級緩存中一塊數(shù) 據(jù)的重用概率為在所述i級緩存中與所述一塊數(shù)據(jù)的重用次數(shù)相同的數(shù)據(jù)量占所述i級緩 存的總數(shù)據(jù)量的比例,所述旁路深度d表示從所述i級緩存讀取所述數(shù)據(jù)后,當將所述數(shù)據(jù) 寫入i-2級緩存所消耗的能量小于將所述數(shù)據(jù)寫入i-1級緩所消耗的能量時,所述數(shù)據(jù)的 最大重用次數(shù); 從所述i級緩存讀取數(shù)據(jù)之前,向所述i級緩存查詢所述數(shù)據(jù)的第一重用次數(shù),并將所 述第一重用次數(shù)與所述旁路深度d進行比較,其中所述第一重用次數(shù)為所述數(shù)據(jù)放置入所 述i級緩存之后在所述i級緩存中被訪問的次數(shù); 若所述第一重用次數(shù)小于所述旁路深度山則從所述i級緩存讀取所述數(shù)據(jù)后,將所述 數(shù)據(jù)寫入i-2級緩存,使所述數(shù)據(jù)從所述i-2級緩存逐級加載到一級緩存,W減少讀取所述 數(shù)據(jù)所消耗的能量。2. 根據(jù)權利要求1所述的方法,其特征在于,所述將所述第一重用次數(shù)與所述旁路深 度d進行比較之后,所述方法還包括: 若所述第一重用次數(shù)大于或等于所述旁路深度d,則從所述i級緩存讀取所述數(shù)據(jù)后, 將所述數(shù)據(jù)寫入i-1級緩存,使所述數(shù)據(jù)從所述i-1級緩存逐級加載到所述一級緩存。3. 根據(jù)權利要求1所述的方法,其特征在于,所述將所述數(shù)據(jù)寫入i-2級緩存之后,所 述方法還包括: 統(tǒng)計每個數(shù)據(jù)的第二重用次數(shù),其中一個數(shù)據(jù)的第二重用次數(shù)為所述一個數(shù)據(jù)在所述 緩存系統(tǒng)的所有緩存層中的總重用次數(shù); 統(tǒng)計第二重用次數(shù)大于或等于所述旁路深度d的數(shù)據(jù)的第一數(shù)量N>d、第二重用次數(shù) 大于或等于d+n的數(shù)據(jù)的第二數(shù)量N>d+。、W及第二重用次數(shù)大于或等于d-m的數(shù)據(jù)的第S 數(shù)量N>dm,其中n和m為正整數(shù); 根據(jù)所述第一數(shù)量d、所述第二數(shù)量d+。和所述第=數(shù)量N > d m之間的比例關系調(diào) 整所述旁路深度d。4. 根據(jù)權利要求3所述的方法,其特征在于,所述根據(jù)所述第一數(shù)量N > d、所述第二數(shù) 量d+。和所述第=數(shù)量N > d m之間的比例關系調(diào)整所述旁路深度山包括:老 則在所述旁路深度d的預設范圍內(nèi)將所述旁路深度d至少加1 ; 老 則在所述旁路深度d的預設范圍內(nèi)將所述旁路深度d至少減1。5. 根據(jù)權利要求1或4任一項所述的方法,其特征在于: 所述旁路特征值其中所述Ri為從所述i級緩存讀取所述數(shù)據(jù)所消耗的能量,所述R Utw為檢測所述 i-1級緩存未存儲有所述數(shù)據(jù)所消耗的能量,所述Ri I為從所述i-1級緩存加載所述數(shù)據(jù)所 消耗的能量,所述Wi 1為將所述數(shù)據(jù)寫入所述i-1級緩存所消耗的能量,所述R 1、所述Rfi 1, t。,、所述Ri 1和所述W 1 1是預先測量的定值。6. 根據(jù)權利要求3所述的方法,其特征在于,所述根據(jù)所述第一數(shù)量N >d、所述第二數(shù) 量d+。和所述第=數(shù)量N > d m之間的比例關系調(diào)整所述旁路深度山具體為: 在每一段時間間隔,根據(jù)所述第一數(shù)量N > t所述第二數(shù)量N > d+n和所述第=數(shù)量 N > d-m之間的比例關系判斷是否需要調(diào)整所述旁路深度山并在判斷結果為"是"時,調(diào)整 所述旁路深度d ; 所述方法還包括: 若判斷為需要調(diào)整所述旁路深度山則縮短所述時間間隔; 若判斷為不需要調(diào)整所述旁路深度山則延長所述時間間隔。7. -種旁路裝置,其特征在于,應用于緩存系統(tǒng),所述緩存系統(tǒng)包括N級緩存和至少一 個所述旁路裝置,所述旁路裝置包括輸入裝置、輸出裝置和處理器,其中所述處理器用于: 根據(jù)i級緩存中各數(shù)據(jù)的重用概率W及緩存系統(tǒng)的旁路特征值A確定所述i級緩存 和i-1級緩存間的旁路深度d,其中i和N都是整數(shù)并且3《i《N,所述旁路特征值入與 所述緩存系統(tǒng)中所述i級緩存和所述i-1級緩存的讀寫能耗有關,所述i級緩存中一塊數(shù) 據(jù)的重用概率為在所述i級緩存中與所述一塊數(shù)據(jù)的重用次數(shù)相同的數(shù)據(jù)量占所述i級緩 存的總數(shù)據(jù)量的比例,所述旁路深度d表示從所述i級緩存讀取所述數(shù)據(jù)后,當將所述數(shù)據(jù) 寫入i-2級緩存所消耗的能量小于將所述數(shù)據(jù)寫入i-1級緩所消耗的能量時,所述數(shù)據(jù)的 最大重用次數(shù); 從所述i級緩存讀取數(shù)據(jù)之前,向所述i級緩存查詢所述數(shù)據(jù)的第一重用次數(shù),并將所 述第一重用次數(shù)與所述旁路深度d進行比較,其中所述第一重用次數(shù)為所述數(shù)據(jù)放置入所 述i級緩存之后在所述i級緩存中被訪問的次數(shù); 當所述第一重用次數(shù)小于所述旁路深度d時,從所述i級緩存讀取所述數(shù)據(jù)后,將所述 數(shù)據(jù)寫入i-2級緩存,使所述數(shù)據(jù)從所述i-2級緩存逐級加載到一級緩存,W減少讀取所述 數(shù)據(jù)所消耗的能量。8. 根據(jù)權利要求7所述的旁路裝置,其特征在于,將所述第一重用次數(shù)與所述旁路深 度d進行比較之后,所述處理器還用于: 當所述第一重用次數(shù)大于或等于所述旁路深度d時,從所述i級緩存讀取所述數(shù)據(jù)后, 將所述數(shù)據(jù)寫入i-1級緩存,使所述數(shù)據(jù)從所述i-1級緩存逐級加載到所述一級緩存。9. 根據(jù)權利要求7所述的旁路裝置,其特征在于,所述將所述數(shù)據(jù)寫入i-2級緩存之 后,所述處理器還用于: 通過計數(shù)器統(tǒng)計每個數(shù)據(jù)的第二重用次數(shù),其中一個數(shù)據(jù)的第二重用次數(shù)為所述一個 數(shù)據(jù)在所述緩存系統(tǒng)的所有緩存層中的總重用次數(shù); 統(tǒng)計第二重用次數(shù)大于或等于所述旁路深度d的數(shù)據(jù)的第一數(shù)量N>d、第二重用次數(shù) 大于或等于d+n的數(shù)據(jù)的第二數(shù)量N>d+。、W及第二重用次數(shù)大于或等于d-m的數(shù)據(jù)的第S 數(shù)量N>dm,其中n和m為正整數(shù); 根據(jù)所述第一數(shù)量d、所述第二數(shù)量d+。和所述第=數(shù)量N > d m之間的比例關系調(diào) 整所述旁路深度d。10. 根據(jù)權利要求9所述的旁路裝置,其特征在于,所述處理器根據(jù)所述第一數(shù)量N >d、 所述第二數(shù)量Ng d+。和所述第=數(shù)量N > d m之間的比例關系調(diào)整所述旁路深度山包括:若 則在所述旁路深度d的預設范圍內(nèi)將所述旁路深度d至少加1 ; 若 則在所述旁路深度d的預設范圍內(nèi)將所述旁路深度d至少減1。11. 根據(jù)權利要求7-10任一項所述的旁路裝置,其特征在于: 所述旁路特征值其中所述Ri為從所述i級緩存讀取所述數(shù)據(jù)所消耗的能量,所述R Utw為檢測所述 i-1級緩存未存儲有所述數(shù)據(jù)所消耗的能量,所述Ri 1為從所述i-1級緩存加載所述數(shù)據(jù)所 消耗的能量,所述Wi 1為將所述數(shù)據(jù)寫入所述i-1級緩存所消耗的能量,所述R 1、所述Rfi 1, tag、所述Ri 1和所述W i 1是預先測量的定值。12. 根據(jù)權利要求9所述的旁路裝置,其特征在于,所述處理器根據(jù)所述第一數(shù)量N >d、 所述第二數(shù)量N>d+。和所述第=數(shù)量N ^dm之間的比例關系調(diào)整所述旁路深度山具體為: 在每一段時間間隔,根據(jù)所述第一數(shù)量N > t所述第二數(shù)量N > d+n和所述第=數(shù)量 N > d-m之間的比例關系判斷是否需要調(diào)整所述旁路深度d,并在所述判斷的結果為"是"時 調(diào)整所述旁路深度d ; 所述處理器還用于: 在所述判斷的結果為"是"時,縮短所述時間間隔; 在所述判斷的結果為"否"時,延長所述時間間隔。13. -種緩存系統(tǒng),其特征在于,所述緩存系統(tǒng)包括至少一個旁路裝置W及N級緩存, 其中所述至少一個旁路裝置為如權利要求7-12任一項所述的旁路裝置,用于在處理核屯、 請求從i級緩存讀取數(shù)據(jù)時,決定所述數(shù)據(jù)從所述i級緩存到一級緩存的路徑,其中i和N 都是整數(shù)并且3《i《N。
【文檔編號】G06F3/06GK105988730SQ201510093236
【公開日】2016年10月5日
【申請日】2015年3月2日
【發(fā)明人】劉勇攀
【申請人】華為技術有限公司, 清華大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1