持久性内存:前景研究
DRAM扩展性挑战
DRAM作为最广泛使用的主内存技术,自1967年问世以来,其芯片的增长主要受益于摩尔定律推动的半导体技术的扩展,使得容量增加了六个数量级以上。然而,自过去十年以来,这种令人惊叹的容量增长已经明显减缓。与此同时,全球产生的数据量正以指数级的速度增加。因此,新兴的大数据工作负载,如数据分析、机器学习和内存缓存,正对内存容量施加越来越大的压力。尽管像3D堆叠内存这样的技术进步可以暂时缓解容量限制,但主内存的基本扩展性限制仍然没有得到解决。
为了应对这一扩展性限制,已经涌现出替代内存技术之一,即持久性内存。持久性内存不仅具有更高的密度,还提供了数据持久性,使得内存和存储层次的统一成为可能。
Optane发布前的研究
2019年,英特尔推出了Optane DC持久内存。尽管如此,业界在Optane持久内存发布之前就已经积极进行了对持久性内存的研究。在设备层面,业界提出了多种持久性内存技术,包括PCM、STT-RAM和ReRAM。早在2009年,就出现了一些改进持久性内存延迟、能耗和耐久性的体系结构增强(Lee等人[2009])。紧接着,各种研究方向涌现,旨在提高持久性内存的可编程性,包括编程接口(如NVHeap、Mnemosyne)以及内存一致性/持久性模型(Pelley等人[2014],Joshi等人[2015],Lu等人[2014],Kolli等人[2016])。
PCM:https://picture.iczhiku.com/resource/ieee/shkgaywHyqGgDCvb.pdf
STT-RAM:https://dl-acm-org.myaccess.library.utoronto.ca/doi/pdf/10.1145/2463585.2463589
ReRAM:https://ieeexplore-ieee-org.myaccess.library.utoronto.ca/stamp/stamp.jsp?tp=&arnumber=5607274
Lee等人[2009]:https://dl.acm.org/doi/pdf/10.1145/1555754.1555758
NVHeap:https://dl.acm.org/doi/pdf/10.1145/1961295.1950380
Mnemosyne:https://dl.acm.org/doi/pdf/10.1145/1961295.1950379
Pelley等人[2014]:https://web.eecs.umich.edu/~twenisch/papers/isca14.pdf
Joshi等人[2015]:https://dl.acm.org/doi/10.1145/2830772.2830805
Lu等人[2014]:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6974684
Kolli等人[2016]:https://aasheeshkolli.files.wordpress.com/2016/08/delegated-persist-ordering-micro16.pdf
此外,还涌现了专门为持久性内存设计的系统,包括文件系统(如BPFS、PMFS、NOVA)和数据库索引(如B+-Tree、NV-Tree、BzTree、FPTree)。这些系统的出现展示了持久性内存在提供高性能和大容量方面的巨大潜力。
BPFS:https://dl.acm.org/doi/pdf/10.1145/1629575.1629589
PMFS:https://dl.acm.org/doi/pdf/10.1145/2592798.2592814
NOVA:https://www.usenix.org/system/files/conference/fast16/fast16-papers-xu.pdf
B+-Tree:https://www.vldb.org/pvldb/vol8/p786-chen.pdf
NV-Tree:https://www.usenix.org/conference/fast15/technical-sessions/presentation/yang
BzTree:http://www.vldb.org/pvldb/vol11/p553-arulraj.pdf
FPTree:https://wwwdb.inf.tu-dresden.de/misc/papers/2016/Oukid_FPTree.pdf
Optane持久性内存发布后的研究
Optane持久性内存的推出进一步推动了这一领域的研究工作。像Yang等人[2018]和Izraelevitz等人[2019]的分析和基准研究揭示了Optane持久性内存的独特设备特性,其中一些在Optane之前的时代是未曾预料到的。基于这些真实的设备特性,业界迅速改进了Optane之前的设计,并提出了针对Optane持久性内存进行优化的系统,包括文件系统(如SplitFS)、数据库索引(如LB+-Trees、uTree、DPTree、ROART、PACTree)以及一致性/持久性模型(Kokolis等人[2021])。由于持久性内存编程的复杂性,可编程性仍然是一个重要的研究主题(如Pronto、AutoPersist、go-pmem)。与此同时,测试框架已经被开发出来,以确保对持久数据的正确故障恢复(如PMTest、PMFuzz、XFDetector)。
Yang等人[2018]:https://www.usenix.org/system/files/fast20-yang.pdf
Izraelevitz等人[2019]:https://arxiv.org/pdf/1903.05714.pdf
SplitFS:https://arxiv.org/pdf/1909.10123.pdf
LB+-Trees:http://www.vldb.org/pvldb/vol13/p1078-liu.pdf
uTree:https://www.vldb.org/pvldb/vol13/p2634-chen.pdf
DPTree:http://www.vldb.org/pvldb/vol13/p421-zhou.pdf
ROART:https://www.usenix.org/system/files/fast21-ma.pdf
PACTree:https://multics69.github.io/pages/pubs/pactree-kim-sosp21.pdf
Kokolis等人[2021]:https://iacoma.cs.uiuc.edu/iacoma-papers/micro21.pdf
Pronto:https://cseweb.ucsd.edu/~amemarip/upload/Pronto-ASPLOS-2020.pdf
AutoPersist:https://jianh.web.engr.illinois.edu/papers/autopersist-pldi2019.pdf
go-pmem:https://www.usenix.org/system/files/atc20-george.pdf
PMTest:https://www.sihangliu.com/docs/liu_asplos19.pdf
PMFuzz:https://www.sihangliu.com/docs/pmfuzz_asplos21.pdf
XFDetector:https://www.sihangliu.com/docs/liu_asplos20.pdf
除了持久性质的属性外,研究人员还探讨了将持久性内存作为主内存扩展的可能性,包括透明内存卸载[hemem、klocs、nimble]、数据中心工作负载(如Sage、Gill等人[2020]、Bandana、Psaropoulos等人[2019])以及科学计算(如Peng等人[2020]、Ren等人[2021])。
Sage:https://dl.acm.org/doi/pdf/10.14778/3397230.3397251
Gill等人[2020]:https://www.vldb.org/pvldb/vol13/p1304-gill.pdf
Bandana:https://proceedings.mlsys.org/paper/2019/file/34173cb38f07f89ddbebc2ac9128303f-Paper.pdf
Psaropoulos等人[2019]:https://dl.acm.org/doi/pdf/10.1145/3329785.3329917
Peng等人[2020]:https://arxiv.org/pdf/2002.06499.pdf
Ren等人[2021]:https://dl.acm.org/doi/pdf/10.1145/3447818.3460356
我们收集了自2008年以来主要架构和其它系统领域的出版物数量。由于某些会议论文尚未发布,2022年的数据未包含在内。持久性内存架构论文早于系统论文出现,而在2019年Optane持久性内存发布后的2020年,系统相关论文的数量激增。
超越Optane持久性内存
尽管英特尔Optane产品线已经停产,但其最初旨在解决的问题,如DRAM容量扩展和持久性较慢,仍然未解决,这促使业界寻找其它替代方案。
目前,面向未来的研究有几个令人振奋的方向:
计算快速链路(CXL):CXL是一个在PCIe之上运行的行业标准的高速缓存一致性互连技术。特别是CXL.mem协议使内存扩展器,如三星512GB模块,能够增加系统内存容量而无需使用DIMM插槽。尽管目前还没有商业可用的CXL内存设备,但来自微软(Li等人[2022])和Meta(TPP)的早期原型展示了该技术的巨大潜力。需要进一步研究来了解即将推出的CXL设备将如何与当前的工作负载交互。
三星512GB模块:https://news.samsung.com/global/samsung-electronics-introduces-industrys-first-512gb-cxl-memory-module
Li等人[2022]:https://arxiv.org/pdf/2203.00241.pdf
Meta(TPP):https://arxiv.org/pdf/2206.02878.pdf
内存分层:利用较低层内存设备缓解DRAM容量压力并非新概念(例如,Linux swap),但新工作负载和内存设备的出现揭示了内存分层中的新机会和挑战。尽管一种流行的方法是根据热度透明地进行数据移动(Lagar-Cavilla等人[2019],TMO,HeMem),但其对不具有良好局部性的应用的有效性仍需研究。因此,如何智能地将数据移动以最大程度地利用不同内存设备的性能权衡,需要进一步创新。
Lagar-Cavilla等人[2019]:https://dl.acm.org/doi/pdf/10.1145/3297858.3304053
TMO:https://dl.acm.org/doi/pdf/10.1145/3503222.3507731
HeMem:https://dl.acm.org/doi/pdf/10.1145/3477132.3483550
在数据持久性方面,即将推出的来自Kioxia和Everspin的存储级内存设备可能成为英特尔Optane持久性内存的合适替代品。此外,具有内存语义的未来存储设备,如三星的CXL固态硬盘,有望填补内存和存储之间的性能差距,类似于Optane持久性内存的作用。
Kioxia和Everspin合作:https://www.theregister.com/2022/08/02/kioxia_everspin_persistent_memory
三星的CXL固态硬盘:https://www.tomshardware.com/news/samsung-memory-semantic-cxl-ssd-brings-20x-performance-uplift
最后但同样重要的是,我们不能忘记我们的主角,Optane持久性内存。尽管已停产,但Optane持久性内存仍然是业界最成熟的存储级内存设备之一。因此,研究人员可以利用它为未来的较低层内存设备提供性能估算。此外,CXL研究人员可以使用远程NUMA节点来模拟CXL内存设备(详细信息请参见TPP)。当然,模拟器始终是一个选择。
TPP:https://arxiv.org/pdf/2206.02878.pdf
话虽如此,我们必须汲取过去的教训。在Optane之前的时代,研究人员使用基于DRAM的仿真器和模拟器来获得有见地的结果。然而,后来的研究,如Yang等人[2018]揭示了Optane之前的仿真器/模拟器所作的一些假设是不正确的,使得由此得出的结论变得无效。因此,在今天使用仿真/模拟时,我们必须格外小心。
Yang等人[2018]:https://www.usenix.org/system/files/fast20-yang.pdf
---【本文完】---
近期受欢迎的文章:
我们正处于数十年未见之大机遇中
新技术爆发式发展,催生新产品
然而,颠覆式创新并非简单的技术堆叠
而是异常复杂的系统工程
需要深度洞察
欢迎一起分享思考和见解