999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于重用信息的非易失性緩存動(dòng)態(tài)旁路策略

2021-04-29 03:21:20陳玲玲李建華
計(jì)算機(jī)工程 2021年4期
關(guān)鍵詞:指令策略

焦 童,陳玲玲,安 鑫,李建華

(合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院,合肥 230009)

0 概述

近年來,片上多核處理器集成核心的數(shù)量日益增多,對最后一級緩存(Last-Level Cache,LLC)的容量需求逐漸增加。受存儲(chǔ)密度限制,傳統(tǒng)靜態(tài)隨機(jī)存取存儲(chǔ)器(Static Random Access Memory,SRAM)的LLC 在整個(gè)芯片上面積占比逐漸增大。此外,已發(fā)展到深亞微米級的半導(dǎo)體技術(shù)以及急劇增加的SRAM 靜態(tài)能耗對片上LLC 性能提出更高要求。

當(dāng)前電子自旋轉(zhuǎn)移矩隨機(jī)存取存儲(chǔ)器(Spin-Torque Transfer Random Access Memory,STT-RAM)、相變存儲(chǔ)器等非易失性存儲(chǔ)器(Non-Volatile Memory,NVM)具有良好的可擴(kuò)展性、極低的靜態(tài)能耗以及較大的存儲(chǔ)密度,此類新興存儲(chǔ)器可提高片上緩存系統(tǒng)的性能并降低其能耗[1-3]。然而新型非易失性存儲(chǔ)器的讀寫操作具有不同的訪問延遲和能耗,目前大部分基于NVM技術(shù)的緩存寫操作延遲和能耗是讀操作的幾倍甚至幾十倍[4-5]。

針對NVM 等非對稱訪問緩存中寫操作的高延遲和高能耗問題,在進(jìn)行旁路決策時(shí)應(yīng)考慮緩存塊分配是否合理。本文通過分析LLC 中緩存塊的重用信息,提出一種基于緩存塊重用的ReBP動(dòng)態(tài)旁路策略,從LLC缺失填充和上級緩存寫回兩方面進(jìn)行旁路分析,以提升非易失性緩存系統(tǒng)的能效。

1 相關(guān)工作

近年來,國內(nèi)外研究人員采用多種方法減少STTRAM 緩存的能耗,并通過預(yù)測數(shù)據(jù)塊寫入頻率來判斷能否將數(shù)據(jù)寫入STT-RAM 緩存。文獻(xiàn)[6-7]提出一種寫預(yù)測輔助STT-RAM 緩存的DASCA 系統(tǒng)來預(yù)測每個(gè)寫入請求是否為無效寫入,由于無效寫入數(shù)據(jù)在下一個(gè)寫入請求之前不會(huì)重用,因此DASCA 可避免無效數(shù)據(jù)寫入STT-RAM 緩存。文獻(xiàn)[8-10]提出一種基于統(tǒng)計(jì)的非對稱緩存旁路方式SBAC,其從能耗判斷是否將數(shù)據(jù)塊插入STT-RAM 緩存中,如果讀取和寫入操作次數(shù)已知,則可計(jì)算有無旁路能耗,并估算每個(gè)模塊的旁路能耗和不旁路能耗。此外,主流的NVM 緩存性能優(yōu)化方法還包括基于混合緩存架構(gòu)(Hybrid Cache Architecture,HCA)的方法。混合緩存由具有不同存儲(chǔ)單元的多個(gè)陣列組成,其中包括一個(gè)容量較小的SRAM陣列和一個(gè)容量較大的STT-RAM 陣列,如果將寫密集型數(shù)據(jù)存儲(chǔ)在SRAM 陣列中,則可節(jié)省STT-RAM 陣列進(jìn)行寫操作所需的大量能源成本。

文獻(xiàn)[11]提出基于讀寫感知的混合LLC 體系RWHCA,其根據(jù)導(dǎo)致LLC 未命中的指令來決定將數(shù)據(jù)塊存儲(chǔ)在STT-RAM 陣列中還是SRAM 陣列中。如果引起未命中的指令是load指令,則該指令提供給LLC的數(shù)據(jù)塊有可能再次被讀取,將該數(shù)據(jù)塊存儲(chǔ)在STTRAM 陣列中;如果該數(shù)據(jù)塊不是由load 指令提供,則其被判斷為寫密集型模塊而被存儲(chǔ)在SRAM 陣列中。文獻(xiàn)[12]提出一種HCA 管理策略,也稱為適應(yīng)性放置與遷移策略,其將LLC 的寫操作分為預(yù)取寫操作、存儲(chǔ)指令寫操作和寫回操作3 種類型。在該策略中,先分析每個(gè)緩存塊類型的寫密集程度,再根據(jù)分析結(jié)果決定哪些類型的緩存塊存儲(chǔ)于SRAM 陣列和STT-RAM陣列中。文獻(xiàn)[13-15]提出一種HCA 準(zhǔn)確預(yù)測機(jī)制,使用預(yù)測表存儲(chǔ)每個(gè)緩存塊的訪問模式并預(yù)測其寫強(qiáng)度,在LLC 中存儲(chǔ)緩存塊時(shí),可參照預(yù)測表將緩存塊放入合適的陣列中。

綜上所述,傳統(tǒng)旁路策略可集中減少對STT-RAM陣列的寫操作次數(shù)并預(yù)測緩存塊類型。如果是重用率不高的緩存塊則會(huì)繞過STT-RAM 陣列,如果是重用率較高的緩存塊則不能采用旁路策略,從而導(dǎo)致STT-RAM 陣列產(chǎn)生較多高能耗寫操作。本文對旁路策略進(jìn)行優(yōu)化,使重用率較高的緩存塊繞過STTRAM 陣列,并動(dòng)態(tài)地將緩存塊寫入其他核心的同級緩存,以進(jìn)一步減少STT-RAM 的寫操作。

2 基于重用的動(dòng)態(tài)旁路策略

本節(jié)介紹緩存塊重用信息及其利用方法與采用非對稱LLC 存在的問題,闡述LLC 發(fā)生缺失時(shí)進(jìn)行填充以及對來自上一級緩存寫回操作的旁路策略。

2.1 重用信息

圖1 為緩存塊A 從填充到緩存再到被緩存管理算法逐出緩存的整個(gè)生命周期。緩存塊A 通過讀取訪問或者預(yù)取操作填充至緩存,其在緩存中的生命周期由生存時(shí)間(從開始分配到最后一次命中的時(shí)間)和死亡時(shí)間(從最后一次命中到被逐出的時(shí)間)組成。分配后緩存塊的訪問命中總次數(shù)稱為數(shù)據(jù)重用次數(shù),圖1 中緩存塊A 的重用次數(shù)為5。第一次分配稱為初始放置,為記錄每個(gè)緩存塊的重用次數(shù),在每個(gè)緩存塊中增加額外的兩位計(jì)數(shù)器。

圖1 緩存塊A 的生命周期Fig.1 Life cycle of cache block A

2.2 不同延遲的LLC 平均訪問時(shí)間

由于讀寫具有不對稱性,因此NVM 緩存需要特定的管理策略。然而LRU 等傳統(tǒng)緩存管理策略僅考慮了緩存塊的局部特征,卻無法感知NVM 緩存的讀寫非對稱性。針對該問題,本文在多核處理器中基于不同緩存參數(shù)配置進(jìn)行實(shí)驗(yàn)(見3.1 節(jié)),得到不同寫延遲配置下運(yùn)行SPLASH-2[16]基準(zhǔn)測試程序的LLC 平均訪問時(shí)間,實(shí)驗(yàn)結(jié)果如圖2 所示。

圖2 不同寫延遲配置下的LLC 平均訪問時(shí)間Fig.2 LLC average access time under different write delay configurations

在圖2 中,第1 組未配置3 級緩存LLC(Without LLC),得到數(shù)據(jù)直接從主存中填充到L2 緩存時(shí)的總數(shù)據(jù)訪問時(shí)間。第2 組(寫延遲為讀延遲的1 倍,記為1×)配置了具有相同讀寫訪問延遲的緩存。第3 組寫延遲分別增加到讀延遲的2 倍(2×)、3 倍(3×)、4 倍(4×)和5 倍(5×)。可以看出,當(dāng)緩存讀寫訪問趨于不對稱時(shí)總數(shù)據(jù)訪問時(shí)間會(huì)增加,當(dāng)LLC 緩存的寫延遲足夠大時(shí)刪除LLC 緩存有助于減少總數(shù)據(jù)訪問時(shí)間。對于radiosity 和radix 等基準(zhǔn)測試程序,刪除LLC 緩存可減少訪問時(shí)間,說明將緩存塊從主存填充到LLC 意義不大。

