一种面向脏块差异化处理的STT-MRAM缓存替换方法

摘要: 本发明涉及片上缓存管理,具体地,涉及一种面向脏块差异化处理的stt-mram缓存替换方法。背景技术:1、随着半导体工艺节点持续微缩至纳米级,传统静态随机存取存储...
一种面向脏块差异化处理的STT-MRAM缓存替换方法

本发明涉及片上缓存管理,具体地,涉及一种面向脏块差异化处理的stt-mram缓存替换方法。

背景技术:

1、随着半导体工艺节点持续微缩至纳米级,传统静态随机存取存储器(staticrandom access memory,mram‌)作为片上最后一级缓存面临的瓶颈日益突出。一方面,sram单元的漏电流随工艺进步呈指数级增长,导致静态功耗急剧攀升;另一方面,sram需要6个晶体管才能存储1位数据,存储密度提升缓慢,难以满足日益增长的大容量缓存需求。在此背景下,自旋转移矩磁阻随机存取存储器(spin-transfer torque magnetic random-access memory,stt-mram)凭借其独特的物理特性和工艺兼容性,被视为sram的有力替代者。

2、stt-mram的核心存储单元是磁隧道结(magnetic tunnel junction, mtj),其结构包括一个固定磁化方向的钉扎层、一个氧化势垒层和一个磁化方向可自由切换的自由层。当两层磁化方向平行时呈现低电阻态,对应逻辑“0”,当两层磁化方向反平行时呈现高电阻态,对应逻辑“1”。这种电阻差异通过一个晶体管-一个mtj的紧凑单元结构实现数据存储。与sram相比,stt-mram具有三大突出优势:第一,其静态漏电流趋近于零,显著降低了空闲状态下的功耗;第二,存储密度远超sram,能够在相同芯片面积内容纳更大容量的缓存;第三,读取延迟与sram相当且读取功耗极低,同时与cmos工艺具有良好的兼容性,便于在现有处理器架构中集成部署。这些特性使stt-mram特别适合用作最后一级缓存,在控制功耗预算的前提下提供足够容量和可接受的访问速度。

3、然而,stt-mram在缓存应用中面临两大固有的可靠性挑战,严重制约了其大规模商用部署。首先,mtj的写入操作依赖自旋转移矩效应:当写入电流通过mtj时,自旋极化的电子对自由层磁矩施加转矩,使其翻转至目标方向,这一翻转过程本质上是一个量子力学过程,需要在自由层中积累足够的自旋角动量,随着写入次数的累积,氧化势垒层逐渐退化,隧道电阻下降,最终导致mtj无法区分平行态和反平行态。当前先进工艺节点下,stt-mram的写入耐久性通常在次左右,虽然远超其他新型非易失存储器,如相变存储器和阻变存储器,但与sram近乎无限的写入寿命相比仍有数个数量级的差距,在最后一级缓存中,缓存块的更新频率极高,某些热数据块可能在短时间内达到耐久上限,一旦某个缓存块失效,整个缓存行将无法使用,进而影响系统长期运行可靠性。其次, mtj的数据保持依赖于自由层磁化方向的热稳定性,由热稳定性因子衡量,其中,为势垒能量,为玻尔兹曼常数,为温度。在高温环境下或工艺尺寸缩小时,会显著降低,使得自由层的磁化方向存在自发翻转的概率,即使没有外部电流激励,存储单元也可能因热扰动而从平行态跃迁至反平行态,或反之,导致存储数据丢失,由于最后一级缓存距离处理器核心较远且容量较大,其访问频率相对较低,缓存块可能长时间处于空闲状态,若在此期间发生保持失效,数据将永久损坏且无法通过简单的重读恢复。同时,保持失效与写入耐久性的退化机制相互耦合——反复写入造成的势垒层退化会进一步降低δ,使得老化后的mtj对热扰动更加敏感。

4、针对上述两大可靠性问题,学术界和工业界已提出多种应对策略。在延长写入寿命方面,常见方法包括:(1)数据编码方案,通过将待写入数据与原始数据比较,选择比特翻转更少的编码方式,从而减少每次写操作的位翻转数;(2)磨损均衡技术,在缓存块之间以及块内各比特位置之间均匀分配写负载,避免局部热点过早失效;(3)混合sram-mram架构,将写入频繁的数据行映射至sram,其余行使用mram;(4)在缓解保持失效方面,主要手段包括:定期刷新或清洗机制,在数据即将达到保持时限前主动回读并重写;增强型纠错编码,利用更强的校验位纠正因保持失效产生的多位错误;可靠性感知的缓存管理,通过预测各缓存块的驻留时间并提前换出高风险块。然而,上述方案大多仅针对单一可靠性问题,缺乏对写入耐久性和保持失效的统一协调优化。

技术实现思路

1、针对现有技术中存在的问题,本发明提供了一种面向脏块差异化处理的stt-mram缓存替换方法,通过轻量级的历史访问年龄标签动态预测脏块的未来访问行为,并实施差异化的访问年龄更新和替换优先级管理,在不显著影响性能的前提下大幅延长缓存寿命并降低保持失效率。

2、为实现上述技术目的,本发明采用如下技术方案:

3、一种面向脏块差异化处理的stt-mram缓存替换方法,包括如下子步骤:

4、步骤s1:初始化stt-mram缓存中所有缓存块的历史访问年龄标签;

5、步骤s2:在访问stt-mram缓存中的缓存块时,若命中缓存块,基于所述缓存块是否为脏块调整所述缓存块的历史访问年龄标签,并基于调整的历史访问年龄标签更新所述缓存块的年龄位;否则,执行步骤s3;

6、步骤s3:在stt-mram缓存中基于驱除缓存块的优先级策略插入新缓存块,并初始化新缓存块的历史访问年龄标签,利用插入的新缓存块进行访问。

7、进一步地,stt-mram缓存中所有缓存块的历史访问年龄标签均为2比特,初始值均为00。

8、进一步地,stt-mram缓存中每个缓存块的标签均包括:历史访问年龄标签、年龄位标签和脏位标签;若一个缓存块经历过写访问后,所述缓存块的脏位标签为1,否则,所述缓存块的脏位标签为0。

9、进一步地,若缓存块的脏位标签为1,更新所述缓存块的历史访问年龄标签,并基于历史访问年龄标签更新所述缓存块的年龄位标签;否则,所述缓存块的历史访问年龄标签保持不变,直接基于历史访问年龄标签更新所述缓存块的年龄位标签。

10、进一步地,更新所述缓存块的历史访问年龄标签的过程如下:

11、i:stt-mram缓存中每个缓存块采用8路组相联缓存,对应年龄位为8个连续年龄位0~7;

12、ii:历史访问年龄标签采用2比特存储,对应二进制00、01、10和11四个历史访问年龄标签等级;

13、iii:将8个连续年龄位0~7均等划分为四个区间,映射到历史访问年龄标签等级;

14、iv:根据所述缓存块的当前年龄位匹配年龄位的区间,得到所述区间对应的候选历史访问年龄标签等级;

15、v:若候选历史访问年龄标签等级不小于所述缓存块的当前历史访问年龄标签,将所述缓存块的历史访问年龄标签更新为候选历史访问年龄标签等级,否则,所述缓存块的历史访问年龄标签保持不变。

16、进一步地,将8个连续年龄位0~7均等划分为四个区间,映射到历史访问年龄标签等级的过程为:

17、若年龄位的区间为0~1,对应的历史访问年龄标签为00;

18、若年龄位的区间为2~3,对应的历史访问年龄标签为01;

19、若年龄位的区间为4~5,对应的历史访问年龄标签为10;

20、若年龄位的区间为6~7,对应的历史访问年龄标签为11。

21、进一步地,所述缓存块的年龄位标签的更新过程为:

22、若所述缓存块的历史访问年龄标签为00或01,所述缓存块的年龄位标签对应的年龄位保持不变;若所述缓存块的历史访问年龄标签为10,所述缓存块的年龄位标签对应的年龄位减1;若所述缓存块的历史访问年龄标签为11,所述缓存块的年龄位标签对应的年龄位减2。

23、进一步地,步骤s3中在stt-mram缓存中基于驱除缓存块的优先级策略插入新缓存块的过程为:

24、优先判断stt-mram缓存中是否存在历史访问年龄标签为00的缓存块,若存在,驱逐所述缓存块并在年龄位为0的位置上插入新存储块;否则,判断stt-mram缓存中是否存在历史访问年龄标签为01的缓存块,若存在,驱逐所述缓存块并在年龄位为0的位置上插入新存储块;否则,驱逐年龄位标签最大的缓存块并在年龄位为0的位置上插入新存储块。

25、进一步地,还包括:驱逐所述缓存块后,需要将stt-mram缓存中所有剩余缓存块中年龄位小于驱逐缓存块的年龄位加1。

26、与现有技术相比,本发明具有如下有益效果:

27、(1)本发明面向脏块差异化处理的stt-mram缓存替换方法引入轻量级的历史访问年龄标签机制,用于动态追踪脏块在不同年龄区间内的命中历史,历史访问年龄标签仅对脏块有效,依据缓存块的当前年龄位将其映射至四个历史访问年龄标签等级区间,并在每次脏块命中时单调非递减地更新,该机制以极低的硬件开销准确刻画了脏块的未来访问概率分布;

28、(2)本发明面向脏块差异化处理的stt-mram缓存替换方法基于历史访问年龄标签的等级对脏块实施差异化管理的缓存替换策略,针对历史访问年龄标签为00或01的低复用概率脏块执行年龄冻结,彻底消除其年龄位翻转开销,同时使其自然老化趋向年龄位最大端;针对历史访问年龄标签为10或11的高复用概率脏块执行渐进式年龄推进,在保持其缓存驻留的同时大幅减少年龄位调整幅度;在替换决策方面,本发明将历史访问年龄标签为00或01的脏块设定为高替换优先级,使其优先被驱逐以缩短死脏区间。通过上述年龄更新与替换优先级的协同设计,使得写入寿命延长和保持失效降低在同一策略框架下同时实现。

29、综上,本发明在不显著影响性能的前提下,实现了缓存寿命延长和保持失效率降低的协同优化。