一种基于软件编译层的可变电阻式存储器磨损均衡方法

文档序号:9396641阅读:403来源:国知局
一种基于软件编译层的可变电阻式存储器磨损均衡方法
【技术领域】
[0001] 本发明属于计算机存储技术领域,具体涉及一种可变电阻式存储器的磨损均衡方 法。
【背景技术】
[0002] 通用的DRAM存储器受限于能耗大、容量难扩展等问题。一种新型能耗低、容量 大、非易失性的存储器有望替代传统的DRAM存储器,如:记忆组存储器、可变电阻式存储器 (PCM)。特别的是,可变电阻式存储器PCM可以实现多层单元(Multi-Level Cell,MLC),也 就是一个单元可以存放两个或两个以上的比特。与单层单元(Single-Level Cell,SLC)相 比,MLC可得到较高密集性和较大的容量。然而,这个优势也导致相应的代价,由于需要更 精密的感应和控制PCM单元的电阻,增加了相应的访问延迟以及减少了寿命。
[0003] 一般情况下,一个典型SLC PCM单元能容忍大约IO7-IO8次写操作,一个典型的MLC PCM单元仅能容忍IO5次写操作。MLC PCM单元的寿命给可变电阻式存储器带来了巨大的 挑战。由于典型的嵌入式程序的写操作,常常以一种极不平衡的方式写到内存上,例如:大 部分写操作集中在少量的变量。写操作频繁的变量,对存放该变量的位置磨损大,频繁地对 该位置擦写,加速了可变电阻式储的MLC PCM单元磨损。若不进行合理管理,可变电阻式存 储器可能会在几十秒内被损坏。为了延长可变电阻式存储器的寿命,许多技术被提出来,例 如:
[0004] 现有技术之 一 :Μ· K. Qureshi, Μ. M. Franceschini, L. A. Lastras-Montano, and J. P. Karidis, "Morphable memory system:a robust architecture for exploiting multi-level phase change memories, ',in Proceedings ofthe 37th International Symposium on Computer Architecture (ISCAi 10),vol.38,pp. 153 - 162,2010. (M.K.Qureshi,M.M. Franceschini,L. A. Lastras-Montano,和 J.P. Karidis,"可变内存 系统:一个基于多层相变存储器的健壮架构",第37届计算机体系结构上国际研讨会议 (ISCA),2010),它根据工作量负荷请求,动态地控制内存系统每个单元存放比特的数目。具 体方法是把内存分为两个区域,一个高密度高延迟的区域(HDPCM),由MLC模式的内存页构 成;一个是低延迟低密度的区域(LLPCM),每个单元的存放比特数是HDPCM区域每个单元存 放比特数的一半。在硬件层添加一个内存监控电路(Memory Monitoring circuit, ΜΜ0Ν) 来跟踪工作负载的内存需求。周期性的执行MMON跟踪信息,根据信息,进行评估并确定 LLPCM和HDPCM区域的最佳划分。如果访问发生在HDPCM区域的页面,这样的页面将被升 级到LLCPM区域,来减少后续访问的延迟。允许自动地在LLPCM和HDPCM区域之间转换, 提供低延迟LLPCM区域给频繁访问的页。现有技术一有以下几个缺点:需要在硬件上的支 持。该技术需要内存监控电路来周期性跟踪信息,和单独的硬件架构来记录内存页的物理 位置;周期性监控内存负责量,进行调节,开销大。
[0005] 现有技术之二:R. Zhou and T. Li, "Leveraging phase change memory to achieve efficient virtual machine execution,',in Proceedings ofACM SIGPLAN/ SIGOPS International Conference on Virtual Execution Environments (VEEi 13), pp. 179 - 190, 2013. (R. Zhou和李涛,"利用相变内存来实现高效的虚拟机执行",虚拟执行 环境上的ACM SIGPLAN/SIGOPS国际会议(VEE' 13),2013),它的内存页管理包含信息收集 器和负载平衡器,定制了之前的内存缺页错误监控方法。把缺页错误分为了 SLC缺页错误 和MLC缺页错误。信息收集器用这两种类型的缺页错误来收集内存位置的统计信息。仅当 MLC缺页错误会触发负载平衡器,来调节SLC和MLC内存页的数目、每个虚拟机中的balloon driver大小。运用了采样算法来周期性跟踪内存缺页信息。根据虚拟内存页使用的LRU直 方图,来计算每个虚拟机的缺页曲线。根据缺页曲线,针对不同虚拟机建立相应的SLC、MLC 的效益函数。当增减一页SLC、MLC内存页,都会带来相应的效益改变。根据效益增减的大 小对比,来确定是否增加 MLC和SLC。现有技术二的缺点:监控内存缺页情况,来计算相应 的效益函数值,不可避免,会导致不小的开销;仅根据内存缺页,来调控MLC和SLC的转换。 这些现有技术存在巨大的写开销和运行开销,并且大多都需要硬件和操作系统的支持,从 而限制了可变电阻式存储器在嵌入式系统上的实际应用。

【发明内容】

[0006] 针对现有技术的不足,本发明所要解决的技术问题是从软件编译器的层面,根据 访问模式,提供一种基于软件编译层的可变电阻式存储器磨损均衡方法,它能有效的改善 可变电阻式存储器在嵌入式系统中的使用寿命,并且具有很低的时间和存储开销,不需要 任何硬件支持。
[0007] 本发明所要解决的技术问题是通过这样的技术方案实现的,它包括以下步骤:
[0008] 步骤1、根据程序的特征,将程序划分为多个程序区域,并统计出各个变量的写操 作次数和变量的大小;
[0009] 步骤2、根据内存未被占用的空间大小,动态地配置可变电阻式存储器单层单元和 多层单元的大小;
[0010] 步骤3、为各个变量分配合适的地址,为写频繁的变量分配高性能和寿命长的 SLC,为写不频繁的变量分配容量大的MLC ;
[0011] 步骤4、把编译好的程序,在嵌入式系统上执行,以获得可变电阻式存储器上的磨 损均衡。
[0012] 由于本方法发明结合了可变电阻式存储器SLC和MLC的优势来平衡写分布;并且 本方法在编译时间完成,具有很低的执行时间和存储开销;因为不需要操作系统或硬件的 支持,所以没有硬件开销。又因为现有技术针对内存页进行分配,而本发明针对变量进行分 配,具有更好的细粒度性,所以能获得更好的磨损均衡。
[0013] 与现有技术相比,本发明具有以下技术效果:磨损均衡性更好,进一步提高了可变 电阻式存储器的使用寿命;仅需很低的执行时间和存储开销,没有硬件开销。
【附图说明】
[0014] 本发明的【附图说明】如下:
[0015] 图1为本发明中程序划分为程序区域的示意图;
[0016] 图2为本发明的可变电阻式存储器空间划分流程图;
[0017] 图3本发明的数据分配流程图。
【具体实施方式】
[0018] 下面结合附图和实施例对本发明作进一步说明:
[0019] 本发明包括以下步骤:
[0020] 步骤1、根据程序的特征,将程序划分为多个程序区域,并统计出各个变量的写操 作次数和变量的大小;
[0021] 步骤2、根据内存未被占用的空间大小,动态地配置可变电阻式存储器单层单元和 多层单元的大小;
[0022] 步骤3、为各个变量分配合适的地址,为写频繁的变量分配高性能和寿命长的 SLC,为写不频繁的变量分配容量大的MLC,从而减少可变程序的访问延迟,并改善可变电阻 式存储器寿命;
[0023] 步骤4、把编译好的程序,在嵌入式系统上执行,以获得可变电阻式存储器上的磨 损均衡。
[0024] 如图1所示,程序可以划分为多个程序区域。程序区域划分可根据程序点:1)每 个内部程序的开始与结尾;2)每个循环的开始与结尾。然后,根据划分的程序区域,采用程 序的静态分析技术(profiling),统计每个程序区域里静态变量和局部变量的大小,并记 录每个变量的写操作次数。参考文献如下:
[0025] J. Hu, Q. Zhuge, C. J. Xue, ff. -C. Tseng, and E. H. -M. Sha, aLow Overhead Software Wear Leveling for Hybrid PCM+DRAM Main Memory on Embedded Systems, ',IEEE Transation
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1