论文部分内容阅读
存储类内存从08年IBM提出以来,越来越受到科学研究领域和存储设备生产厂商的关注。存储类内存具有低功耗,非易失,存储密度大,每位价格低的特性,研究人员预测,存储类内存将成为未来的主要存储设备,同时将对计算机科学的多个研究领域带来变革。目前以超级计算机为代表的高性能计算机发展有三大主要趋势,一是系统计算速度不断增大,二是系统能耗进一步提升,三是系统可靠性不断下降。随着计算机核心数目不断增加,越来越多的计算核心要求系统有更高的散热性能,这进一步提高了系统的功耗。而由于系统运算能力提升,要求更高的I/O能力来提供计算所需的数据,如果采用传统存储介质,不仅存在需要更多磁盘的问题,而且由于磁盘数目的增多,磁盘的带电功耗将带了新一轮的功耗上升。新型存储类内存具有低功耗,高存储密度,低每位价格的特性,同时无带电功耗,可以很好解决高功耗问题。还要注意到的是,随着计算机系统核心数目增加,系统的可靠性也不断下降,目前大规模系统的MTBF都在小时级别。而很多大规模应用所需的执行时间往往超过这个时间,目前大规模应用应对这个问题采用的检查点重启方法,但是检查点重启方法的可扩展性非常有限,随着系统规模扩大,检查点重启容错带来的开销呈指数增长,100,000个计算节点的超级计算机中,只有35%的时间用于计算,而剩余65%的时间将用于检查点操作。新型存储类内存的出现解决了这个问题,由于存储类内存的非易失特性,当应用运行在存储类内存上时,如果系统其它部件发生错误导致系统崩溃,应用存储在存储类内存上的数据不会丢失,可以在系统重启时继续上次程序的执行。这样就很好的解决了系统可靠性问题。综上所述,存储类内存的出现能够很好的克服在计算机系统性能不断提升过程中遇到的高功耗和可靠性瓶颈,而要达到上面所分析的目的,必须通过系统研究者将存储类内存很好的结合进入目前的计算机系统,尤其在软件层次,目前系统中的软件栈都是面向易失内存和非易失的磁盘存储设计的,而没有能够充分利用新型存储类内存的特性。系统开发者迫切需要针对存储类内存重新设计软件栈,而目前市场上没有存储类内存的样片,这阻碍了新型存储类主存的研究。使得开发者被迫采用少数科研机构发布的静态数据结合采用其他类型的模拟器进行研究。然而这样的静态数据结合其他模拟器并不能够真实模拟系统运行中的访存轨迹,并且不能够支持在模拟的同时对软件层次的调试工作。为了解决上面提到的问题,通过分析实际软件调试中需要用到的存储类内存特性,我们设计了存储类内存模拟器SCM-BSIM,在支持模拟存储类内存的同时支持全系统模拟,为存储类内存相关的系统软件开发提供了支持。在这个基础上,我们针对K-means算法的具体应用,利用存储类内存进行容错,并测试了算法的容错性能。具体内容如下:(1)研究分析了传统存储介质未来的发展趋势,将磁盘和flash与新型存储类内存进行了对比,同时对存储类内存的不同实现技术进行了研究,对目前学术界对存储类内存的研究现状以体系结构层次为划分做出了总结。(2)针对目前存储类内存相关系统软件的研究困难,我们设计实现了存储类内存模拟器,对存储类内存的非易失性,读写访问特性,以及有限耐久度特性进行了模拟。(3)针对存储类内存模拟器的性能问题进行优化和分析,针对数据同步性能开销过大的问题,首先我们通过改变数据同步时机,减少了读操作时的同步开销,将系统性能提升近50%,其次我们通过对不同同步方法的测试实验,选用内存映射方式进行同步,减小性能开销,第三,为减小每次同步时都需要内存映射的开销,我们在启动时将客户系统内存指向我们内存副本内存映射位置,由系统调度同步。第四,我们提出采用新型内存分配器提高性能的进一步改进思路。(4)通过利用存储类内存的非易失特性,对K-means算法进行容错支持,并对这种新型容错方法进行了理论分析和具体实验测试,测试结果显示比使用检查点重启算法减少了10.4%的时间开销。