2.3 LLC 缺失時(shí)的旁路策略

當(dāng)LLC 缺失時(shí),目標(biāo)緩存塊會(huì)從主存調(diào)出填充到LLC 中,采用旁路策略可減少LLC 中寫操作次數(shù)并避免性能下降。由于緩存具有非包含性,因此緩存塊即使通過旁路繞過LLC 也可保持?jǐn)?shù)據(jù)一致性。下文將針緩存系統(tǒng)配置介紹LLC 的讀操作(寫操作與此類似)。

當(dāng)LLC 缺失時(shí),緩存塊從主存調(diào)出后的填充操作如圖3所示(虛線表示模塊之間可以數(shù)據(jù)互通,以下同)。如果主存加載的緩存塊繞過LLC,則其將被直接填充到L2 緩存,如路徑2 所示;否則緩存塊正常加載到LLC中,如路徑1 所示。結(jié)合圖2 的分析結(jié)果可知,將部分重用緩存塊填充到LLC 并不能帶來性能上的提升,其原因是此類緩存塊常由于后續(xù)請求被修改或被更新,導(dǎo)致LLC 中大部分為無效緩存塊,僅當(dāng)來自上級緩存的數(shù)據(jù)逐級寫回,才能使得LLC 中緩存塊重新有效。

圖3 LLC 缺失時(shí)緩存塊的填充操作Fig.3 Filling operation of cache block when LLC is missing

基于上述規(guī)則,如果某個(gè)核心所執(zhí)行的指令請求逐級向下級緩存索引緩存塊,則當(dāng)LLC 未命中時(shí),整個(gè)緩存會(huì)產(chǎn)生一次缺失,此時(shí)需要從主存中查找緩存塊進(jìn)行填充。如果此后緩存塊在其生命周期中有較高的重用率,可無需填充至LLC。當(dāng)該緩存塊被替換算法逐出LLC 時(shí),在某個(gè)時(shí)刻核心有一條相同的指令請求并再次出現(xiàn)緩存缺失,利用以往記錄可將緩存塊填充至對應(yīng)核心的L2 緩存中,無需填充到LLC。

為支持旁路策略,需要額外的預(yù)測表來保存相應(yīng)指令的部分地址位,且LLC 的每個(gè)緩存塊添加額外的數(shù)據(jù)比特來保存相應(yīng)的部分地址位,LLC 緩存塊和預(yù)測表的結(jié)構(gòu)如圖4 所示。當(dāng)緩存塊從主存填充至LLC 時(shí),需將請求指令的部分地址保存至緩存塊。如果該緩存塊被替換算法選擇為犧牲塊,則需檢查該緩存塊的重用信息,每個(gè)緩存塊均添加重用計(jì)數(shù)位(V),當(dāng)重用計(jì)數(shù)位超過給定閾值(本文中閾值為2)時(shí),該緩存塊中部分指令地址(Addr)位被保存到預(yù)測表中。如果此后有一條相同的請求指令出現(xiàn)LLC缺失,則表明查詢預(yù)測表匹配成功,且緩存塊會(huì)從主存旁路至L2 緩存。

圖4 LLC 緩存塊和預(yù)測表的結(jié)構(gòu)Fig.4 Structure of LLC cache block and prediction table

下文列舉多核處理器實(shí)例(見圖5)來介紹基于預(yù)測表和重用信息的LLC 旁路策略(初始冷啟動(dòng)下,預(yù)測表為空且無任何信息)。

1)在圖5(a)中,當(dāng)核心0 的一條指令請求A 訪問LLC 出現(xiàn)缺失時(shí),預(yù)測表為空,通過查詢主存獲得對應(yīng)的緩存塊1 并將其填充至LLC,如圖5(b)所示。導(dǎo)入緩存塊后,更新狀態(tài)信息為:重用計(jì)數(shù)設(shè)置為0,Addr 域保存指令地址A 的高位部分。此后每次訪問和命中緩存塊1 均需更新重用計(jì)數(shù)器的值,以便后續(xù)旁路策略執(zhí)行決策。

