CN104750423B - 一种优化pcm内存写的方法和装置 - Google Patents
一种优化pcm内存写的方法和装置 Download PDFInfo
- Publication number
- CN104750423B CN104750423B CN201310727073.6A CN201310727073A CN104750423B CN 104750423 B CN104750423 B CN 104750423B CN 201310727073 A CN201310727073 A CN 201310727073A CN 104750423 B CN104750423 B CN 104750423B
- Authority
- CN
- China
- Prior art keywords
- write
- llc
- pcm
- sacrifice
- caching
- 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.)
- Expired - Fee Related
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种优化PCM内存写的方法。所述方法包括:最后一级缓存LLC接收写指令,其中LLC采用分段结构,每一个段又进一步分为更小的子段,每个子段有改变位;判断LLC是否写命中;当LLC写命中,数据写入LLC,同时将要写的数据与LLC的原有数据进行比较,若不等,则对应所述子段的改变位设置第一状态;当LLC写不命中,将改变位为第一状态的子段替换出去,替换出的LLC子段写入牺牲缓存,以便将数据写入相变存储器PCM,其中牺牲缓存设置在LLC与PCM之间。本发明可以减少对PCM内存的写次数,降低功耗,延长使用寿命,提高PCM写的并行度,从而提高PCM系统性能。
Description
技术领域
本发明涉及计算机存储技术领域,具体涉及一种优化PCM内存写的方法和装置。
背景技术
相变存储器(Phase Change Memory,PCM)是一种新型的非易失性存储器(Non-Volatile Memory,NVM),它有着高密度、低功耗、高速读写的性能,是近些年被广泛研究并且最先量产的NVM器件。但将PCM用作内存时,同样面临着延迟、耐久性和能耗等方面的挑战。因此,减少对PCM的写不仅可以提高内存系统性能,还可以延长使用寿命和减少能耗。
其中一种现有技术是采用粗粒度的内存访问,内存控制器向内存中写数据采用突发方式,由于不区分数据是否改变,因此存在冗余写的问题,反而增大了功耗,降低了性能;另一种现有技术是利用加入牺牲缓存来减少对Flash的写操作。由于PCM的写机制与Flash不同,因此并不适用于PCM作为内存的情况。
发明内容
本发明的目的是针对现有技术的缺陷,提供一种优化PCM内存写的方法和装置,可以减少冗余写操作,降低功耗,延长PCM的使用寿命,提高PCM写的并行度,从而提高PCM系统性能。
为实现上述目的,本发明实施例提供了一种优化PCM内存写的方法,所述方法包括以下步骤:
最后一级缓存LLC接收写指令,其中LLC采用分段结构,每一个段又进一步分为更小的子段,每个子段有改变位;
判断LLC是否写命中;
当LLC写命中,数据写入LLC,同时将要写的数据与LLC的原有数据进行比较,若不等,则对应所述子段的改变位设置第一状态;当LLC写不命中,将改变位为第一状态的子段替换出去,替换出的LLC子段写入牺牲缓存,以便将数据写入相变存储器PCM,其中牺牲缓存设置在LLC与PCM之间,其中所述子段的大小与牺牲缓存行的大小相同。
为实现上述目的,本发明实施例提供了一种优化PCM内存写的装置,所述装置包括:
LLC,用于接收写指令,并判断LLC是否写命中;当LLC写命中,数据写入LLC,同时将要写的数据与LLC的原有数据进行比较,若不等,则对应所述子段的改变位设置第一状态;当LLC写不命中,将改变位为第一状态的子段替换出去,替换出的子段写入牺牲缓存;
牺牲缓存,位于LLC与PCM之间,用于存放LLC中被替换出的子段,并判断牺牲缓存是否写命中;当牺牲缓存写不命中时,根据LRU选出一行;在选出的牺牲缓存行的写回位为第三状态的时候,将选出的牺牲缓存的行替换出去,写入PCM。
本发明实施例的一种优化PCM内存写的方法和装置,减少了对PCM的写次数,降低了功耗,延长了使用寿命,提高PCM写的并行度,从而提高PCM系统性能。
附图说明
图1为本发明实施例一种优化PCM内存写的方法的流程图;
图2为本发明实施例一种优化PCM内存写的装置的示意图;
图3为本发明实施例一种优化PCM内存写的装置中牺牲缓存采用的第一算法流程图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明实施例一种优化PCM内存写的方法的流程图,如图所示,本实施例具体包括如下步骤:
步骤101,最后一级缓存LLC接收写指令,其中LLC采用分段结构,每一个段又进一步分为更小的子段,每个子段有改变位;
具体的,LLC采用分段结构,由一组段组成,每个段对应了一个地址标记;段又进一步分为更小的子段,每个子段有自己的有效位V和改变位C。为表述方便,假设一个段的大小为64B,一个段分为8个子段,每个子段为8B。由于每个段的数据的读入和写回是以子段为单位的,这样访存粒度就由粗粒度64B变为细粒度8B;
步骤102,判断LLC是否写命中;
例如可以通过判断要写的数据的地址标记与原有数据的地址标记是否相同,若相同且数据有效则写命中,若不同则写不命中;
步骤103,当LLC写命中,数据写入LLC,同时将要写的数据与LLC的原有数据进行比较,若不等,则对应所述子段的改变位设置第一状态;
其中,第一状态可以为对应子段的改变位C置为1的状态,分段结构中的改变位C和传统结构中的脏位D略有不同,传统缓存结构中的脏位D是在写命中时就置位,而改变位C是在写命中时比较要写的数据与原有数据是否相等,如果不等才置位,如果相等,将对应子段的改变位设置第二状态,第二状态可以为对应子段的改变位C置为0的状态;
步骤104,当LLC写不命中,将改变位为第一状态的子段替换出去,替换出的LLC子段写入牺牲缓存,以便将数据写入相变存储器PCM,其中牺牲缓存设置在LLC与PCM之间,其中所述子段的大小与牺牲缓存行的大小相同。
具体的,替换出的LLC子段写入牺牲缓存包括:判断牺牲缓存是否写命中;当牺牲缓存写命中时,若该行写回位为第四状态时,则将替换出的LLC子段写入该行,并将写回位设置为第三状态;若该行写回位为第三状态时,则将替换出的LLC子段直接写入,覆盖该行;
当牺牲缓存写不命中时,根据LRU选出一行,若该行的写回位为第四状态,则将替换出的LLC子段直接写入,覆盖该行;若选出的牺牲缓存的行的写回位为第三状态时,将选出的牺牲缓存的行替换出去,写入PCM,再根据LRU选出至少一个对应其它芯片(chip)的写回位为第三状态的一行写入PCM。
例如,当牺牲缓存中访问chip0的行被替换出来,再在LRU的基础上将访问其他chip的行替换出来写入内存,这样就实现了多个写操作的chip级并行。
其中,其中第三状态可以为写回位WB为0的状态,第四状态可以为写回位WB为1的状态;
此步骤的目的就是为了实现减少对PCM的写操作,提高对PCM的写并行度。
利用本实施例的一种优化PCM内存写的方法,可以减少对PCM的写次数,提高对PCM写的并行度,还可以延长PCM使用寿命和减少PCM能耗。
图2为本发明实施例一种优化PCM内存写的装置的示意图,如图所示,本实施例的一种优化PCM写的装置具体包括:LLC、牺牲缓存和分路器。
LLC,用于接收以子段为写对象的写指令,并判断LLC是否写命中;当LLC写命中,将要写的数据与LLC的原有数据进行比较,若不等则向LLC的子段写入数据,同时对应所述子段的改变位设置第一状态;当LLC写不命中,将改变位为第一状态的子段替换出去,替换出的子段写入牺牲缓存;
牺牲缓存,位于LLC与PCM之间,用于存放LLC中被替换出的子段,并判断牺牲缓存是否写命中;当牺牲缓存写不命中时,根据LRU选出一行;在选出的牺牲缓存行的写回位为第三状态的时候,将选出的牺牲缓存行替换出去,替换出的LLC子段写入PCM;
分路器,位于PCM内部,用于对替换出的牺牲缓存的行和至少一个对应其它chip的写回位为第三状态的一行同时写入PCM的并行控制。
图3为第一算法流程图,牺牲缓存中的数据根据第一算法进行替换,第一算法具体是在LRU基础上结合chip级并行感知提出的一种替换策略。此算法的目的就是使多个写操作可以在chip级实现并行,从而提高对PCM的写并行度。如图所示,具体包括如下步骤:
步骤301,WB初始化为0;
步骤302,牺牲缓存写入,具体为在LLC中要写的数据和原有的数据经过比较后如果不等,对应的子段的改变位C置为1,当LLC写不命中,将改变位C为1的子段替换出去,写入到牺牲缓存;
步骤303,判断牺牲缓存是否写命中,若写命中,则执行步骤304,若写不命中,则执行步骤306;
步骤304,判断命中行WB是否等于1,若等于1,则执行步骤305,若WB为0,则执行步骤307;
步骤305,WB为1,表示该行已经写回内存,将要写入的数据直接写入该行,并将WB置为0;
步骤306,根据LRU将最近最少使用的行选出;
步骤307,如果命中行的WB为0,直接写入该行;
步骤308,根据LRU选出的行,判断该行的WB是否为0,若为0,则执行步骤309,若不为0,则执行步骤307;
步骤309,将该行写入到内存,将要写的数据写入该位置;
步骤310,再根据LRU选出一行;
步骤311,判断该行的WB是否为0,若为0,则执行步骤312,若不为0,则返回步骤310;
步骤312,判断该行与之前的行是否属于不同chip,若属于不同chip,则执行步骤313,若属于同一chip,则返回步骤310;
步骤313,将该行写回PCM,同时将WB置为1。
由于PCM存在功耗限制,每个chip一次只能同时有一个写操作。因此在本发明中,当牺牲缓存中访问chip0的行被替换出来,再在LRU算法的基础上将访问其他chip的行替换出来,写入内存,这样就实现了多个写操作的chip级并行。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种优化PCM内存写的方法,其特征在于,所述方法包括以下步骤:
最后一级缓存LLC接收写指令,其中所述LLC采用分段结构,每一个段又进一步分为更小的子段,每个子段有改变位;
判断所述LLC是否写命中;
当所述LLC写命中,数据写入所述LLC,同时将要写的数据与所述LLC的原有数据进行比较,若不等,则对应所述子段的改变位设置第一状态;当所述LLC写不命中,将改变位为第一状态的子段替换出去,替换出的LLC子段写入牺牲缓存,以便将数据写入相变存储器PCM,其中牺牲缓存设置在所述LLC与所述PCM之间,其中所述子段的大小与牺牲缓存行的大小相同;
其中,所述将要写的数据与所述LLC的原有数据进行比较的步骤包括在要写的数据与原有数据相等的情况下,将对应子段的改变位设置第二状态,所述第二状态不同于所述第一状态;
所述替换出的LLC子段写入牺牲缓存包括:
判断牺牲缓存是否写命中;
当所述牺牲缓存写不命中时,根据LRU选出一行;
在选出的牺牲缓存行的写回位为第三状态的时候,将选出的牺牲缓存的行替换出去,写入PCM;
所述牺牲缓存写命中且写回位为第四状态时,将替换出的LLC子段写入该行,并将写回位设置为第三状态,所述第四状态不同于所述第三状态。
2.根据权利要求1所述的方法,其特征在于,所述牺牲缓存中每一行增加了写回位WB,用于表示该行数据是否被写回内存。
3.根据权利要求1所述的方法,其特征在于,所述牺牲缓存写不命中时,根据LRU选出一行,若该行的写回位为第四状态,则将替换出的LLC子段直接写入,覆盖该行。
4.根据权利要求1所述的方法,其特征在于,所述当牺牲缓存写不命中时,根据LRU选出一行包括根据LRU选出至少一个对应其它芯片的写回位为第三状态的一行;所述将选出的牺牲缓存行替换出去,替换出的牺牲缓存的行写入PCM包括将替换出的牺牲缓存的行和至少一个对应其它芯片的写回位为第三状态的一行同时写入PCM。
5.一种优化PCM内存写的装置,其特征在于,所述装置包括:
LLC,用于接收写指令,并判断LLC是否写命中;当LLC写命中,数据写入LLC,同时将要写的数据与LLC的原有数据进行比较,若不等,则对应子段的改变位设置第一状态;当LLC写不命中,将改变位为第一状态的子段替换出去,替换出的子段写入牺牲缓存;
所述牺牲缓存,位于LLC与PCM之间,用于存放LLC中被替换出的子段,并判断所述牺牲缓存是否写命中;当所述牺牲缓存写不命中时,根据LRU选出一行;在选出的牺牲缓存行的写回位为第三状态的时候,将选出的牺牲缓存的行替换出去,写入PCM。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括分路器,位于PCM内部,用于对所述替换出的牺牲缓存的行和至少一个对应其它芯片的写回位为第三状态的一行同时写入PCM的并行控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310727073.6A CN104750423B (zh) | 2013-12-25 | 2013-12-25 | 一种优化pcm内存写的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310727073.6A CN104750423B (zh) | 2013-12-25 | 2013-12-25 | 一种优化pcm内存写的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750423A CN104750423A (zh) | 2015-07-01 |
CN104750423B true CN104750423B (zh) | 2018-01-30 |
Family
ID=53590190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310727073.6A Expired - Fee Related CN104750423B (zh) | 2013-12-25 | 2013-12-25 | 一种优化pcm内存写的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104750423B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155938B (zh) * | 2016-06-23 | 2019-02-05 | 清华大学 | 延迟PCM内存使用寿命的cache替换方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1955948A (zh) * | 2005-10-26 | 2007-05-02 | 国际商业机器公司 | 用于管理高速缓存数据的数字数据处理设备和方法 |
CN101023414A (zh) * | 2004-09-23 | 2007-08-22 | 英特尔公司 | 提前运行牺牲选择以减少内含式高速缓存中不合需要的置换行为的方法和装置 |
CN102662868A (zh) * | 2012-05-02 | 2012-09-12 | 中国科学院计算技术研究所 | 用于处理器的动态组相联高速缓存装置及其访问方法 |
CN103365794A (zh) * | 2012-03-28 | 2013-10-23 | 国际商业机器公司 | 数据处理方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8244981B2 (en) * | 2009-07-10 | 2012-08-14 | Apple Inc. | Combined transparent/non-transparent cache |
-
2013
- 2013-12-25 CN CN201310727073.6A patent/CN104750423B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101023414A (zh) * | 2004-09-23 | 2007-08-22 | 英特尔公司 | 提前运行牺牲选择以减少内含式高速缓存中不合需要的置换行为的方法和装置 |
CN1955948A (zh) * | 2005-10-26 | 2007-05-02 | 国际商业机器公司 | 用于管理高速缓存数据的数字数据处理设备和方法 |
CN103365794A (zh) * | 2012-03-28 | 2013-10-23 | 国际商业机器公司 | 数据处理方法和系统 |
CN102662868A (zh) * | 2012-05-02 | 2012-09-12 | 中国科学院计算技术研究所 | 用于处理器的动态组相联高速缓存装置及其访问方法 |
Non-Patent Citations (1)
Title |
---|
WADE: Writeback-Aware Dynamic Cache Management;Zhe Wang等;《ACM Transactions on Architecture and Code Optimization》;20131201;第10卷(第4期);第1-21页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104750423A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461393B (zh) | 一种闪存存储器的混合映射方法 | |
Ferreira et al. | Increasing PCM main memory lifetime | |
TWI614752B (zh) | 經由記憶體通道關閉之節電技術 | |
CN106257400B (zh) | 处理设备、计算系统及处理设备访问主存储器的方法 | |
CN103810112B (zh) | 一种非易失性内存系统及其管理方法 | |
CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
US20110029718A1 (en) | Method and system to improve the performance of a multi-level cell (mlc) nand flash memory | |
WO2010066098A1 (zh) | 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
US10997082B2 (en) | Memory system, computing system, and methods thereof for cache invalidation with dummy address space | |
Wei et al. | CBM: A cooperative buffer management for SSD | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
US9830087B2 (en) | Memory wear leveling | |
CN104899154B (zh) | 基于嵌入式系统混合主存的页面管理方法 | |
TW202018513A (zh) | 固態硬碟及其資料存取的方法 | |
Palangappa et al. | WOM-code solutions for low latency and high endurance in phase change memory | |
CN102999441A (zh) | 一种细粒度内存访问的方法 | |
CN106021159A (zh) | 大容量固态硬盘逻辑地址到物理地址映射方法 | |
CN103019624B (zh) | 一种相变内存装置 | |
CN105630699B (zh) | 一种使用mram的固态硬盘及读写缓存管理方法 | |
CN104035897A (zh) | 一种存储控制器 | |
CN104750423B (zh) | 一种优化pcm内存写的方法和装置 | |
CN107341112A (zh) | 一种基于页面访问间隔的闪存数据缓冲区置换方法 | |
CN102362263A (zh) | Ssd控制器与ssd控制器的操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180130 Termination date: 20211225 |