随着大数据、人工智能等新型应用的兴起,存储器件受到了越来越多的重视。在小 到手持嵌入式设备、大到超级计算机的各类计算系统中,存储器在降低系统的能耗、提 高系统可靠性和性能等方面扮演着至关重要的角色。另一方面,新型应用不断朝着数据 密集型的方向发展,要求存储器件在满足成本和能耗约束的前提下实现性能的大幅提 升,而这也超出了传统存储器件所能提供的性能极限。例如,每分钟有超过 300 小时的 视频被上传至 YouTobe[1],而在 Facebook 中,图片数量增长的速度为每分钟 24.3 万张[2]。据预测,未来的大规模系统需要处理 EB 量级的数据,若使用硬盘来构建这类系统, 仅执行检查点和重启操作就会造成超过 50% 的性能损失 [3]。
除了性能,能耗则是存储系统所面临的另一个主要挑战。如图1所示,根据 Google公司的统计数据,在其数据中心中,内存部分的平均能耗占整机能耗的 30%,硬盘的能 耗达到了总能耗的 10%,存储系统(内存 + 硬盘)的总能耗超越了 CPU(33%)。此外,Google 还对其数据中心中计算密集型和服务密集型服务器的能耗构成分别进行了统计: 在服务密集型服务器中,虽然 CPU 是能耗最高的部件(60%),内存部分的能耗依然达 到了整机能耗的 19%,加上硬盘的能耗(5%),存储系统的总能耗达到了整机能耗的约1/4(如图2所示);而在服务密集型服务器中,内存和硬盘的能耗分别达到了整机能 耗的 48% 和 12%,存储系统的总能耗超越 CPU(30%),成为了能耗最高的子系统(如图3所示)。根据美国橡树岭国家实验室的测算,未来大型计算系统中对内存的需求 将达到至少 100PB,若使用现有的 DDR 内存来实现的话,仅内存部分的功耗就将达到52MW,这也远远超过了整机功耗 20MW 的设计目标 [4–6]。
图1 Google 数据中心服务器中各部分能耗占比 [7]
图2 Google 数据中心中计算密集型服务器的能耗构成分析 [8]
图3 Google 数据中心中服务密集型服务器的能耗构成分析 [8]
在上述现实需求的驱动下,研究人员开始越来越多地关注新型存储器件。而新型 非易失存储器(Non-Volatile Memory, NVM)因其在诸多方面的优良特性,被认为非常适合在未来的大规模系统中构建内存和永久性存储器。现有新型 NVM 存储器件主要包 括相变存储器(Phase Change Memory, PCM)、自旋矩传输存储器(Spin Transfer Torque RAM,STT-RAM)和忆阻器(Resistive RAM,ReRAM)等。与传统存储器件相比,NVM存储器件的优势主要体现在以下三方面:
- 首先,NVM存储器可以在消耗极少能量的同时实现非常高的存储密度。例如,一 个典型的SRAM存储单元的电路面积约为125−200F2(F为所使用的工艺制程所能实现的最小电路尺寸),而一个PCM存储单元 的电路面积仅为 4 − 12F2[3,9]。
- 其次,在传统的计算机体系结构中,通常采用DRAM作为易失存储器,同时采用 硬盘或 Flash 作为永久性存储介质,由于这些不同存储介质的访问延迟存在很大 差异,因此需要为不同的存储介质设计种类繁多的接口 [10,11]。而 NVM 存储器 在存储容量和写寿命方面接近或优于 Flash,同时读访问延迟与 DRAM 相近,因 此在 NVM 存储器非常适合作为一种统一存储介质,从而实现计算机系统结构和 接口的简化。
- 第三,与 Flash 和硬盘相比,新型 NVM 存储器最大的不同之处在于可以支持以 字节为单位的细粒度寻址。这使得通过细粒度访存调节优化系统性能成为可能。
目前,从系统级研究的角度来看,NVM 存储器在计算系统中的大规模应用还面临 着很多关键性的挑战。例如,与传统存储材料相比,NVM 存储单元的写寿命通常要低几个数量级,但其写访问延迟和写访问能耗却高出很多。此外,为了将 NVM 存储器应 用于现有体系结构中并充分发挥其优势,还需在接口、系统软件等层面进行针对性的设计。
对于写延迟过大问题,一种主要的思路是通过提高写访问的并行度隐藏写延迟。例 如,文献 [17] 通过对 PCM 写访问中的能量分配进行细粒度控制,在降低写操作能耗的 同时为热点区域提供额外的能量,从能量角度提升了 PCM 存储器写操作并发度;文献[18] 提出了一种名为 OptiPCM 的技术,使内存控制器通过光路连接大量 PCM 芯片,从 而提升写访存的并发度;而文献 [19] 通过在总线结构上添加 buffer 使单层总线变为多 层总线,进而提升 NVM 存储器的写访问并发度。另一种常见思路是通过在 NVM 存储 器的前端设置一个较大的缓存(如 DRAM Cache),将写请求存储在缓存后异步完成对NVM 存储器的写访问。例如:Lazy-Write 技术在 PCM 存储器前端加入 DRAM cache, 当发生缺页时,Lazy-Write 只将硬盘中读取的数据块写入 DRAM cache 中,降低了 PCM存储器写延迟过长对系统性能的影响 [20];文献 [21] 提出了一种基于阈值的 PCM 前置DRAM cache,当 DRAM cache 中的数据量超过阈值时,会将部分数据写入后端的 PCM存储器中,通过这种方式保证了写访存请求的数据能够及时写入 DRAM cache,从而隐 藏了 PCM 存储器的写延迟;Meza 等人提出对 DRAM cache 进行细粒度管理的策略,并 通过将最近访问的数据行存储在额外小容量 buffer 中提升了 PCM 中 DRAM cache 的访 问性能 [22]。此外,由于读访存请求处于系统关键路径之上,对于系统性能有着显著影 响,而写延迟过长会影响同一 Bank 中读访存请求的执行。因此,文献 [23] 提出了一种基于写暂停/中断的性能优化方法,即当一个读访存请求到达 NVM 存储器时,若相同Bank 正在执行写访存操作,则调度策略会将正在执行的写访存操作中断,优先执行读访 存操作,待读访存操作完成后再继续执行写访存操作。除了上述优化方法,文献 [24] 还 提出了一种基于 PCM 写操作中 SET 操作和 RESET 操作延迟不对称性的优化方法,在 一个 cacheline 被改写时立即对其在 PCM 内存中的相应数据行执行 SET 操作,待写访 存请求到达时再执行 RESET 操作,由于 RESET 操作的延迟小于 SET 操作,因此这种 方法可以缩短 PCM 存储器的写延迟。
对于 NVM 写操作寿命有限的问题,解决方案主要可以分为减少写操作和写分摊两 种。在通过减少写操作延长存储器寿命的工作中,最直接的思路是对存储单元的改写进 行细粒度规划,通过存储器内置电路识别新写入数据中发生变化的 bit 位,然后只擦写 状态值发生改变的 bit 位 [25–27]。在此基础上,一系列改进型方案通过为写访存请求选 择需要改写 bit 最少的区块做为实际目标地址,进一步减少了写操作中需要擦写的存储 单元数量 [28,29]。文献 [20] 还介绍了一种以行为单位写回策略,通过将目标地址在同 一行的的写访存请求进行合并减少对 NVM 存储单元的擦写。除了上述工作,一部分优 化工作通过对程序行为进行探测,识别出程序中已失效的数据,并不再将这些数据写回NVM 存储器,从而达到减少写访问的目的 [30,31]。此外,写分摊技术(Wear Leveling) 也是一类延缓 NVM 老化的有效手段。写分摊技术是指通过将写操作分摊至全体 NVM存储单元,减少由于写操作热点造成的部分存储单元过快老化,进而延长存储器整体寿 命。其中,Start-Gap 技术通过将写操作目标进行偏移,仅增加 8 字节的额外存储开销, 可使存储器寿命达到理论寿命的 95%[32]。与此类似的解决方案还包括将 cache line 在 内存页间进行偏移 [20]、将 bit 在 cache line 内部进行偏移以及将 cache line 在段内进行 偏移 [25]。
上述传统体系结构方法虽然能够对 NVM 存储器的性能或寿命进行优化,但是其仍 存在诸多不足之处。首先,上述方法中往往需要增加一个或多个控制电路对写访存请求 进行分析、重定向等预处理操作,由于预处理操作处于写访存请求执行的关键路径上, 因此当系统中写访存请求较多时,新增加的控制电路容易成为新的性能瓶颈。其次,上 述优化方法在对 NVM 存储器的一个指标进行优化的同时,往往会以牺牲其他指标作为 代价。例如,在通过减少改写 bit 位数量实现减缓存储器老化速度的技术中,由于存储 器内置电路需要计算改写 bit 位的数量并选择最优的存储区块,因此延长了写访问的延 迟,当系统中写访问请求较多时,此类方法会严重影响系统性能。此外,上述工作中往 往需要增加辅助存储器,由此产生的数据同步、写目标选择操作会使得系统结构和调度 策略更加复杂。
参考文献
[1] YouTube Company Statistics[C]//. 2018, https://www.statisticbrain.com/youtube-statistics/.
[2] Facebook Statistics[C]//. 2018, https://www.omnicoreagency.com/facebook-statistics/.
[3] DONG X, MURALIMANOHAR N, JOUPPI N P, et al. Leveraging 3D PCRAM technologies to re- duce checkpoint overhead for future exascale systems[C]//Proceedings of the ACM/IEEE Conference on High Performance Computing, SC 2009, November 14-20, 2009, Portland, Oregon, USA. 2009, http://doi.acm.org/10.1145/1654059.1654117.
[4] GIRIDHAR B, CIESLAK M, DUGGAL D, et al. Exploring DRAM organizations for energy-efficient and resilient exascale memories[C]//International Conference for High Performance Computing, Net- working, Storage and Analysis, SC’13, Denver, CO, USA - November 17 - 21, 2013. 2013:23:1–23:12, http://doi.acm.org/10.1145/2503210.2503215.
[5] MITTAL S, VETTER J S. A Survey of Methods for Analyzing and Improving GPU Energy Effi- ciency[J]. ACM Comput. Surv., 2014, 47(2):19:1–19:23. http://doi.acm.org/10.1145/2636342.
[6] VETTER J S, MITTAL S. Opportunities for Nonvolatile Memory Systems in Extreme-Scale High- Performance Computing[J]. Computing in Science and Engineering, 2015, 17(2):73–82. https://doi. org/10.1109/MCSE.2015.4.
[7] BARROSO L A, CLIDARAS J, HÖLZLE U. The Datacenter as a Computer: An Intro- duction to the Design of Warehouse-Scale Machines, Second Edition[M]. Synthesis Lec- tures on Computer Architecture : Morgan & Claypool Publishers, 2013. https://doi.org/10.2200/ S00516ED2V01Y201306CAC024.
[8] MALLADI K T, NOTHAFT F A, PERIYATHAMBI K, et al. Towards energy-proportional dat- acenter memory with mobile DRAM[C]//39th International Symposium on Computer Architecture (ISCA 2012), June 9-13, 2012, Portland, OR, USA. 2012:37–48, https://doi.org/10.1109/ISCA.2012. 6237004.
[9] MITTAL S, VETTER J S, LI D. A Survey Of Architectural Approaches for Managing Embedded DRAM and Non-Volatile On-Chip Caches[J]. IEEE Trans. Parallel Distrib. Syst., 2015, 26(6):1524– 1537. https://doi.org/10.1109/TPDS.2014.2324563.
[10] CAULFIELD A M, COBURN J, MOLLOV T I, et al. Understanding the Impact of Emerging Non- Volatile Memories on High-Performance, IO-Intensive Computing[C]//Conference on High Perfor- mance Computing Networking, Storage and Analysis, SC 2010, New Orleans, LA, USA, November 13-19, 2010. 2010:1–11, https://doi.org/10.1109/SC.2010.56.
[11] MEZA J, LUO Y, KHAN S, et al. A case for efficient hardware/software cooperative management of storage and memory[J]. 2013.
[12] CHEN S, GIBBONS P B, NATH S. Rethinking Database Algorithms for Phase Change Mem- ory[C]//CIDR 2011, Fifth Biennial Conference on Innovative Data Systems Research, Asilomar, CA, USA, January 9-12, 2011, Online Proceedings. 2011:21–31, http://cidrdb.org/cidr2011/Papers/ CIDR11_Paper3.pdf.
[13] FACKENTHAL R, KITAGAWA M, OTSUKA W, et al. 19.7 A 16Gb ReRAM with 200MB/s write and 1GB/s read in 27nm technology[C]//2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC). 2014:338–339.
[14] Intel Introduces the World’s Most Responsive Data Center Solid State Drive[C]//. 2017, https:// newsroom.intel.com/news/intel-introduces-worlds-most-responsive-data-center-solid-state-drive/.
[15] SANDISK AND HP LAUNCH PARTNERSHIP TO CREATE MEMORY-DRIVEN COMPUT- ING SOLUTIONS[C]//. 2016, https://www.sandisk.com/about/media-center/press-releases/2015/ sandisk-and-hp-launch-partnership.
[16] OAK RIDGE TO ACQUIRE NEXT GENERATION SUPERCOMPUTER[C]//. 2014, https://www. olcf.ornl.gov/2014/11/14/oak-ridge-to-acquire-next-generation-supercomputer/.
[17] JIANG L, ZHANG Y, CHILDERS B R, et al. FPB: Fine-grained Power Budgeting to Improve Write Throughput of Multi-level Cell Phase Change Memory[C]//45th Annual IEEE/ACM Interna- tional Symposium on Microarchitecture, MICRO 2012, Vancouver, BC, Canada, December 1-5, 2012. 2012:1–12, https://doi.org/10.1109/MICRO.2012.10.
[18] LI Z, ZHOU R, LI T. Exploring high-performance and energy proportional interface for phase change memory systems[C]//19th IEEE International Symposium on High Performance Computer Architec- ture, HPCA 2013, Shenzhen, China, February 23-27, 2013. 2013:210–221, https://doi.org/10.1109/ HPCA.2013.6522320.
[19] HAM T J, CHELEPALLI B K, XUE N, et al. Disintegrated control for energy-efficient and het- erogeneous memory systems[C]//19th IEEE International Symposium on High Performance Com- puter Architecture, HPCA 2013, Shenzhen, China, February 23-27, 2013. 2013:424–435, https: //doi.org/10.1109/HPCA.2013.6522338.
[20] QURESHI M K, SRINIVASAN V, RIVERS J A. Scalable high performance main memory system using phase-change memory technology[C]//36th International Symposium on Computer Architecture (ISCA 2009), June 20-24, 2009, Austin, TX, USA. 2009:24–33, http://doi.acm.org/10.1145/1555754. 1555760.
[21] LEE H G, BAEK S, NICOPOULOS C, et al. An energy- and performance-aware DRAM cache architecture for hybrid DRAM/PCM main memory systems[C]//IEEE 29th International Conference on Computer Design, ICCD 2011, Amherst, MA, USA, October 9-12, 2011. 2011:381–387, https: //doi.org/10.1109/ICCD.2011.6081427.
[22] MEZA J, CHANG J, YOON H, et al. Enabling Efficient and Scalable Hybrid Memories Using Fine- Granularity DRAM Cache Management[J]. Computer Architecture Letters, 2012, 11(2):61–64. https: //doi.org/10.1109/L-CA.2012.2.
[23] QURESHI M K, FRANCESCHINI M, LASTRAS-MONTAÑO L A. Improving read performance of Phase Change Memories via Write Cancellation and Write Pausing[C]//16th International Conference on High-Performance Computer Architecture (HPCA-16 2010), 9-14 January 2010, Bangalore, India. 2010:1–11, https://doi.org/10.1109/HPCA.2010.5416645.
[24] QURESHI M K, FRANCESCHINI M, JAGMOHAN A, et al. PreSET: Improving performance of phase change memories by exploiting asymmetry in write times[C]//39th International Symposium on Computer Architecture (ISCA 2012), June 9-13, 2012, Portland, OR, USA. 2012:380–391, https: //doi.org/10.1109/ISCA.2012.6237033.
[25] ZHOU P, ZHAO B, YANG J, et al. A durable and energy efficient main memory using phase change memory technology[C]//36th International Symposium on Computer Architecture (ISCA 2009), June 20-24, 2009, Austin, TX, USA. 2009:14–23, http://doi.acm.org/10.1145/1555754.1555759.
[26] YANG B, LEE J, KIM J, et al. A Low Power Phase-Change Random Access Memory using a Data- Comparison Write Scheme[C]//International Symposium on Circuits and Systems (ISCAS 2007), 27- 20 May 2007, New Orleans, Louisiana, USA. 2007:3014–3017, https://doi.org/10.1109/ISCAS.2007. 377981.
[27] LEE B C, IPEK E, MUTLU O, et al. Architecting phase change memory as a scalable dram alter- native[C]//36th International Symposium on Computer Architecture (ISCA 2009), June 20-24, 2009, Austin, TX, USA. 2009:2–13, http://doi.acm.org/10.1145/1555754.1555758.
[28] CHO S, LEE H. Flip-N-Write: a simple deterministic technique to improve PRAM write performance, energy and endurance[C]//42st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-42 2009), December 12-16, 2009, New York, New York, USA. 2009:347–357, http://doi. acm.org/10.1145/1669112.1669157.
[29] JACOBVITZ A N, CALDERBANK A R, SORIN D J. Coset coding to extend the lifetime of mem- ory[C]//19th IEEE International Symposium on High Performance Computer Architecture, HPCA 2013, Shenzhen, China, February 23-27, 2013. 2013:222–233, https://doi.org/10.1109/HPCA.2013. 6522321.
[30] BOCK S, CHILDERS B R, MELHEM R G, et al. Analyzing the impact of useless write-backs on the endurance and energy consumption of PCM main memory[C]//IEEE International Symposium on Performance Analysis of Systems and Software, ISPASS 2011, 10-12 April, 2011, Austin, TX, USA. 2011:56–65, https://doi.org/10.1109/ISPASS.2011.5762715.
[31] FANG Y, LI H, LI X. SoftPCM: Enhancing Energy Efficiency and Lifetime of Phase Change Mem- ory in Video Applications via Approximate Write[C]//21st IEEE Asian Test Symposium, ATS 2012, Niigata, Japan, November 19-22, 2012. 2012:131–136, https://doi.org/10.1109/ATS.2012.57.
[32] QURESHI M K, KARIDIS J, FRANCESCHINI M, et al. Enhancing lifetime and security of PCM- based main memory with start-gap wear leveling[C]//Microarchitecture, 2009. MICRO-42. 42nd An- nual IEEE/ACM International Symposium on. 2009:14–23.