2)在圖5(c)中,在某一個(gè)時(shí)刻緩存塊1 和緩存塊2 被替換算法先后從LLC 中逐出,此時(shí)需檢查緩存塊的重用信息,并根據(jù)重用計(jì)數(shù)器的值來動(dòng)態(tài)決定對應(yīng)緩存塊的地址信息是否需保存到預(yù)測表。由于緩存塊1 的重用計(jì)數(shù)器值為3,超出給定閾值,因此緩存塊1 的Addr 位被寫入預(yù)測表。因?yàn)榫彺鎵K2的重用計(jì)數(shù)器值為1,未超出給定閾值,所以緩存塊2的Addr 位無需寫入預(yù)測表。此后若再訪問緩沖塊1,則通過檢查預(yù)測表可判定是否進(jìn)行旁路操作。

3)在圖5(d)中,當(dāng)核心0 的一條指令請求A 訪問LLC 出現(xiàn)缺失時(shí),如果通過查詢預(yù)測表發(fā)現(xiàn)以前的記錄中保存有指令A(yù) 的地址,則請求匹配成功。來自主存的緩存塊將通過旁路策略被直接填充至核心0 的L2 緩存中。此時(shí)若所需訪問的地址在預(yù)測表中,則說明對應(yīng)的緩存塊重用性很高,使其繞過LLC 緩存可減少寫次數(shù),不影響對該緩存塊的再次訪問。

圖5 LLC 旁路策略實(shí)例Fig.5 Example of LLC bypass strategy

4)圖6為緩存塊填入LLC 的過程。核心1有一條指令請求緩存塊2,由于該緩存塊已被逐出LLC,因此會(huì)出現(xiàn)LLC 缺失,需訪問主存來獲取緩存塊2,此時(shí)查詢預(yù)測表未能匹配成功,將緩存塊填充至LLC中。因?yàn)榫彺鎵K2 被重用的次數(shù)小于旁路策略ReBP中設(shè)定的閾值,所以其被逐出LLC 時(shí)相關(guān)地址信息未存儲(chǔ)于預(yù)測表中,當(dāng)其被再次訪問時(shí),ReBP 在預(yù)測表中無法找到對應(yīng)的信息,因此,對緩存塊2 不采取旁路操作。

圖6 緩存塊填入LLC 的過程Fig.6 Process of filling cache block into LLC

上述工作均圍繞讀操作進(jìn)行,本文所提旁路策略ReBP 對寫操作的處理方式與此類似,同樣根據(jù)相應(yīng)緩存塊的重用信息,利用預(yù)測表動(dòng)態(tài)地進(jìn)行旁路操作。

2.4 寫回LLC 時(shí)的旁路策略

上級緩存(假設(shè)為L2緩存)的寫回操作旁路策略如圖7所示。當(dāng)L2緩存中的緩存塊被寫回時(shí),如果采用旁路策略,則該緩存塊將寫回其他核心的L2緩存中,如路徑4所示;否則,該緩存塊正常寫回LLC緩存中,如路徑3所示。

圖7 上級緩存寫回操作旁路策略Fig.7 Bypass strategy for write-back operation of superior cache

對寫回的緩存塊進(jìn)行旁路操作目前存在如下問題:1)需確定對哪些寫回的緩存塊使用旁路操作;2)將采取旁路操作的緩存塊保存到何處。針對第1 個(gè)問題,根據(jù)上文分析結(jié)果,具有較高重用計(jì)數(shù)的緩存塊從當(dāng)前緩存被逐出后,仍有較高的概率被再次重用填充。因此,該緩存塊填充到存儲(chǔ)壓力較小的核心的L2 緩存,不僅能減少基于NVM 的LLC寫操作次數(shù),還能以較小的代價(jià)再次重用該緩存塊。針對第2 個(gè)問題,為獲取各個(gè)核心L2 緩存的存儲(chǔ)壓力等狀態(tài)信息,本文所提旁路策略在多核芯片中增加緩存監(jiān)控模塊CM(見圖8),以監(jiān)測各個(gè)L2 緩存當(dāng)前的存儲(chǔ)壓力,為旁路的緩存塊選擇合適目標(biāo),從而使得各個(gè)L2 緩存的負(fù)載更均衡。在下文的對比實(shí)驗(yàn)中,將CM 模塊設(shè)置為實(shí)時(shí)查詢模式,并分析實(shí)時(shí)查詢和間隔查詢對緩存性能的影響。

