多數人每當談到記憶體,唯一想到的就是DRAM。此外大家也非常清楚,若將DRAM、3D NAND SSD、HDD、Tape等儲存媒體一起做比較,顯而易見的,DRAM不僅是其中效能最快、低遲最低的模範生,且領先其他三者的差距相當大。

然而在一般情況下,DRAM的購置成本高於SSD、HDD或Tape,價格並不親民,所以使用者在採買DRAM時,通常也不會選購太大的容量。但其實不少使用者對DRAM頗感好奇,不明白它的選擇性為何那麼低,譬如你用的這顆處理器只能搭配DDR4,你就只能選DDR4,別無其他選項。

相形之下,儲存領域便顯得百花齊放,有SATA HDD、SAS HDD、SAS SSD、NVMe SSD、SCM SSD多種媒體可選用,甚至能在同一套系統中配置多個選項,為Hot Data、Warm Data及Cold Data建立分層(Tiering)架構。反觀Memory DIMM卻僅能配置單一媒介,情況截然不同。

但其實Memory的配置模式未必只能如此單調,可安裝DRAM以外的介質,甚至還能做到類似儲存的Tiering效果,讓使用者既能降低總體持有成本,又能維持不俗的效能;而這個極具顛覆性意涵的記憶體技術,源自Intel® Optane™ 持續性記憶體(Intel Optane Persistent Memory;PMEM)。

ECC+Spare Part,提升記憶體可用性

基本上,Intel® Optane™代表一種迥異於傳統記憶體或儲存媒介的材質,而Intel利用這個材質,打造出兩個適用企業資料中心的產品線,一是儲存,另一則是本篇要談的記憶體。

綜觀PMEM的特色,在於它可相容於DDR4記憶體插槽,也代表它擁有和DDR DRAM一樣的Form Factor,適用於同樣的Bus。

如同前述,長期以來記憶體給人們的選擇極少,而「Tiering」這個已常見用於儲存領域的技術,在記憶體領域幾乎未曾聽聞。直到象徵「記憶體與儲存裝置25年來首次重大突破」的Intel® Optane™技術問世,才一舉突破過往侷限,讓Tiering不僅能用在儲存領域,也能開始用於記憶體領域。

怎麼做到記憶體Tiering?你可以把過去純DRAM的單一配置格局,調整為「DRAM+PMEM」,至於DRAM與PMEM之間的配比,大致落在1:4或1:8,端看你對價格或效能的要求。也許有人好奇,為何配比的選項如此有限?此乃因為,記憶體是非常關鍵的元件,其健康與否,對於整個系統影響至鉅,既然如此,它的插法當然需要事先被測試過,而1:4和1:8正是少數通過測試的插法。

持續性記憶體的外型與一般DDR4頗為相似,但其容量從128GB起跳,往上還有256GB、512GB等選擇,與DDR DRAM多為小容量的規格相比,著實大異其趣。更重要的,DRAM價格頗為浮動,時高時低,但整體而言,PMEM的價位都較DRAM來得實惠。

此外難免有人質疑,一條記憶體內含128GB大容量,反倒引來莫大風險,假設這顆壞掉,豈不麻煩?事實上Intel在設計PMEM時,就特意擺放多達11個顆粒,超過常見的8顆格局;關於多出來的部份,其中2顆用於ECC(Error-Correcting Codes),剩餘的那1顆則作為「備件」(Spare Part),萬一哪個Cell出狀況,便可立即將它Disable掉,由備件取而代之,藉以達到高可用性。反觀一般DRAM,都未曾見過這樣的設計。

以DRAM為L4快取,PMEM作為系統記憶體

值得一提,PMEM上面有一個小CPU,負責支援兩種不同運作模式,包括記憶體模式(Memory Mode)、應用程式導引模式(App Direct Mode);此處將針對使用頻率較高的記憶體模式做介紹,至於相對複雜、且涉及軟體改寫需求的應用程式導引模式,這邊暫且略而不提。

為何要把PMEM當成系統記憶體來使用?其實並不難理解,係因DRAM相對昂貴,大家不會把容量買到太大。把PMEM當作系統記憶體時仍需要DDR4,但只要留一小部份當做快取即可。因相關運作都在CPU內部硬體執行,所以對OS或軟體都具透通性,也就是它們根本不知PMEM的存在。

眾所皆知,CPU內部有Cache L1、L2及L3,現在可將DRAM當成L4,然後交由PMEM作為系統記憶體就。由此可見,記憶體模式相當單純,試想你過去若想買1TB記憶體,多數時候真的礙於價格而難以下手,但今天已不需再繼續掙扎,可比照Disk納入不同選擇組合,採取「256GB DDR4+1TB PMEM」或「128GB DDR4+1TB PMEM」配置,好處是原本CPU的Cache僅有L1、L2與L3,基本上不算大,如今以適當容量的DRAM當作Cache,有助在加大系統記憶體容量時仍維持系統效能。

事實上有些客戶不見得一昧追求高效能,反而更在意成本。對於關注成本高低的用戶來說,一旦善用「記憶體Tiering」,可望在價格合理性(PMEM算是便宜的系統記憶體)、效能水準之間求取平衡,也稱得上是理想解方。

當然如果今天你的主要應用場景為HPC,對記憶體、CPU都要求越快越好,此時理應維持純DDR4配置;至於一般應用場景、特別是虛擬化環境,就很適合採用記憶體Tiering模式。

也有人問到,除虛擬機外,作為系統記憶體的PMEM能否支援容器?當然可以。當你在用DDR4時,不會特別詢問它能否支援虛擬機或容器,如今面對PMEM亦是相同道理,主因在於「Hardware Transparency」,程式究竟跑在CPU、Cache或PMEM,OS根本不知,全靠CPU安排與調整;這也是硬體快取優於軟體快取的地方,唯有程式不受影響、無需改寫,才能與快取功能相得益彰,算是最理想的狀態。

熱門新聞

Advertisement