一种解决stt-ram缓存写失败的方法

文档序号:1270530 发布日期:2020-08-25 浏览:1次 >En<

阅读说明:本技术 一种解决stt-ram缓存写失败的方法 (Method for solving STT-RAM cache write failure ) 是由 章铁飞 于 2020-03-24 设计创作,主要内容包括:本发明提供一种解决STT-RAM缓存写失败的方法,在纠错码的纠错能力与存储代价之间取得平衡。本发明包括如下步骤:S1、发起写数据操作时,确定将写的目标缓存块后,读出目标缓存块的旧数据按位与新数据按位比较后,计算统计当前数据位对应的STT-RAM单元将发生0到1的切换的总数据位数n;S2、比较n与阀值K&lt;Sub&gt;th&lt;/Sub&gt;,如果n大于K&lt;Sub&gt;th&lt;/Sub&gt;,则采用扩展纠错码进行纠错,如果n小于等于K&lt;Sub&gt;th&lt;/Sub&gt;,则采用默认纠错码进行纠错;S3、写缓存块时,设置目标缓存块标签的标志位,标识目标缓存块的纠错码类型;S4、读取缓存块数据时,同时读取缓存块标签的标志位,根据标志位确定所采用的纠错码类型,将缓存块发往对应的纠错码解码器纠错。(The invention provides a method for solving STT-RAM cache write failure, which balances the error correction capability and the storage cost of an error correction code. S1, when initiating data writing operation, after determining the target cache block to be written, reading out the old data bitwise of the target cache block and comparing the old data bitwise with the new data bitwise, calculating the total data bit n of the STT-RAM unit corresponding to the current data bit to be switched from 0 to 1; s2, comparing n with a threshold value K th If n is greater than K th Error correction is carried out by adopting the extended error correction code, if n is less than or equal to K th If so, error correction is carried out by adopting a default error correction code; s3, when writing the cache block, setting the flag bit of the target cache block label, and marking the error correction code type of the target cache block; s4, when reading the cache block data, reading the flag bit of the cache block label at the same time, and reading the flag bit according to the flag bitAnd determining the type of the adopted error correction code, and transmitting the cache block to a corresponding error correction code decoder for error correction.)

一种解决STT-RAM缓存写失败的方法

技术领域

本发明涉及一种解决STT-RAM缓存写失败的方法。

背景技术

相比于传统的SRAM存储器,Spin Transfer Torque RAM(STT-RAM)作为一种新型存储器具有静态能耗低、存储密度高、读速度快以及与CMOS技术兼容性好等优点,因此STT-RAM有望成为计算机的下一代片上缓存。但STT-RAM也存在明显的劣势,其中包括写失败。STT-RAM存储单元主要是磁隧道结(MTJ),其中主要包括参照层和自由层。参照层的磁化方向水平固定,而自由层的磁化方向要么与参照层同向,要么反向。参照层与自由层的磁化方向反向或者同向时,磁隧道结呈现低或高两种电阻态,分别表示逻辑值0或1。因此,向STT-RAM单元写入数据,本质上改变自由层的磁化方向。

写数据时,如果新数据与STT-RAM存储单元原来的数据相异,则需要改变自由层的磁化方向。主要是向STT-RAM单元注入写电流Iwrite,并保持twrite时间来改变自由层的磁化方向,但磁化方向有可能不改变,即写操作存在一定的失败可能性,这种现象称为写失败。单个STT-RAM单元写失败的概率很小,但写入缓存块的数据与旧数据相异的数据位数较多时,则可能发生写失败的数据位数也会较多。另外,STT-RAM存储单元从逻辑值0到1的写失败发生概率要比从1到0的写失败大100倍。因此,缓存块的写失败数据位数与新旧数据之间从逻辑值0到1的切换的数据位数成正比。

写失败的传统解决方式是采用纠错码。只要缓存块中写失败的错误数据位数不超过纠错码的纠错能力,则写操作成功;如果要写入的新旧数据之间相异的数据位数很多,则缓存块中出现的写失败错误位数过多,纠错码无法纠正错误数据,影响程序的正常运行。导致上述问题的主要原因是缓存块的纠错码数据位数固定,纠错能力恒定;而缓存块的新旧数据相异位数存在明显差异。不同的缓存块,不同的写更新状态,需要设置纠错能力不同的纠错码。如果都采用强纠错能力的纠错码,则存储代价过大;如果都采用默认纠错能力的纠错码,则纠错能力不足。

发明内容