圖8 CM 模塊結(jié)構(gòu)Fig.8 Structure of CM module

圖9 為核心之間的旁路策略。由于緩存塊A 將被替換算法逐出,查找該緩存塊的重用計(jì)數(shù)信息后,若發(fā)現(xiàn)其超過設(shè)定的閾值,則可采取旁路操作。檢查CM 模塊中各個(gè)核心的L2 緩存負(fù)載信息,若當(dāng)前核心2 的L2 緩存缺失率較其他核心更低,則可選擇從核心0 中的L2 緩存寫回核心2 的L2 緩存中。如果來自核心0的寫回緩存塊重用計(jì)數(shù)信息超過設(shè)定的閾值,則不采用旁路策略,直接正常寫回LLC 中。該旁路策略通過將來自L2緩存的寫回緩存塊旁路至其他核心,減少了LLC的寫次數(shù),使該緩存塊具有更高的重用率,后續(xù)訪問再次重用這些緩存塊的概率較高。由于L2 緩存更接近處理器,因此可縮短緩存塊的訪問延遲,提高整體系統(tǒng)性能,并減少LLC 的寫入次數(shù)。

圖9 核心之間的旁路策略Fig.9 Bypassing strategy in cores

3 實(shí)驗(yàn)與結(jié)果分析

本文通過實(shí)驗(yàn)對提出的ReBP 策略進(jìn)行驗(yàn)證,分別評估其在單個(gè)和多個(gè)應(yīng)用程序場景下的性能,并與其他相關(guān)策略進(jìn)行對比分析。

3.1 實(shí)驗(yàn)方法

本文采用Sniper 模擬器[17]進(jìn)行片上多核處理器系統(tǒng)仿真實(shí)驗(yàn)。該系統(tǒng)有4 個(gè)核心,每個(gè)核心的主頻為2 GHz。片上緩存系統(tǒng)設(shè)置為3 級緩存,L1I/L1D 和L2是基于SRAM 的緩存,LLC 是基于STT-RAM 的非對稱訪問緩存,相關(guān)組件配置如表1 所示。

表1 相關(guān)組件配置Table 1 Configuration of related components

為評估基于STT-RAM 的LLC 性能,本文將其與基于SRAM 的LLC 進(jìn)行比較。通過采用CACTI 6.5[18]和NVSim[19]建模仿真4 MB STT-RAM 和4 MB SRAM 緩存對應(yīng)的特性,參數(shù)設(shè)置如表2 所示。由于STT-RAM具有非易失性,因此其靜態(tài)能耗比SRAM 緩存少一個(gè)數(shù)量級。在相同的存儲(chǔ)容量下,若STT-RAM 所占面積越小,則STT-RAM的LLC在同等面積上存儲(chǔ)信息越多。

表2 SRAM 和STT-RAM 的仿真參數(shù)設(shè)置Table 2 Simulation parameter setting of SRAM and STT-RAM

為進(jìn)行全面評估,分別在單一和隨機(jī)混合的多程序基準(zhǔn)中進(jìn)行分析。所有的基準(zhǔn)測試均來自SPLASH-2。從SPLASH-2中隨機(jī)選擇4個(gè)程序構(gòu)成多程序工作負(fù)載,如表3所示,并對所有負(fù)載運(yùn)行過程中整個(gè)緩存層次的靜態(tài)能耗和動(dòng)態(tài)能耗進(jìn)行統(tǒng)計(jì)。本文仿真實(shí)驗(yàn)實(shí)現(xiàn)了3種緩存策略:1)無旁路的高速緩存策略Baseline;2)基于統(tǒng)計(jì)的緩存旁路策略SBAC-Private[20],其利用數(shù)據(jù)重用計(jì)數(shù)概率進(jìn)行旁路決策;3)本文提出的基于重用的旁路策略ReBP。以系統(tǒng)運(yùn)行應(yīng)用負(fù)載的總執(zhí)行時(shí)間作為性能指標(biāo),將高速緩存的總能耗作為能耗指標(biāo)。所有仿真結(jié)果均以Baseline策略為基準(zhǔn)進(jìn)行對比。

