一種新型內存SCM(Storage Class Memory)的簡單介紹

1.寫在前面

衆所周知,在傳統的計算機體系結構中,內存架構是層級制的。
從片上的寄存器內存-高速緩存(cache),到片外的主存(DRAM),以及磁盤(disk)。不同的計算機*硬件廠商可能在具體的等級劃分數目上有所不同,但大體結構並無二致。*
比如,有的cache做成三層,有的做成兩層。再比如,有些會在內盤與磁盤之間加一個SSD cache,作爲磁盤緩存。
緩存技術是計算機內存技術中非常關鍵的一個技術概念,它利用的是程序執行的局部性原理。局部性原理又分爲空間局部性和時間局部性。
更具體地,所謂空間局部性,是指當某一個數據或程序段被調用執行(會調入cache頁)後,在不遠的將來。它在內存中的位置地址附近的數據或程序段也很有可能被執行;所謂時間局部性,是指當某一個數據或程序段被調用執行後,在不遠的將來,它會被再次執行。

2.爲什麼要引入新型內存

我們知道,根據 寄存器內存-高速緩存-主存-硬盤存儲器 這樣的從上到下的層級結構,一個簡單的事實是越往下存儲容量越大,價格更低,但是存取速度也越慢。無論是學術界還是工業界,在存儲器體系上所一直不懈努力的目標就是用相對較低的價格,獲得存儲容量大並且速度快的內存。
由於CPU芯片大小的固有限制,寄存器內存不能太大,一般只有幾十KB到幾百KB的存儲容量。所以,一個更好地改造目標是DRAM,近年來隨着技術的進步和成熟,DRAM已經從從2GB發展到如今的8GB,16GB甚至更高,且速度性能也在不斷提升。
但是,隨着近些年內存計算技術的興起,越來越多的應用需要將更多數據放入內存中進行操作,內存空間就成爲了一個不可忽視的瓶頸。如何能夠在保證訪問速度的情況下,提升內存存儲空間成爲了一個極具挑戰力的課題。
目前業界一個備受關注並且極具創新力的解決方案是NVM(Non-volatile Memory)的設計。所謂NVM,即是非易失性內存。比如我們目前廣泛使用的DRAM內存,它是易失的(volatile),具體來說,就是當掉電之後,所有存儲在DRAM中的數據將全部丟失。而像大容量的磁盤存儲設備,則屬於非易失性的,具有持久存儲的能力。
要注意的是,NVM並不是指某種特定的硬件介質內存,而是針對具有非易失特性的內存的統稱。
而我們將要介紹的SCM,也就是存儲級內存。它不僅具有大容量的突出優點,而且還兼具非易失的存儲特性,這就爲內存技術革命提供了良好的基礎。

3.SCM的特點

作爲新型內存的SCM,具有如下幾個突出特點:
1、非易失
2、極短的存取時間(DRAM-like)
3、每比特價格低廉(Disk-like)
4、固態,無移動區(SSD-like)

基於以上特點,SCM勢必成爲大數據時代炙手可熱的重要內存產品。

4.SCM與DRAM的關係

既然SCM有這麼多優點,是否意味着傳統的DRAM內存將被它取而代之呢?
答案是暫時不會。
雖然我們強調SCM具有快速的存取特性,這很像DRAM,但實際上它僅僅讀速度與DRAM相當(但是還是會慢一些,約爲一個數量級),寫速度則相差10倍到100倍以上。並且SCM還具有一個作爲NVM設備的致命缺陷,即寫次數有限,寫幾百萬次時會寫穿造成永久失效的問題。因此,對於寫次數大的應用而言,SCM未必是一個好的選擇。
因此,DRAM在現階段是不可能也不應該被淘汰的。一個良好的思路是,是否可以設計一種混合架構內存,使得DRAM和SCM強強聯手,達成一個更好的優化目標呢?
這一點是可行的,目前在硬件設備上,如華爲、浪潮這樣的硬件設備廠商已經基本生產出了符合技術目標的NVM原型,尤其值得一提的是這些硬件在機器上運行時,內存堆上層用戶的操作是透明的。也就是說,用戶在使用內存時,本身是不知道它是DRAM還是SCM的,這既爲用戶提供了便利,也使得應用程序開發人員能夠更好地關注軟件本身的架構及程序運行的合理性,而無需關心內存與操作系統之間的交互細節。
DRAM/SCM混合內存架構是一種嶄新的內存架構,目前學術界和工業界都不遺餘力地在這一架構上尋求突破口和創新點。

5.混合內存架構的機遇與挑戰

關於基於SCM的應用變化及創新,更具體地將在後續博文中結合我近期閱讀過的論文(相關研究)
來詳細地介紹,在這裏就先只做一些概要的講述。

針對傳統的DRAM數據存儲掉電易失的問題,計算機從業人員構思出了備份、冗餘碼、transaction、logging等技術機制來保證數據一致性。而在使用SCM之後,事情也許可以發生一些變化,比如,備份機制就沒有必要了。因爲數據存儲在SCM中是持久存儲的,在掉電重啓之後只要重新訪問數據存儲區域就可以繼續原來的工作了,當然,這需要transaction和logging技術的支持,以及其他的可能需要提出的新技術(爲優化性能使用)。

針對內存中計算的應用,比如in-memory database,in-memory KV-Store,使用SCM來存儲如數據庫、KV-Store這樣的結構,既可以結合傳統的技術,又能減輕容錯方面需要考慮的問題複雜性,這就使得進一步優化其他性能指標如load balancing和流量成爲了可能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章