本发明的目的在于克服现有技术中存在的上述不足,而提供一种解决STT-RAM缓存写失败的方法,在纠错码的纠错能力与存储代价之间取得平衡。

本发明解决上述问题所采用的技术方案是:一种解决STT-RAM缓存写失败的方法,其特征在于:包括如下步骤:

S1、发起写数据操作时,确定将写的目标缓存块后,读出目标缓存块的旧数据按位与新数据按位比较后,计算统计当前数据位对应的STT-RAM单元将发生0到1的切换的总数据位数n;

S2、比较n与阀值Kth,如果n大于Kth,则采用扩展纠错码进行纠错,如果n小于等于Kth,则采用默认纠错码进行纠错;

S3、写缓存块时,设置目标缓存块标签的标志位,标识目标缓存块的纠错码类型;

S4、读取缓存块数据时,同时读取缓存块标签的标志位,根据标志位确定所采用的纠错码类型,将缓存块发往对应的纠错码解码器纠错。

本发明计算统计当前数据位对应的STT-RAM单元发生0到1的切换的总数据位数n的步骤为:读取目标缓存块中的旧数据,取反该旧数据,再与对应的新数据按位进行与运算,如果输出值为1,表示当前数据位对应的STT-RAM单元发生0到1的切换,每一位的输出再作为汉明距离计算器的输入,汉明距离计算器的输出就是当前数据位对应的STT-RAM单元发生0到1的切换的总数据位数n。整个计算电路是组合电路,所以不引入额外延时。

本发明阀值Kth的计算步骤为:计算阀值Kth时,系统允许缓存块写失败发生的概率上限为e,缓存块纠错码的纠错能力为k个数据位,缓存块出现写失败数据位数为m,m大于k时,当前的写操作失败,因此写操作的失败概率为P(m≥(k+1)),要满足:

P(m≥(k+1))<e,

由于默认纠错码采用1位纠错,因此取k=1,根据切诺夫概率公式,计算得到满足的最小m值就是Kth

本发明所述的默认纠错码和扩展纠错码都面向64Byte大小的缓存块,其中默认纠错码采用1位纠错、2位检错的SECDED码,所占数据长度为11位;扩展纠错码采用4位纠错、5位检错的4EC5ED码,所占数据长度为41位。

本发明对于扩展纠错码,系统允许的缓存块发生写失败的概率上限为e,缓存块的纠错能力为k个数据位,缓存块出现写失败数据位数为m,则写操作的失败概率为P(m≥(k+1)),要满足:

P(m≥(k+1))<e,

针对缓存块的大小是64Bytes,根据切诺夫概率公式,计算得到的k的最大值为4;要满足系统的要求,最坏情况下,扩展纠错码只要具备纠正4位出错数据的能力即可。

本发明对于默认纠错码和扩展纠错码,缓存块中实际更新的数据位要远小于缓存块512位的容量,大部分缓存块的写失败数据位数小于等于1;缓存组中80%的缓存块能分配默认纠错码,20%的缓存块能分配扩展纠错码。

本发明步骤S3的具体步骤为:当目标缓存块当前数据位对应的STT-RAM单元发生0到1的切换的总数据位数n大于Kth时,目标缓存块采用扩展纠错码,新数据发往扩展纠错码编码器生成纠错码,同时设置缓存块标签的标志位值为1;当目标缓存块当前数据位对应的STT-RAM单元发生0到1的切换的总数据位数n小于等于Kth时,目标缓存块采用默认纠错码,新数据发往默认纠错码编码器生成纠错码,同时设置缓存块标签的标志位值为0。

本发明步骤S4中,如果标志位的值为0,发往数据到默认纠错码解码器纠正可能的出错数据位;如果标志位的值为1,发送数据到扩展纠错码解码器纠正可能的出错数据位。

本发明与现有技术相比,具有以下优点和效果:本发明根据缓存块写数据时的新旧数据相异位数来分配纠错码资源,对于相异位数少的被写缓存块分配默认纠错码,而对相异位数多的被写缓存块分配扩展纠错码,默认的纠错码数据位数少,纠错能力弱,而扩展纠错码数据位数多,纠错能力强,从而在纠错码的纠错能力与存储代价之间取得平衡。

附图说明

图1是本发明实施例计算统计当前数据位对应的STT-RAM单元发生0到1的切换的总数据位数的示意图。

图2是本发明实施例步骤S2的流程图。

图3是本发明实施例步骤S4的流程图。

具体实施方式

下面结合附图并通过实施例对本发明作进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。

