惠麗峰
(內(nèi)蒙古科技大學(xué)工程訓(xùn)練中心,內(nèi)蒙古 包頭 014010)
大數(shù)據(jù)時(shí)代的到來(lái)對(duì)計(jì)算機(jī)的主存系統(tǒng)提出了更高要求。一種新存儲(chǔ)介質(zhì)——相變存儲(chǔ)器PCM(Phase Change Memory)應(yīng)運(yùn)而生。PCM擁有非易失性、字節(jié)可尋址、讀取速度快、低能耗等特點(diǎn),被寄以取代DRAM(Dynamic Random Access Memory)成為新一代的主存介質(zhì)。但是,現(xiàn)階段的PCM由于本身的材料性質(zhì),存在寫(xiě)壽命較短、寫(xiě)延遲較長(zhǎng)和寫(xiě)能耗較大等缺陷[1],在讀取性能上和DRAM還存在差距。因此,出現(xiàn)了一種基于DRAM和PCM混合主存架構(gòu)機(jī)制,即把DRAM和PCM作為同級(jí)結(jié)構(gòu)整合到一個(gè)主存系統(tǒng)中,利用DRAM和PCM優(yōu)、劣互補(bǔ)來(lái)構(gòu)建存儲(chǔ)速度更快、存儲(chǔ)容量更大、能量效率更高的混合主存系統(tǒng)[2],如圖1所示,以共同承擔(dān)大數(shù)據(jù)時(shí)代主存對(duì)高效、海量數(shù)據(jù)存儲(chǔ)管理的艱巨任務(wù)。
DRAM和PCM混合主存架構(gòu)適應(yīng)了大數(shù)據(jù)時(shí)代主存系統(tǒng)的需求。表1為DRAM與PCM的參數(shù)對(duì)比情況[3]。
圖1 DRAM和PCM同級(jí)混合主存系統(tǒng)
表1 DRAM與PCM的對(duì)比
從表1的參數(shù)可以看出,PCM的寫(xiě)能耗大約是DRAM的寫(xiě)能耗的4倍。因此,在這種混合主存機(jī)制中,根據(jù)DRAM和PCM優(yōu)、劣互補(bǔ)的構(gòu)建原則,將原始數(shù)據(jù)存儲(chǔ)在PCM介質(zhì)中,將校驗(yàn)數(shù)據(jù)存儲(chǔ)在DRAM介質(zhì)中,繼續(xù)維持DRAM的寫(xiě)緩存功能,用以減少PCM存儲(chǔ)器的寫(xiě)操作次數(shù),以有效發(fā)揮DRAM與PCM各自的優(yōu)勢(shì),減少讀寫(xiě)延遲,降低混合主存存儲(chǔ)系統(tǒng)的能耗,增強(qiáng)系統(tǒng)數(shù)據(jù)的可靠性。圖2為DRAM和PCM存儲(chǔ)器混合主存架構(gòu)分工協(xié)作圖。
根據(jù)圖2,在基于DRAM和PCM混合主存架構(gòu)機(jī)制中,PCM存儲(chǔ)原始數(shù)據(jù)的地址。為了減少系統(tǒng)對(duì)PCM頻繁的寫(xiě)操作,將部分DRAM存儲(chǔ)器設(shè)置為PCM存儲(chǔ)器的鏡像緩存,采取日志記錄方式對(duì)鏡像緩存中的數(shù)據(jù)進(jìn)行數(shù)據(jù)索引。由于系統(tǒng)中的日志記錄和冗余數(shù)據(jù)需要頻繁修改,因此將日志記錄、冗余數(shù)據(jù)、寫(xiě)緩存數(shù)據(jù)均存放于DRAM存儲(chǔ)器中,以減少PCM存儲(chǔ)器的寫(xiě)操作次數(shù)。DRAM和PCM兩種存儲(chǔ)介質(zhì)共同構(gòu)成了整個(gè)計(jì)算機(jī)的主存系統(tǒng)與外界進(jìn)行交互。
圖2 DRAM和PCM在混合主存架構(gòu)分工協(xié)作
基于DRAM和PCM的混合主存架構(gòu)機(jī)制,為避開(kāi)PCM存儲(chǔ)器的讀寫(xiě)不對(duì)稱和寫(xiě)壽命有限的缺陷,對(duì)原有DRAM主存的讀取模式進(jìn)行改進(jìn),將寫(xiě)操作集中在DRAM介質(zhì)中,以減少對(duì)PCM存儲(chǔ)器的寫(xiě)操作。
當(dāng)總線上傳來(lái)讀數(shù)據(jù)的請(qǐng)求時(shí),混合主存系統(tǒng)響應(yīng)該請(qǐng)求,從主存中讀出數(shù)據(jù)。過(guò)程如下:根據(jù)總線請(qǐng)求在DRAM中查找當(dāng)前日志記錄,若記錄存在,則從日志記錄中讀取數(shù)據(jù)存儲(chǔ)地址,根據(jù)數(shù)據(jù)存儲(chǔ)地址從buffer(最近更新所得的數(shù)據(jù))中讀出數(shù)據(jù);若記錄不存在,則查找PCM中的數(shù)據(jù),找到返回?cái)?shù)據(jù),未找到則報(bào)錯(cuò)。
當(dāng)總線上傳寫(xiě)數(shù)據(jù)的請(qǐng)求時(shí),混合主存系統(tǒng)響應(yīng)該請(qǐng)求,將總線上傳來(lái)的數(shù)據(jù)寫(xiě)入主存中。過(guò)程如下:查詢DRAM上的日志記錄,判斷buffer中是否存儲(chǔ)了相應(yīng)數(shù)據(jù),若命中,則根據(jù)命中的日志記錄取出數(shù)據(jù)的地址,刪除原有的日志記錄,更新一條新日志記錄,將總線上傳來(lái)的數(shù)據(jù)根據(jù)地址寫(xiě)入緩存,確保寫(xiě)緩存存儲(chǔ)的是最近更新的數(shù)據(jù);若不命中,則創(chuàng)建一條新的記錄,將總線上傳來(lái)的數(shù)據(jù)寫(xiě)入緩存。
這種寫(xiě)模式頻繁針對(duì)總線寫(xiě)請(qǐng)求操作均由DRAM執(zhí)行,且所有的數(shù)據(jù)都寫(xiě)入到DRAM的鏡像緩存中。因此,它最大限度地減少了PCM的寫(xiě)操作,降低了寫(xiě)延遲、寫(xiě)能耗,延長(zhǎng)了PCM的使用壽命。
衡量主存性能的兩大指標(biāo)為:帶寬(GB/s)與功耗(W)。
帶寬是指能夠有效通過(guò)該信道的信號(hào)的最大頻帶寬度。內(nèi)存帶寬的大小直接影響信號(hào)在信道上傳輸時(shí)的速度。當(dāng)下的計(jì)算機(jī)系統(tǒng)處理海量數(shù)據(jù)的所有操作都要經(jīng)過(guò)主存,因此主存的帶寬是影響整個(gè)計(jì)算機(jī)系統(tǒng)性能的一個(gè)重要參數(shù)。
主存帶寬的計(jì)算公式如下:
帶寬=總線寬度×總線頻率×一個(gè)時(shí)鐘周期內(nèi)交換的數(shù)據(jù)包個(gè)數(shù) (1)
根據(jù)計(jì)算主存的帶寬公式,當(dāng)同一系統(tǒng)中總線寬度和總線頻率固定時(shí),一個(gè)時(shí)鐘周期內(nèi)交換的數(shù)據(jù)包個(gè)數(shù)就成為確定主存性能優(yōu)劣的關(guān)鍵因素。圖3為主存系統(tǒng)帶寬比較。
圖3 主存系統(tǒng)帶寬比較
根據(jù)圖3中的柱狀圖得出,在系統(tǒng)同一配置下,基于DRAM和PCM混合主存系統(tǒng)的帶寬與基于DRAM主存系統(tǒng)的帶寬接近,約是基于PCM主存系統(tǒng)的3倍。說(shuō)明混合主存系統(tǒng)在執(zhí)行讀請(qǐng)求與寫(xiě)請(qǐng)求時(shí),DRAM查找當(dāng)前日志記錄與寫(xiě)緩存涉及到的DRAM與PCM延遲可以忽略不計(jì);在執(zhí)行寫(xiě)請(qǐng)求時(shí),先寫(xiě)入DRAM介質(zhì)中的buffer,盡可能提高DRAM高帶寬的利用率。
功耗是指單位時(shí)間內(nèi)消耗的能源數(shù)量。主存功耗的高低直接影響計(jì)算機(jī)系統(tǒng)的性能。大數(shù)據(jù)時(shí)代海量數(shù)據(jù)加大了主存功耗在整個(gè)計(jì)算機(jī)系統(tǒng)功耗中的占比。
根據(jù)圖4中的柱狀圖得出,在系統(tǒng)同一配置下,基于DRAM和PCM的混合主存系統(tǒng)的主存功耗比基于DRAM主存系統(tǒng)的主存功耗降低了30%~40%。這是因?yàn)榛贒RAM和PCM的混合主存系統(tǒng)在執(zhí)行讀請(qǐng)求時(shí),首先查找當(dāng)前日志記錄用以讀出原始數(shù)據(jù)地址,利用其原始數(shù)據(jù)的地址從存儲(chǔ)器中讀取數(shù)據(jù),相比直接從存儲(chǔ)器中查找數(shù)據(jù),最大限度地降低了主存功耗。當(dāng)基于DRAM和PCM的混合主存系統(tǒng)在執(zhí)行寫(xiě)請(qǐng)求時(shí),直接寫(xiě)在DRAM的緩存上,PCM寫(xiě)操作的能耗是DRAM寫(xiě)操作能耗的4倍,使寫(xiě)操作的功耗得到了最大限度降低。因此,基于DRAM和PCM混合主存架構(gòu)機(jī)制實(shí)現(xiàn)了降低主存系統(tǒng)功耗的目的,提高了計(jì)算機(jī)系統(tǒng)的性能。
圖4 主存系統(tǒng)功耗比較
為滿足大數(shù)據(jù)時(shí)代存儲(chǔ)系統(tǒng)的需求,相變存儲(chǔ)器PCM以其非易失等優(yōu)點(diǎn)在計(jì)算機(jī)存儲(chǔ)系統(tǒng)中嶄露頭角,改變了傳統(tǒng)的主存架構(gòu),為現(xiàn)階段的大數(shù)據(jù)存儲(chǔ)與管理注入了新動(dòng)能。目前,PCM存在寫(xiě)操作次數(shù)有限等缺陷,使得PCM不能完全取代DRAM作為獨(dú)立的主存介質(zhì)。
采用基于DRAM和PCM混合主存架構(gòu)機(jī)制,對(duì)兩種存儲(chǔ)器進(jìn)行揚(yáng)長(zhǎng)避短、分工協(xié)作,提高了主存系統(tǒng)的帶寬,降低主存系統(tǒng)的功耗,延長(zhǎng)了PCM的使用壽命,緩解了基于易失性DRAM主存架構(gòu)系統(tǒng)的I/O瓶頸問(wèn)題,適應(yīng)了大數(shù)據(jù)時(shí)代海量數(shù)據(jù)更高性能的存儲(chǔ)。