论文部分内容阅读
由于物联网、云计算等技术的飞速发展,大数据时代已经到来,这又催生了许多数据密集型应用的出现。这些应用每天产生大规模、多形态和对实时性要求高的数据。因此,为兼顾大规模数据存储和计算处理能力的需求,大数据时代提出了内存计算的概念,即采用高性能的内存对海量数据进行实时计算和处理。然而,现有的内存技术DRAM面临了多方面的局限性,一是随着工艺特征尺寸的不断缩减,DRAM自身的存储密度和容量很难提升;二是DRAM的存储原理使得主存系统的能耗在计算机系统中所占的比例不断攀升;三是随着DRAM容量的增加,其成本也将大幅度地增加。 随着非易失性存储介质NVM的不断发展,如PCM、STT-RAM等,NVM的性能已逐步逼近DRAM,这为优化现有的主存系统提供了机会。然而,基于新型NVM的存储设备还没有成熟的产品面世,现有的研究通常采用模拟器来仿真NVM的特性。目前较为成熟的NVM技术仍然是基于闪存的固态硬盘技术,它已经被广泛应用于消费类电子终端和企业级存储系统中。虽然闪存存在写延迟长和寿命有限等不足,使得它不能直接替代DRAM作内存。但闪存具有低功耗、低价格和大容量等优势,比DRAM更经济实用,并且闪存拥有较好的随机读取能力,使得它非常适合于在大数据应用中作为主存系统DRAM的扩展。本文的创新性工作包括: 1.为给大数据处理提供高性能、高吞吐量和经济有效的体系结构支撑,本方案提出一种内存扩展架构SSDRAM,以大容量的SSD作内存的扩展、DRAM作SSD的缓存。为减少对操作系统和应用程序的影响,SSDRAM在用户空间以运行时库的形式实现,并为用户提供一组内存分配器的功能接口,替代系统中的标准库函数malloc/free等,使用户可以透明地分配和访问该大容量的扩展内存。测试结果表明,本方案能有效减少系统运行时间,可获得更好的系统性能,相比于直接用SSD作交换分区的SSD-swap方案,本方案可获得最高3.3倍的性能提升。 2.由于现有操作系统以4KB页为粒度进行内存数据的换入换出管理,不仅浪费带宽、增加延迟,还不能充分利用SSD的性能。本文SSDRAM针对原有4KB页粒度交换机制的限制,提出了基于数据对象object粒度的物理内存管理方法。SSDRAM设计了灵活的物理内存划分机制和虚实多重映射机制,通过实现内核模块来读取和修改PTE的内容,以细粒度的微页(micro-page)来管理物理内存空间,提高了物理内存的利用率。SSDRAM还提供了相应的物理内存淘汰与数据预取算法,实现以数据对象object在DRAM和SSD之间的交换管理,提高了系统中的I/O带宽利用率。 3.本方案把SSD的管理纳入了该内存扩展架构的内存管理范畴,针对SSD的多个特性,SSDRAM提出了相应的管理方法。在逻辑上,将SSD划分为固定大小的逻辑块(block)、页、区(sector)进行分级管理。为在数据对象object的虚拟地址与SSD逻辑地址之间建立映射,SSDRAM实现了一个类似系统页表的映射表SectorTable。针对SSD的写放大和寿命有限等问题,需要考虑SSD的损耗均衡,因此SSDRAM设计了一个写缓冲区及其管理方法,利用刷写子线程将脏数据按块以Log-structure和直接I/O的方式写到SSD。另外,针对SSD不支持数据的原地写回,每次回写数据都导致SSD旧位置上的原有数据成为垃圾数据,因此SSDRAM实现了一个后台线程来执行垃圾回收等工作。 4.由于SSD已经广泛应用于消费类电子产品和企业级存储系统中,但传统存储系统中的各种算法都是基于磁盘设计的,而SSD的读写特性与HDD不同,因此有必要针对闪存设计其缓冲区替换算法。本方案提出基于生命值敏感的闪存缓冲区替换算法LAB-LRU。LAB-LRU设计了双阈值控制的淘汰替换方法,可根据所淘汰干净页与脏页的比值情况触发遣散机制或复活机制,来动态调整各区大小。并结合不同的访问频度、新近性以及闪存的读写代价权重,给每个数据页定义停留在缓冲区的生命值,使活跃数据页停留地更久,从而提高缓存命中率、减少对闪存的读写操作次数和运行时间。 综上所述,本文构建了基于SSD与DRAM的内存扩展架构SSDRAM,并提出了针对物理内存和SSD的细粒度管理方法。测试结果表明,相比于SSD-swap方案和文献对比方案SSDAlloc,本方案能获得更好的性能。并且在相同性能下,SSDRAM只需要更少的DRAM使用量和更少的I/O次数,从而降低了系统的成本和功耗。因此,本方案提出的内存扩展系统具有重要的学术意义和应用价值,同时为未来新型NVM存储介质在计算机存储系统中的应用提供了重要的参考价值。