一种字块划分的低功耗磁存储器缓存架构设计方法
【专利摘要】一种字块划分的低功耗磁存储器缓存架构设计方法,它有四大步骤:一、统计出在L1写回数据和L1读取的数据中出现频率最高的几个块模式,组成一个模式表并,相应配置一个索引值;二、程序运行时,模式表加载到一个特殊的L1级缓存中;当从L2级缓存读取到一个新数据时,计算新数据的模式,并在模式表中查看新数据的模式是否命中;三、当数据需要写回到L2级缓存中时,再次计算数据的模式,将该模式与块的索引位指示的模式相比较,得出控制位;四、将数据写回到L2时,用控制位控制对应子块的写操作,如果控制位为1,则设置对应子块的数据写回控制信号有效,否则对应子块的写使能为无效。
【专利说明】一种字块划分的低功耗磁存储器缓存架构设计方法
【技术领域】
[0001]本发明涉及一种字块划分的低功耗磁存储器缓存架构设计方法,它是一种通过对缓存划分子块,为子块添加数据更改标志位,通过对该标志位识别将子块划分为不同的类另IJ。通过对不同类别子块的写操作进行优化来降低缓存写能耗的磁存储器架构设计方法。属于磁存储器和低功耗设计【技术领域】。
技术背景
[0002]随着工艺尺寸的不断进步,片上晶体管集成度越来越高。为了在给定功耗约束下,大幅度提高处理器性能,多核处理器开始获得广泛应用。随着核数的增加,处理器对片上缓存容量和带宽需求越来越大。随工艺尺寸的减小和容量的增加,传统的基于静态随机存储器(Static Random Access Memory,以下简写为SRAM)的片上缓存技术静态功耗急剧增加。成为当今低功耗设计的一大挑战。
[0003]近年来,研究人员提出了自旋转移力矩磁随机存储器(Spin-Transfer TorqueMagnetic Random Access Memory,以下简写为STT-MRAM)。与传统的静态随机存储器(SRAM)相比,该存储器具有如下优势:
[0004]1.STT-MRAM利用磁性隧道结(Magnetic Tunnel Junct1n,以下简写为 MTJ)存储数据,是一种非挥发性存储器件,即使断电,数据也不会丢失;
[0005]2.STT-MRAM利用磁性材料而非电荷存储数据,几乎没有漏电流,静态功耗极低;
[0006]3.STT-MRAM存储单元的面积为SRAM的1/4,因此同样的面积上可以集成更大容量的片上缓存,可以显著提高系统的性能。
[0007]因此,许多研究人员提出利用STT-MRAM替代SRAM作为片上缓存。然而STT-MRAM与SRAM相比也有一些缺点。首先,要向STT-MRAM的存储单元中写入数据,需要一个较大的电流(几十至几百微安);其次,写入时间较长(一般为十几到几十纳秒),远远高于SRAM。片上缓存与处理器核心的数据交互最为频繁,如果程序执行的过程中,需要频繁写数据到缓存,会导致基于STT-MRAM技术的片上缓存写功耗非常大,有可能抵消掉采用STT-MRAM所带来的好处。因此,如何对STT-MRAM的写功耗进行优化,是一个非常关键的问题。
【发明内容】
[0008]1、发明目的:本发明提供了一种字块划分的低功耗磁存储器缓存架构设计方法,它是一种利用高速缓存回写数据的特征,将需回写的数据块进行分类,去掉不同类别数据块中冗余数据的回写以降低写能耗的磁存储器架构设计方法。
[0009]2、技术方案:本发明提供的方案主要针对缓存中的L1,L2两级缓存。LI级缓存使用SRAM,L2级缓存使用STT-MRAM等写能耗较高的磁存储器作替换。针对STT-MRAM等磁存储器写能耗较高,将LI级缓存中的单个块划分为多个子块并为每个块设置索引值。通过建立数据特征模式表,每次读入数据时查找模式表并记录读入数据的特征,写回该数据时再次匹配写回数据的特征。比较两个特征得到控制信息,根据控制信息将对应子块写回。
[0010]综上所述,见图2,本发明一种字块划分的低功耗磁存储器缓存架构设计方法,该方法具体步骤如下:
[0011]步骤一:统计出在LI写回数据和LI读取的数据中出现频率最高的几个块模式,这些模式组成一个模式表。在模式表中,每个模式都配置一个索引值。
[0012]步骤二:程序运行时,模式表加载到一个特殊的LI级缓存中。当从L2级缓存读取到一个新数据时,计算新数据的模式,并在模式表中查看新数据的模式是否命中。如果命中,则把该模式的索引值记录到对应块的索引位中,如果没有命中,则设置对应块的索引位为O (索引值O在模式表中预留,专门用于表示没有命中)。参见附图1 (a)。
[0013]步骤三:当数据需要写回到L2级缓存中时,再次计算数据的模式,将该模式与块的索引位指示的模式相比较,得出控制位。控制位的长度与块中子块的数量相同,即一个子块对应一位的控制位。这一位的控制位将用于控制该子块的写回与否(在下面的描述中,将控制位置I表示写回,将控制位置O表示不写回)。控制位的生成规则:如果新模式与旧模式至少有一个没有命中,则按照规则一执行,否则,按照规则二执行。
[0014]规则一:将所有的控制位置I。
[0015]规则二:以子块为单位进行比较,如果子块的新模式和老模式的模式值都是O或者都是1,则将控制位置为0,否则将控制位置为I。参见附图1(b)。
[0016]步骤四:将数据写回到L2时,用控制位控制对应子块的写操作,如果控制位为1,则设置对应子块的数据写回控制信号有效,否则对应子块的写使能为无效。根据统计,会有很多控制位为0,因此,很多子块实际上都没有进行写入,从而减少回写L2级缓存的数据量,达到降低写功耗的目的。参见附图1(b)。
[0017]具体架构和模式表结构示意图参见附图1 (a)_图1 (b)。
[0018]处理器访问高速缓存(Cache),产生缓存未命中(Cache Miss),则需从下一级缓存取数据来继续操作,在对数据进行读写操作结束之后,对每个数据被修改的子块(Subblock)进行标记,进行数据写回操作时,仅将被标记的子块写回下级缓存。
[0019]3、优点和功效:本发明将原本需要整体写回的块分割为若干子块,并采用将被修改的子块写回,未被修改的子块不写回的策略。减少实际写回到L2级缓存的数据量,从而降低了 L2级缓存的写能耗。
【专利附图】
【附图说明】
[0020]图1 (a)为从L2读取数据到LI时,数据模式匹配示意图。
[0021]图1(b)为从LI写回数据到L2时,数据模式匹配及写回控制逻辑示意图。
[0022]图2为本发明的工作流程图。
【具体实施方式】
[0023]本发明旨在解决STT-MRAM等非易失存储器用作片上缓存所产生的写能耗过高的问题。通过分析L1、L2两级缓存写数据特征,将LI级缓存中的单个块,划分为若干子块。每个块除了存储原来块的内容之外,还额外设置索引位,索引位的用途将在后面叙述。每个子块有三种模式:0 (块中的所有位都是O),I (块中的所有位都是I),2 (不是O模式也不是I模式的其他模式)。模式以块为单位进行表示,例如,一个块被划分为四个子块,则该块的模式由四个子模式组成,这四个子模式分别对应一个子块,每个子模式是0、1、2中的其中之一。这样,每个块都由对应的一个唯一的组合模式。
[0024]见图2,本发明提供了一种字块划分的低功耗磁存储器缓存架构设计方法,该方法具体步骤如下:
[0025]步骤一:统计出在LI写回数据和LI读取的数据中出现频率最高的几个块模式,这些模式组成一个模式表。在模式表中,每个模式都配置一个索引值。
[0026]步骤二:程序运行时,模式表加载到一个特殊的LI级缓存中。当从L2级缓存读取到一个新数据时,计算新数据的模式,并在模式表中查看新数据的模式是否命中。如果命中,则把该模式的索引值记录到对应块的索引位中,如果没有命中,则设置对应块的索引位为O (索引值O在模式表中预留,专门用于表示没有命中)。参见附图1 (a)。
[0027]步骤三:当数据需要写回到L2级缓存中时,再次计算数据的模式,将该模式与块的索引位指示的模式相比较,得出控制位。控制位的长度与块中子块的数量相同,即一个子块对应一位的控制位。这一位的控制位将用于控制该子块的写回与否(在下面的描述中,将控制位置I表示写回,将控制位置O表示不写回)。控制位的生成规则:如果新模式与旧模式至少有一个没有命中,则按照规则一执行,否则,按照规则二执行。
[0028]规则一:将所有的控制位置I。
[0029]规则二:以子块为单位进行比较,如果子块的新模式和老模式的模式值都是O或者都是1,则将控制位置为0,否则将控制位置为I。参见附图1(b)。
[0030]步骤四:将数据写回到L2时,用控制位控制对应子块的写操作,如果控制位为1,则设置对应子块的数据写回控制信号有效,否则对应子块的写使能为无效。根据统计,会有很多控制位为0,因此,很多子块实际上都没有进行写入,从而减少回写L2级缓存的数据量,达到降低写功耗的目的。参见附图1(b)。
[0031]具体架构和模式表结构示意图参见附图1。
[0032]工作流程参见附图2。处理器访问高速缓存(Cache),产生缓存未命中(CacheMiss),则需从下一级缓存取数据来继续操作,在对数据进行读写操作结束之后,对每个数据被修改的子块(Subblock)进行标记,进行数据写回操作时,仅将被标记的子块写回下级缓存。
【权利要求】
1.一种字块划分的低功耗磁存储器缓存架构设计方法,其特征在于:该方法具体步骤如下: 步骤一:统计出在L1写回数据和L1读取的数据中出现频率最高的几个块模式,这些模式组成一个模式表,在模式表中,每个模式都配置一个索引值; 步骤二:程序运行时,模式表加载到一个特殊的L1级缓存中;当从L2级缓存读取到一个新数据时,计算新数据的模式,并在模式表中查看新数据的模式是否命中;如果命中,则把该模式的索引值记录到对应块的索引位中,如果没有命中,则设置对应块的索引位为0,索引值0在模式表中预留,专门用于表示没有命中; 步骤三:当数据需要写回到L2级缓存中时,再次计算数据的模式,将该模式与块的索引位指示的模式相比较,得出控制位;控制位的长度与块中子块的数量相同,即一个子块对应一位的控制位,这一位的控制位将用于控制该子块的写回与否,控制位的生成规则是:如果新模式与旧模式至少有一个没有命中,则按照规则一执行,否则,按照规则二执行;规则一:将所有的控制位置1 ; 规则二:以子块为单位进行比较,如果子块的新模式和老模式的模式值都是0或者都是1,则将控制位置为0,否则将控制位置为1 ; 步骤四:将数据写回到L2时,用控制位控制对应子块的写操作,如果控制位为1,则设置对应子块的数据写回控制信号有效,否则对应子块的写使能为无效;根据统计,会有很多控制位为0,因此,很多子块实际上都没有进行写入,从而减少回写L2级缓存的数据量,达到降低写功耗的目的; 处理器访问高速缓存,产生缓存未命中,则需从下一级缓存取数据来继续操作,在对数据进行读写操作结束之后,对每个数据被修改的子块进行标记,进行数据写回操作时,仅将被标记的子块写回下级缓存。
【文档编号】G11C11/16GK104332175SQ201410531836
【公开日】2015年2月4日 申请日期:2014年10月10日 优先权日:2014年10月10日
【发明者】张小龙, 吴比, 成元庆, 郭玮, 赵巍胜 申请人:北京航空航天大学