表3 多程序工作負(fù)載Table 3 Multiprogramming workload

3.2 單應(yīng)用評估

圖10 為上述3 種策略運(yùn)行SPLASH-2 程序單應(yīng)用基準(zhǔn)測試下的能耗結(jié)果。可以看出,ReBP 策略使緩存系統(tǒng)的能耗較Baseline 策略平均減少22.5%,而SBAC-Private 策略使緩存系統(tǒng)的能耗較Baseline 策略平均減少15.2%。對基于非易失性存儲(chǔ)器的緩存而言,旁路策略的能耗減少量與預(yù)測精度有關(guān)。由于基于重用的預(yù)測能獲得較高預(yù)測精度,因此ReBP策略可將高重用的緩存塊保留在上級緩存中的L2緩存,將低重用計(jì)數(shù)緩存塊繞過LLC。錯(cuò)誤預(yù)測會(huì)導(dǎo)致ReBP 策略將有用的緩存塊也進(jìn)行旁路,從而抵消其被正確實(shí)現(xiàn)帶來的優(yōu)勢。

圖10 3 種策略的單應(yīng)用能耗對比Fig.10 Comparison of single application energy consumption of three strategies

如果應(yīng)用程序自身的L2 緩存缺失率非常高,則旁路策略的作用將十分有限。例如對于ocean.cont-scale程序,ReBP 策略僅降低2%的能耗。由于L2 緩存缺失率高,因此ReBP 策略將緩存塊旁路到其他L2 緩存可能會(huì)進(jìn)一步增加缺失率,從而在一定程度上抵消ReBP策略帶來的收益。

旁路策略除了通過減少STT-RAM 的寫操作降低能耗之外,對系統(tǒng)性能也有影響。圖11 為單應(yīng)用場景下3 種策略中應(yīng)用負(fù)載的運(yùn)行時(shí)間對比情況。可以看出,ReBP 策略使應(yīng)用負(fù)載的運(yùn)行時(shí)間較Baseline 策略平均減少6.6%,其原因如下:1)ReBP 策略可減少STT-RAM 中延遲較大的寫操作對讀操作的干擾,從而提升系統(tǒng)性能;2)ReBP 策略使重用率高的緩存塊繞過LLC,提升了LLC 的空間利用率,其可容納更多緩存塊來提升系統(tǒng)性能。SBAC-Private策略基于緩存塊的統(tǒng)計(jì)信息進(jìn)行,預(yù)測精度低于ReBP 策略,其使應(yīng)用負(fù)載的運(yùn)行時(shí)間較Baseline 策略平均減少5.4%。

圖11 單應(yīng)用場景下3 種策略應(yīng)用負(fù)載的運(yùn)行時(shí)間對比Fig.11 Running time comparison of application load of three strategies in single application scenario

由圖11 還可以看出,對于ocean.cont 程序,ReBP策略使應(yīng)用負(fù)載的運(yùn)行時(shí)間較Baseline 策略增加5%。因?yàn)長2 緩存缺失率普遍較高,所以ReBP 策略中旁路到其他核心的L2 緩存的緩存塊造成目標(biāo)核心后續(xù)訪問緩存出現(xiàn)較多缺失,導(dǎo)致該程序在ReBP策略下運(yùn)行時(shí)間延長。由上述分析可知,ReBP 策略的核心之間容量共享方案需考慮L2 緩存本身的壓力,若壓力達(dá)到一定程度,應(yīng)關(guān)閉ReBP 策略中核心之間的旁路,這也是下一步繼續(xù)優(yōu)化ReBP 策略的一個(gè)重要方向。

3.3 多應(yīng)用評估

圖12 為3 種策略在多應(yīng)用(程序)基準(zhǔn)測試下的能耗結(jié)果。可以看出,ReBP 策略在大部分多應(yīng)用基準(zhǔn)測試中的能耗較SBAC-Private 策略更少。與Baseline 策略相比,ReBP 策略與SBAC-Private 策略分別將能耗平均降低15.4%和11.3%。在多應(yīng)用場景下,ReBP 策略將核心的高重用緩存塊填充至其他核心的L2 緩存可能會(huì)提升L2緩存的缺失率。因?yàn)槊總€(gè)核心均運(yùn)行多個(gè)線程,會(huì)增加各L2 緩存之間旁路的頻率,從而給L2 緩存缺失率偏高的應(yīng)用造成額外的缺失,浪費(fèi)能耗且影響性能。由圖12 還可以看出,對于mix3、mix7、mix9 和mix10 這4 個(gè)基準(zhǔn)測試多程序,ReBP 策略的能耗高于SBAC-Private 策略。

圖12 3 種策略的多應(yīng)用能耗對比Fig.12 Comparison of multi application energy consumption of three strategies

在應(yīng)用負(fù)載的運(yùn)行時(shí)間上,ReBP 策略在多應(yīng)用情況下與SBAC-Private 策略相似,均比Baseline 策略高約3%。圖13 為多應(yīng)用場景下3 種策略中應(yīng)用負(fù)載的運(yùn)行時(shí)間對比情況。可以看出,ReBP策略與SBAC-Private策略應(yīng)用負(fù)載的運(yùn)行時(shí)間比Baseline 策略更長,其原因是每個(gè)核心都運(yùn)行多個(gè)線程,各級緩存負(fù)載均很高,降低了ReBP 策略和SBAC-Private 策略進(jìn)行旁路決策的精度。ReBP策略和SBAC-Private策略可有效降低STTRAM 緩存的能耗,但若多核系統(tǒng)中運(yùn)行的應(yīng)用對延遲敏感,則需慎用旁路策略。

圖13 多應(yīng)用場景下3 種策略應(yīng)用負(fù)載的運(yùn)行時(shí)間對比Fig.13 Running time comparison of application load of three strategies in multi application scenario

3.4 CM 模塊查詢間隔分析

在上述實(shí)驗(yàn)中,采用ReBP 策略對L2 緩存塊進(jìn)行旁路操作時(shí),CM 模塊設(shè)置為實(shí)時(shí)查詢方式,通過不斷查詢比較4 個(gè)L2 緩存的缺失率選擇合適的旁路路徑。然而該實(shí)時(shí)查詢存在較大開銷,可將CM 模塊缺失率查詢方式設(shè)置為間隔查詢來減少開銷。在不同CM 模塊查詢間隔時(shí)間下,將ReBP 策略在3 個(gè)單應(yīng)用場景和3 組多應(yīng)用場景中應(yīng)用負(fù)載的運(yùn)行時(shí)間進(jìn)行對比分析,結(jié)果如圖14 所示。

圖14 不同應(yīng)用場景下CM 模塊查詢結(jié)果Fig.14 Query results of CM module in different application scenarios

由圖14可以看出,當(dāng)查詢間隔時(shí)間為8 ms時(shí),mix4應(yīng)用負(fù)載的運(yùn)行時(shí)間最優(yōu),其他應(yīng)用均在4 ms 的查詢間隔時(shí)間下獲得最優(yōu)性能。此外,當(dāng)查詢間隔很短時(shí)應(yīng)用的運(yùn)行時(shí)間延長,當(dāng)查詢間隔逐漸增加后應(yīng)用的運(yùn)行時(shí)間縮短,但當(dāng)查詢間隔進(jìn)一步增加后應(yīng)用的運(yùn)行時(shí)間又延長。其原因在于,非常小的時(shí)間間隔會(huì)使得CM 模塊查詢頻繁,造成查詢總開銷較大,從而影響應(yīng)用的性能。隨著查詢間隔時(shí)間增加,CM 模塊中各個(gè)L2 緩存塊的壓力信息由于長時(shí)間得不到更新,造成旁路策略長時(shí)間寫入同一個(gè)核心L2 緩存塊中,導(dǎo)致該緩存塊負(fù)載較大,進(jìn)而污染該緩存產(chǎn)生額外的LLC 訪問次數(shù),最終使得整個(gè)應(yīng)用的運(yùn)行時(shí)間增加。由上述分析可知,查詢間隔時(shí)間取4 ms 最佳。

4 結(jié)束語

非易失性存儲(chǔ)器可替代傳統(tǒng)基于CMOS 芯片的RAM 存儲(chǔ)器作為片上緩存,但其寫操作代價(jià)過高導(dǎo)致無法被大規(guī)模應(yīng)用,而利用緩存旁路技術(shù)可減少緩存的寫操作來提升非易失性緩存性能。本文分析測試程序訪問最后一級緩存時(shí)的特征,提出基于緩存塊重用的動(dòng)態(tài)旁路策略,通過提升旁路決策精度確保旁路的效率,同時(shí)將高重用的緩存塊動(dòng)態(tài)旁路到存儲(chǔ)壓力較小的上級緩存,以減少非易失性緩存的寫操作次數(shù)。實(shí)驗(yàn)結(jié)果表明,與未采用旁路策略的緩存相比,該策略的基準(zhǔn)測試程序運(yùn)行時(shí)間和緩存能耗更低,有效提高了整體緩存性能。由于本文采用LLC 缺失時(shí)的旁路策略,因此LLC 體系結(jié)構(gòu)設(shè)計(jì)為非包含模式,該模式下LLC 寫操作次數(shù)相對較多。后續(xù)考慮在該策略的基礎(chǔ)上,將LLC 體系結(jié)構(gòu)設(shè)計(jì)為包含模式以減少寫操作次數(shù),并采用添加額外標(biāo)簽的無數(shù)據(jù)存儲(chǔ)方式,實(shí)現(xiàn)空間容量利用率最大化。

猜你喜歡
指令策略
聽我指令:大催眠術(shù)
基于“選—練—評”一體化的二輪復(fù)習(xí)策略
求初相φ的常見策略
例談未知角三角函數(shù)值的求解策略
我說你做講策略
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
高中數(shù)學(xué)復(fù)習(xí)的具體策略
殺毒軟件中指令虛擬機(jī)的脆弱性分析
Passage Four
主站蜘蛛池模板: 伊人网址在线| 91在线精品麻豆欧美在线| 天天综合网色| 色噜噜中文网| 激情网址在线观看| 天堂va亚洲va欧美va国产 | 最新国产你懂的在线网址| 亚洲精品男人天堂| 多人乱p欧美在线观看| 国产一在线观看| 日本爱爱精品一区二区| 亚洲日本韩在线观看| 在线观看免费国产| 最新无码专区超级碰碰碰| 免费看av在线网站网址| 国产精品hd在线播放| 色婷婷在线播放| 免费看a毛片| 大学生久久香蕉国产线观看| 色悠久久久久久久综合网伊人| 欧美午夜在线观看| 国产成人1024精品下载| 亚洲精品无码专区在线观看 | 国产精品深爱在线| 99国产在线视频| 一级香蕉视频在线观看| 午夜国产精品视频| 92午夜福利影院一区二区三区| 中文字幕在线一区二区在线| 久久精品国产精品一区二区| 三级国产在线观看| 女同久久精品国产99国| 一区二区午夜| 亚洲无码视频一区二区三区| 日本亚洲成高清一区二区三区| 国产午夜无码专区喷水| 日韩最新中文字幕| 99九九成人免费视频精品| 国产白丝av| 毛片一级在线| 欧美午夜小视频| 四虎精品国产AV二区| 日韩午夜福利在线观看| 国产精品成人免费视频99| 2019年国产精品自拍不卡| 亚洲an第二区国产精品| 欧美视频在线第一页| 国产在线观看第二页| 综合色亚洲| 日韩精品一区二区三区中文无码| 欧美日韩国产系列在线观看| 91蝌蚪视频在线观看| 国产美女在线观看| 91久久国产综合精品女同我| 亚洲乱亚洲乱妇24p| 欧美啪啪视频免码| 欧美成人午夜视频免看| 久久性视频| 免费A级毛片无码免费视频| 亚洲精品视频免费| 亚洲精品动漫在线观看| 永久在线精品免费视频观看| 亚洲欧洲日产无码AV| 精品一区二区三区自慰喷水| 在线看片中文字幕| 欧美一区中文字幕| 激情综合婷婷丁香五月尤物 | 日本一区二区三区精品国产| 国产精品熟女亚洲AV麻豆| 成人一级免费视频| 成人午夜亚洲影视在线观看| 亚洲精品第1页| 日韩精品亚洲一区中文字幕| 国产高清又黄又嫩的免费视频网站| 99激情网| 国产亚洲欧美在线中文bt天堂| 色播五月婷婷| 久久夜夜视频| 99久久国产综合精品女同 | 国禁国产you女视频网站| lhav亚洲精品| 久久这里只精品热免费99|