一种基于相变内存的读写区分数据存储替换方法

文档序号:6428456阅读:202来源:国知局
专利名称:一种基于相变内存的读写区分数据存储替换方法
技术领域
本发明涉及一种基于相变内存的读写区分数据存储替换方法,属于计算机系统结构技术领域。
背景技术
随着计算机系统并发处理任务数增加,内存所要支持的工作集越来越大。另一方面,许多应用领域计算量巨大,也加剧了“存储墙”问题的凸显。现有内存主要是由动态随机存储器(DRAM)构建,随着系统规模的增大,功耗和成本上的问题日益严重。研制高速、大存储容量、低成本和低功耗的新型存储系统已成为计算机系统设计的一个重要挑战。新兴存储技术有磁性随机存储器(Magnetic RAM,以下简称MRAM)、相变内存 (PhaseChange Memory,简称PRAM或者PCM)和闪存(Flash)。其中相变内存因为密度大、非易失、访问速度快等优点而成为最有前景的存储技术。相变内存读写速度比Flash快,擦写次数也比Flash多,非常适合于作磁盘缓存。当前大多数方案都是采用相变内存作主存,可以获得更好的性能。但是与DRAM相比,相变内存有读写速度慢、写操作能耗高和擦写次数受限的问题。为了解决相变内存读写速度慢的问题,可以用一块小容量的DRAM作为相变内存的缓冲器。但是相变内存作为非易失性存储,其擦写次数受限是最致命的问题,也是学业界和工业界的正在解决的重要问题。

发明内容
本发明的目的是提出一种基于相变内存的读写区分数据存储替换方法,在保证存储器性能的前提下,减少到达相变内存的写数据操作数目,有效延长相变内存使用寿命。本发明提出的基于相变内存的读写区分数据存储替换方法,有两种不同的操作过程,第一种是当计算机缓存区中每个缓存块有一个2位宽的标记值时,该方法包括以下步骤(1-1)定义计算机缓存区中每个位宽为2的缓存块的标记值为重新访问距离预测值,重新访问距离预测值为0、1、2或3中的任何一个;(1-2)当一个新数据块插入计算机缓存区中对应数据行时,若该新数据块是读访问数据,则将新数据块的重新访问距离预测值设置为3 ;若该新数据块是写访问数据,则将新数据块的重新访问距离预测值设置为2 ;(1-3)当缓存区中的一个数据块被访问命中时,若是读访问命中,则将该数据块的重新访问距离预测值设置为1 ;若是写访问命中,则将该数据块的重新访问距离预测值设置为0;(1-4)当缓存区中不存在被访问数据块,且缓存区中与访问地址相对应的数据行中不存在空闲数据块时,则进行数据块替换操作,替换操作的过程为在与数据块地址相对应的数据行中,从左向右进行查找,若数据行中存在一个重新访问距离预测值是3的数据块,则将这个数据块替换出去;若数据行中不存在重新访问
3距离预测值是3的数据块,则将数据行中所有数据块的标记值在原来值上加1,直到出现重新访问距离预测值为3的数据块,再在数据行中从左向右选择重新访问距离预测值为3的数据块替换出去。第二种是当计算机缓存区中每个缓存块有一个3位宽的标记值时,该方法包括以下步骤(2-1)定义计算机缓存区中每个位宽为3的缓存块的标记值为重新访问距离预测值,重新访问距离预测值为0、1、2、3、4、5、6或7中的任何一个;(2-2)当一个新数据块插入计算机缓存区中对应数据行时,若该新数据块是读访问数据,则将新数据块的重新访问距离预测值设置为6 ;若该新数据块是写访问数据,则将新数据块的重新访问距离预测值设置为5 ;(2-3)当缓存区中的一个数据块被访问命中时,若是读访问命中,则将该数据块的重新访问距离预测值设置为3 ;若是写访问命中,则将该数据块的重新访问距离预测值设置为0;(2-4)当缓存区中不存在被访问数据块,且缓存区中与访问地址相对应的数据行中不存在空闲数据块时,则进行数据块替换操作,替换操作的过程为在与数据块地址相对应的数据行中,从左向右进行查找,若数据行中存在一个重新访问距离预测值是7的数据块,则将这个数据块替换出去;若数据行中不存在重新访问距离预测值是7的数据块,则将数据行中所有数据块的标记值在原来值上加1,直到出现重新访问距离预测值为7的数据块,再在数据行中从左向右选择重新访问距离预测值为7的数据块替换出去。本发明提出的基于相变内存的读写区分数据存储替换方法,其优点是,应用于相变内存上一级存储层次,有效减少了对相变内存的写操作,因此可以在不影响整体性能前提下减少写相变内存的次数,有效的延长相变主存的使用寿命。本发明方法具有代价小,实现简单的特点。


图1是本发明方法的流程示意图。
具体实施例方式本发明提出的基于相变内存的读写区分数据存储替换方法,有两种不同的操作过程,第一种是当计算机缓存区中每个缓存块有一个2位宽的标记值时,该方法包括以下步骤(1-1)定义计算机缓存区中每个位宽为2的缓存块的标记值为重新访问距离预测值,重新访问距离预测值为0、1、2或3中的任何一个;每个数据块通过其地址映射,对应缓存区中的一个数据行,一个数据行包含N个数据块,N取决于缓存区的组相连数目。数据块的查找,插入,更新,替换等都在其地址对应的数据行中进行。(1-2)当一个新数据块插入计算机缓存区中对应数据行时,若该新数据块是读访问数据,则将新数据块的重新访问距离预测值设置为3 ;若该新数据块是写访问数据,则将新数据块的重新访问距离预测值设置为2。
(1-3)当缓存区中的一个数据块被访问命中时,若是读访问命中,则将该数据块的重新访问距离预测值设置为1 ;若是写访问命中,则将该数据块的重新访问距离预测值设置为0。(1-4)当缓存区中不存在被访问数据块,且缓存区中与访问地址相对应的数据行中不存在空闲数据块时,则进行数据块替换操作。该访问地址是被访问的数据块的地址。访问一个数据块,都是通过地址来进行查找,因此无论其在不在缓存区中,都是有地址的。每个数据块,无论其在不在缓存区中,通过其地址做映射,都能找到所对应的数据行。数据的替换发生在其对应的数据行中。数据替换操作的过程为在与数据块地址相对应的数据行中,从左向右进行查找,若数据行中存在一个重新访问距离预测值是3的数据块,则将这个数据块替换出去;若数据行中不存在重新访问距离预测值是3的数据块,则将数据行中所有数据块的标记值在原来值上加1,直到出现重新访问距离预测值为3的数据块,再在数据行中从左向右选择重新访问距离预测值为3的数据块替换出去。本发明方法的第二种操作过程是当计算机缓存区中每个缓存块有一个3位宽的标记值时,该方法包括以下步骤(2-1)定义计算机缓存区中每个位宽为3的缓存块的标记值为重新访问距离预测值,重新访问距离预测值为0、1、2、3、4、5、6或7中的任何一个;(2-2)当一个新数据块插入计算机缓存区中对应数据行时,若该新数据块是读访问数据,则将新数据块的重新访问距离预测值设置为6 ;若该新数据块是写访问数据,则将新数据块的重新访问距离预测值设置为5 ;(2-3)当缓存区中的一个数据块被访问命中时,若是读访问命中,则将该数据块的重新访问距离预测值设置为3 ;若是写访问命中,则将该数据块的重新访问距离预测值设置为0;(2-4)当缓存区中不存在被访问数据块,且缓存区中与访问地址相对应的数据行中不存在空闲数据块时,则进行数据块替换操作,替换操作的过程为在与数据块地址相对应的数据行中,从左向右进行查找,若数据行中存在一个重新访问距离预测值是7的数据块,则将这个数据块替换出去;若数据行中不存在重新访问距离预测值是7的数据块,则将数据行中所有数据块的标记值在原来值上加1,直到出现重新访问距离预测值为7的数据块,再在数据行中从左向右选择重新访问距离预测值为7的数据块替换出去。图1是本发明方法的流程示意图,即当每个数据块有一个2位宽的标记值时,读写区分数据存储替换方法的示例。示例中数据缓冲区为4路组相连,即每个数据行包含4个数据块。第一列表示访问序列。首先读地址a3,读访问缺失,数据行中有空闲块,则将a3插入空闲块,同时将其重新访问距离预测值设为3。接下来写地址a4,写访问缺失,数据行中有空闲块,则将a4插入空闲块,同时将其重新访问距离预测值设为2。读地址a5,读访问缺失,从左向右寻找重新访问距离值为3的数据块替换,则a5替换a3,a5重新访问距离预测值设为3。写地址a6,写访问缺失,则从左向右寻找重新访问距离为3的数据块替换。由于不存在这样的数据块,则将所有数据块的重新访问距离预测值加1,则a2的重新访问距离预测值为3,a6替换a2,a6重新访问距离预测值设为2。再次写地址a6,a6重新访问距离预测值设为0。读a4,读访问命中,a4重新访问距离预测值设为1。
本发明提出的一种基于相变内存的读写区分数据存储替换方法,可应用于计算机系统中相变内存的上一级存储层次。如存储层次是(片上Ll缓存,片上L2缓存,相变内存,……),则发明可以应用于片上L2缓存层次。如存储层次是(片上Ll缓存,片上L2缓存,DRAM,相变内存,……),则替换算法可以应用于DRAM层次,也可以同时应用于片上L2 缓存和DRAM层次。
权利要求
1.一种基于相变内存的读写区分数据存储替换方法,当计算机缓存区中每个缓存块有一个2位宽的标记值时,其特征在于该方法包括以下步骤(1-1)定义计算机缓存区中每个位宽为2的缓存块的标记值为重新访问距离预测值, 重新访问距离预测值为0、1、2或3中的任何一个;(1-2)当一个新数据块插入计算机缓存区中对应数据行时,若该新数据块是读访问数据,则将新数据块的重新访问距离预测值设置为3 ;若该新数据块是写访问数据,则将新数据块的重新访问距离预测值设置为2 ;(1-3)当缓存区中的一个数据块被访问命中时,若是读访问命中,则将该数据块的重新访问距离预测值设置为1 ;若是写访问命中,则将该数据块的重新访问距离预测值设置为 0 ;(1-4)当缓存区中不存在被访问数据块,且缓存区中与访问地址相对应的数据行中不存在空闲数据块时,则进行数据块替换操作,替换操作的过程为在与数据块地址相对应的数据行中,从左向右进行查找,若数据行中存在一个重新访问距离预测值是3的数据块,则将这个数据块替换出去;若数据行中不存在重新访问距离预测值是3的数据块,则将数据行中所有数据块的标记值在原来值上加1,直到出现重新访问距离预测值为3的数据块,再在数据行中从左向右选择重新访问距离预测值为3的数据块替换出去。
2.一种基于相变内存的读写区分数据存储替换方法,当计算机缓存区中每个缓存块有一个3位宽的标记值时,其特征在于该方法包括以下步骤(2-1)定义计算机缓存区中每个位宽为3的缓存块的标记值为重新访问距离预测值, 重新访问距离预测值为0、1、2、3、4、5、6或7中的任何一个;(2-2)当一个新数据块插入计算机缓存区中对应数据行时,若该新数据块是读访问数据,则将新数据块的重新访问距离预测值设置为6 ;若该新数据块是写访问数据,则将新数据块的重新访问距离预测值设置为5 ;(2-3)当缓存区中的一个数据块被访问命中时,若是读访问命中,则将该数据块的重新访问距离预测值设置为3 ;若是写访问命中,则将该数据块的重新访问距离预测值设置为 0 ;(2-4)当缓存区中不存在被访问数据块,且缓存区中与访问地址相对应的数据行中不存在空闲数据块时,则进行数据块替换操作,替换操作的过程为在与数据块地址相对应的数据行中,从左向右进行查找,若数据行中存在一个重新访问距离预测值是7的数据块,则将这个数据块替换出去;若数据行中不存在重新访问距离预测值是7的数据块,则将数据行中所有数据块的标记值在原来值上加1,直到出现重新访问距离预测值为7的数据块,再在数据行中从左向右选择重新访问距离预测值为7的数据块替换出去。
全文摘要
本发明涉及一种基于相变内存的读写区分数据存储替换方法,属于计算机系统结构技术领域。本发明方法中,首先定义每个缓存块的M(M=2或3)位宽的标记值为重新访问距离预测值。发生数据块替换时,选择重新访问距离预测值最大的块进行替换。一个新数据块插入和命中时,根据读写类别的不同,将重新访问距离预测值设置为不同的值。其中,给写访问数据的重新访问距离值较小,因而优先保护在缓存区中,减少其被替换到相变内存中的次数。本发明方法应用于相变内存上一级存储层次,可以在保证整体性能的前提下,有效减少对相变内存的写操作,延长相变主存的使用寿命。本发明方法具有存储代价小,实现简单的特点。
文档编号G06F12/12GK102253901SQ20111019514
公开日2011年11月23日 申请日期2011年7月13日 优先权日2011年7月13日
发明者张熙, 汪东升, 王海霞, 胡倩 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1