摘 要:
當(dāng)前基于DRAM和NVM的混合內(nèi)存系統(tǒng)在系統(tǒng)結(jié)構(gòu)領(lǐng)域的研究前景廣闊,特別是對(duì)混合內(nèi)存系統(tǒng)進(jìn)行數(shù)據(jù)放置的研究已經(jīng)成為國內(nèi)外研究的熱點(diǎn)。對(duì)混合內(nèi)存架構(gòu)下數(shù)據(jù)放置策略進(jìn)行了研究,在介紹當(dāng)前常見混合內(nèi)存架構(gòu)的基礎(chǔ)上,對(duì)現(xiàn)有數(shù)據(jù)放置策略的設(shè)計(jì)思路進(jìn)行了全面分析,主要涉及硬件/軟件機(jī)制、內(nèi)存訪問特征、靜態(tài)/動(dòng)態(tài)分析、機(jī)器智能、觸發(fā)方式和粒度選擇等方面,并針對(duì)混合內(nèi)存性能、功耗和耐久性的數(shù)據(jù)放置優(yōu)化進(jìn)行總結(jié)。綜合分析發(fā)現(xiàn),現(xiàn)有的混合內(nèi)存數(shù)據(jù)放置策略在內(nèi)存架構(gòu)、數(shù)據(jù)遷移、計(jì)算成本和全局優(yōu)化等方面還存在局限性,未來在架構(gòu)設(shè)計(jì)以及內(nèi)存管理方面的改進(jìn)還有很大的研究探索空間和發(fā)展前景。
關(guān)鍵詞:混合內(nèi)存;數(shù)據(jù)放置;非易失性存儲(chǔ)器;研究綜述
中圖分類號(hào):TP333 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001-3695(2024)09-003-2585-07
doi:10.19734/j.issn.1001-3695.2023.12.0639
Review of data placement in hybrid memory architecture
Lin Binghui, Zhang Jianxun, Qiao Xinyu
(School of Information Technology Engineering, Tianjin University of Technology & Education, Tianjin 300222, China)
Abstract:
The current research on hybrid memory systems based on DRAM and NVM is promising in the field of system architecture, especially the research on data placement in hybrid memory systems has become a research hotspot in domestic and foreign studies. This paper studied the data placement strategy in hybrid memory architecture. On the basis of introducing the common hybrid memory architectures, it comprehensively analyzed the design ideas of existing data placement strategies, mainly involving hardware/software mechanisms, memory access characteristics, static/dynamic analysis, machine intelligence, trigger modes, and granularity selection, and summarized the data placement optimization in hybrid memory in terms of performance, power consumption, and endurance. The comprehensive analysis reveals that existing data placement strategies in hybrid memory still have limitations in terms of memory architecture, data migration, computational cost, and global optimization. In the future, there is still a lot of research space and development prospects in improving architectural design and memory management.
Key words:hybrid memory; data placement; non-volatile memory; research review
0 引言
隨著高性能計(jì)算、人工智能、大數(shù)據(jù)和云計(jì)算等領(lǐng)域的蓬勃發(fā)展,相關(guān)技術(shù)對(duì)高內(nèi)存占用、高吞吐量和低能耗的需求日益增加[1],應(yīng)用對(duì)內(nèi)存系統(tǒng)的容量、能效和訪問延遲提出了較高的要求。然而,由于傳統(tǒng)的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dynamic random access memory, DRAM)靜態(tài)功耗高且存在可擴(kuò)展性問題,從而導(dǎo)致DRAM內(nèi)存系統(tǒng)成為當(dāng)前計(jì)算機(jī)系統(tǒng)性能提升的主要瓶頸之一。大量研究表明[2~5],基于DRAM的主存系統(tǒng)消耗了現(xiàn)代計(jì)算機(jī)系統(tǒng)中約40%的能耗。
新興的非易失性存儲(chǔ)器(non-volatile memory,NVM)技術(shù)是未來極具潛力的內(nèi)存技術(shù)。NVM主要包括相變存儲(chǔ)器(phase change memory, PCM)、自旋轉(zhuǎn)移矩磁隨機(jī)存儲(chǔ)器(spin transfer torque random access memory,STT-RAM)、鐵電隨機(jī)存儲(chǔ)器(ferroelectric random access memory,F(xiàn)eRAM)、阻變隨機(jī)存儲(chǔ)器(resistive random access memory,RRAM)[6~9]。為綜合對(duì)比不同內(nèi)存技術(shù)的特點(diǎn),表1[2,7,8]從讀/寫延遲、耐久性和功耗等幾個(gè)方面對(duì)現(xiàn)有的內(nèi)存技術(shù)進(jìn)行了對(duì)比分析。盡管NVM具備非易失性、高密度和低靜態(tài)功耗等優(yōu)勢,但相較于DRAM仍存在寫功耗高、寫延遲高和耐久性有限等問題[10~13],導(dǎo)致NVM并不能完全取代現(xiàn)有的DRAM。因此在內(nèi)存設(shè)計(jì)上需充分考慮兩者的內(nèi)存特性。當(dāng)前采用基于DRAM和NVM的混合內(nèi)存結(jié)構(gòu)替代單一DRAM組成的傳統(tǒng)內(nèi)存結(jié)構(gòu)設(shè)計(jì)已經(jīng)成為系統(tǒng)結(jié)構(gòu)研究領(lǐng)域的共識(shí),并已經(jīng)成功應(yīng)用于商用系統(tǒng)。新型的混合內(nèi)存結(jié)構(gòu)設(shè)計(jì)在不影響成本和性能的情況下獲得了高容量的內(nèi)存[12],同時(shí)也增加了對(duì)內(nèi)存管理的復(fù)雜性,如何對(duì)混合內(nèi)存進(jìn)行有效調(diào)度和管理的研究也成為研究的熱點(diǎn)領(lǐng)域,其中包括混合內(nèi)存系統(tǒng)的數(shù)據(jù)放置研究。
混合內(nèi)存數(shù)據(jù)放置的研究主要包括數(shù)據(jù)的分配和遷移兩個(gè)方面。當(dāng)前,DRAM-NVM混合內(nèi)存系統(tǒng)的數(shù)據(jù)放置主要面臨以下挑戰(zhàn):一是識(shí)別和管理需要進(jìn)行數(shù)據(jù)放置的數(shù)據(jù),選擇合適的數(shù)據(jù)進(jìn)行放置,才能提升混合內(nèi)存系統(tǒng)的性能;二是設(shè)計(jì)數(shù)據(jù)放置的算法,需要對(duì)數(shù)據(jù)放置考慮以何種方式實(shí)現(xiàn)和何時(shí)觸發(fā)等因素,同時(shí)還需要考慮數(shù)據(jù)遷移的頻率。如果遷移頻率過高,可能會(huì)導(dǎo)致不必要的遷移,而如果遷移頻率過低,一些必要的遷移可能無法及時(shí)進(jìn)行。
本文關(guān)注于混合內(nèi)存系統(tǒng)中數(shù)據(jù)的分配和遷移來對(duì)數(shù)據(jù)放置策略進(jìn)行研究,并從架構(gòu)設(shè)計(jì)、方法特點(diǎn)和優(yōu)化目標(biāo)等方面對(duì)現(xiàn)有的混合內(nèi)存數(shù)據(jù)放置策略進(jìn)行了梳理,并探討了混合內(nèi)存放置策略未來的研究方向。
1 混合內(nèi)存架構(gòu)
混合內(nèi)存架構(gòu)根據(jù)DRAM和NVM的相對(duì)位置和功能進(jìn)行分類,主要分為層次架構(gòu)和水平架構(gòu)[2]。
1.1 層次架構(gòu)
如圖1所示,層次架構(gòu)將DRAM作為NVM的高速緩存層或者緩沖區(qū),而將NVM作為主存層[14]。由NVM和DRAM緩存構(gòu)成的混合內(nèi)存系統(tǒng),在應(yīng)用程序執(zhí)行期間,DRAM負(fù)責(zé)緩存最近訪問的數(shù)據(jù)以減少對(duì)NVM的訪問次數(shù),而NVM負(fù)責(zé)保存大部分所需的數(shù)據(jù)以緩解DRAM和NVM之間讀/寫延遲的不對(duì)稱性。由NVM和DRAM寫緩沖區(qū)構(gòu)成的混合內(nèi)存系統(tǒng),DRAM用于接收來自最后一級(jí)緩存(last level cache,LLC)的寫數(shù)據(jù),以提供更高的性能。
1.1.1 層次架構(gòu)的優(yōu)勢
層次架構(gòu)下,內(nèi)存訪問只在DRAM缺失時(shí),請求才被定向到NVM,因此對(duì)NVM的訪問量減少。在層次架構(gòu)中,數(shù)據(jù)通常按需獲取,因此DRAM中沒有帶寬損失或容量損失,加之DRAM由硬件管理,對(duì)操作系統(tǒng)和應(yīng)用程序是完全透明的[15]。
1.1.2 層次架構(gòu)的局限性
在層次架構(gòu)中,DRAM被組織為N路組相聯(lián)緩存,需要額外的硬件來管理DRAM緩存,在實(shí)現(xiàn)上較為復(fù)雜。管理用于跟蹤DRAM緩存數(shù)據(jù)的元數(shù)據(jù)可能會(huì)導(dǎo)致過高的存儲(chǔ)開銷,從而增加內(nèi)存訪問延遲[10,16,17]。面對(duì)局部性差的工作負(fù)載,緩存的性能會(huì)顯著下降并伴隨功耗的上升。雖然DRAM作為緩沖區(qū)也能夠提升系統(tǒng)性能,但每次寫請求至少需要在DRAM中執(zhí)行一次寫操作,可能還需要在將數(shù)據(jù)刷新到NVM時(shí)執(zhí)行一次DRAM讀操作和一次NVM寫操作。這些額外的讀/寫操作都會(huì)增加內(nèi)存系統(tǒng)的總能耗。此外,DRAM空間不會(huì)增加混合內(nèi)存的總體容量。
1.2 水平架構(gòu)
如圖2所示,在水平架構(gòu)中,DRAM和NVM形成了一個(gè)統(tǒng)一可尋址的內(nèi)存層。
1.2.1 水平架構(gòu)的優(yōu)勢
水平架構(gòu)使DRAM和NVM共享一個(gè)公共地址空間,能夠提供更高的容量[18]。由于可以同時(shí)訪問兩種內(nèi)存,所以水平架構(gòu)提供的內(nèi)存帶寬更高。此外,水平架構(gòu)不需要額外的硬件來維護(hù)內(nèi)存,DRAM和NVM對(duì)操作系統(tǒng)是可見的[15]。
1.2.2 水平架構(gòu)的局限性
為了提高數(shù)據(jù)訪問性能,水平架構(gòu)的混合內(nèi)存系統(tǒng)需要將頻繁訪問的NVM熱頁面遷移到DRAM。在進(jìn)行頁面遷移時(shí),需要修改軟件或操作系統(tǒng)干預(yù)來確保頁面分配的進(jìn)行,因此會(huì)增加系統(tǒng)開銷。在跟蹤內(nèi)存活動(dòng)時(shí),頁面級(jí)內(nèi)存監(jiān)控需要硬件支持,需要對(duì)硬件進(jìn)行修改才能統(tǒng)計(jì)內(nèi)存訪問[2]。此外,系統(tǒng)的數(shù)據(jù)放置策略也在很大程度上決定了混合內(nèi)存系統(tǒng)的性能[19]。
1.3 架構(gòu)設(shè)計(jì)改進(jìn)
現(xiàn)有的研究通過融合兩種內(nèi)存架構(gòu)的優(yōu)點(diǎn)進(jìn)行了設(shè)計(jì)改進(jìn)。例如,Kotra等人[20]提出的Chameleon可以根據(jù)應(yīng)用程序的內(nèi)存需求動(dòng)態(tài)配置。Chameleon使用空閑空間作為緩存,當(dāng)應(yīng)用程序需要更大的容量時(shí),其會(huì)切換到統(tǒng)一地址空間。Liu等人[10]提出了一種用于混合內(nèi)存架構(gòu)的硬件/軟件協(xié)同緩存機(jī)制HSCC,以解決基于硬件機(jī)制的限制。如表2[10]所示,HSCC將DRAM和NVM以水平架構(gòu)的形式組織,但在邏輯上支持層次架構(gòu)。HSCC通過軟件層進(jìn)行DRAM緩存管理來簡化硬件設(shè)計(jì)。同樣,Chi等人[17]提出Mocha混合內(nèi)存架構(gòu),將DRAM和NVM在物理上組織成一個(gè)統(tǒng)一地址空間,但在邏輯上將DRAM視為NVM的緩存。改進(jìn)后架構(gòu)具有更低的數(shù)據(jù)遷移流量和更好的系統(tǒng)性能,此類方法可以避免大量的硬件修改,同時(shí)保證混合內(nèi)存管理的靈活性。
2 混合內(nèi)存數(shù)據(jù)放置方法分類及特點(diǎn)
數(shù)據(jù)放置主要涉及在應(yīng)用程序執(zhí)行之前對(duì)數(shù)據(jù)的初始分配,以及應(yīng)對(duì)實(shí)時(shí)工作負(fù)載的數(shù)據(jù)遷移。
2.1 基于硬件和軟件的數(shù)據(jù)放置
2.1.1 基于硬件機(jī)制
在混合內(nèi)存中,基于硬件的數(shù)據(jù)放置支持小粒度的內(nèi)存管理,不需要修改軟件,總體上的性能開銷更少,對(duì)于具有良好局部性的應(yīng)用程序也更有利[19]。但基于硬件的數(shù)據(jù)放置也存在問題,其需要額外的硬件來跟蹤內(nèi)存訪問活動(dòng)并執(zhí)行數(shù)據(jù)放置,同時(shí)可能會(huì)消耗DRAM的部分容量[13]。此外,如果應(yīng)用程序的空間局部性較差,可能會(huì)影響帶寬利用率。
2.1.2 基于軟件機(jī)制
基于軟件的數(shù)據(jù)放置可以開發(fā)專門的API處理數(shù)據(jù)的分配和遷移以滿足系統(tǒng)需求,不需要額外的硬件支持[13]。修改軟件和自定義操作系統(tǒng)策略使內(nèi)存資源的管理變得更加靈活。但基于軟件的數(shù)據(jù)放置通常成本更高,操作系統(tǒng)干預(yù)、調(diào)用中斷/處理程序和修改頁表等操作都需要額外成本[13]。操作系統(tǒng)通常以頁面粒度進(jìn)行數(shù)據(jù)放置,以頁面粒度進(jìn)行遷移可能會(huì)產(chǎn)生更高的開銷[13,21,22]。此外,操縱系統(tǒng)可能會(huì)對(duì)熱頁面的識(shí)別不夠準(zhǔn)確,導(dǎo)致錯(cuò)過必要的遷移或發(fā)生不必要的遷移。
2.1.3 存在的挑戰(zhàn)
在基于硬件的方法中,最大的挑戰(zhàn)是在不增加規(guī)模和成本開銷的情況下處理數(shù)據(jù)放置,而基于軟件的方法應(yīng)該致力于在對(duì)現(xiàn)有軟件進(jìn)行最小修改的情況下進(jìn)行數(shù)據(jù)放置[8]。
2.2 基于訪問頻率的數(shù)據(jù)放置
混合內(nèi)存數(shù)據(jù)放置策略通常將頻繁訪問的數(shù)據(jù)存儲(chǔ)在DRAM中,將很少訪問的數(shù)據(jù)存儲(chǔ)在NVM中。根據(jù)數(shù)據(jù)的訪問次數(shù),可將數(shù)據(jù)分成熱數(shù)據(jù)和冷數(shù)據(jù)。通常,熱數(shù)據(jù)被遷移到DRAM,而冷數(shù)據(jù)保留在NVM中。只根據(jù)數(shù)據(jù)的使用時(shí)間不足以準(zhǔn)確識(shí)別熱數(shù)據(jù)[21,23]。CMMP[21]、UIMigrate[23]、On-fly-Page[24]都通過額外的計(jì)數(shù)器跟蹤數(shù)據(jù)的訪問次數(shù),以確定待遷移的數(shù)據(jù)。此外,在NVM中頻繁寫入數(shù)據(jù)不僅會(huì)降低性能還會(huì)增加功耗。因此APP-LRU[14]和寫感知與行緩沖區(qū)缺失(WARM)計(jì)數(shù)器[25]根據(jù)寫次數(shù)將寫密集型數(shù)據(jù)從NVM遷移到DRAM。
2.3 基于局部性和內(nèi)存級(jí)并行的數(shù)據(jù)放置
2.3.1 考慮局部性原理
根據(jù)局部性原理,如果某個(gè)數(shù)據(jù)被訪問,那么在不久的將來,該數(shù)據(jù)很可能會(huì)再次被訪問或者在內(nèi)存中相鄰的數(shù)據(jù)很可能會(huì)被訪問。在行緩沖區(qū)中被訪問多次的行表現(xiàn)出較高的行緩沖區(qū)局部性。Yoon等人[26]觀察到在延遲、帶寬和功耗方面,NVM的行緩沖區(qū)缺失成本相比DRAM的要高得多,由此提出利用行緩沖區(qū)局部性來進(jìn)行混合內(nèi)存間的頁面遷移。行緩沖區(qū)命中率低的頁面被遷移到DRAM,而行緩沖區(qū)命中率高的頁面仍然保留在NVM中。計(jì)數(shù)器用于跟蹤NVM中行的缺失計(jì)數(shù),以增加這些行的遷移優(yōu)先級(jí),具有良好局部性的應(yīng)用程序的性能和能效可以得到提升。
2.3.2 考慮內(nèi)存級(jí)并行
內(nèi)存級(jí)并行能在執(zhí)行程序的同時(shí)利用多個(gè)內(nèi)存訪問操作來提高性能和效率。Li等人[12]首次考慮了內(nèi)存級(jí)并行,提出了基于效用的混合內(nèi)存頁面管理策略UH-MEM。UH-MEM通過綜合考慮訪問頻率、行緩沖區(qū)局部性和內(nèi)存級(jí)并行,計(jì)算頁面從慢速內(nèi)存(NVM)遷移到快速內(nèi)存(DRAM)的潛在系統(tǒng)性能收益,稱之為效用值,將具有最大效用值的頁面遷移到快速內(nèi)存中。
2.4 基于靜態(tài)分析的數(shù)據(jù)放置
基于靜態(tài)分析的數(shù)據(jù)放置在程序編譯階段或程序加載階段進(jìn)行,將數(shù)據(jù)分配到內(nèi)存中的特定位置,之后不隨工作負(fù)載的變化而改變。表3總結(jié)了基于靜態(tài)分析的數(shù)據(jù)放置策略。
Wei等人[27]研究發(fā)現(xiàn),理解程序語義,系統(tǒng)可以更好地指導(dǎo)混合內(nèi)存中數(shù)據(jù)的初始放置。根據(jù)程序語義進(jìn)行初始放置能夠顯著減少由錯(cuò)誤的遷移帶來的內(nèi)存拷貝開銷。通過分析代碼和跟蹤堆對(duì)象,對(duì)具有相似訪問特征的對(duì)象進(jìn)行分配,同時(shí)考慮將代碼段放置到NVM中,將堆棧數(shù)據(jù)和全局?jǐn)?shù)據(jù)放置在DRAM中。Hassan等人[28]提出應(yīng)用程序級(jí)對(duì)象的細(xì)粒度,將數(shù)據(jù)放置在混合內(nèi)存中,其中的對(duì)象可以是單獨(dú)的程序變量或內(nèi)存分配塊。通過分析應(yīng)用程序中對(duì)象的內(nèi)存訪問模式,選擇受益最大的對(duì)象放置在DRAM中。Liu等人[22]提出的對(duì)象級(jí)內(nèi)存分配和遷移機(jī)制OAM,對(duì)于不可變對(duì)象,只需要根據(jù)性能/能量模型計(jì)算的平均效用將其分配在DRAM或NVM上,而不需要考慮運(yùn)行時(shí)對(duì)象遷移。Olson等人[29]提出的MemBrain利用程序分析和源代碼分析,并使用離線性能反饋來指導(dǎo)每個(gè)區(qū)域的分配,實(shí)現(xiàn)了不同類型內(nèi)存有效而透明的數(shù)據(jù)放置。
由于內(nèi)存訪問模式相對(duì)固定,所以基于靜態(tài)分析的數(shù)據(jù)放置在程序運(yùn)行前可以進(jìn)行有效的優(yōu)化。這種策略適用于工作負(fù)載變化較小的場景,可以提供穩(wěn)定的性能表現(xiàn),但難以應(yīng)對(duì)在運(yùn)行時(shí)變化的場景。
2.5 基于動(dòng)態(tài)分析的數(shù)據(jù)放置
通過動(dòng)態(tài)監(jiān)測并分析數(shù)據(jù)訪問模式,基于動(dòng)態(tài)分析的數(shù)據(jù)放置策略可以實(shí)時(shí)調(diào)整數(shù)據(jù)的位置和存儲(chǔ)方式,根據(jù)當(dāng)前的工作負(fù)載和系統(tǒng)狀態(tài),決定是否進(jìn)行數(shù)據(jù)遷移,并將數(shù)據(jù)存儲(chǔ)在最優(yōu)的存儲(chǔ)位置以最小化訪問的總成本[30]。表4總結(jié)了基于動(dòng)態(tài)分析的數(shù)據(jù)放置策略[22,31~35]。
混合內(nèi)存數(shù)據(jù)放置決策需要考慮多種參數(shù)和不確定性,例如內(nèi)存大小、讀/寫延遲、耐久性和功耗等。為此,de Moura等人[31]提出了使用模糊邏輯系統(tǒng)來支持混合內(nèi)存中的頁面遷移。該策略通過訪問更新器和Intf-HybridMem兩個(gè)模塊來實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)放置。訪問更新模塊首先將頁面訪問存儲(chǔ)在訪問緩沖區(qū)中,并定期更新連接到Intf-HybridMem的數(shù)據(jù)緩沖區(qū)。該策略評(píng)估訪問更新器接收到的數(shù)據(jù),根據(jù)數(shù)據(jù)訪問模式和內(nèi)存特性對(duì)數(shù)據(jù)進(jìn)行分類,返回?cái)?shù)據(jù)緩沖區(qū)中每個(gè)頁面的遷移建議值,并將讀取頻率高的頁面存儲(chǔ)在NVM中,其他頁面存儲(chǔ)在DRAM中。
Liu等人[32]嘗試將頁著色技術(shù)應(yīng)用到DRAM-NVM混合內(nèi)存管理。通過結(jié)合采樣和頁表遍歷,以較低的監(jiān)控采樣頻率精確地獲取內(nèi)存頁面的熱度,利用混合內(nèi)存所處的地址空間對(duì)頁面著色。同時(shí),通過與cache、bank和內(nèi)存通道(channel)等相關(guān)聯(lián)來控制數(shù)據(jù)分布并消除多道程序之間在內(nèi)存體系上的相互干擾,進(jìn)而有效提高了包含 NVM 在內(nèi)的整個(gè)內(nèi)存體系的資源利用率。如圖3[32,33]所示,頁著色技術(shù)通過為第32位著色控制內(nèi)存通道,確定使用DRAM還是NVM來容納特定頁面,同時(shí)使用頁幀號(hào)(page frame number,PFN)的第15~18位來構(gòu)成cache set的顏色,以實(shí)現(xiàn)對(duì)cache的劃分和分配,并通過bank索引位來實(shí)現(xiàn)對(duì)內(nèi)存bank的劃分和分配。根據(jù)頁面的讀/寫特征將頁面映射到DRAM或NVM可以最大程度地利用DRAM和NVM通道提供的總帶寬。因此熱頁面通常被分配在DRAM中,而出于節(jié)省功耗和為熱頁面盡可能地留出DRAM空間的目的,冷頁面通常被分配在NVM中[33]。
文獻(xiàn)[34]介紹了一種名為RTHMS的數(shù)據(jù)放置工具。該工具結(jié)合單一對(duì)象分配規(guī)則和全局?jǐn)?shù)據(jù)放置決策,給出內(nèi)存對(duì)象放置建議。首先,RTHMS單獨(dú)分析每個(gè)內(nèi)存對(duì)象,為每個(gè)內(nèi)存對(duì)象與每個(gè)內(nèi)存技術(shù)之間的匹配分配一個(gè)分?jǐn)?shù)。這個(gè)分?jǐn)?shù)表示將這個(gè)內(nèi)存對(duì)象放置在這個(gè)內(nèi)存技術(shù)上是否會(huì)帶來性能收益,以確定是否推薦該內(nèi)存對(duì)象存儲(chǔ)在該內(nèi)存技術(shù)中。之后,全局分析應(yīng)用程序中所有內(nèi)存對(duì)象并根據(jù)它們的期望性能影響對(duì)它們進(jìn)行排序,以確定它們在可用內(nèi)存中的存儲(chǔ)位置。RTHMS還考慮了內(nèi)存對(duì)象的生命周期以更好地優(yōu)化內(nèi)存對(duì)象的分配。通過這種方式,RTHMS可以提高應(yīng)用程序的性能,減少內(nèi)存訪問延遲和提高內(nèi)存帶寬利用率。
Servat等人[35]提出了一個(gè)自動(dòng)化的框架,用于自動(dòng)識(shí)別和放置與應(yīng)用程序最相關(guān)的內(nèi)存對(duì)象到混合內(nèi)存中。該框架首先探索應(yīng)用程序行為,使用基于硬件的采樣機(jī)制收集內(nèi)存對(duì)象的度量指標(biāo)和跟蹤文件,隨后分析LLC缺失最多的對(duì)象及其大小,根據(jù)內(nèi)存配置報(bào)告內(nèi)存對(duì)象在快速內(nèi)存中的最佳放置,為給定的內(nèi)存配置分配對(duì)象從而替換動(dòng)態(tài)內(nèi)存分配,實(shí)現(xiàn)基于配置文件的執(zhí)行。該框架可以在不修改應(yīng)用程序源代碼的情況下自動(dòng)化地完成內(nèi)存優(yōu)化。
對(duì)于可變對(duì)象,OAM[22]的內(nèi)存訪問頻率會(huì)隨著不同執(zhí)行階段的變化而發(fā)生變化,利用靜態(tài)代碼插樁工具在應(yīng)用程序源代碼中添加對(duì)象遷移指令,使應(yīng)用程序在運(yùn)行時(shí)執(zhí)行動(dòng)態(tài)對(duì)象遷移,而無須操作系統(tǒng)干預(yù)。
基于動(dòng)態(tài)分析的數(shù)據(jù)放置策略適用于具有變化的工作負(fù)載和系統(tǒng)需求的場景,能夠動(dòng)態(tài)地適應(yīng)不同的數(shù)據(jù)訪問模式和負(fù)載特征,提供靈活且高效的數(shù)據(jù)管理。
2.6 基于機(jī)器智能的數(shù)據(jù)放置
對(duì)于訪問模式頻繁發(fā)生改變的應(yīng)用程序,使用機(jī)器智能可以捕獲短期和長期頁面訪問模式的數(shù)據(jù),在預(yù)測未來頁面訪問行為方面表現(xiàn)出很大的潛力。Doudali等人[36]介紹了一種基于機(jī)器智能的混合內(nèi)存管理方法,涉及Kleio、Cori、Coeus、Mnemo和CoMerge等技術(shù)[37~41]。該方法通過一系列創(chuàng)新機(jī)制和優(yōu)化策略實(shí)現(xiàn)了對(duì)機(jī)器智能的有效集成,降低了相關(guān)開銷。
Kleio[37]是一種混合內(nèi)存頁面調(diào)度器,對(duì)頁面進(jìn)行機(jī)器智能管理,利用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)來學(xué)習(xí)內(nèi)存訪問模式,識(shí)別頁面訪問頻率的突然變化,從而在使用基于歷史記錄的管理方法時(shí),實(shí)現(xiàn)了大部分應(yīng)用性能的提高。
Cori[38]通過調(diào)整數(shù)據(jù)移動(dòng)頻率實(shí)現(xiàn)DRAM容量的最大化利用以及整個(gè)系統(tǒng)資源的高效利用。該策略通過分析應(yīng)用程序的數(shù)據(jù)重用趨勢,指導(dǎo)頻率調(diào)整過程。Cori從應(yīng)用程序中提取必要的應(yīng)用級(jí)數(shù)據(jù)重用信息。這些信息可以幫助Cori確定數(shù)據(jù)移動(dòng)的時(shí)機(jī)和頻率。頻率生成器基于數(shù)據(jù)重用信息,計(jì)算出一系列候選的數(shù)據(jù)移動(dòng)周期,得到候選頻率。智能算法可以根據(jù)應(yīng)用程序的特征和系統(tǒng)資源狀況,預(yù)測不同頻率下的應(yīng)用程序性能,并選擇最優(yōu)的頻率。
Coeus[39]是一種基于機(jī)器智能的頁面分組機(jī)制。Coeus利用數(shù)據(jù)重用信息,創(chuàng)建訪問行為相同的頁面的大集群。與使用K-means等數(shù)據(jù)聚類方法相比,Coeus幾乎沒有額外的執(zhí)行成本,降低了機(jī)器智能混合內(nèi)存管理器的學(xué)習(xí)開銷。
Mnemo[40]作為一種內(nèi)存大小和數(shù)據(jù)分層顧問,可以快速探索不同混合內(nèi)存組件配置的成本和效益的權(quán)衡。 Mnemo能夠顯著降低應(yīng)用的硬件成本并對(duì)應(yīng)用性能幾乎沒有影響,從而提高了整個(gè)系統(tǒng)的內(nèi)存成本效益。
CoMerge[41]作為內(nèi)存共享方案,將每個(gè)應(yīng)用的數(shù)據(jù)分層與先驗(yàn)決定的優(yōu)先級(jí)放置相結(jié)合,以實(shí)現(xiàn)高效的內(nèi)存利用并減緩共享應(yīng)用的降低速度。
2.7 數(shù)據(jù)放置中觸發(fā)方式的選擇
在數(shù)據(jù)放置中,如果觸發(fā)頻率太高,將可能導(dǎo)致不必要的遷移和開銷激增。如果觸發(fā)頻率太低,可能影響到必要的遷移?;旌蟽?nèi)存數(shù)據(jù)放置策略大多使用考慮不同因素計(jì)算的閾值來觸發(fā)遷移,如訪問次數(shù)[21,23,24]、寫強(qiáng)度[42]、行緩沖區(qū)缺失次數(shù)[26]和效用[12,22]等,通過計(jì)算來決定是否觸發(fā)遷移。
UIMigrate[23]通過計(jì)數(shù)器跟蹤訪問次數(shù),同時(shí)采用一種訪問計(jì)數(shù)器衰減的方法來識(shí)別長時(shí)間未訪問的數(shù)據(jù)。SRS-Mig[42]的頁面遷移基于NVM頁面的寫強(qiáng)度。當(dāng)NVM頁面的寫強(qiáng)度超過遷移閾值時(shí),該頁面成為遷移候選頁面。在每個(gè)周期內(nèi),UH-MEM[12]更新頁面的效用值并與遷移閾值進(jìn)行比較,只有當(dāng)效用值大于閾值時(shí),頁面才會(huì)從NVM移到DRAM。OAM[22]采用的效用值是基于效用函數(shù)計(jì)算能量延遲積(energy-delay product,EDP)。如果效用值大于某個(gè)閾值,則將對(duì)象放在DRAM中,否則放在NVM中,而閾值會(huì)根據(jù)對(duì)象的效用值動(dòng)態(tài)更新。
2.8 數(shù)據(jù)放置中數(shù)據(jù)粒度的選擇
粒度的選擇會(huì)影響數(shù)據(jù)放置的效率。在混合內(nèi)存系統(tǒng)中,DRAM和NVM之間的數(shù)據(jù)移動(dòng)粒度可以是DRAM行、LLC塊、頁面或?qū)ο蟮龋?]。不同的應(yīng)用程序?qū)⑹芤嬗诓煌牧6?,因此使用通用粒度可能并不是理想的選擇[13]?,F(xiàn)有的混合內(nèi)存數(shù)據(jù)放置研究主要關(guān)注頁面粒度和對(duì)象粒度。頁面粒度涉及頁面級(jí)別的數(shù)據(jù)管理和遷移。對(duì)于頁面粒度,需要合理控制頁面遷移策略在時(shí)間和空間上的開銷。因?yàn)橐粋€(gè)頁面可能包含多個(gè)數(shù)據(jù),但只有小部分?jǐn)?shù)據(jù)會(huì)被頻繁訪問。采用過大的遷移粒度可能浪費(fèi)內(nèi)存帶寬和容量,特別是對(duì)于具有良好局部性的應(yīng)用程序[17]。因此,在混合內(nèi)存系統(tǒng)中支持小粒度數(shù)據(jù)遷移至關(guān)重要。對(duì)象粒度關(guān)注程序中具體的數(shù)據(jù)結(jié)構(gòu)和變量,內(nèi)存開銷較小。對(duì)于對(duì)象粒度,需要深入理解對(duì)象的訪問特征以及對(duì)象的分配和遷移過程,才能進(jìn)行精細(xì)的內(nèi)存管理。
3 混合內(nèi)存數(shù)據(jù)放置優(yōu)化目標(biāo)分類
混合內(nèi)存系統(tǒng)具有不同的特性,如性能、功耗、耐久性等,關(guān)鍵問題在于如何管理不同內(nèi)存技術(shù)之間的數(shù)據(jù)分配和移動(dòng),以便能夠達(dá)到所需的最佳性能指標(biāo)[43,44]。通常,NVM的內(nèi)存容量是DRAM的數(shù)倍,但目前NVM還無法完全替代DRAM,否則將會(huì)導(dǎo)致三個(gè)問題:a)寫延遲高,相較于DRAM,NVM的寫延遲更高;b)寫功耗高,在執(zhí)行寫操作時(shí)NVM比DRAM功耗高;c)耐久性有限,如果對(duì)NVM的某些存儲(chǔ)單元過度頻繁寫入,將對(duì)NVM的整體壽命產(chǎn)生嚴(yán)重影響。通過數(shù)據(jù)放置策略可實(shí)現(xiàn)對(duì)混合內(nèi)存性能、功耗和壽命的優(yōu)化。
3.1 性能優(yōu)化
由于NVM自身的特性,其寫延遲相較于DRAM更高,所以優(yōu)化混合內(nèi)存系統(tǒng)的性能主要在于減少NVM的寫操作。
APP-LRU[14]通過引入一個(gè)元數(shù)據(jù)表來記錄頁面的訪問歷史,并基于預(yù)測的頁面訪問模式來選擇將頁面放在NVM或DRAM中。除了LRU之外,它還使用兩個(gè)額外的列表來跟蹤讀密集型和寫密集型頁面。頁面根據(jù)它們的讀/寫計(jì)數(shù)進(jìn)行分組。Salkhordeh 等人[45]分別在DRAM和NVM中使用LRU。當(dāng)頁面到達(dá)NVM的LRU列表頂部并且超過閾值時(shí),則遷移到DRAM;當(dāng)計(jì)數(shù)器值超過閾值時(shí),將頁面遷移到DRAM。
Lee等人[46]發(fā)現(xiàn)頁面的寫頻率比數(shù)據(jù)訪問的時(shí)間局部性更重要,由此提出了一種名為CLOCK-DWF的頁面置換算法。CLOCK-DWF使用兩個(gè)CLOCK算法,分別管理DRAM和NVM。CLOCK-DWF通過準(zhǔn)確預(yù)測未來的寫操作將NVM中頻繁的寫操作轉(zhuǎn)移到DRAM中。TA-CLOCK[47]通過分析頁面的讀/寫計(jì)數(shù)對(duì)頁面的訪問傾向分類,并確定頁面的位置,將寫密集型頁面保留在DRAM中,將讀密集型頁面保留在NVM中,從而減少了不必要的頁面遷移。
李琪等人[48]提出了一種高效的混合內(nèi)存頁面管理機(jī)制。該機(jī)制根據(jù)不同內(nèi)存的寫入特性,將不同訪問特征的頁面進(jìn)行合理分配,以減少系統(tǒng)中的數(shù)據(jù)遷移次數(shù),從而提升系統(tǒng)性能。
直接遷移可能影響常規(guī)內(nèi)存訪問的響應(yīng)時(shí)間。SRS-Mig[42]選擇寫強(qiáng)度大于閾值的頁面作為遷移候選頁并且規(guī)劃了候選頁遷移到DRAM的時(shí)間,以此減少遷移開銷,改善應(yīng)用程序的執(zhí)行時(shí)間和內(nèi)存響應(yīng)時(shí)間。
傳統(tǒng)NUMA內(nèi)存管理策略在混合內(nèi)存系統(tǒng)中無法有效工作,甚至可能導(dǎo)致應(yīng)用性能下降。HiNUMA[49]利用NUMA感知內(nèi)存分配和不對(duì)稱頁面遷移機(jī)制,實(shí)時(shí)監(jiān)測數(shù)據(jù)訪問情況,并根據(jù)數(shù)據(jù)訪問熱度和節(jié)點(diǎn)之間的距離等因素,動(dòng)態(tài)地調(diào)整數(shù)據(jù)的存放位置,以最大限度地減少遠(yuǎn)程訪問延遲和內(nèi)存帶寬消耗,從而提高系統(tǒng)性能。
3.2 功耗優(yōu)化
雖然NVM的靜態(tài)功耗極低,但頻繁的寫操作會(huì)導(dǎo)致NVM動(dòng)態(tài)功耗的上升,成為限制系統(tǒng)能效的主要因素。因此,優(yōu)化NVM寫功耗對(duì)于提高系統(tǒng)的能效至關(guān)重要。
曲良等人[50]通過選擇性分配目標(biāo)程序到混合內(nèi)存中來克服NVM寫功耗高和寫速度慢的問題。此方案將可執(zhí)行目標(biāo)程序中有讀權(quán)限而沒有寫權(quán)限的段分配到NVM的地址空間內(nèi),將其余既有讀權(quán)限又有寫權(quán)限的段分配到DRAM的地址空間內(nèi),以此來降低系統(tǒng)功耗。
Zhang等人[51]提出能量感知的頁面置換策略EAPR,根據(jù)內(nèi)存訪問計(jì)算DRAM和NVM中的頁面訪問能耗,并且將具有連續(xù)地址的類似頁面作為一個(gè)頁面組進(jìn)行訪問,并根據(jù)其能耗選擇頁面組進(jìn)行遷移,從而確定頁面是從NVM遷移到DRAM,還是從DRAM遷移到NVM。
孫浩等人[52]提出了一種面向邊緣計(jì)算的低功耗混合內(nèi)存系統(tǒng)。為了實(shí)現(xiàn)低功耗管理,作者引入了內(nèi)存控制器擴(kuò)展,并通過一種改進(jìn)的雙隊(duì)列算法篩選出NVM中寫請求較多的內(nèi)存頁面,并通過地址映射模塊和遷移控制模塊將這些頁面從NVM遷移到DRAM中,從而回避了NVM寫操作的缺陷。
Kim等人[53]提出了一種用于混合內(nèi)存系統(tǒng)的對(duì)象放置策略eMap。eMap考慮對(duì)象訪問模式和能耗,為對(duì)象提供理想的放置策略,以提高性能和降低功耗。eMap包含了兩個(gè)模塊,eMPlan和eMDyn。兩者都基于整數(shù)線性規(guī)劃(integer linear programming,ILP),并綜合考慮決策、容量和功耗三個(gè)主要約束條件。
3.3 壽命優(yōu)化
NVM耐久性有限的問題嚴(yán)重影響使用壽命。在混合內(nèi)存系統(tǒng)中,主要有兩種策略來克服NVM有限的寫耐久性。一種是減少NVM的寫操作,另一種是磨損均衡(wear leveling)。前者主要通過數(shù)據(jù)遷移和緩存來實(shí)現(xiàn)。后者則通過在NVM上均勻分布寫操作,以確保所有存儲(chǔ)單元都獲得相對(duì)均等的使用,從而延長NVM的使用壽命。
磨損均衡技術(shù)大致可分為基于年齡的方法和基于隨機(jī)化的方法兩大類[54]。基于年齡的方法通過跟蹤寫操作計(jì)數(shù)來區(qū)分NVM中嚴(yán)重磨損和輕微磨損的區(qū)域,將嚴(yán)重磨損的NVM區(qū)域與輕微磨損的NVM區(qū)域交換,并盡可能將新的寫操作放置在輕微磨損的區(qū)域。通常,基于年齡的方案使用基于采樣的方法來獲取頁面的年齡。 Huang等人[54]通過有界尾部磨損均衡和輕量級(jí)磨損增強(qiáng)兩個(gè)關(guān)鍵模塊,有效延長了NVM的壽命。有界尾部磨損均衡通過動(dòng)態(tài)提升和降低不同年齡段的頁面來保持頁面的年齡差距相等,以達(dá)到磨損均衡的效果。輕量級(jí)磨損增強(qiáng)則通過利用虛擬內(nèi)存空間中的局部性原理來提高低頻采樣方案的準(zhǔn)確性。多路磨損均衡(multi-way wear-leveling)[55]將邏輯地址空間劃分為子區(qū)域,然后對(duì)每個(gè)區(qū)域應(yīng)用磨損均衡。
基于隨機(jī)化的方法將寫操作分布在內(nèi)存區(qū)域中的隨機(jī)位置。細(xì)粒度磨損均衡(fine-grained wear-leveling)[56]技術(shù)將NVM頁的緩存行以旋轉(zhuǎn)方式存儲(chǔ)在NVM中。對(duì)于一個(gè)有16行的NVM頁,旋轉(zhuǎn)值為0~15。在0~15隨機(jī)生成一個(gè)旋轉(zhuǎn)值便可以用來表示移位的位置。
不同于將寫操作均勻分布在NVM上,Azevedo等人[57]利用禁用頁面中的備用塊為工作頁面提供更多的糾錯(cuò)資源。從軟件的角度來看,內(nèi)存占用是以頁面為單位組織的,因此包含有故障單元的整個(gè)頁面會(huì)被禁用。然而,如果提供了一些備用單元來替換故障單元,那么頁面將被再次使用。這些備用單元被稱為糾錯(cuò)資源。作者利用禁用頁面中留存的大量糾錯(cuò)資源與工作頁面配對(duì),有效地實(shí)現(xiàn)了磨損均衡,從而提高了NVM的整體壽命。
4 混合內(nèi)存數(shù)據(jù)放置的分析與展望
4.1 當(dāng)前有關(guān)混合內(nèi)存數(shù)據(jù)放置研究的問題
通過上述相關(guān)工作的分析和總結(jié),可以看出在混合內(nèi)存系統(tǒng)中數(shù)據(jù)放置的研究已經(jīng)取得了一定成果, 但是依然存在著一些問題,具體來說有以下幾點(diǎn):
a)內(nèi)存架構(gòu):混合內(nèi)存架構(gòu)設(shè)計(jì)上的復(fù)雜性使數(shù)據(jù)放置策略的決策變得更加復(fù)雜。研究人員需要考慮如何在不同架構(gòu)的內(nèi)存中有效地放置數(shù)據(jù),以最大程度地提高性能和降低功耗。
b)數(shù)據(jù)遷移:在混合內(nèi)存系統(tǒng)中,數(shù)據(jù)遷移是不可避免的,數(shù)據(jù)可能需要在內(nèi)存介質(zhì)中移動(dòng)以滿足系統(tǒng)性能需求。這將引發(fā)延遲、功耗、資源利用等問題。如何以最小的開銷來進(jìn)行數(shù)據(jù)遷移是一個(gè)富有挑戰(zhàn)性的問題。
c)計(jì)算成本:高效的數(shù)據(jù)放置策略可能需要更復(fù)雜的計(jì)算和算法,這將會(huì)增加系統(tǒng)的計(jì)算成本。
d)全局優(yōu)化:一些數(shù)據(jù)放置策略可能對(duì)特定工作負(fù)載表現(xiàn)出色,但在其他情況下可能并不理想,未能實(shí)現(xiàn)充分的效能優(yōu)化。例如,在工作負(fù)載變化頻繁的情況下,數(shù)據(jù)放置策略可能失效。因此,數(shù)據(jù)放置策略需要根據(jù)不同應(yīng)用和工作負(fù)載的特點(diǎn)進(jìn)行調(diào)整以獲得更全面的系統(tǒng)優(yōu)化。
4.2 混合內(nèi)存數(shù)據(jù)放置研究展望
基于混合內(nèi)存系統(tǒng)的數(shù)據(jù)放置具有很大的發(fā)展前景,未來在混合內(nèi)存系統(tǒng)中數(shù)據(jù)放置策略的研究有以下方向值得探索和實(shí)踐。
a)混合內(nèi)存架構(gòu)設(shè)計(jì):未來NVM將成為內(nèi)存系統(tǒng)中極具潛力的產(chǎn)品,因此需要充分利用其高密度、低成本和非易性等優(yōu)點(diǎn),解決其寫延遲高、寫功耗高和耐久性有限的問題,根據(jù)NVM的內(nèi)存特性改進(jìn)現(xiàn)有內(nèi)存系統(tǒng)的架構(gòu)。
b)操作系統(tǒng)內(nèi)存管理:針對(duì)NVM技術(shù)的特點(diǎn),需要重新設(shè)計(jì)操作系統(tǒng)的內(nèi)存管理機(jī)制,充分利用其可字節(jié)尋址和非易失性的特性以提升現(xiàn)代計(jì)算機(jī)系統(tǒng)的整體效能。
c)機(jī)器智能數(shù)據(jù)放置:機(jī)器智能已在混合內(nèi)存數(shù)據(jù)放置領(lǐng)域取得初步應(yīng)用,在一定程度上為解決混合內(nèi)存管理的研究提供了新的思路。探索更為成熟的基于機(jī)器智能的混合內(nèi)存數(shù)據(jù)放置策略,以實(shí)現(xiàn)更為智能和高效的數(shù)據(jù)管理。
5 結(jié)束語
隨著高性能計(jì)算、人工智能、大數(shù)據(jù)和云計(jì)算等領(lǐng)域的蓬勃發(fā)展以及數(shù)據(jù)密集型應(yīng)用程序不斷涌現(xiàn),通用計(jì)算程序的訪存變得愈發(fā)密集。傳統(tǒng)內(nèi)存系統(tǒng)已經(jīng)無法滿足計(jì)算機(jī)系統(tǒng)的處理需求。內(nèi)存墻問題使得傳統(tǒng)內(nèi)存系統(tǒng)在容量、性能和功耗等方面都面臨著嚴(yán)峻的挑戰(zhàn),由NVM和DRAM構(gòu)成的混合內(nèi)存系統(tǒng)便應(yīng)運(yùn)而生。然而,如何將數(shù)據(jù)合理放置在混合內(nèi)存系統(tǒng)中,數(shù)據(jù)放置的觸發(fā)方式和數(shù)據(jù)放置粒度是研究需要考慮的重要因素;如何從全局的角度綜合優(yōu)化數(shù)據(jù)放置,從而提高內(nèi)存資源利用率和系統(tǒng)效能是未來仍需解決的問題。但可以預(yù)見,混合內(nèi)存系統(tǒng)和數(shù)據(jù)放置策略的創(chuàng)新和發(fā)展將為計(jì)算機(jī)系統(tǒng)性能提升和混合內(nèi)存架構(gòu)的成熟發(fā)展提供強(qiáng)有力的支持,也是未來計(jì)算機(jī)體系結(jié)構(gòu)研究的重要方向。
參考文獻(xiàn):
[1]de Moura R C,Schneider G B,de Souza Oliveira L,et al. f-Hybridmem: a fuzzy-based approach for decision support in hybrid memory management [C]// Proc of IEEE International Conference on Fuzzy Systems. Piscataway,NJ: IEEE Press,2020: 1-8.
[2]Liu Haikun,Chen Di,Jin Hai,et al. A survey of non-volatile main memory technologies: State-of-the-arts,practices,and future directions [J]. Journal of Computer Science and Technology,2021,36(1): 4-32.
[3]Guo Yuhua,Xiao Weijun,Liu Qing,et al. A cost-effective and energy-efficient architecture for die-stacked dram/nvm memory systems [C]// Proc of the 37th IEEE International Performance Computing and Communications Conference. Piscataway,NJ: IEEE Press,2018: 1-2.
[4]Wang Bo,Tang Jie,Zhang Rui,et al. Energy-efficient data caching framework for spark in hybrid DRAM/NVM memory architectures [C]// Proc of the 21st IEEE International Conference on High Performance Computing and Communications; the 17th IEEE International Conference on Smart City; the 5th IEEE International Conference on Data Science and Systems. Piscataway,NJ: IEEE Press,2019: 305-312.
[5]Lu Yanchao,Wu Donghong,He Bingsheng,et al. Rank-aware dynamic migrations and adaptive demotions for DRAM power management [J]. IEEE Trans on Computers,2015,65(1): 187-202.
[6]Boukhobza J,Rubini S,Chen R,et al. Emerging NVM: a survey on architectural integration and research challenges [J]. ACM Trans on Design Automation of Electronic Systems,2017,23(2): 1-32.
[7]冒偉,劉景寧,童薇,等. 基于相變存儲(chǔ)器的存儲(chǔ)技術(shù)研究綜述 [J]. 計(jì)算機(jī)學(xué)報(bào),2015,38(5): 944-960. (Mao Wei,Liu Jingning,Tong Wei,et al. A review of storage technology research based on phase change memory [J]. Chinese Journal of Computers,2015,38(5): 944-960.)
[8]Rai S,Talawar B. Challenges in design,data placement,migration and power-performance trade-offs in DRAM-NVM-based hybrid memory systems [J]. IETE Technical Review,2023,40(4): 498-520.
[9]Kim J G,Kim S D,Yoon S K. Q-selector-based prefetching method for DRAM/NVM hybrid main memory system [J]. Electronics,2020,9(12): 2158.
[10]Liu Haikun,Chen Yujie,Liao Xiaofei,et al. Hardware/software coo-perative caching for hybrid DRAM/NVM memory architectures [C]// Proc of International Conference on Supercomputing. New York:ACM Press,2017: 1-10.
[11]Hassan A,Vandierendonck H,Nikolopoulos D S. Energy-efficient hybrid DRAM/NVM main memory [C]// Proc of International Conference on Parallel Architecture and Compilation. Piscataway,NJ: IEEE Press,2015: 492-493.
[12]Li Yang,Ghose S,Choi J,et al. Utility-based hybrid memory management [C]// Proc of IEEE International Conference on Cluster Computing. Piscataway,NJ: IEEE Press,2017: 152-165.
[13]Ryoo J H,John L K,Basu A. A case for granularity aware page migration [C]//Proc of International Conference on Supercomputing. New York: ACM Press,2018: 352-362.
[14]Wu Zhangling,Jin Peiquan,Yang Chengcheng,et al. APP-LRU: a new page replacement method for PCM/DRAM-based hybrid memory systems [M]// Network and Parallel Computing. Berlin: Springer,2014: 84-95.
[15]Niu Na,F(xiàn)u Fangfa,Yang Bing,et al. PRO: a periodical reset optimized page migration scheme for hybrid memory system [J]. Journal of Systems Architecture,2020,111: 101786.
[16]Cha S,Kim B,Park C H,et al. Morphable DRAM cache design for hybrid memory systems [J]. ACM Trans on Architecture and Code Optimization,2019,16(3): 1-24.
[17]Chi Ye,Yue Jianhui,Liao Xiaofei,et al. A hybrid memory architecture supporting fine-grained data migration [J]. Frontiers of Computer Science,2024,18(2): 182103.
[18]Jin Hai,Chen Di,Liu Haikun,et al. Miss penalty aware cache replacement for hybrid memory systems [J]. IEEE Trans on Computer-Aided Design of Integrated Circuits and Systems,2020,39(12): 4669-4682.
[19]Vasilakis E,Papaefstathiou V,Trancoso P,et al. Hybrid2: combining caching and migration in hybrid memory systems [C]// Proc of IEEE International Symposium on High Performance Computer Architecture. Piscataway,NJ: IEEE Press,2020: 649-662.
[20]Kotra J B,Zhang H,Alameldeen A R,et al. Chameleon: a dynamically reconfigurable heterogeneous memory system [C]// Proc of the 51st Annual IEEE/ACM International Symposium on Microarchitecture. Piscataway,NJ: IEEE Press,2018: 533-545.
[21]Bock S,Childers B R,Melhem R,et al. Concurrent migration of multiple pages in software-managed hybrid main memory [C]// Proc of the 34th IEEE International Conference on Computer Design. Piscataway,NJ: IEEE Press,2016: 420-423.
[22]Liu Haikun,Liu Renshan,Liao Xiaofei,et al. Object-level memory allocation and migration in hybrid memory systems [J]. IEEE Trans on Computers,2020,69(9): 1401-1413.
[23]Tan Yujuan,Wang Baiping,Yan Zhichao,et al. UIMigrate: adaptive data migration for hybrid non-volatile memory systems [C]// Proc of Design,Automation & Test in Europe Conference & Exhibition. Piscataway,NJ: IEEE Press,2019: 860-865.
[24]Islam M,Adavally S,Scrbak M,et al. On-the-fly page migration and address reconciliation for heterogeneous memory systems [J]. ACM Journal on Emerging Technologies in Computing Systems,2020,16(1): 1-27.
[25]Sun Hao,Chen Lan,Hao Xiaoran,et al. An energy-efficient and fast scheme for hybrid storage class memory in an AIoT terminal system [J]. Electronics,2020,9(6): 1013.
[26]Yoon H B,Meza J,Ausavarungnirun R,et al. Row buffer locality aware caching policies for hybrid memories [C]// Proc of the 30th IEEE International Conference on Computer Design. Piscataway,NJ: IEEE Press,2012: 337-344.
[27]Wei Wei,Jiang Dejun,McKee S A,et al. Exploiting program semantics to place data in hybrid memory [C]// Proc of International Conference on Parallel Architecture and Compilation. Piscataway,NJ: IEEE Press,2015: 163-173.
[28]Hassan A,Vandierendonck H,Nikolopoulos D S. Software-managed energy-efficient hybrid DRAM/NVM main memory [C]// Proc of the 12th ACM International Conference on Computing Frontiers. New York: ACM Press,2015: 1-8.
[29]Olson M B,Zhou T,Jantz M R,et al. Membrain: automated application guidance for hybrid memory systems [C]// Proc of IEEE International Conference on Networking,Architecture and Storage. Piscataway,NJ: IEEE Press, 2018: 1-10.
[30]Long Linbo,Du Jinpei,Deng Xuxu,et al. Optimizing data placement and size configuration for morphable NVM based SPM in embedded multicore systems [J]. Future Generation Computer Systems,2022,135: 270-282.
[31]de Moura R C,de Souza Oliveira L,Schneider G B,et al. Intf-HybridMem: page migration in hybrid memories considering cost efficiency [J]. Sustainable Computing: Informatics and Systems,2021,29: 100466.
[32]Liu Lei,Yang Shengjie,Peng Lu,et al. Hierarchical hybrid memory management in OS for tiered memory systems [J]. IEEE Trans on Parallel and Distributed Systems,2019,30(10): 2223-2236.
[33]邱杰凡,華宗漢,范菁,等. 內(nèi)存體系劃分技術(shù)的研究與發(fā)展 [J]. 軟件學(xué)報(bào),2022,33(2): 751-769. (Qiu Jiefan,Hua Zonghan,F(xiàn)an Jing,et al. Evolution of memory partitioning technologies: Case study through page coloring [J]. Journal of Software,2022,33(2): 751-769.)
[34]Peng I B,Gioiosa R,Kestor G,et al. RTHMS: a tool for data placement on hybrid memory system [J]. ACM SIGPLAN Notices,2017,52(9): 82-91.
[35]Servat H,Pe?a A J,Llort G,et al. Automating the application data placement in hybrid memory systems [C]// Proc of IEEE International Conference on Cluster Computing. Piscataway,NJ: IEEE Press,2017: 126-136.
[36]Doudali T D,Gavrilovska A. Machine learning augmented hybrid memory management [C]// Proc of the 30th International Symposium on High-Performance Parallel and Distributed Computing. New York: ACM Press,2021: 253-254.
[37]Doudali T D,Blagodurov S,Vishnu A,et al. Kleio: a hybrid memory page scheduler with machine intelligence [C]// Proc of the 28th International Symposium on High-Performance Parallel and Distributed Computing. New York: ACM Press,2019: 37-48.
[38]Doudali T D,Zahka D,Gavrilovska A. Tuning the frequency of periodic data movements over hybrid memory systems [EB/OL]. (2021-01-15). https://arxiv.org/abs/2101.07200.
[39]Doudali T D,Gavrilovska A. Coeus: clustering (a) like patterns for practical machine intelligent hybrid memory management [C]// Proc of the 22nd IEEE International Symposium on Cluster,Cloud and Internet Computin. Piscataway,NJ: IEEE Press,2022: 615-624.
[40]Doudali T D,Gavrilovska A. Mnemo: boosting memory cost efficiency in hybrid memory systems [C]// Proc of IEEE International Parallel and Distributed Processing Symposium Workshops. Piscataway,NJ: IEEE Press,2019: 412-421.
[41]Doudali T D,Gavrilovska A. CoMerge: toward efficient data placement in shared heterogeneous memory systems [C]// Proc of International Symposium on Memory Systems. New York: ACM Press,2017: 251-261.
[42]Aswathy N S,Bhavanasi S,Sarkar A,et al. SRS-Mig: selection and run-time scheduling of page migration for improved response time in hybrid PCM-DRAM memories [C]// Proc of Great Lakes Symposium on VLSI. New York: ACM Press,2022: 217-222.
[43]Cai Miao,Huang Hao. A survey of operating system support for persistent memory [J]. Frontiers of Computer Science,2021,15: 1-20.
[44]Mutlu O. Main memory scaling: challenges and solution directions [M]// More than Moore Technologies for Next Generation Computer Design. New York: Springer, 2015: 127-153.
[45]Salkhordeh R,Asadi H. An operating system level data migration scheme in hybrid DRAM-NVM memory architecture [C]// Proc of Design,Automation & Test in Europe Conference & Exhibition. Piscataway,NJ: IEEE Press,2016: 936-941.
[46]Lee S,Bahn H,Noh S H. CLOCK-DWF: a write-history-aware page replacement algorithm for hybrid PCM and DRAM memory architectures [J]. IEEE Trans on Computers,2013,63(9): 2187-2200.
[47]Choi J H,Kim K M,Kwak J W. TA-CLOCK: tendency-aware page replacement policy for hybrid main memory in high-performance embedded systems [J]. Electronics,2021,10(9): 1111.
[48]李琪,鐘將,李雪,等. 基于新型非易失存儲(chǔ)器的混合內(nèi)存架構(gòu)的內(nèi)存管理機(jī)制 [J]. 電子學(xué)報(bào),2019,47(3): 664-670. (Li Qi,Zhong Jiang,Li Xue,et al. Memory management mechanism for hybrid memory architecture based on new non-volatile memory [J]. Acta Electronica Sinica,2019,47(3): 664-670.)
[49]Duan Zhuohui,Liu Haikun,Liao Xiaofei,et al. HiNUMA: NUMA aware data placement and migration in hybrid memory systems [C]// Proc of the 37th IEEE International Conference on Computer Design. Piscataway,NJ: IEEE Press,2019: 367-375.
[50]曲良,陳嵐,郝曉冉,等. 基于混合內(nèi)存的存儲(chǔ)系統(tǒng)優(yōu)化方案 [J]. 電子設(shè)計(jì)工程,2019,27(21): 140-145. (Qu Liang,Chen Lan,Hao Xiaoran,et al. Optimization scheme of memory system based on hybrid main memory [J]. Electronic Design Engineering,2019,27(21): 140-145.)
[51]Zhang Yiming,Zhan Jinyu,Yang Junhuan,et al. Energy-aware page replacement for NVM based hybrid main memory system [C]// Proc of the 23rd IEEE International Conference on Embedded and Real-Time Computing Systems and Application. Piscataway,NJ: IEEE Press,2017: 1-6.
[52]孫浩,陳嵐,郝曉冉,等. 一種面向邊緣計(jì)算的混合內(nèi)存系統(tǒng) [J]. 北京郵電大學(xué)學(xué)報(bào),2020,43(2): 103-109. (Sun Hao,Chen Lan,Hao Xiaoran,et al. A hybrid memory system for edge computing [J]. Journal of Beijing University of Posts and Telecommunications,2020,43(2): 103-109.)
[53]Kim T,Jamil S,Park J,et al. Optimizing placement of heap memory objects in energy-constrained hybrid memory systems [J]. arXiv preprint arXiv: 2006. 12133,2020.
[54]Huang Jiacheng,Peng Min,Wu Libing,et al. Lamina: low oO8k2Qx7RDZr4LedOK0BOPQ==verhead wear leveling for NVM with bounded tail [C]// Proc of the 27th Asia and South Pacific Design Automation Conference. Piscataway,NJ: IEEE Press,2022: 377-382.
[55]Yu Hongliang,Du Yuyang. Increasing endurance and security of phase-change memory with multi-way wear-leveling [J]. IEEE Trans on Computers,2012,63(5): 1157-1168.
[56]Qureshi M K,Srinivasan V,Rivers J A. Scalable high performance main memory system using phase-change memory technology [C]// Proc of the 36th Annual International Symposium on Computer Architecture. New York: ACM Press,2009: 24-33.
[57]Azevedo R,Davis J D,Strauss K,et al. Zombie memory: extending memory lifetime by reviving dead blocks [C]// Proc of the 40th Annual International Symposium on Computer Architecture. 2013: 452-463.
收稿日期:2023-12-12;修回日期:2024-02-20 基金項(xiàng)目:中國高校產(chǎn)學(xué)研自然基金資助項(xiàng)目(2021FNA04016)
作者簡介:林炳輝(1998—),男,福建泉州人,碩士研究生,主要研究方向?yàn)榛旌蟽?nèi)存優(yōu)化,軟件工程等;張建勛(1978—),男,河北保定人,教授,碩導(dǎo),博士,CCF會(huì)員,主要研究方向?yàn)榛旌洗鎯?chǔ)優(yōu)化(Zhangjx@tute.edu.cn);喬欣雨(1997—),女,江蘇南京人,碩士研究生,主要研究方向?yàn)檐浖こ?