参见图1-图3,本发明实施例包括如下步骤:

S1、发起写数据操作时,确定将写的目标缓存块后,读出目标缓存块的旧数据按位与新数据比较后,计算统计当前数据位对应的STT-RAM单元发生0到1的切换的总数据位数n。

计算统计当前数据位对应的STT-RAM单元发生0到1的切换的总数据位数n的步骤为:

读取目标缓存块中的旧数据,取反该旧数据,再与对应的新数据按位进行与运算,如果输出值为1,表示当前数据位对应的STT-RAM单元发生0到1的切换,每一位的输出再作为汉明距离计算器的输入,汉明距离计算器的输出就是当前数据位对应的STT-RAM单元发生0到1的切换的总数据位数n。整个计算电路是组合电路,所以不引入额外延时。

S2、比较n与阀值Kth:如果n大于Kth,则采用扩展纠错码进行纠错,如果n小于等于Kth,则采用默认纠错码进行纠错。

假设当前缓存块的汉明距离为n,即当前数据位对应的STT-RAM单元发生0到1的切换的总数据位数为n,缓存块的纠错码的纠错能力为k位,则写失败的数据位数m大于k时,当前的写操作失败。因此,写操作的失败概率为P(m≥(k+1))。每个存储单元写失败的概率为q,则n个数据位的切换中写出错的期望为μ=nq。系统允许的缓存块发生写失败的概率上限为e,所以要满足:

P(m≥(k+1))<e (1)

根据切诺夫概率公式:

结合公式(1)和(2),得到:

其中k+1=(1+δ)μ,可计算在给定n值的情况下,最大的k值即可使得缓存块在写更新下出现写失败的概率小于系统所能容忍的上限。

阀值Kth的计算步骤为:计算阀值Kth时,系统允许缓存块写失败发生的概率上限为e,缓存块纠错码的纠错能力为k个数据位,缓存块出现写失败数据位数为m,m大于k时,当前的写操作失败,因此写操作的失败概率为P(m≥(k+1)),要满足:

P(m≥(k+1))<e,

由于默认纠错码采用1位纠错,因此取k=1,根据切诺夫概率公式:计算得到满足的最小m值就是Kth

所述的默认纠错码和扩展纠错码都面向64Byte大小的缓存块,其中默认纠错码采用1位纠错、2位检错的SECDED码,所占数据长度为11位;扩展纠错码采用4位纠错、5位检错的4EC5ED码,所占数据长度为41位。

对于扩展纠错码,系统允许的缓存块发生写失败的概率上限为e,缓存块的纠错能力为k个数据位,缓存块出现写失败数据位数为m,则写操作的失败概率为P(m≥(k+1)),要满足:

P(m≥(k+1))<e,

针对缓存块的大小是64Bytes,根据切诺夫概率公式:计算得到的k的最大值为4,要满足系统的要求,最坏情况下,扩展纠错码只要具备纠正4位出错数据的能力即可。

对于默认纠错码和扩展纠错码,缓存块中实际更新的数据位要远小于缓存块512位的容量,大部分缓存块的写失败数据位数小于等于1;缓存组中80%的缓存块能分配默认纠错码,20%的缓存块能分配扩展纠错码。

S3、写缓存块时,设置目标缓存块标签的标志位,标识目标缓存块的纠错码类型,具体步骤为:

写缓存块时,当目标缓存块当前数据位对应的STT-RAM单元发生0到1的切换的总数据位数n大于Kth时,标识该目标缓存块采用扩展纠错码,新数据发往扩展纠错码编码器生成纠错码,同时设置缓存块标签的标志位值为1;当目标缓存块当前数据位对应的STT-RAM单元发生0到1的切换的总数据位数n小于等于Kth时,标识该目标缓存块采用默认纠错码,新数据发往默认纠错码编码器生成纠错码,同时设置缓存块标签的标志位值为0。

S4、读取缓存块数据时,同时读取缓存块标签的标志位,并根据缓存块标签的标志位,确定所采用的纠错码类型,并将缓存块发往对应的纠错码解码器纠错;其中,如果标志位的值为0,发往数据到默认纠错码解码器纠正可能的出错数据位;如果标志位的值为1,发送数据到扩展纠错码解码器纠正可能的出错数据位。

此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同,本说明书中所描述的以上内容仅仅是对本发明结构所作的举例说明。凡依据本发明专利构思所述的构造、特征及原理所做的等效变化或者简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于反射内存网的0-1动态数据传输与存储方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类