内存计算是一种新兴的计算模式,它通过将大量数据存储在内存中,显著提高了数据处理的时效性和效率。这种计算方式的出现得益于64位CPU的出现,它允许寻址高达16EB的数据,以及DRAM(动态随机存取内存)生产成本的持续下降,现在市场上的DRAM容量已经可以达到TB级别。例如,SAP HANA内存数据库系统相比于传统的磁盘系统,性能提升了408,000倍,而内存文件系统的I/O性能则比固态硬盘(SSD)提升了1000多倍。
然而,尽管内存计算带来了显著的优势,但也面临着一系列挑战。DRAM是易失性存储,一旦断电,存储的数据就会丢失,这就需要频繁地在内存和持久存储之间交换数据,导致“数据I/O”瓶颈依然存在。DRAM的存储密度较低,无法满足大数据处理对TB级乃至PB级内存容量的需求。再者,随着内存容量的增加,DRAM的功耗问题日益突出,其静态功耗(刷新操作)占总功耗的比例可高达50%,增加了系统总能耗。内存子系统的成本较高,单位存储容量的价格昂贵。
为了解决这些问题,非易失性存储技术开始崭露头角。新型存储级内存(Storage Class Memory,SCM)如Intel-Micron的3D XPoint技术,具有可按字节寻址、数据断电不丢失、高速读写性能、高耐久性以及高存储密度等优点。SCM的读延迟接近DRAM,写延迟虽略高,但读写速度比NAND闪存快了1000倍,耐久性也更高,且功耗接近于零。这些特性使得SCM成为内存计算领域的希望之光。
为了更好地利用内存计算,我们需要重构虚拟内存结构,打破I/O瓶颈。一种新的内存计算架构正在形成,即从以CPU为中心的计算模式转向以数据为中心的计算模式。这种架构包括DRAM和SCM的混合层次/并行内存结构,实现了多通道“内存”访问,计算不仅发生在DRAM上,也发生在SCM等新型内存部件上。数据同样分布在这两种内存中,有效地利用了非易失性存储技术,如忆阻器。例如,HP的"The Machine"项目就展示了这种架构的可能性,单机柜40个节点能共享160TB的内存资源,成为目前全球最大的单机内存计算系统。
此外,内存计算架构的编程模型也在不断发展,SNIA NVM Programming Model提供了两种非易失性内存编程模式的概述,以适应这种新的计算与存储方式。未来,内存计算将继续深入研究如何优化内存访问、降低功耗、提高系统扩展性,并解决与数据持久化和一致性相关的复杂问题,以满足大数据时代日益增长的需求。