一种面向相变存储的非均匀纠错方法及相变存储装置的制造方法_2

文档序号:9668744阅读:来源:国知局
向面向相变存储的非均匀纠错方法及相变存储装置,由于预先设 置若干存储时间,并预先计算出每个存储时间点下的纠错区域的阻值范围以及相应的对数 似然比,将计算结果存入查找表中,因此,在读取数据时直接根据查找表查找出相应的结果 进行译码,从而减少了时间与硬件资源的消耗。
【附图说明】
[0051 ]图1为相变存储器的存储单元的一种典型结构示意图;
[0052] 图2为本申请相变存储器与相变存储控制器的结构示意图;
[0053] 图3为本申请一种实施例的面向相变存储的非均匀纠错方法的流程示意图;
[0054] 图4为本申请一种实施例的相变存储装置的结构示意图;
[0055] 图5为本申请一种实施例的终止译码单元的硬件结构示意图;
[0056] 图6为本申请另一种实施例的面向相变存储的非均匀纠错方法的流程示意图;
[0057] 图7为本申请另一种实施例的相变存储装置的结构示意图;
[0058] 图8为本申请一种实施例中采用本申请的方案与传统的方案的读取级数仿真结果 对比图;
[0059]图9为本申请一种实施例中采用本申请的方案与传统的方案的传输延迟仿真结果 对比图。
【具体实施方式】
[0060] 下面通过【具体实施方式】结合附图对本申请作进一步详细说明。
[0061] 实施例一:
[0062] 本申请的发明构思在于,采用非均匀纠错方法,在对多值相变存储单元的阻值漂 移程序预测的基础上,按照信息熵的大小将阻值区域进行重新划分,在存储状态的阻值交 叠区域,划分更多的量化级(即纠错区域),而在存储状态的阻值非交叠区域,不划分或划分 较少的量化级。通过这种非均匀量化方式,在相同的误码率下,软件硬开销和延迟都较小, 或者说,在软件硬开销和延迟一定的情况下,本申请的误码率更低,数据读取和存储的准确 度更高。下面具体说明。
[0063] 请参照图3,本实施例提出一种面向面向相变存储的非均匀纠错方法(以下简称非 均匀纠错方法),包括以下步骤。
[0064]在写入数据时:
[0065]步骤S11、对待存入相变存储器的数据进行纠错编码。在一实施例中,纠错编码和 译码所用的码字为LDPC码。
[0066]步骤S13、将经过纠错编码的数据以及数据写入时间写入相变存储器。为了保证数 据写入时间的存储可靠性,在一实施例中,数据写入时间采用二值存储,数据采用二值或多 值存储。因为数据写入时间采用每存储单元存储1比特数据的相变存储器行进行存储,其受 到阻值漂移而导致的误码率比较小。
[0067] 在读取数据时:
[0068] 步骤S21、当读取数据时,读取数据对应的写入时间。
[0069]步骤S23、根据写入时间计算出数据在相变存储器中的存储时间。将当前读取数据 的时间减去步骤S13中数据写入时间即可得到数据在相变存储器中的存储时间。
[0070]步骤S25、根据存储时间计算各存储状态的阻值分布的交叠边界,以确定阻值交叠 区域。每个相变存储单元可以存储若干个状态,若可以存储2个状态,则其为二值存储,若可 以存储2个以上状态,则为多值存储状态,具体地,每一个存储单元中可以存储η比特数据, 则其存储状态数m= 2n,其中η为正整数。
[0071]相变存储中相变材料的阻值漂移服从以下公式:
[0072]
式(1);
[0073]其中,R〇代表处于各个不同相的相变材料所具有的初始阻值,to代表了初始时间, 参数v是相变材料的漂移参数。参数v与初始阻值Ro有关,拥有越大的初始阻值Ro的存储状态 受到阻值漂移的影响越大,其对应的漂移参数v也越大,通过测试,发明人发现初始阻值Ro 以及漂移参数v的分布近似服从高斯分布。令初始时间to=ls,对式(1)两边取对数,可得到 式⑵:
[0074] lgR(t) = lgR(l)+vlgt 式(2);
[0075]可以看到,式(2)中,lgR(t)随着lgt线性增加,对每个存储单元中存储m个存储状 态的相变存储单元,用lgRi来代表在对数域中处于第i个存储状态的阻值大小,其中i=l, 2,3,···,m。可以知道,初始阻值lgRi与漂移参数v分别服从高斯分布N(yRi,〇Ri2)与N(yVi, σνι2)。根据式⑵可知,阻值lgRdtd)也服从高斯分布^^办丄仰^⑴仏其中七以存储时 间,均值与方差计算公式见式(3):
[0076]
式(3);
[0077]因此,各存储状态的阻值分布的交叠边界可由式(4)计算以确定,其中p由可接受 的误码率确定:
[0078]
式(4);
[0079]步骤S27、计算各阻值交叠区域的熵。具体地,在阻值交叠区域,对于读取到的lgR, 通过下式(5)计算它的熵:
[0080]
[0081]为了衡量一个区域的不确定度,对此区域内的各阻值lgR的熵H(lgR)求积分,其中 a,b为区域边界:
[0082]
式(6);
[0083]因此,通过式(6)和式(4)中确定的各阻值交叠区域的边界,可以计算得到各阻值 交叠的熵。
[0084]步骤S29、将所有阻值交叠区域划分成熵大致相等的若干纠错区域,其中非阻值交 叠区域为非纠错区域。具体地,对于熵比较大的阻值交叠区域,其需要划分出更多的纠错区 域,而对于熵比较小的区域只需要划分较少的纠错区域即可。由于,我们将所有的阻值交叠 区域划分成若干熵大致相等的纠错区域,具体地,首先求出阻值交叠区域的总的熵的大小, 根据所需要划分的纠错区域数量进行划分,划分区域时保持各纠错区域的熵大致相同。因 此,在步骤29中将所有阻值交叠区域划分成熵大致相等的若干纠错区域,可以保证熵比较 大的阻值交叠区域划分出更多的纠错区域,而熵比较小的阻值交叠区域划分出较少的纠错 区域。
[0085]在一较优的实施例中,还可以包括一步骤:对各纠错区域和非纠错区域进行哈夫 曼编码以减少数据传输量。由于读取的阻值位于各个区域(纠错区域和非纠错区域)的概率 是不同的,对所有的区域根据概率的大小进行哈夫曼编码,从而可以进一步减少数据的传 输量。
[0086]步骤S31、计算各纠错区域的对数似然比。对于每一个纠错区域,其内的各阻值对 应相同的对数似然比。
[0087]步骤S33、判断读取的数据的阻值位于哪一区域,完成阻值量化过程。当判断结果 为位于纠错区域时,进行步骤S35,根据此纠错区域的对数似然比,对读取的数据进行纠错 译码;当位于非纠错区域时,进行步骤S37,对读取的数据不进行纠错。
[0088] 在步骤S35或S37中进行纠错译码时,常用的终止译码准则两种,一种是通过检查 上一轮译码结果是滞满足相应的校验式来判断是否终止译码,另一种是判断是否达到设定 的最大迭代次数来终止译码。前一种方法,进行硬件实现时需要消耗大量的硬件资源,后一 种方法,进行硬件实时比较简单,消耗的硬件资源较少,但是每次译码都需要迭代最大迭代 译码次数,如果最大迭代译码次数设置较低,则不能保证译码的正确性,如果设置的最大迭 代译码次数较高,则每次译码需要消耗大量的时间。因此,本实施提出一种终止译码准则, 如下:
[0089]定义符号变化数量
[0090] 其中k为迭代次数,η为码字的总位数,是第1^次迭代结束后码字中第1位的硬判 决结果;当符号变化数量SCN为0或译码迭代次数达到设置的最大迭代值时,停止迭代并输 出译码结果。
[0091] 相应地,本实施例还提出一种相变存储装置,如图4所示,其包括纠错编码器11、存 储控制器12、存储时间计算单元13、阻值交叠区确定单元14、熵计算单元15、纠错区域划分 单元16、对数似然比计算单元17、阻值量化单元18、纠错译码器19和相变存储器20。
[0092]纠错编码器11用于对待存入相变存储器的数据进行纠错编码。在一实施例中,纠 错编码器11为LDPC编码器。
[0093]存储控制器12用于将经过纠错编码的数据以及数据写入时间写入相变存储器20 中。在一较优的实施例中,为了保证数据写入时间的存储可靠性,相变存储器20包括二值存 储单元21和多值存储单元22,二值存储单元21用于存储数据写入时间,多值存储单元22用 于存储数据。
[0094]存储时间计算单元13用于当读取数据时读取数据对应的写入时间,以根据写入时 间计算出数据在相变存储器中的存储时间。
[0095]阻值交叠区确定单元14用于根据存储时间计算各存储状态的阻值分布的交叠边 界,以确定阻值交叠区域。
[0096]熵计算单元15用于计算各阻值交叠区域的熵。
[0097]纠错区域划分单元16用于将所有阻值交叠区域划分成熵大致相等的若干纠错区 域,其中非阻值交叠区域为非纠错区域。
[0098] 对数似然比计算单元17用于计算各纠错区域的对数似然比。
[0099] 阻值量化单元18用于判断读取的数据的阻值位于哪一区域。
[0100] 纠错译码器19用于当判断的结果为读取的数据的阻值位于纠错区域时,根据此纠 错区域的对数似然比,对读取的数据进行纠错译码;当位于非纠错区域时,对读取的数据不 进行纠错。在一较优的实施例中,纠错译码器19包括终止译码单元(未画出),用于判断符号 变化数量SCN的大小以及译码迭代次数,当符号变化数量SCN为
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1