主存儲器(main memory,簡稱主存)是計算機硬件系統的一個重要組成部分,其作用是存放指令和數據,并能由中央處理器存取。主存一邊連接中央處理器(如CPU、FPGA或GPU),另一邊連接外存儲器(SSD、HDD),是兩者之間數據流通的橋梁。主存可以由多種介質構成,其中動態隨機存取存儲器(DRAM)因其相對較低的成本和讀寫延遲,是當前構建主存的主要介質。由于現代應用程序的輸人數據集規模不斷增大,對更高的DRAM容量和性能的需求也在不斷增加。然而,DRAM在容量增加的情況下,保持其效能比和可靠性正變得越來越困難,因此,滿足應用程序不斷增長的內存需求正變得越來越昂貴和極具挑戰性。
多核架構和數據密集型應用對主存容量、帶寬、和延遲的需求在不斷增長。以內存容量墻為例,處理器核心數量每兩年翻一番,而DRAM容量每三年翻一番。這表示每個核心擁有的內存容量每兩年下降30%,對每個核心的內存帶寬和延遲來說趨勢更糟糕。從1999年至2017年,單DRAM芯片容量提升了128倍,而帶寬和延遲僅僅分別提高了20倍和1.3倍。對于數據密集型的工作負載如內存數據庫、圖處理、內存計算和其他數據中心工作負載等來說,延遲已經成為了一個巨大的性能瓶頸。因此,主存容量、帶寬和延遲的發展速度不能滿足軟件發展的新需求。
另一方面,主存的功耗問題也成為了重要的系統設計考慮。因其物理特性,DRAM即使不使用也需要定期刷新而消耗電能。隨著容量和復雜度的增加,主存的功耗問題變得更加嚴重。2003年,在IBM設計的大型商用服務器中,約40%~50%的電能消耗在片外存儲器層次結構中凹。在最近的CPU或GPU系統中,DRAM消耗了超過40%的系統總功耗。在移動設備中,系統總能耗的62.7%用于數據在CPU和內存之間移動。由于能源效率和可持續性是當今計算平臺的關鍵需求,因此降低主存的能耗/功耗至關重要。
此外,DRAM制造工藝尺寸的擴展也遇到了極大的困難。首先,DRAM制造工藝尺寸擴展到更小會對DRAM的可靠性產生負面影響。DRAM單元將每個比特以電荷的形式存儲在電容中,通過晶體管和外圍電路訪問電容。為了使DRAM單元正常工作,電容和晶體管(以及外圍電路)都需要可靠地工作。但隨著DRAM工藝尺寸的減小,電容和晶體管都變得不可靠起來,內存錯誤因而更加頻繁地出現。例如,對Facebook數據中心服務器的研究表明,服務器故障率隨著服務器中使用的芯片密度的增大而增加。其次,DRAM制造工藝尺寸的擴展會導致新的安全缺陷,如RowHammer。RowHammer現象指的是在大多數現代DRAM芯片中,重復讀取同一行會破壞物理相鄰行的數據。文獻6指出2010年至2014年間,由三家主要供應商提供的芯片中,85%以上易受RowHammer引起的錯誤影響。DRAM工藝尺寸的發展還受到存儲單元漏電流增加、存儲單元穩定性降低以及制造工藝困難的影響。這些因素使增加DRAM的容量和減少功耗更為困難。