CN102253901A - 一种基于相变内存的读写区分数据存储替换方法 - Google Patents
一种基于相变内存的读写区分数据存储替换方法 Download PDFInfo
- Publication number
- CN102253901A CN102253901A CN2011101951424A CN201110195142A CN102253901A CN 102253901 A CN102253901 A CN 102253901A CN 2011101951424 A CN2011101951424 A CN 2011101951424A CN 201110195142 A CN201110195142 A CN 201110195142A CN 102253901 A CN102253901 A CN 102253901A
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- value
- range prediction
- visit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种基于相变内存的读写区分数据存储替换方法,属于计算机***结构技术领域。本发明方法中,首先定义每个缓存块的M(M=2或3)位宽的标记值为重新访问距离预测值。发生数据块替换时,选择重新访问距离预测值最大的块进行替换。一个新数据块***和命中时,根据读写类别的不同,将重新访问距离预测值设置为不同的值。其中,给写访问数据的重新访问距离值较小,因而优先保护在缓存区中,减少其被替换到相变内存中的次数。本发明方法应用于相变内存上一级存储层次,可以在保证整体性能的前提下,有效减少对相变内存的写操作,延长相变主存的使用寿命。本发明方法具有存储代价小,实现简单的特点。
Description
技术领域
本发明涉及一种基于相变内存的读写区分数据存储替换方法,属于计算机***结构技术领域。
背景技术
随着计算机***并发处理任务数增加,内存所要支持的工作集越来越大。另一方面,许多应用领域计算量巨大,也加剧了“存储墙”问题的凸显。现有内存主要是由动态随机存储器(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的数据块,则将数据行中所有数据块的标记值在原来值上加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。
本发明提出的一种基于相变内存的读写区分数据存储替换方法,可应用于计算机***中相变内存的上一级存储层次。如存储层次是(片上L1缓存,片上L2缓存,相变内存,……),则发明可以应用于片上L2缓存层次。如存储层次是(片上L1缓存,片上L2缓存,DRAM,相变内存,……),则替换算法可以应用于DRAM层次,也可以同时应用于片上L2缓存和DRAM层次。
Claims (2)
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的数据块替换出去。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101951424A CN102253901B (zh) | 2011-07-13 | 2011-07-13 | 一种基于相变内存的读写区分数据存储替换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101951424A CN102253901B (zh) | 2011-07-13 | 2011-07-13 | 一种基于相变内存的读写区分数据存储替换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102253901A true CN102253901A (zh) | 2011-11-23 |
CN102253901B CN102253901B (zh) | 2013-07-24 |
Family
ID=44981176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101951424A Active CN102253901B (zh) | 2011-07-13 | 2011-07-13 | 一种基于相变内存的读写区分数据存储替换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102253901B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999441A (zh) * | 2012-11-15 | 2013-03-27 | 清华大学 | 一种细粒度内存访问的方法 |
WO2014180124A1 (zh) * | 2013-05-09 | 2014-11-13 | 华为技术有限公司 | 一种数据读写方法、装置及*** |
WO2014206234A1 (zh) * | 2013-06-25 | 2014-12-31 | 华为技术有限公司 | 缓存方法及装置 |
CN104866438A (zh) * | 2014-02-20 | 2015-08-26 | 联想(北京)有限公司 | 存储装置、存储装置控制方法和电子设备 |
CN105912476A (zh) * | 2016-04-06 | 2016-08-31 | 中国科学院计算技术研究所 | 片上重复寻址的方法及装置 |
CN106126443A (zh) * | 2016-06-23 | 2016-11-16 | 清华大学 | 区分脏程度的cache替换方法及装置 |
US10241919B2 (en) | 2014-05-09 | 2019-03-26 | Huawei Technologies Co., Ltd. | Data caching method and computer system |
CN115794673A (zh) * | 2023-01-19 | 2023-03-14 | 北京象帝先计算技术有限公司 | ***级芯片non-Cacheable数据的访问方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087800A1 (en) * | 2000-12-29 | 2002-07-04 | Abdallah Mohammad A. | System and method for prefetching data into a cache based on miss distance |
CN1996944A (zh) * | 2006-11-09 | 2007-07-11 | 华中科技大学 | 一种用于集群存储***的全局缓存管理的方法 |
CN101093434A (zh) * | 2006-06-20 | 2007-12-26 | 韩国科学技术院 | 用矩阵条带高速缓存器改进raid***输入和输出性能的方法 |
-
2011
- 2011-07-13 CN CN2011101951424A patent/CN102253901B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087800A1 (en) * | 2000-12-29 | 2002-07-04 | Abdallah Mohammad A. | System and method for prefetching data into a cache based on miss distance |
CN101093434A (zh) * | 2006-06-20 | 2007-12-26 | 韩国科学技术院 | 用矩阵条带高速缓存器改进raid***输入和输出性能的方法 |
CN1996944A (zh) * | 2006-11-09 | 2007-07-11 | 华中科技大学 | 一种用于集群存储***的全局缓存管理的方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999441B (zh) * | 2012-11-15 | 2015-06-17 | 清华大学 | 一种细粒度内存访问的方法 |
CN102999441A (zh) * | 2012-11-15 | 2013-03-27 | 清华大学 | 一种细粒度内存访问的方法 |
US9632708B2 (en) | 2013-05-09 | 2017-04-25 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for reading and writing data |
WO2014180124A1 (zh) * | 2013-05-09 | 2014-11-13 | 华为技术有限公司 | 一种数据读写方法、装置及*** |
WO2014206234A1 (zh) * | 2013-06-25 | 2014-12-31 | 华为技术有限公司 | 缓存方法及装置 |
CN104252421A (zh) * | 2013-06-25 | 2014-12-31 | 华为技术有限公司 | 缓存方法及装置 |
CN104866438B (zh) * | 2014-02-20 | 2019-02-05 | 联想(北京)有限公司 | 存储装置、存储装置控制方法和电子设备 |
CN104866438A (zh) * | 2014-02-20 | 2015-08-26 | 联想(北京)有限公司 | 存储装置、存储装置控制方法和电子设备 |
US10241919B2 (en) | 2014-05-09 | 2019-03-26 | Huawei Technologies Co., Ltd. | Data caching method and computer system |
CN105912476A (zh) * | 2016-04-06 | 2016-08-31 | 中国科学院计算技术研究所 | 片上重复寻址的方法及装置 |
CN106126443A (zh) * | 2016-06-23 | 2016-11-16 | 清华大学 | 区分脏程度的cache替换方法及装置 |
CN106126443B (zh) * | 2016-06-23 | 2019-03-01 | 清华大学 | 区分脏程度的cache替换方法及装置 |
CN115794673A (zh) * | 2023-01-19 | 2023-03-14 | 北京象帝先计算技术有限公司 | ***级芯片non-Cacheable数据的访问方法、装置及电子设备 |
CN115794673B (zh) * | 2023-01-19 | 2023-05-23 | 北京象帝先计算技术有限公司 | ***级芯片non-Cacheable数据的访问方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102253901B (zh) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102253901B (zh) | 一种基于相变内存的读写区分数据存储替换方法 | |
CN103425600B (zh) | 一种固态盘闪存转换层中的地址映射方法 | |
CN102981963B (zh) | 一种固态盘的闪存转换层的实现方法 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN102768645B (zh) | 混合缓存的固态硬盘预取方法和固态硬盘ssd | |
CN101719099B (zh) | 减小固态硬盘写入放大的方法及装置 | |
CN108804350A (zh) | 一种内存访问方法及计算机*** | |
CN101819509A (zh) | 一种固态硬盘读写方法 | |
CN101510176B (zh) | 通用操作***对cpu二级缓存访问的控制方法 | |
CN101571835B (zh) | 基于程序的需求来改变Cache组相联度的实现方法 | |
CN104380262A (zh) | 坏块管理机制 | |
CN104899154B (zh) | 基于嵌入式***混合主存的页面管理方法 | |
CN104991743B (zh) | 应用于固态硬盘阻变存储器缓存的损耗均衡方法 | |
CN103999057A (zh) | 具有开关的相变存储器(pcms)的元数据管理和支持 | |
Joo et al. | A hybrid PRAM and STT-RAM cache architecture for extending the lifetime of PRAM caches | |
Quan et al. | Prediction table based management policy for STT-RAM and SRAM hybrid cache | |
CN108572799B (zh) | 一种双向哈希链表的异构内存***数据页迁移方法 | |
CN103019959A (zh) | 一种指令高速缓冲存储器 | |
CN102681792B (zh) | 一种固态盘内存分区方法 | |
CN102354301B (zh) | 缓存分区方法 | |
CN102981972A (zh) | 一种相变存储器的损耗均衡方法 | |
CN104778132A (zh) | 一种多核处理器目录缓存替换方法 | |
CN102521161B (zh) | 一种数据的缓存方法、装置和服务器 | |
CN112612419B (zh) | Nvm的数据存储结构、存储方法、读取方法、设备及介质 | |
CN103019963A (zh) | 一种高速缓存的映射方法及存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |