CN102253901B - 一种基于相变内存的读写区分数据存储替换方法 - Google Patents
一种基于相变内存的读写区分数据存储替换方法 Download PDFInfo
- Publication number
- CN102253901B CN102253901B CN2011101951424A CN201110195142A CN102253901B CN 102253901 B CN102253901 B CN 102253901B CN 2011101951424 A CN2011101951424 A CN 2011101951424A CN 201110195142 A CN201110195142 A CN 201110195142A CN 102253901 B CN102253901 B CN 102253901B
- 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.)
- Active
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 CN102253901A (zh) | 2011-11-23 |
CN102253901B true 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) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999441B (zh) * | 2012-11-15 | 2015-06-17 | 清华大学 | 一种细粒度内存访问的方法 |
CN104142892B (zh) | 2013-05-09 | 2017-08-11 | 华为技术有限公司 | 一种数据读写方法、装置及系统 |
CN104252421A (zh) * | 2013-06-25 | 2014-12-31 | 华为技术有限公司 | 缓存方法及装置 |
CN104866438B (zh) * | 2014-02-20 | 2019-02-05 | 联想(北京)有限公司 | 存储装置、存储装置控制方法和电子设备 |
CN105094686B (zh) | 2014-05-09 | 2018-04-10 | 华为技术有限公司 | 数据缓存方法、缓存和计算机系统 |
CN105912476A (zh) * | 2016-04-06 | 2016-08-31 | 中国科学院计算技术研究所 | 片上重复寻址的方法及装置 |
CN106126443B (zh) * | 2016-06-23 | 2019-03-01 | 清华大学 | 区分脏程度的cache替换方法及装置 |
CN115794673B (zh) * | 2023-01-19 | 2023-05-23 | 北京象帝先计算技术有限公司 | 系统级芯片non-Cacheable数据的访问方法、装置及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6584549B2 (en) * | 2000-12-29 | 2003-06-24 | Intel Corporation | System and method for prefetching data into a cache based on miss distance |
KR100827677B1 (ko) * | 2006-06-20 | 2008-05-07 | 한국과학기술원 | 행렬 스트라이프 캐쉬를 이용한 raid 시스템의 입출력성능 향상 방법 |
CN100518146C (zh) * | 2006-11-09 | 2009-07-22 | 华中科技大学 | 一种用于集群存储系统的全局缓存管理的方法 |
-
2011
- 2011-07-13 CN CN2011101951424A patent/CN102253901B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102253901A (zh) | 2011-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102253901B (zh) | 一种基于相变内存的读写区分数据存储替换方法 | |
CN103425600B (zh) | 一种固态盘闪存转换层中的地址映射方法 | |
CN102981963B (zh) | 一种固态盘的闪存转换层的实现方法 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN102768645B (zh) | 混合缓存的固态硬盘预取方法和固态硬盘ssd | |
CN101719099B (zh) | 减小固态硬盘写入放大的方法及装置 | |
CN108804350A (zh) | 一种内存访问方法及计算机系统 | |
CN101510176B (zh) | 通用操作系统对cpu二级缓存访问的控制方法 | |
CN101819509A (zh) | 一种固态硬盘读写方法 | |
CN101571835B (zh) | 基于程序的需求来改变Cache组相联度的实现方法 | |
CN104380262A (zh) | 坏块管理机制 | |
CN103092534A (zh) | 一种内存结构的调度方法和装置 | |
CN104991743B (zh) | 应用于固态硬盘阻变存储器缓存的损耗均衡方法 | |
Joo et al. | A hybrid PRAM and STT-RAM cache architecture for extending the lifetime of PRAM caches | |
CN103999057A (zh) | 具有开关的相变存储器(pcms)的元数据管理和支持 | |
Quan et al. | Prediction table based management policy for STT-RAM and SRAM hybrid cache | |
CN108572799B (zh) | 一种双向哈希链表的异构内存系统数据页迁移方法 | |
CN103019959A (zh) | 一种指令高速缓冲存储器 | |
CN102354301B (zh) | 缓存分区方法 | |
CN102681792B (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 |