惠麗峰
(內蒙古科技大學工程訓練中心,內蒙古 包頭 014010)
大數據時代的到來對計算機的主存系統提出了更高要求。一種新存儲介質——相變存儲器PCM(Phase Change Memory)應運而生。PCM擁有非易失性、字節可尋址、讀取速度快、低能耗等特點,被寄以取代DRAM(Dynamic Random Access Memory)成為新一代的主存介質。但是,現階段的PCM由于本身的材料性質,存在寫壽命較短、寫延遲較長和寫能耗較大等缺陷[1],在讀取性能上和DRAM還存在差距。因此,出現了一種基于DRAM和PCM混合主存架構機制,即把DRAM和PCM作為同級結構整合到一個主存系統中,利用DRAM和PCM優、劣互補來構建存儲速度更快、存儲容量更大、能量效率更高的混合主存系統[2],如圖1所示,以共同承擔大數據時代主存對高效、海量數據存儲管理的艱巨任務。
DRAM和PCM混合主存架構適應了大數據時代主存系統的需求。表1為DRAM與PCM的參數對比情況[3]。

圖1 DRAM和PCM同級混合主存系統

表1 DRAM與PCM的對比
從表1的參數可以看出,PCM的寫能耗大約是DRAM的寫能耗的4倍。因此,在這種混合主存機制中,根據DRAM和PCM優、劣互補的構建原則,將原始數據存儲在PCM介質中,將校驗數據存儲在DRAM介質中,繼續維持DRAM的寫緩存功能,用以減少PCM存儲器的寫操作次數,以有效發揮DRAM與PCM各自的優勢,減少讀寫延遲,降低混合主存存儲系統的能耗,增強系統數據的可靠性。圖2為DRAM和PCM存儲器混合主存架構分工協作圖。
根據圖2,在基于DRAM和PCM混合主存架構機制中,PCM存儲原始數據的地址。為了減少系統對PCM頻繁的寫操作,將部分DRAM存儲器設置為PCM存儲器的鏡像緩存,采取日志記錄方式對鏡像緩存中的數據進行數據索引。由于系統中的日志記錄和冗余數據需要頻繁修改,因此將日志記錄、冗余數據、寫緩存數據均存放于DRAM存儲器中,以減少PCM存儲器的寫操作次數。DRAM和PCM兩種存儲介質共同構成了整個計算機的主存系統與外界進行交互。

圖2 DRAM和PCM在混合主存架構分工協作
基于DRAM和PCM的混合主存架構機制,為避開PCM存儲器的讀寫不對稱和寫壽命有限的缺陷,對原有DRAM主存的讀取模式進行改進,將寫操作集中在DRAM介質中,以減少對PCM存儲器的寫操作。
當總線上傳來讀數據的請求時,混合主存系統響應該請求,從主存中讀出數據。過程如下:根據總線請求在DRAM中查找當前日志記錄,若記錄存在,則從日志記錄中讀取數據存儲地址,根據數據存儲地址從buffer(最近更新所得的數據)中讀出數據;若記錄不存在,則查找PCM中的數據,找到返回數據,未找到則報錯。
當總線上傳寫數據的請求時,混合主存系統響應該請求,將總線上傳來的數據寫入主存中。過程如下:查詢DRAM上的日志記錄,判斷buffer中是否存儲了相應數據,若命中,則根據命中的日志記錄取出數據的地址,刪除原有的日志記錄,更新一條新日志記錄,將總線上傳來的數據根據地址寫入緩存,確保寫緩存存儲的是最近更新的數據;若不命中,則創建一條新的記錄,將總線上傳來的數據寫入緩存。
這種寫模式頻繁針對總線寫請求操作均由DRAM執行,且所有的數據都寫入到DRAM的鏡像緩存中。因此,它最大限度地減少了PCM的寫操作,降低了寫延遲、寫能耗,延長了PCM的使用壽命。
衡量主存性能的兩大指標為:帶寬(GB/s)與功耗(W)。
帶寬是指能夠有效通過該信道的信號的最大頻帶寬度。內存帶寬的大小直接影響信號在信道上傳輸時的速度。當下的計算機系統處理海量數據的所有操作都要經過主存,因此主存的帶寬是影響整個計算機系統性能的一個重要參數。
主存帶寬的計算公式如下:
帶寬=總線寬度×總線頻率×一個時鐘周期內交換的數據包個數 (1)
根據計算主存的帶寬公式,當同一系統中總線寬度和總線頻率固定時,一個時鐘周期內交換的數據包個數就成為確定主存性能優劣的關鍵因素。圖3為主存系統帶寬比較。

圖3 主存系統帶寬比較
根據圖3中的柱狀圖得出,在系統同一配置下,基于DRAM和PCM混合主存系統的帶寬與基于DRAM主存系統的帶寬接近,約是基于PCM主存系統的3倍。說明混合主存系統在執行讀請求與寫請求時,DRAM查找當前日志記錄與寫緩存涉及到的DRAM與PCM延遲可以忽略不計;在執行寫請求時,先寫入DRAM介質中的buffer,盡可能提高DRAM高帶寬的利用率。
功耗是指單位時間內消耗的能源數量。主存功耗的高低直接影響計算機系統的性能。大數據時代海量數據加大了主存功耗在整個計算機系統功耗中的占比。
根據圖4中的柱狀圖得出,在系統同一配置下,基于DRAM和PCM的混合主存系統的主存功耗比基于DRAM主存系統的主存功耗降低了30%~40%。這是因為基于DRAM和PCM的混合主存系統在執行讀請求時,首先查找當前日志記錄用以讀出原始數據地址,利用其原始數據的地址從存儲器中讀取數據,相比直接從存儲器中查找數據,最大限度地降低了主存功耗。當基于DRAM和PCM的混合主存系統在執行寫請求時,直接寫在DRAM的緩存上,PCM寫操作的能耗是DRAM寫操作能耗的4倍,使寫操作的功耗得到了最大限度降低。因此,基于DRAM和PCM混合主存架構機制實現了降低主存系統功耗的目的,提高了計算機系統的性能。

圖4 主存系統功耗比較
為滿足大數據時代存儲系統的需求,相變存儲器PCM以其非易失等優點在計算機存儲系統中嶄露頭角,改變了傳統的主存架構,為現階段的大數據存儲與管理注入了新動能。目前,PCM存在寫操作次數有限等缺陷,使得PCM不能完全取代DRAM作為獨立的主存介質。
采用基于DRAM和PCM混合主存架構機制,對兩種存儲器進行揚長避短、分工協作,提高了主存系統的帶寬,降低主存系統的功耗,延長了PCM的使用壽命,緩解了基于易失性DRAM主存架構系統的I/O瓶頸問題,適應了大數據時代海量數據更高性能的存儲。