一种优化pcm内存写的方法和装置的制造方法

文档序号:8430461阅读:430来源:国知局
一种优化pcm内存写的方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机存储技术领域,具体涉及一种优化PCM内存写的方法和装置。
【背景技术】
[0002]相变存储器(Phase Change Memory, PCM)是一种新型的非易失性存储器(Non-Volatile Memory,NVM),它有着高密度、低功耗、高速读写的性能,是近些年被广泛研究并且最先量产的NVM器件。但将PCM用作内存时,同样面临着延迟、耐久性和能耗等方面的挑战。因此,减少对PCM的与不仅可以提闻内存系统性能,还可以延长使用寿命和减少能耗。
[0003]其中一种现有技术是采用粗粒度的内存访问,内存控制器向内存中写数据采用突发方式,由于不区分数据是否改变,因此存在冗余写的问题,反而增大了功耗,降低了性能;另一种现有技术是利用加入牺牲缓存来减少对Flash的写操作。由于PCM的写机制与Flash不同,因此并不适用于PCM作为内存的情况。

【发明内容】

[0004]本发明的目的是针对现有技术的缺陷,提供一种优化PCM内存写的方法和装置,可以减少几余与操作,降低功耗,延长PCM的使用寿命,提闻PCM与的并行度,从而提闻PCM系统性能。
[0005]为实现上述目的,本发明实施例提供了一种优化PCM内存写的方法,所述方法包括以下步骤:
[0006]最后一级缓存LLC接收写指令,其中LLC采用分段结构,每一个段又进一步分为更小的子段,每个子段有改变位;
[0007]判断LLC是否写命中;
[0008]当LLC写命中,数据写入LLC,同时将要写的数据与LLC的原有数据进行比较,若不等,则对应所述子段的改变位设置第一状态;当LLC写不命中,将改变位为第一状态的子段替换出去,替换出的LLC子段写入牺牲缓存,以便将数据写入相变存储器PCM,其中牺牲缓存设置在LLC与PCM之间,其中所述子段的大小与牺牲缓存行的大小相同。
[0009]为实现上述目的,本发明实施例提供了一种优化PCM内存写的装置,所述装置包括:
[0010]LLC,用于接收写指令,并判断LLC是否写命中;当LLC写命中,数据写入LLC,同时将要写的数据与LLC的原有数据进行比较,若不等,则对应所述子段的改变位设置第一状态;当LLC写不命中,将改变位为第一状态的子段替换出去,替换出的子段写入牺牲缓存;
[0011]牺牲缓存,位于LLC与PCM之间,用于存放LLC中被替换出的子段,并判断牺牲缓存是否写命中;当牺牲缓存写不命中时,根据LRU选出一行;在选出的牺牲缓存行的写回位为第三状态的时候,将选出的牺牲缓存的行替换出去,写入PCM。
[0012]本发明实施例的一种优化PCM内存写的方法和装置,减少了对PCM的写次数,降低了功耗,延长了使用寿命,提高PCM写的并行度,从而提高PCM系统性能。
【附图说明】
[0013]图1为本发明实施例一种优化PCM内存写的方法的流程图;
[0014]图2为本发明实施例一种优化PCM内存写的装置的示意图;
[0015]图3为本发明实施例一种优化PCM内存写的装置中牺牲缓存采用的第一算法流程图。
【具体实施方式】
[0016]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0017]图1为本发明实施例一种优化PCM内存写的方法的流程图,如图所示,本实施例具体包括如下步骤:
[0018]步骤101,最后一级缓存LLC接收写指令,其中LLC采用分段结构,每一个段又进一步分为更小的子段,每个子段有改变位;
[0019]具体的,LLC采用分段结构,由一组段组成,每个段对应了一个地址标记;段又进一步分为更小的子段,每个子段有自己的有效位V和改变位C。为表述方便,假设一个段的大小为64B,一个段分为8个子段,每个子段为SB。由于每个段的数据的读入和写回是以子段为单位的,这样访存粒度就由粗粒度64B变为细粒度8B ;
[0020]步骤102,判断LLC是否写命中;
[0021]例如可以通过判断要写的数据的地址标记与原有数据的地址标记是否相同,若相同且数据有效则写命中,若不同则写不命中;
[0022]步骤103,当LLC写命中,数据写入LLC,同时将要写的数据与LLC的原有数据进行比较,若不等,则对应所述子段的改变位设置第一状态;
[0023]其中,第一状态可以为对应子段的改变位C置为I的状态,分段结构中的改变位C和传统结构中的脏位D略有不同,传统缓存结构中的脏位D是在写命中时就置位,而改变位C是在写命中时比较要写的数据与原有数据是否相等,如果不等才置位,如果相等,将对应子段的改变位设置第二状态,第二状态可以为对应子段的改变位C置为O的状态;
[0024]步骤104,当LLC写不命中,将改变位为第一状态的子段替换出去,替换出的LLC子段写入牺牲缓存,以便将数据写入相变存储器PCM,其中牺牲缓存设置在LLC与PCM之间,其中所述子段的大小与牺牲缓存行的大小相同。
[0025]具体的,替换出的LLC子段写入牺牲缓存包括:判断牺牲缓存是否写命中;当牺牲缓存写命中时,若该行写回位为第四状态时,则将替换出的LLC子段写入该行,并将写回位设置为第三状态;若该行写回位为第三状态时,则将替换出的LLC子段直接写入,覆盖该行;
[0026]当牺牲缓存写不命中时,根据LRU选出一行,若该行的写回位为第四状态,则将替换出的LLC子段直接写入,覆盖该行;若选出的牺牲缓存的行的写回位为第三状态时,将选出的牺牲缓存的行替换出去,写入PCM,再根据LRU选出至少一个对应其它芯片(chip)的写回位为第三状态的一行写入PCM。
[0027]例如,当牺牲缓存中访问chipO的行被替换出来,再在LRU的基础上将访问其他chip的行替换出来写入内存,这样就实现了多个写操作的chip级并行。
[0028]其中,其中第三状态可以为写回位WB为O的状态,第四状态可以为写回位WB为I的状态;
[0029]此步骤的目的就是为了实现减少对PCM的写操作,提高对PCM的写并行度。
[0030]利用本实施例的一种优化PCM内存写的方法,可以减少对PCM的写次数,提高对PCM写的并行度,还可以延长PCM使用寿命和减少PCM能耗。
[0031 ] 图2为本发明实施例一种优化PCM内存写的装置的示意图,如图所示,本实施例的一种优化PCM写的装置具体包括:LLC、牺牲缓存和分路器。
[0032]LLC,用于接收以子段为写对象的写指令,并判断LLC是否写命中;当LLC写命中,将要写的数据与LLC的原有数据进行比较,若不等则向LLC的子段写入数据,同时对应所述子段的改变位设置第一状态;当LLC写不命中,将改变位为第一状态的子段替换出去,替换出的子段写入牺牲缓存;
[0033]牺牲缓存,位于LLC与PCM之间,用于存放LLC中被替换出的子段,并判断牺牲缓存是否写命中;当牺牲缓存写不命中时,根据LRU选出一行;在选出的牺牲缓存行的写回位为第三状态的时候,将选出的牺牲缓存行替换出去,替换出的LLC子段写入PCM ;
[0034]分路器,位于PCM内部,用于对替换出的牺牲缓存的行和至少一个对应其它chip的写回位为第三状态的一行同时写入PCM的并行控制。
[0035]图3为
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1