一种延长相变存储器寿命的数据编码方法及系统

文档序号:33503360发布日期:2023-03-17 22:46阅读:64来源:国知局
一种延长相变存储器寿命的数据编码方法及系统

1.本发明属于新型非易失存储技术领域,具体涉及一种延长相变存储器寿命的数据编码方法及系统。


背景技术:

2.当今社会已经进入大数据时代,数据的产生形式多种多样,数据量正以指数形式增长。为了满足当前数据密集型应用不断攀升的需求,存储系统必须从容量、性能、能耗以及效率等多方面进行升级。内存作为存储系统的主要组成部分之一,在容量以及能耗方面也面临着巨大挑战。针对上述问题,研究人员开展了一系列工作,逐步推动内存技术从以动态随机存取存储器(dynamic random access memory,dram)为主的电易失性存储向以相变存储器(phase change memory,pcm)为代表的新型非易失内存(non-volatile memory,nvm)转化。
3.新型nvm技术拥有集成密度大、无需刷新操作的特点而逐步发展为更大容量、更低能耗的内存技术。新型nvm技术通常利用材料在不同温度下的阻值、磁性等特征存储数据,普遍具有较高的存储密度。且由于不使用电容存储数据,没有静态能耗的开销,实现了数据的非易失性。因此,多种新型nvm技术得到学术界与工业界的广泛关注。pcm是新型nvm技术的典型代表之一,其数据存储原理基于可逆相变材料(如硫系玻璃等)的相变特性,在晶态与非晶态两种状态下,相变材料分别表现出低阻与高阻的特点,两种状态之间的转换可以通过施加脉冲改变温度实现。由于pcm的性能接近于dram,且能够按字节寻址,有望成为新一代的内存技术,但以下两点问题仍制约着其进一步应用:
4.(1)pcm的存储单元耐久性较差。pcm中数据写入通过对存储单元施加脉冲使相变材料发生状态转换实现,对pcm存储具有一定破坏性。普遍认为pcm存储单元可承受108次写入,当对其存储单元的写入次数超出可承受上限后,存储单元将出现故障。
5.(2)pcm的写能耗较高。虽然pcm无刷新操作带来的静态能耗,但是由于pcm的写入操作需要对存储单元施加脉冲改变相变材料状态,导致其相较于dram写能耗更大,且高能耗写入产生的高热量将对存储单元的寿命带来负面影响。


技术实现要素:

6.本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种延长相变存储器寿命的数据编码方法及系统,用于解决现有存储单元耐用性差,以及存储单元寿命低的技术问题。
7.本发明采用以下技术方案:
8.一种延长相变存储器寿命的数据编码方法,包括以下步骤:
9.s1、在写操作中,对最后一级缓存中每条缓存块内数据,采用重复法与统计法提取缓存块内数据的数据特点,计算得到缓存块内的相似单元simiunit0与simiunit1,记数据编码前对存储单元写入的数目为n0;
10.s2、判断步骤s1得到的simiunit0是否等于simiunit1;
11.s3、当步骤s2中simiunit0等于simiunit1,采用一个相似单元进行编码,以编码后数据能够对最少的存储单元进行写入作为标准,从simiunit0与simiunit1中择优选择一种,同时记编码后数据对存储单元写入的数目为n1;
12.s4、当步骤s2中simiunit0不等于simiunit1,采用两个相似单元进行编码,记编码后数据对存储单元写入的数目为n2;
13.s5、对步骤s3和步骤s4编码后n1和n2的数据长度进行检查,若数据长度超过512bit,更新对应形式对存储单元写入的数目为512;若数据长度未超过512bit,对应编码结果有效;
14.s6、比较步骤s1得到的n0和步骤s5得到的n1和n2,选择最小值对应的数据形式作为最终的写入形式,完成数据编码。
15.具体的,步骤s1中,每条缓存块长度为512bit,相似单元的备选长度为16bit、32bit、64bit、128bit。
16.进一步的,统计法计算相似单元时,设置与相似单元等长的数组a作为统计数组,对缓存块以l bit为粒度进行分段,得到个子缓存块;
17.遍历每个缓存块,在统计数组a中记录各个子缓存块中每bit的内容,若子缓存块中某bit内容为1,则统计数组对应位置的内容加1;若子缓存块某bit为0,统计数组对应位置的内容加0;
18.完成遍历后,对统计数组a进行处理,若a中某元素大于等于表示至少一半的子缓存块在该处内容为1,将a中该元素重置为1;反之,若某元素小于则将对应元素重置为0;
19.将统计数组a经过整理后的内容作为相似单元长度为l bit时,统计法的计算结果。
20.进一步的,重复法计算相似单元时,以相似单元长度l bit为粒度对缓存块分段,统计每个子缓存块出现的次数,将重复出现次数最多的子缓存块作为相似单元长度为l bit时,重复法的计算结果。
21.具体的,步骤s3中,将缓存块按照相似单元长度进行分段,使每个子缓存块与相似单元异或,若异或结果为0,对应子块与相似单元内容相同,设置对应标志位为0;若异或结果不为0,对应子块与相似单元内容不同,设置对应标志位为1;选择编码后结果对存储单元写入最少的作为采用一个相似单元编码的最终结果。
22.进一步的,相似单元的备选长度共4种,数据编码后被组织为:前缀+相似单元+标志位+异或结果非0内容的形式,前缀表示相似单元长度。
23.进一步的,若simiunit0与simiunit1相等,将simiunit0直接作为结果。
24.具体的,步骤s4中,将缓存块按照相似单元长度进行分段,以重复法结果simiunit0作为主相似单元,对不等于simiunit0的剩余子缓存块采用统计法计算得到新的simiunit1作为辅相似单元;通过将simiunit0与各个子缓存块异或计算得到与simiunit0相同的子块,在tag0中设置其对应的标志位为0;对于不等于simiunit0的子块,分别与统计
法获得的simiunit1进行异或操作,标记出与simiunit1相等的子块,在tag1中设置对应的标志位为0;选择编码后对存储单元写入最少的作为采用两个相似单元编码的最终结果。
25.进一步的,相似单元的备选长度共4种,数据编码后将被组织为:前缀+主相似单元+tag0+辅相似单元+tag1+与辅相似单元异或结果非0内容的形式,前缀表示相似单元长度。
26.第二方面,本发明实施例提供了一种延长相变存储器寿命的数据编码系统,包括:
27.提取模块,在写操作中,对最后一级缓存中每条缓存块内数据,采用重复法与统计法提取缓存块内数据的数据特点,计算得到缓存块内的相似单元simiunit0与simiunit1,记数据编码前对存储单元写入的数目为n0;
28.判断模块,判断提取模块得到的simiunit0是否等于simiunit1;
29.第一编码模块,当判断模块中simiunit0等于simiunit1,采用一个相似单元进行编码,以编码后数据能够对最少的存储单元进行写入作为标准,从simiunit0与simiunit1中择优选择一种,同时记编码后数据对存储单元写入的数目为n1;
30.第二编码模块,当判断模块中simiunit0不等于simiunit1,采用两个相似单元进行编码,记编码后数据对存储单元写入的数目为n2;
31.校验模块,对第一编码模块和第二编码模块编码后n1和n2的数据长度进行检查,若数据长度超过512bit,更新对应形式对存储单元写入的数目为512;若数据长度未超过512bit,对应编码结果有效;
32.输出模块,比较提取模块得到的n0和校验模块得到的n1和n2,选择最小值对应的数据形式作为最终的写入形式,完成数据编码。
33.与现有技术相比,本发明至少具有以下有益效果:
34.本发明一种延长相变存储器寿命的数据编码方法,通过对内存系统中最后一级缓存的缓存块中数据进行特点提取,设计了重复法与统计法两种方法计算得到数据特点的代表——相似单元,通过相似单元表示缓存块内数据,实现数据编码。当统计法与重复法的计算结果相同时,设置一个相似单元通过异或操作进行数据编码;当统计法与重复法的计算结果不同时,考虑同时采用两个相似单元进行数据编码。判断编码后的数据是否超长,若长度超过512bit则该编码形式无效。最终选择一种对存储单元按位更新数目最少的形式作为最终的数据形式写入相变存储器中;通过充分利用缓存块内数据相似的特点,采用相似单元作为数据特点表示缓存块内其他数据,减少了写入操作中需要对存储单元更新的数目,能够显著克服由于写操作导致的相变存储器寿命较短、使用能耗较高的不足。
35.进一步的,目前最后一级缓存块大小普遍为64字节(512bit),且针对相变存储器寿命、能耗优化的已有方法如fpc(frequent pattern compression)、simiencode等,均通过对长为64字节缓存块进行编码以验证优化效果,故本发明中缓存块大小为64字节,贴近实际且方便与其他方法对比。
36.相似单元的备选长度来自于实验。本发明采用国内外研究普遍使用且认可的gem5与nvmain对spec cpu 2006中的工作负载进行分析,采用长度为128的统计数组对最后一级缓存进行分析,统计数组中每个元素对应缓存块内连续的4bit,记录真实工作场景下写操作中连续4bit均为0的情况占全部写操作的比例。统计结果显如图6所示,部分工作场景下缓存块内数据存在一定相似性与规律性,不同场景下规律性的粒度不同。结合实验结果,本文将相似单元设置为16bit、32bit、64bit以及128bit,旨在通过提取出缓存块内数据的相
似特点即相似单元,利用相似单元表示缓存块内数据,减少对相变存储器的写入,延长器件寿命。
37.进一步的,相似单元必须反映所在缓存块的数据特点,这样才能更好地反映以相似单元长度为粒度分割出的各个子缓存块特点。为了使相似单元具有更全面的代表性,本发明提出的统计法设置了长度与相似单元相同的数组a作为统计数组,对分割后的个子缓存块的每bit内容进行统计。
38.进一步的,统计法以bit为统计粒度,对子缓存块每一位内容进行统计,从统计结果中提炼出相似单元。但是,当统计法提取出的相似单元不等于任意一个子缓存块时,按照本发明涉及的编码方式进行编码后,数据长度将超过整条缓存块长度,此时只能放弃编码策略,以数据原本形式写入。若此时缓存块内以16bit、32bit、64bit、128bit分割后存在重复出现的子缓存块,选择重复出现的子缓存块作为相似单元,则能够继续推进编码处理流程。
39.重复出现次数最多的子缓存块同样可以反映所在缓存块的数据特点,虽然不及统计法考虑范围广、粒度细,但方法简单,且能够在统计法无法施行的情况下继续进行编码。
40.进一步的,缓存块以相似单元长度为粒度进行分段,使每个子缓存块与相似单元异或,若异或结果为0,说明对应该子缓存块与相似单元完全相同,因此能够以相似单元直接表示,无需重复写入,设置对应标志位为0;若异或结果非0,说明对应子缓存块与相似单元存在差异,无法通过相似单元直接表示,设置对应标志位为1。标志位将用于后续读操作时还原数据。
41.进一步的,由于数据在不同工作负载下具有不同的相似性,因此本发明设计了4种相似单元的备选长度。且每次写操作内容可能适合不同的相似单元长度,因此每个写入操作将从4种备选长度中选择最合适的内容。3bit前缀中1bit用于说明本条数据编码采用一个相似单元,剩余2bit用于指示本条编码后数据采用的相似单元长度,从而获得相似单元内容。标志位长度为缓存块以相似单元长度为粒度分割后的子缓存块数目,其内容指示对应子缓存块是否与相似单元完全相等,若标志位为
‘0’
,说明对应子缓存块与相似单元相等,数据还原时该缓存块内容即为相似单元内容;若标志位为
‘1’
,说明对应子缓存块与相似单元不等,需要按顺序结合异或结果非0的内容,通过使相似单元与对应的非0异或结果再次异或,还原对应子缓存块内容。
42.进一步的,simiunit0与simiunit1是分别采用重复法与统计法获得的相似单元,两种方法的计算粒度不同。当二者相等时,说明simiunit0(simiunit1)在两种计算粒度下均能作为缓存块内容的特征,因此直接采用该相似单元进行编码即可。
43.进一步的,考虑如下情况,当子缓存块存在重复,且每种数目非常相近,此时相似单元将更加贴合数目较多的子缓存块。当相似单元等于重复次数最多的子缓存块时,也将导致有近一半的子缓存块与相似单元的异或结果非0,相似单元的统计性将受到影响;当相似单元受其他影响不等于重复次数最多的子缓存块时,可能导致所有子缓存块与相似单元均不相同,编码后结果超长,只能放弃编码;如图7所示,共有三种子缓存块。若仅采用一个相似单元,只有选择重复法的结果11000010作为相似单元才能继续编码,此时存在一半子缓存块无法通过相似单元表示,且11000010与该一半子缓存块的相似度最高仅为62.5%
(第4个),最低为25%(第5~7个)。此时引入两个相似单元同时作为缓存块特征的代表将更加合理。
44.进一步的,当采用两种相似单元时,主、辅相似单元长度相同,因此设置3bit前缀,其中1bit用于说明本条数据编码采用两个相似单元,剩余2bit前缀即可说明编码后数据采用的相似单元长度。tag0长度固定,为缓存块以相似单元长度为粒度分割的子缓存块数目,说明哪些子缓存块与主相似单元完全相等;tag1长度不定,从第一个与主相似单元不相等的子缓存块开始记录,说明子缓存块与主相似单元不等时是否与辅相似单元相等,结合tag0、tag1与辅相似单元异或结果非0的内容,以及两个相似单元,能够对编码后数据进行还原。
45.可以理解的是,上述第二方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
46.综上所述,本发明通过对真实工作负载中的数据进行分析,设计了贴合数据特点的编码方法,并且提出两种相似单元的计算方法和同时采用两个相似单元编码的方法,意图最大限度通过相似单元表示所在缓存块的数据内容,减少不必要的数据写入,减少相变存储器的写能耗,延长器件寿命。
47.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
48.图1为本发明的流程图;
49.图2为本发明的内存系统架构图;
50.图3为本发明中两种相似单元计算方法的示意图;
51.图4为本发明中的编码示意图;
52.图5为本发明中采用两个相似单元编码后的数据组织形式示意图;
53.图6为指令数为2亿时,负载bzip2与leslie3d缓存块中0出现的比例统计结果示意图;
54.图7为需要两个相似单元的示意图。
具体实施方式
55.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.在本发明的描述中,需要理解的是,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
57.还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
58.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是
指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
59.应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述预设范围等,但这些预设范围不应限于这些术语。这些术语仅用来将预设范围彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一预设范围也可以被称为第二预设范围,类似地,第二预设范围也可以被称为第一预设范围。
60.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
61.在附图中示出了根据本发明公开实施例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
62.本发明提供了一种延长相变存储器寿命的数据编码方法,利用最后一级缓存中缓存块内数据存在一定相似性与规律性的特点,通过计算相似单元并利用相似单元表示所在缓存块中的数据实现数据编码,减少对存储单元的写入数目从而延长pcm的寿命,减少写操作所需的能耗。
63.请参阅图2,为本发明一种延长相变存储器寿命的数据编码方法使用的架构,包括llc谐振电路、内存控制器和pcn阵列,内存控制器内设置有相似单元计算模块,编码模块和解码模块,pcn阵列内设置有写缓冲区和读缓冲区;llc谐振电路的输出端经相似单元计算模块、编码模块和写缓冲区进入pcn阵列,pcn阵列经读缓冲区和解码模块返回至llc谐振电路输入端,编码模块和解码模块分别连接前馈表。
64.请参阅图1,本发明一种延长相变存储器寿命的数据编码方法,包括以下步骤:
65.s1、对最后一级缓存中每条缓存块内数据,采用重复法与统计法两种方法对其中的数据特点进行提取,计算得到缓存块内的相似单元。每条缓存块长度为512bit,相似单元的备选长度为16bit、32bit、64bit、128bit,两种计算方法所得的相似单元分别记为simiunit0与simiunit1,记数据编码前需要对存储单元写入的数目为n0;
66.请参阅图3,在写操作中,对最后一级缓存中对应的缓存块内容进行操作,设写入编码前数据需要对存储单元按位更新的数目为n0,采用重复法与统计法计算缓存块的相似单元。
67.采用统计法与重复法法进行相似单元计算具体为:
68.(1)重复法计算相似单元时,以相似单元长度l bit为粒度对缓存块分段,统计每个子缓存块出现的次数,重复出现次数最多的子缓存块即为相似单元长度为l bit时,重复法的计算结果。
69.(2)统计法计算相似单元时,设置与相似单元等长(长度记为l bit)的数组a作为
统计数组,对缓存块以l bit为粒度进行分段,得到个子缓存块。遍历每个缓存块,在统计数组a中记录各个子缓存块中每bit的内容,若子缓存块中某bit内容为
‘1’
,则统计数组对应位置的内容加1;若子缓存块某bit为
‘0’
,统计数组对应位置的内容加0,即保持不变;当完成遍历后,对统计数组a进行处理,若a中某元素大于等于表示至少一半的子缓存块在该处内容为
‘1’
,因此将a中该元素重置为
‘1’
;反之,若某元素小于则将该元素重置为
‘0’
;统计数组a经过整理后其内容即为相似单元长度为l bit时,统计法的计算结果。
70.s2、判断步骤s1得到的simiunit0是否等于simiunit1,若二者不相等,则进行步骤s4对缓存块内数据进行编码;
71.判断步骤s1得到的simiunit0是否等于simiunit1,若相等,则仅采用一个相似单元编码;反之,在采用一个相似单元编码的同时考虑使用两个相似单元编码。
72.s3、仅采用一个相似单元进行编码,以编码后数据能够对更少的存储单元进行写入作为标准,从simiunit0与simiunit1中择优选择一种,若simiunit0与simiunit1相等,将simiunit0直接作为结果;同时,记编码后数据需要对存储单元写入的数目为n1;
73.采用一个相似单元时,将缓存块按照相似单元长度进行分段,使每个子缓存块与相似单元异或,若异或结果为0,证明该子块与相似单元内容相同,设置对应标志位为
‘0’
;若异或结果不为0,证明该子块与相似单元内容不同,设置对应标志位为
‘1’
。数据编码后将被组织为“前缀+相似单元+标志位+异或结果非0的内容”的形式,其中前缀表示相似单元长度。相似单元的备选长度共4种,选择编码后结果对存储单元写入最少的作为采用一个相似单元编码的最终结果。
74.请参阅图4,采用一个相似单元编码时,图中相似单元长度为64bit,对原始缓存块以64bit为粒度分为8段(sub0至sub7),将每段与相似单元进行异或操作得到8段新的内容(sub0’
至sub7’
)。判断异或结果是否为0,并将非0的结果进行记录,如图4中的中间结果所示。记此时写入编码后数据需要对存储单元按位更新的数目为n1。
75.s4、采用两个相似单元进行编码,此时simiunit0与simiunit1不相等,同时采用二者进行编码,记编码后数据需要对存储单元写入的数目为n2;
76.采用两个相似单元时,将缓存块按照相似单元长度进行分段,以重复法结果simiunit0作为主相似单元,对不等于simiunit0的剩余子缓存块采用统计法计算得到新的simiunit1作为辅相似单元。通过将simiunit0与各个子缓存块异或计算得到与simiunit0相同的子块,在tag0中设置其对应的标志位为
‘0’
;对于不等于simiunit0的子块,将其分别与统计法获得的simiunit1进行异或操作,标记出与simiunit1相等的子块,在tag1中设置对应的标志位为
‘0’
。数据编码后将被组织为“前缀+主相似单元+tag0+辅相似单元+tag1+与辅相似单元异或结果非0的内容”,其中前缀表示相似单元长度。相似单元的备选长度共4种,选择编码后对存储单元写入最少的作为采用两个相似单元编码的最终结果。
77.请参阅图5,当simiunit0与simiunit1不等时,考虑采用两个相似单元进行编码。将重复法所得的结果simiunit0作为主相似单元,使各子块与其异或,在tag0中标记出与主相似单元相等的子缓存块;对不等于主相似单元的子块采用统计法计算得到辅相似单元simiunit1,并通过异或操作在tag1中标记出与辅相似单元相等的子缓存块,并对异或结果
非0的内容进行记录,编码后的数据组织形式如图5中所示。记此时写入编码后数据需要对存储单元按位更新的数目为n2。
78.s5、对步骤s3、步骤s4中编码后的数据长度进行检查,若数据长度超过512bit,该编码结果超长,更新该形式需要对存储单元写入的数目为512;若数据长度未超过512bit,该编码结果有效;
79.判断编码后的数据是否超长,当数据长度超过512bit时,该编码形式无法采用,将该编码形式对应的需要对存储单元按位更新的数目更新为512;
80.s6、比较n0、n1、n2,选择最小值对应的数据形式作为最终的写入形式。
81.本发明再一个实施例中,提供一种延长相变存储器寿命的数据编码系统,该系统能够用于实现上述延长相变存储器寿命的数据编码方法,具体的,该延长相变存储器寿命的数据编码系统包括提取模块、判断模块、第一编码模块、第二编码模块、校验模块以及输出模块。
82.其中,提取模块,在写操作中,对最后一级缓存中每条缓存块内数据,采用重复法与统计法提取缓存块内数据的数据特点,计算得到缓存块内的相似单元simiunit0与simiunit1,记数据编码前对存储单元写入的数目为n0;
83.判断模块,判断提取模块得到的simiunit0是否等于simiunit1;
84.第一编码模块,当判断模块中simiunit0等于simiunit1,采用一个相似单元进行编码,以编码后数据能够对最少的存储单元进行写入作为标准,从simiunit0与simiunit1中择优选择一种,同时记编码后数据对存储单元写入的数目为n1;
85.第二编码模块,当判断模块中simiunit0不等于simiunit1,采用两个相似单元进行编码,记编码后数据对存储单元写入的数目为n2;
86.校验模块,对第一编码模块和第二编码模块编码后的数据长度进行检查,若数据长度超过512bit,更新对应形式对存储单元写入的数目为512;若数据长度未超过512bit,对应编码结果有效;
87.输出模块,比较提取模块得到的n0、第一编码模块得到的n1和第二编码模块得到的n2,选择最小值对应的数据形式作为最终的写入形式,完成数据编码。
88.本发明再一个实施例中,提供了一种终端设备,该终端设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor、dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可以用于延长相变存储器寿命的数据编码方法的操作,包括:
89.在写操作中,对最后一级缓存中每条缓存块内数据,采用重复法与统计法提取缓存块内数据的数据特点,计算得到缓存块内的相似单元simiunit0与simiunit1,记数据编码前对存储单元写入的数目为n0;判断simiunit0是否等于simiunit1;当simiunit0等于simiunit1,采用一个相似单元进行编码,以编码后数据能够对最少的存储单元进行写入作
为标准,从simiunit0与simiunit1中择优选择一种,同时记编码后数据对存储单元写入的数目为n1;当simiunit0不等于simiunit1,采用两个相似单元进行编码,记编码后数据对存储单元写入的数目为n2;对编码后的数据长度进行检查,若数据长度超过512bit,更新对应形式对存储单元写入的数目为512;若数据长度未超过512bit,对应编码结果有效;比较n0、n1和n2,选择最小值对应的数据形式作为最终的写入形式,完成数据编码。
90.本发明再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(memory),所述计算机可读存储介质是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端设备中的内置存储介质,当然也可以包括终端设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
91.可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关延长相变存储器寿命的数据编码方法的相应步骤;计算机可读存储介质中的一条或一条以上指令由处理器加载并执行如下步骤:
92.在写操作中,对最后一级缓存中每条缓存块内数据,采用重复法与统计法提取缓存块内数据的数据特点,计算得到缓存块内的相似单元simiunit0与simiunit1,记数据编码前对存储单元写入的数目为n0;判断simiunit0是否等于simiunit1;当simiunit0等于simiunit1,采用一个相似单元进行编码,以编码后数据能够对最少的存储单元进行写入作为标准,从simiunit0与simiunit1中择优选择一种,同时记编码后数据对存储单元写入的数目为n1;当simiunit0不等于simiunit1,采用两个相似单元进行编码,记编码后数据对存储单元写入的数目为n2;对编码后的数据长度进行检查,若数据长度超过512bit,更新对应形式对存储单元写入的数目为512;若数据长度未超过512bit,对应编码结果有效;比较n0、n1和n2,选择最小值对应的数据形式作为最终的写入形式,完成数据编码。
93.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
94.通过采用gem5和nvmain对spec cpu 2006中真实工作负载进行实验,对于延长相变存储器寿命的两个主要指标,位翻转及写能耗,本发明设计的基于数据相似度的编码方法在数据相似度约为90%的6种工作负载中,平均能够减少36.94%的位翻转与37.54%的写能耗,比其他方法的平均优化效果提高了4.84%与3.89%以上。
95.综上所述,本发明一种延长相变存储器寿命的数据编码方法及系统,通过对数据特点进行分析、提取,采用相似单元对最后一级缓存中缓存块内数据进行编码,减少对相变存储器的写入,延长其使用寿命。
96.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
97.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
98.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
99.在本发明所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
100.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
101.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
102.所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(randomaccess memory,ram)、电载波信号、电信信号以及软件分发介质等,需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信
号和电信信号。
103.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
104.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
105.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
106.以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1