CN112395221B - 一种基于mlc stt-ram的能耗特性的缓存替换方法及设备 - Google Patents
一种基于mlc stt-ram的能耗特性的缓存替换方法及设备 Download PDFInfo
- Publication number
- CN112395221B CN112395221B CN202011307513.9A CN202011307513A CN112395221B CN 112395221 B CN112395221 B CN 112395221B CN 202011307513 A CN202011307513 A CN 202011307513A CN 112395221 B CN112395221 B CN 112395221B
- Authority
- CN
- China
- Prior art keywords
- cache
- index
- evaluation
- cache block
- energy consumption
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于MLC STR‑RAM的能耗特性的缓存替换方法及设备,属于计算机存储技术领域,MLC STT‑RAM作为系统主存,方法包括:在末级缓存中发生缓存替换时,根据预设的N种缓存替换算法分别计算末级缓存中各缓存块的N个指标,分别记为对应缓存块的第一个指标、第二个指标……第N个指标,并分别预估各缓存块中的数据下刷回主存产生的回写能耗,作为对应缓存块的第N+1个指标;对各缓存块的N+1个指标进行综合评判,以选取被淘汰的缓存块,作为目标缓存块;其中,N为大于等于1的整数;N种缓存替换算法中,各缓存替换算法均根据单一的指标选取被淘汰的缓存块,且不同缓存替换算法的指标不同。本发明能够有效减少MLC STT‑RAM主存的回写能耗。
Description
技术领域
本发明属于计算机存储技术领域,更具体地,涉及一种基于MLC STT-RAM的能耗特性的缓存替换方法及设备。
背景技术
随着大规模内存计算的高速发展,动态随机存储器(DRAM,Dynamic Random-Access Memory)作为最广泛使用的主存类型,因其存储密度小、可扩展性有限、反复刷新带来巨大功耗等缺点,已无法满足一些实时系统和高性能系统对设备面积、性能和能耗的需求。并且能耗一直是个不容忽视的问题,主流的芯片制造商也纷纷推出了低能耗芯片技术。
MLC STT-RAM(Multi-Level CellSpin Transfer Torque RAM,多级单元自旋转移力矩磁随机存储器)由于它的高密度,零刷新功耗,读写速度快成为DRAM最有潜力的替代品,利用MLC STT-RAM来取代DRAM作为主存,从而减少处理器和主存之间数据移动开销成为一项值得关注的存储技术热点。传统的DRAM用作主存的系统配置如图1中的(a)所示,在该主存-缓存架构中,由低到高依次是一级缓存、二级缓存、三级缓存、主存,最后一级缓存(LLC,LastLevelCache)会与主存进行数据交换,具体地,当访问地址A的请求在LLC发生缓存缺失,并且LLC没有空闲块(被标记为可用的块),根据缓存替换策略在LLC寻找一个目标缓存块淘汰,若该缓存块为脏块,写回到主存,并标记块可用,否则,直接标记块可用,然后去主存中寻找数据命中并写入根据替换算法选取的目标块位置,最后返回地址A的数据,整个访问流程结束。在基于DRAM的主存中,常用的缓存替换算法包括LRU(Least RecentlyUsed,最近最少使用)算法、LFU(Least Frequently Used,最不经常使用)算法等。
原有面向DRAM作为主存设计的缓存替换算法在基于MLC STT-RAM的主存中就不适用了,这是由于在基于DRAM的主存中,根据缓存替换策略被驱逐的数据从LLC刷新到主存时具有固定的内存能耗,所以在设计缓存替换策略时并不需要考虑内存的写入能耗问题,但是内存能耗的一大主要来源是数据的刷新,而MLC STT-RAM存在非对称写能耗特性和由两步转换引起的高写能耗问题,这使得将前面向DRAM设计的缓存替换策略应用于基于MLCSTT-RAM的主存时,往往会带来严重的写能耗问题。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种基于MLC STT-RAM的能耗特性的缓存替换方法及设备,其目的在于,减少主存的回写能耗。
为实现上述目的,按照本发明的一个方面,提供了一种基于MLC STT-RAM的能耗特性的缓存替换方法,MLC STT-RAM作为系统主存,方法包括:
在末级缓存中发生缓存替换时,根据预设的N种缓存替换算法分别计算末级缓存中各缓存块的N个指标,分别记为对应缓存块的第一个指标、第二个指标……第N个指标,并分别预估各缓存块中的数据下刷回主存产生的回写能耗,作为对应缓存块的第N+1个指标;
对各缓存块的N+1个指标进行综合评判,以选取被淘汰的缓存块,作为目标缓存块;
其中,N为大于等于1的整数;N种缓存替换算法中,各缓存替换算法均根据单一的指标选取被淘汰的缓存块,且不同缓存替换算法的指标不同。
本发明在末级缓存中发生缓存替换时,根据不同的单一指标缓存替换算法计算各缓存块的不同指标,并预估各缓存块的回写能耗作为一个新的指标,基于所有的指标共同选取被淘汰的缓存块,由此在保证LLC缓存命中率的情况下,充分利用MLC STT-RAM的缓存特性,有效降低LLC缓存块替换时主存的回写能耗。
进一步地,预估各缓存块中的数据下刷回主存产生的回写能耗时,假设主存中当前的数据均为0。
研究发现,主存数据存在大量的0值与窄值,且主存数据的分布遵循空间局部性,相邻数据相似度较高;本发明在预估各缓存块中的数据下刷回主存产生的回写能耗时,假设主存中当前的数据均为0,这使得在预估回写能耗时,仅需考虑较少的状态转换,并且无需考虑数据下刷过程中因产生中间状态而额外产生的能耗,从而在保证预估准确度的情况下,大大简化了计算过程,也保证了预估的可行性。
进一步地,预估缓存块回写能耗的公式如下:
Epredict=num00*0+num01*1.9+num10*5.1+num11*3.2;
其中,Epredict表示预估的回写能耗,num00、num01、num10和num11分别表示缓存块中存储00、01、10和11的存储单元数量。
在假设LLC中数据下刷时,主存中数据均为0的情况下,本发明仅需考虑四种状态转变产生的回写能耗,即00→00、00→01、00→01、00→11,基于上述计算公式,本发明可以根据LLC中实际存储的数据,准确、快速地估算出LLC缓存块的回写能耗。
进一步地,N种缓存替换算法为最近最久未使用算法和/或最近最少使用算法。
最近最久未使用算法(LRU)和最近最少使用算法(LFU)是最为经典的单一指标缓存替换算法,本发明在基于MLC STT-RAM的能耗特性估算LLC缓存块的回写能耗的同时,采用LRU和LFU中的至少一种,能够在降低主存回写能耗的同时,有效保证LLC缓存的命中率。
进一步地,本发明提供的基于MLC STT-RAM的能耗特性的缓存替换方法,还包括:若目标缓存块为脏数据块,则将目标数据块下刷至主存。
进一步地,本发明提供的基于MLC STT-RAM的能耗特性的缓存替换方法,还包括:当末级缓存之上的缓存发生替换时,利用N种缓存替换算法中的一种缓存替换算法选取被淘汰的缓存块。
进一步地,对各缓存块的N+1个指标进行综合评判,以选取被淘汰的缓存块,包括:
依据各缓存块的N+1个指标进行模糊评判,以选取被淘汰的缓存块。
模糊评判是一种基于模糊数学的综合评价方法,该综合评价方法根据模糊数学的隶属度理论把定性评价转化为定量评价,即用模糊数学对受到多种因素制约的事物或对象做出一个总体的评价,具有结果清晰,系统性强的特点,能较好地解决模糊的、难以量化的问题,适合各种非确定性问题的解决;本发明在计算出包括回写能耗在内的N+1个指标后,利用模糊评判的方式依据所计算的指标选取被淘汰的LLC缓存块,能够获得较好的评判结果,从而在保证LLC缓存命中率的情况下,尽可能降低回写能耗。
进一步地,依据各缓存块的N+1个指标进行模糊评判,以选取被淘汰的缓存块,包括:
(S1)利用缓存块的N+1个指标构建指标集U={u1,u2,……uN+1},ui表示第i个指标,i∈{1,2,……N+1};
(S2)构建评判集V={v1,v2,……vM},vj表示第j个评判等级,评判等级越高,评判对象被淘汰的概率越大,j∈{1,2,……M},M为正整数;将每一个指标的最大值与最小值之间的范围划分为M个区间,M个区间与M个评判等级一一对应;
(S3)以缓存块为评判对象,进行单因素模糊评判,得到评判矩阵R;评判矩阵R中,第i行第j列元素表示评判对象的第i个指标被评判为第j个评判等级的比例;
(S4)根据预设的指标权重W={w1,w2,……wN+1},建立模糊评判模型,进行综合评判;模糊评判模型为:wi表示第i个指标的权重,用于反映第i个指标的重要程度,所有权重之和为1且wN+1大于其他权重;表示模糊运算算子;B表示综合评价向量,用于描述评判对象的综合性能;
(S5)将综合评价向量B归一化,得到评判对象被评判为各个等级的比例;
(S6)将各评判对象中,最高评判等级的比例最大的评判对象所对应的缓存块,选取为被淘汰的缓存块。
按照本发明的另一个方面,提供了一种基于MLC STT-RAM的能耗特性的缓存替换设备,MLC STT-RAM作为系统主存,设备包括:N个指标计算模块、1个能耗预估模块以及一个评判模块;
N个指标计算模块,分别用于在末级缓存中发生缓存替换时,根据预设的N种缓存替换算法分别计算末级缓存中各缓存块的N个指标,分别记为对应缓存块的第一个指标、第二个指标……第N个指标;
能耗预估模块,用于在末级缓存中发生缓存替换时,分别预估各缓存块中的数据下刷回主存产生的回写能耗,作为对应缓存块的第N+1个指标;
评判模块,用于依据各缓存块的N+1个指标选取被淘汰的缓存块,作为目标缓存块;
其中,N为大于等于1的整数;N种缓存替换算法中,各缓存替换算法均根据单一的指标选取被淘汰的缓存块,且不同缓存替换算法的指标不同。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明在末级缓存中发生缓存替换时,根据不同的单一指标缓存替换算法计算各缓存块的不同指标,并预估各缓存块的回写能耗作为一个新的指标,基于所有的指标共同选取被淘汰的缓存块,由此在保证LLC缓存命中率的情况下,充分利用MLC STT-RAM的缓存特性,有效降低LLC缓存块替换时主存的回写能耗。
(2)本发明在预估各缓存块中的数据下刷回主存产生的回写能耗时,假设主存中当前的数据均为0,这使得在预估回写能耗时,仅需考虑较少的状态转换,并且无需考虑数据下刷过程中因产生中间状态而额外产生的能耗,从而在保证预估准确度的情况下,大大简化了计算过程,也保证了预估的可行性。
(3)本发明在计算出包括回写能耗在内的N+1个指标后,利用模糊评判的方式依据所计算的指标选取被淘汰的LLC缓存块,能够获得最优的评判结果。
附图说明
图1为不同配置下的主存-缓存架构示意图;其中,(a)为传统的DRAM用作主存的系统配置示意图,(b)为本发明实施例提供的MLC STT-RAM用作主存的系统配置示意图;
图2为本发明实施例提供的基于MLC STT-RAM的能耗特性的缓存替换方法示意图;
图3为本发明实施例提供的LLC结构示意图;
图4为本发明实施例提供的LLC和MLC STT-RAM中存储的数据示意图;其中,(a)为LLC中存储的数据示意图,(b)为MLC STT-RAM中存储的数据示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在详细解释本发明的技术方案之前,先对MLC STT-RAM的能耗特性进行简要介绍。
在MLC STT-RAM中,自由层被划分为两个具有不同磁特性的磁域,分别称为硬域(HardBit)和软域(SoftBit),硬域和软域的状态分别用于存储高位比特数据和地位比特数据。MLC STT-RAM中存在四类状态转换,分别是:
ZT(Zero Transition)状态转换:写入数据后,存储单元中的数据与原来存储的旧数据相同,例如00→00;
ST(Soft Transition)状态转换:写入数据后,仅软域数据发生变化,例如00→11或者10→11;
HT(Hard Transition)状态转换:写入数据后,仅硬域数据发生变化,例如00→10或者01→11;
TT(Two-step Transition)状态转换:写入数据后,软域和硬域数据均发生变化,例如00→10,其中第一步状态转换为00→11(HT),第二步状态转换为11→10(ST)。
MLC STT-RAM的一个cell存储2个bit,对应00、01、10、11四个值,因此新旧数据转换组合有16种。
MLC STT-RAM中,软域能够在小电流的作用下发生转换,而硬域必须在大电流的作用下才能发生转换,硬域的电流高于软域。所以当注入软域的小电流时,软域的磁方向发生变化,而硬域则由于电流太小不至使其磁方向发生变化而能够保持在原来的状态,即发生了ST转换。然而,当注入硬域的大电流时,硬域和软域的磁方向均改变为同一方向,即发生了HT转换。上述的TT两步转换主要是由MLC STT-RAM的不对称写能耗特性而设计出来的,两步过程的写能耗等于硬位翻转和软位翻转能耗之和。
针对现有的面向DRAM主存的缓存替换算法直接应用于面向MLC STT-RAM主存时,会产生大量回写能耗的技术问题,本发明提供了一种基于MLC STT-RAM的能耗特性的缓存替换方法和设备,其整体思路在于:预先确定一个或多个单一指标的缓存替换算法,在末级缓存发生缓存替换时,依据所选取的缓存替换算法计算相应的指标,同时预估缓存块的回写能耗作为新的指标,对所计算的左右指标进行综合评判,最终选取被淘汰的缓存块。以下为实施例。
实施例1:
一种基于MLC STT-RAM的能耗特性的缓存替换方法,如图1所示,MLC STT-RAM作为系统主存;方法包括:
在末级缓存中发生缓存替换时,根据预设的N种缓存替换算法分别计算末级缓存中各缓存块的N个指标,分别记为对应缓存块的第一个指标、第二个指标……第N个指标,并分别预估各缓存块中的数据下刷回主存产生的回写能耗,作为对应缓存块的第N+1个指标;
对各缓存块的N+1个指标进行综合评判,以选取被淘汰的缓存块,作为目标缓存块;
其中,N为大于等于1的整数;N种缓存替换算法中,各缓存替换算法均根据单一的指标选取被淘汰的缓存块,且不同缓存替换算法的指标不同;
作为一种可选的实施方式,本实施例中,所选取的N种缓存替换算法具体为最近最久未使用算法(LRU)和最近最少使用算法(LFU),其中,LRU以访问距离(即距离上次访问的时钟周期数)作为指标,访问距离越大,被淘汰概率大,LFU以访问频次(即在预设时间段内访问的次数)作为指标,访问频次越大,被淘汰概率越小,相应地,如图2所示,本实施例中,对于每一个缓存块,共需计算三个指标,分别是访问距离、访问频次和预估的回写能耗;LRU和LFU是最为经典的单一指标缓存替换算法,本实施例在考虑MLC STT-RAM的能耗特性的同时,结合LRU和LFU计算相应的指标,能够在降低主存回写能耗的同时,有效保证LLC缓存的命中率;应当说明的是,此处仅为本发明一种可选的实施方式,不应理解为对本发明唯一的限定,在本发明其他的一些实施例中,也可以仅使用LRU或LFU中的一种,甚至使用其他的单一指标缓存替换算法而不使用LRU或LFU,也可以同时使用LRU/LFU和其他的单一指标缓存替换算法,具体的算法数量和种类,可根据实际需求选择,在此将不作一一列举。
作为一种可选的实施方式,如图2所示,本实施例中,计算各LLC各缓存块的各个指标后,具体通过模糊评判的方式依据所计算的指标选取被淘汰的缓存块;模糊评判是一种基于模糊数学的综合评价方法,该综合评价方法根据模糊数学的隶属度理论把定性评价转化为定量评价,即用模糊数学对受到多种因素制约的事物或对象做出一个总体的评价,具有结果清晰,系统性强的特点,能较好地解决模糊的、难以量化的问题,适合各种非确定性问题的解决;本实施例利用模糊评判的方式依据所计算的指标选取被淘汰的LLC缓存块,能够获得较好的评判结果,从而在保证LLC缓存命中率的情况下,尽可能降低回写能耗;同样地,模糊评判仅为本发明一种可选的综合评判方法,不应理解为对本发明的唯一限定,其他可对多个指标进行折中达到tradeoff的评判方法都可以用于本发明。
本实施例中,LLC的缓存相联度为16,如图3所示,其中,ExistingBlock表示的是主存中被假设为0的现有数据,缓存块大小为64Byte,那么4MB的LLC包含65536个缓存块,16路相联时划分为4096set;访问请求发起的时候,会先确定一个相联组,在该相联组中的16个缓存块中选取被淘汰的缓存块,具体地,根据能耗计算公式,得到预估的回写能耗,然后综合N+1个指标进行综合评判选取得到目标缓存块;依据各缓存块的各个指标,即访问距离、访问频次和回写能耗,进行模糊评判,以选取被淘汰的缓存块,包括:
(S1)利用缓存块的3个指标构建指标集U={u1,u2,u3},ui表示第i个指标,i∈{1,2,3};
具体地,u1表示访问距离,u2表示访问频次,u3表示回写能耗;
(S2)构建评判集V={v1,v2,……vM},vj表示第j个评判等级,评判等级越高,评判对象被淘汰的概率越大,j∈{1,2,……M},M为正整数;将每一个指标的最大值与最小值之间的范围划分为M个区间,M个区间与M个评判等级一一对应;
不失一般性地,本实施例中,设置M=3,即设置了3个评判等级,用于描述评判对象在各指标下的表现,三个等级分别对应高、中、低;
(S3)以缓存块为评判对象,进行单因素模糊评判,得到评判矩阵R;评判矩阵R中,第i行第j列元素表示评判对象的第i个指标被评判为第j个评判等级的比例;
本实施例中,评判矩阵R的表达式如下:
其中,第一行表示评判对象被认为访问距离为高、中、低的比例,矩阵的第二行表示评判对象被认为访问频次为低、中、高的比例,矩阵的第三行表示评判对象被认为回写能耗为高、中、低的比例;
具体地,本实施例中,由于缓存目标组下有16个缓存块,计算16个缓存块访问距离的最大值与最小值之间的两个三等分值,将最大值与最小值之间的范围划分为三个区间,访问距离大于三等分大值的缓存块的访问距离为高,访问距离小于三等分小值的缓存块访问距离为低,其余缓存块访问距离为中,同理确定缓存块访问频次与回写能耗的评判等级比例,得到评判矩阵R;
当评判等级发生变化时,最大值与最小值之间的范围划分相应发生变化即可;
(S4)根据预设的指标权重W={w1,w2,w3},建立模糊评判模型,进行综合评判;模糊评判模型为:wi表示第i个指标的权重,用于反映第i个指标的重要程度,所有权重之和为1且wN+1大于其他权重;表示模糊运算算子,选择任意一种即可;B表示综合评价向量,用于描述评判对象的综合性能;
作为一种可选的实施方式,本实施例中,访问距离、访问频次以及回写能耗三个指标的权重分别为0.3,0.3,0.4;
(S5)将综合评价向量B归一化,得到评判对象被评判为各个等级的比例;
例如,某个缓存块归一化处理之后的结果为:B'=(0.32,0.27,0.41),那么认为该评判对象被评判为高中低的百分比分别为0.32,0.27,0.41,在评判对象为缓存块时,即表示认为该缓存块淘汰优先级高、中、低的比例;
(S6)将各评判对象中,最高评判等级的比例最大的评判对象所对应的缓存块,选取为被淘汰的缓存块;
目标组中有16个缓存块,每个缓存块都有一个被认为淘汰优先级高的百分比,选择该百分比最高的缓存块作为淘汰块。
研究发现,主存数据存在大量的0值与窄值,且主存数据的分布遵循空间局部性,相邻数据相似度较高;
基于上述研究发现,作为一种优选的实施方式,本实施例中,预估各缓存块中的数据下刷回主存产生的回写能耗时,假设主存中当前的数据均为0;从而在预估回写能耗时,仅需考虑较少的状态转换,并且无需考虑数据下刷过程中因产生中间状态而额外产生的能耗,从而在保证预估准确度的情况下,大大简化了计算过程,也保证了预估的可行性。
MLC STT-RAM的各状态转换对应的写能耗如表1所示:
表1
为了实现对主存回写能耗的量化估计,本实施例中,在假设主存中当前的数据均为0的情况下,具体采用如下计算公式预估LLC缓存块的回写能耗:
Epredict=num00*0+num01*1.9+num10*5.1+num11*3.2;
其中,Epredict表示预估的回写能耗,num00、num01、num10和num11分别表示缓存块中存储00、01、10和11的存储单元数量;
在假设LLC中数据下刷时,主存中数据均为0的情况下,本实施例仅需考虑四种状态转变产生的回写能耗,即00→00、00→01、00→01、00→11,基于上述计算公式,本发明可以根据LLC中实际存储的数据,准确、快速地估算出LLC缓存块的回写能耗。
本实施例还包括:当末级缓存之上的缓存发生替换时,利用N种缓存替换算法(即LRU和LFU)中的一种缓存替换算法选取被淘汰的缓存块。
本实施例还包括:若目标缓存块为脏数据块,则将目标数据块下刷至主存;
从LLC淘汰的缓存块为脏块时,需要回写到主存,现有的缓存替换策略应用在MLCSTT-RAM做主存的系统时,没有考虑回写到主存的缓存块是否会给主存带来写能耗。假设LLC发生缓存替换时,LLC和MLC STT-RAM主存中的数据分别如图4中的(a)和(b)所示,假设LLC大小为3,所需缓存块访问顺序为B'-A'-B'-A'-B'-C'-D,假设这些访问发生在t个时钟周期,当需要访问D时,LLC不命中,继续从主存中找到D放入LLC,但由于此时LLC已满,会发生LLC的缓存替换,需要淘汰一个缓存块。
采用传统缓存替换算法,若按照LFU进行替换时,因为在t时期内C'只被访问了一次,按照LFU应该淘汰C',淘汰C'时主存中C应更新为C',对应的MLC STT-RAM各cell状态转换依次为{HT,TT,HT,ST,ZT,TT,HT,ST};若按照LRU算法,应该淘汰A',因为B'和C'在它之后都被访问过,淘汰A'时主存中A应更新为A',对应的MLC STT-RAM各cell状态转换依次为{HT,ST,ZT,ST,TT,ZT,TT,ZT};而如果比较回写能耗大小,淘汰B'时主存中B应更新为B',对应的MLC STT-RAM各cell状态转换依次为{ST,ST,ST,ST,ZT,ZT,ZT,ZT},根据本实施例提供的回写能耗预估计算方案发现淘汰B'的回写能耗最少,应该淘汰B'。从LLC淘汰不同数据时,主存中数据更新的状态转换情况如表2所示。
表2 MLC STT-RAM cell状态转换的写能耗(PJ)
A→A' | B→B' | C→C' | |
Old value | 0011001110110100 | 0000111110010110 | 1010010111001001 |
New value | 1110001001111000 | 0101101010010110 | 0001110011100000 |
ZT | 3 | 4 | 1 |
ST | 2 | 4 | 2 |
HT | 1 | 0 | 3 |
TT | 2 | 0 | 2 |
Soft transition | 4 | 4 | 4 |
Hard transition | 3 | 0 | 5 |
由此可见,在MLC STT-RAM做主存的系统中,基于多项指标综合评判的结果选取被淘汰的缓存块,对于降低MLC STT-RAM主存的回写能耗有着重要的意义。
总体而言,本实施例在末级缓存中发生缓存替换时,根据不同的单一指标缓存替换算法计算各缓存块的不同指标,并预估各缓存块的回写能耗作为一个新的指标,基于所有的指标共同选取被淘汰的缓存块,由此在保证LLC缓存命中率的情况下,充分利用MLCSTT-RAM的缓存特性,有效降LLC缓存块替换时主存的回写能耗。
实施例2:
一种基于MLC STT-RAM的能耗特性的缓存替换设备,MLC STT-RAM作为系统主存,设备包括:N个指标计算模块、1个能耗预估模块以及一个评判模块;
N个指标计算模块,分别用于在末级缓存中发生缓存替换时,根据预设的N种缓存替换算法分别计算末级缓存中各缓存块的N个指标,分别记为对应缓存块的第一个指标、第二个指标……第N个指标;
能耗预估模块,用于在末级缓存中发生缓存替换时,分别预估各缓存块中的数据下刷回主存产生的回写能耗,作为对应缓存块的第N+1个指标;
评判模块,用于依据各缓存块的N+1个指标选取被淘汰的缓存块,作为目标缓存块;
其中,N为大于等于1的整数;N种缓存替换算法中,各缓存替换算法均根据单一的指标选取被淘汰的缓存块,且不同缓存替换算法的指标不同;
本实施例中,各模块的具体实施方式可参考上述方法实施例中的描述,在此将不作复述。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于MLC STT-RAM的能耗特性的缓存替换方法,其特征在于,所述MLC STT-RAM作为系统主存,所述方法包括:
在末级缓存中发生缓存替换时,根据预设的N种缓存替换算法分别计算所述末级缓存中各缓存块的N个指标,分别记为对应缓存块的第一个指标、第二个指标……第N个指标,并分别预估各缓存块中的数据下刷回所述主存产生的回写能耗,作为对应缓存块的第N+1个指标;
对各缓存块的N+1个指标进行综合评判,以选取被淘汰的缓存块,作为目标缓存块,包括:
(S1)利用缓存块的N+1个指标构建指标集U={u1,u2,……uN+1},ui表示第i个指标,i∈{1,2,……N+1};
(S2)构建评判集V={v1,v2,……vM},vj表示第j个评判等级,评判等级越高,评判对象被淘汰的概率越大,j∈{1,2,……M},M为正整数;将每一个指标的最大值与最小值之间的范围划分为M个区间,所述M个区间与M个评判等级一一对应;
(S3)以缓存块为评判对象,进行单因素模糊评判,得到评判矩阵R;所述评判矩阵R中,第i行第j列元素表示评判对象的第i个指标被评判为第j个评判等级的比例;
(S4)根据预设的指标权重W={w1,w2,……wN+1},建立模糊评判模型,进行综合评判;所述模糊评判模型为:wi表示第i个指标的权重,用于反映第i个指标的重要程度,所有权重之和为1且wN+1大于其他权重;表示模糊运算算子;B表示综合评价向量,用于描述评判对象的综合性能;
(S5)将所述综合评价向量B归一化,得到评判对象被评判为各个等级的比例;
(S6)将各评判对象中,最高评判等级的比例最大的评判对象所对应的缓存块,选取为被淘汰的缓存块;
其中,N为大于等于1的整数;所述N种缓存替换算法中,各缓存替换算法均根据单一的指标选取被淘汰的缓存块,且不同缓存替换算法的指标不同。
2.如权利要求1所述的基于MLC STT-RAM的能耗特性的缓存替换方法,其特征在于,预估各缓存块中的数据下刷回所述主存产生的回写能耗时,假设所述主存中当前的数据均为0。
3.如权利要求2所述的基于MLC STT-RAM的能耗特性的缓存替换方法,其特征在于,预估缓存块回写能耗的公式如下:
Epredict=num00*0+num01*1.9+num10*5.1+num11*3.2;
其中,Epredict表示预估的回写能耗,num00、num01、num10和num11分别表示缓存块中存储00、01、10和11的存储单元数量。
4.如权利要求1所述的基于MLC STT-RAM的能耗特性的缓存替换方法,其特征在于,所述N种缓存替换算法为最近最久未使用算法和/或最近最少使用算法。
5.如权利要求1-4任一项所述的基于MLC STT-RAM的能耗特性的缓存替换方法,其特征在于,还包括:若所述目标缓存块为脏数据块,则将所述目标缓存块下刷至所述主存。
6.如权利要求1-4任一项所述的基于MLC STT-RAM的能耗特性的缓存替换方法,其特征在于,还包括:当所述末级缓存之上的缓存发生替换时,利用所述N种缓存替换算法中的一种缓存替换算法选取被淘汰的缓存块。
7.一种基于MLC STT-RAM的能耗特性的缓存替换设备,其特征在于,所述MLC STT-RAM作为系统主存,所述设备包括:N个指标计算模块、1个能耗预估模块以及一个评判模块;
所述N个指标计算模块,分别用于在末级缓存中发生缓存替换时,根据预设的N种缓存替换算法分别计算所述末级缓存中各缓存块的N个指标,分别记为对应缓存块的第一个指标、第二个指标……第N个指标;
所述能耗预估模块,用于在末级缓存中发生缓存替换时,分别预估各缓存块中的数据下刷回所述主存产生的回写能耗,作为对应缓存块的第N+1个指标;
所述评判模块,用于对各缓存块的N+1个指标进行综合评判,以选取被淘汰的缓存块,作为目标缓存块,包括:
(S1)利用缓存块的N+1个指标构建指标集U={u1,u2,……uN+1},ui表示第i个指标,i∈{1,2,……N+1};
(S2)构建评判集V={v1,v2,……vM},vj表示第j个评判等级,评判等级越高,评判对象被淘汰的概率越大,j∈{1,2,……M},M为正整数;将每一个指标的最大值与最小值之间的范围划分为M个区间,所述M个区间与M个评判等级一一对应;
(S3)以缓存块为评判对象,进行单因素模糊评判,得到评判矩阵R;所述评判矩阵R中,第i行第j列元素表示评判对象的第i个指标被评判为第j个评判等级的比例;
(S4)根据预设的指标权重W={w1,w2,……wN+1},建立模糊评判模型,进行综合评判;所述模糊评判模型为:wi表示第i个指标的权重,用于反映第i个指标的重要程度,所有权重之和为1且wN+1大于其他权重;表示模糊运算算子;B表示综合评价向量,用于描述评判对象的综合性能;
(S5)将所述综合评价向量B归一化,得到评判对象被评判为各个等级的比例;
(S6)将各评判对象中,最高评判等级的比例最大的评判对象所对应的缓存块,选取为被淘汰的缓存块;
其中,N为大于等于1的整数;所述N种缓存替换算法中,各缓存替换算法均根据单一的指标选取被淘汰的缓存块,且不同缓存替换算法的指标不同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011307513.9A CN112395221B (zh) | 2020-11-20 | 2020-11-20 | 一种基于mlc stt-ram的能耗特性的缓存替换方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011307513.9A CN112395221B (zh) | 2020-11-20 | 2020-11-20 | 一种基于mlc stt-ram的能耗特性的缓存替换方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112395221A CN112395221A (zh) | 2021-02-23 |
CN112395221B true CN112395221B (zh) | 2023-02-10 |
Family
ID=74606730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011307513.9A Active CN112395221B (zh) | 2020-11-20 | 2020-11-20 | 一种基于mlc stt-ram的能耗特性的缓存替换方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395221B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114995751B (zh) * | 2022-05-25 | 2024-08-09 | 华中科技大学 | 一种通用缓存替换方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915150A (zh) * | 2015-05-26 | 2015-09-16 | 浙江工商大学 | 一种优化stt-ram缓存写能耗的方法 |
CN107851068A (zh) * | 2015-07-30 | 2018-03-27 | 华为技术有限公司 | 一种高速缓冲存储器中存储数据的替换方法和替换装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180285268A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Method and apparatus for reducing write congestion in non-volatile memory based last level caches |
US10467137B2 (en) * | 2017-09-27 | 2019-11-05 | Intel Corporation | Apparatus, system, integrated circuit die, and method to determine when to bypass a second level cache when evicting modified data from a first level cache |
-
2020
- 2020-11-20 CN CN202011307513.9A patent/CN112395221B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915150A (zh) * | 2015-05-26 | 2015-09-16 | 浙江工商大学 | 一种优化stt-ram缓存写能耗的方法 |
CN107851068A (zh) * | 2015-07-30 | 2018-03-27 | 华为技术有限公司 | 一种高速缓冲存储器中存储数据的替换方法和替换装置 |
Non-Patent Citations (1)
Title |
---|
Rethinking Last-level-cache Write-back Strategy for MLC STT-RAM Main Memory with Asymmetric Write Energy;Yu-Pei Liang等;《2019 IEEE/ACM International Symposium on Low Power Electronics and Design 》;20191231;正文第3页第2栏、第4页第1栏 * |
Also Published As
Publication number | Publication date |
---|---|
CN112395221A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8103894B2 (en) | Power conservation in vertically-striped NUCA caches | |
US7558920B2 (en) | Apparatus and method for partitioning a shared cache of a chip multi-processor | |
JP5745168B2 (ja) | 大型ramキャッシュ | |
CN106569960B (zh) | 一种混合主存的末级缓存管理方法 | |
CN105975402B (zh) | 一种混合内存环境下淘汰数据感知的缓存方法与系统 | |
Chen et al. | A novel page replacement algorithm for the hybrid memory architecture involving PCM and DRAM | |
Quan et al. | Prediction table based management policy for STT-RAM and SRAM hybrid cache | |
CN108572799B (zh) | 一种双向哈希链表的异构内存系统数据页迁移方法 | |
Wu et al. | APP-LRU: A new page replacement method for PCM/DRAM-based hybrid memory systems | |
Joo et al. | A hybrid PRAM and STT-RAM cache architecture for extending the lifetime of PRAM caches | |
CN112395221B (zh) | 一种基于mlc stt-ram的能耗特性的缓存替换方法及设备 | |
CN116501249A (zh) | 一种减少gpu内存重复数据读写的方法及相关设备 | |
CN106909323B (zh) | 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统 | |
Valero et al. | Design, performance, and energy consumption of eDRAM/SRAM macrocells for L1 data caches | |
Chen et al. | Efficient buffer management for PCM-enhanced hybrid memory architecture | |
Zhang et al. | DualStack: A high efficient dynamic page scheduling scheme in hybrid main memory | |
Behnam et al. | Redcache: reduced dram caching | |
Zhou et al. | VAIL: A Victim-Aware Cache Policy to improve NVM Lifetime for hybrid memory system | |
Liang et al. | Rethinking last-level-cache write-back strategy for MLC STT-RAM main memory with asymmetric write energy | |
Peng et al. | Agdm: An adaptive granularity data migration strategy for hybrid memory systems | |
Soltani et al. | Prolonging lifetime of non-volatile last level caches with cluster mapping | |
Zheng et al. | Page Weight-Based Buffer Replacement Algorithm for Flash-Based Databases | |
He et al. | A novel architecture of large hybrid cache with reduced energy | |
Lee et al. | A last-level cache management for enhancing endurance of phase change memory | |
Khajekarimi et al. | Integer linear programming model for allocation and migration of data blocks in the STT‐RAM‐based hybrid caches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |