首页> 中国专利> 一种NAND闪存系统的数据存储容错编码方法

一种NAND闪存系统的数据存储容错编码方法

摘要

本发明公开了一种NAND闪存系统的数据存储容错编码方法,该方法为:将初始数据从左到右进行迭代异或,左起第一位不变,生成码字;判断所述码字的0的数据个数是否过半,若过半,则对码字进行翻转,并在翻转后的数据最后添加标识位。本发明的方法能减少NAND闪存中待存入数据里CSPs数据模式,降低充电峰值电流,提高电压相对较低的区域中数据存储率,降低电压衰减导致的数据错误,从而加强数据可靠性。

著录项

  • 公开/公告号CN103942115A

    专利类型发明专利

  • 公开/公告日2014-07-23

    原文格式PDF

  • 申请/专利权人 湖南大学;

    申请/专利号CN201410162872.8

  • 申请日2014-04-22

  • 分类号G06F11/10;

  • 代理机构长沙正奇专利事务所有限责任公司;

  • 代理人马强

  • 地址 410082 湖南省长沙市岳麓区麓山南路2号

  • 入库时间 2023-12-17 00:55:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-05

    未缴年费专利权终止 IPC(主分类):G06F11/10 授权公告日:20160914 终止日期:20180422 申请日:20140422

    专利权的终止

  • 2016-09-14

    授权

    授权

  • 2014-08-20

    实质审查的生效 IPC(主分类):G06F11/10 申请日:20140422

    实质审查的生效

  • 2014-07-23

    公开

    公开

说明书

技术领域

本发明涉及闪存容错编码技术领域,具体是一种NAND闪存系统的数据存储容错编 码方法,适用于基于NAND闪存芯片的固态硬盘。

背景技术

固态硬盘(SSD,solid state drive)是一种利用Flash芯片或者DRAM芯片作为数据永久 存储的硬盘,而基于Flash存储器又分为NOR型和NAND型,在这里我们所讨论的是NAND Flash memory,简称NAND闪存。NAND闪存是一种高性能、可携带、低功耗、非易失 的存储技术,是当前在国际上备受关注的存储装置,而NAND闪存编码技术是当前研究者 关注的热门领域,它涉及多学科高度交叉、知识高度集成的前沿热点研究领域。

由于计算机的数据只有0和1两种形式,在NAND闪存芯片中是使用晶体管中的电荷 来表示和保存数据。NAND闪存芯片由许多晶体管组成,每个这样的晶体管称作“Cell”, 即单元。Cell有两种类型:第一种是SLC(Single Level Cell),每个Cell可以存储1bit数据, Cell中充满电表示0,放电后表示1;第二种为MLC(Multi-Level Cell),每个Cell可以存储 多个bit,可以表示多种状态的数据,使用多个电压阈值来表示不同的数据状态。

每一个NAND闪存芯片中由许多Cell串组成,每个Cell串是由多个Cell串联而成, 处于一条位线(bit-line)上,如图1中区域1内的Cell处于一条位线上,每个Cell串每次只 能读写其中一个Cell,多个Cell串并联则可以并行读写多位数据,所有位于Cell串相同位 置上的Cell称作一页(Page),如图1中区域2内的Cell就组成一页(Page),将一页(Page) 上的Cell贯穿起来的导线组称为字线(word-line),多个页(Page)组成一个块(Block)。每一 个NAND闪存芯片包含多个块(Block)。对于NAND闪存来说,读写操作的最小单位是页 (Page),而一旦数据需要擦除,则需要擦除整块(Block)。

NAND闪存相比于传统硬盘虽然具备读取速度快、无噪音和发热量低等优点,但是随 着时间的推移,NAND存储介质的使用寿命逐渐缩短,一方面对cell充电后,由于应力引 起的泄漏电流(SILC)或电子陷阱从隧道氧化物从浮动闸门的电子喷射而引起电压衰减会导 致数据保留错误(Data retention error);另一方面,读写操作电压引起的电子注入也会导致 干扰错误(Program disturbance error),从而引发数值随机差错。而数据保留错误的出错率是 干扰错误出错率的几百倍。由于闪存的Cell中数据保留错误的表现是数据0衰减变成数据 1,因此,如果能增加存入数据中1的比重,便可以容错,降低数据保留错误。此外,在 cell充电时,为了维持位线之间的电势差,需要在写操作的同时对相邻位线之间的电容进 行充电,其充电的峰值电流可高达几百至上千毫安,不仅消耗电能而且这种突发的强电流 极易导致存储设备异常,造成数据丢失。而CSPs数据模式(CSPs:Column Stripe Patterns, 是指数据中0和1交错存入,如101010...,相邻数据都出现电势差,则需要很大电容来维 持数据电势差)是消耗充电峰值电流最大的一种数据模式,因此,在数据存入NAND闪存 时,有必要进行预先编码运算,让数据以合理的状态存入cell中,这里合理的状态是指尽 可能将数据通过编码增加1的个数,从而减少电压衰减所导致的随机数据错误,以及消除 CSPs数据模式,从而降低突发的写操作峰值电流强度和功耗,提高存储设备的可靠性。

R.Rivest等人在上世纪八十年代首次提出在NAND闪存里进行重写,由于闪存内的 存储单元存储的数据只能由低到高,反过来则不允许。因此提出一种新颖的编码方案就是 重写,在原来已经存储了数据的单元中继续存储数据,只需要升高原来的电压就可以达到 重复存储数据的目的,同时,每次重写引入两个变量使译码得以实现。这种方法能够减少 NAND闪存的擦写次数,但是并没有容错的作用。

Tanakamaru等人在近年提出一种SPEA消除算法和非对称编码算法,通过消除CSPs 数据模式降低功耗,再使用非对称编码算法增加数据1的存储率,以此来降低数据保留错 误和干扰错误。

NAND闪存是一种新兴存储设备,因此相关理论研究也是新兴的一个热门研究领域, 对于闪存编码技术的目的包括消除NAND闪存数据存储过程中的大功耗数据模式,解决高 电流所导致的存储设备异常问题;缓解闪存因使用寿命的降低所导致的数据保留错误问 题;增加写的次数,以此减少擦除次数来延长闪存使用寿命。

发明内容

本发明所要解决的技术问题是,针对现有编码技术不足,提供一种NAND闪存系统 的数据存储编码方法,减少NAND闪存中待存入数据里CSPs数据模式,增加数据1的个 数,降低数据差错率,同时降低充电峰值电流。

为解决上述技术问题,本发明所采用的技术方案是:一种NAND闪存系统的数据存储 容错编码方法,该方法为:将初始数据从左到右进行迭代异或,左起第一位不变,生成新 码字;判断所述新码字的0的数据个数是否过半,若过半,则对所述新码字进行翻转,并 在翻转后的数据最后添加标识位。

本发明方法具体步骤如下:

1)将待存数据d0,d1,d2……..d2n-1输入到相应的I/O数据缓冲区,所述待存数据长度 为Cn=2n=2m,n≥4,m≥3;

2)将所述待存数据从左到右进行异或处理,第一位d0保持不变,d1和d0异或得到新 码字第d1个数据,以此类推,最后,d2n-2和d2n-3异或得到新码字第d2n-2个数据,d2n-1和 d2n-2异或得到新码字第d2n-1个数据;

3)将经上述步骤2)异或处理后的数据进行二进制相加,并将相加结果存储在一个m 位的寄存器中,当相加结果不足m位时,在前面补0;将所述相加结果的最高有效位取反 得到标识位的值;

4)将经上述步骤2)异或处理后的数据与所述标识位的值进行异或处理;

5)将所述标识位的值作为经上述步骤4)处理后的数据的最后一位,得到最终的(2n+1) 位数据,在相应的I/O数据接口中输出最终的数据。

与现有技术相比,本发明所具有的有益效果为:本发明的方法能减少NAND闪存中待 存入数据里CSPs数据模式,提高数据1的比重,从而减少电压衰减所导致的随机数据错 误,并降低突发的写操作峰值电流强度和功耗,提高存储设备的可靠性。

附图说明

图1为NAND闪存的一个Block内部结构示意图;

图2为本发明一实施例编码过程示意图;

图3为本发明一实施例译码过程示意图;

图4为本发明逻辑电路实施示意图。

具体实施方式

本发明是针对NAND闪存系统的数据存储容错方法是先对待存入设备的初始数据进 行迭代异或编码,得到新码字之后再进行纠错码ECC编码,把编码后的码字再写入NAND 闪存芯片中。在读取数据时,是先把芯片中的码字进行ECC译码,然后再进行迭代异或译 码读取到数据。以上的ECC编码/译码以及迭代异或编码/译码都是在FPGA(现场可编程门 阵列)中完成。

本发明编码过程分为两个阶段:第一个阶段,对于待存入设备的初始数据先从左到右 进行迭代异或,左起第一个数据保持不变,生成码字1(见图2);第二个阶段,对码字1的 0和1的个数进行判断,如果0的个数大于一半则将码字1全部进行位翻转得到最终的码 字2(见图2),并且在数据后添加标识位Flag(见图2)。

本发明译码过程是首先根据标识位来判断码字2(见图3)是否翻转,如果数据翻转则译 码时也全部翻转数据,再从左到右迭代异或得到初始数据,同时第一位保持不变。

这种针对NAND闪存系统的数据存储容错方法在对初始数据进行编码之后可以减少 CSPs数据模式,降低写操作的峰值电流和设备功耗,而对0个数的判断来翻转数据则能提 高1在整个数据中所占比重,提高数据可靠性。

示例:数据长度使用2n-bits,编码过程如图2所示,译码过程如图3所示,其中,标 识位Flag是冗余开销。

本发明具体实现步骤如下:

第一步,将待存数据先输入到相应的I/O数据缓冲区(如图4input区域),数据长度Cn=2n=2m,n≥4,m≥3。

第二步,将数据从左到右进行异或处理。数据用d0,d1,d2……..d2n-1来表示,第一位 d0保持不变,d1和d0或得到新码字第d1数据,以此类推,最后,d2n-2和d2n-3或得到新码 字第d2n-2数据,d2n-1和d2n-2异或得到新码字第d2n-1个数据。如图4。

第三步,将第二步得到的数据全部进行二进制相加,结果存储在一个m位的寄存器中, 不足m位的在前面补0。这里只有一种情况会产生溢出,即第二步产生的数据均为1,二 进制相加之后和为(m+1)位,但是这种情况的概率是1/22n,当n不断增大时候1/22n接近于 0,因此这里暂不考虑。MSB(The most significant bit)是指最高有效位,也就是m位里的左 起第一位。通过MSB可以判断第二步得到的数据中的0是否大于一半,如果MSB是1, 那么数据中0的个数少于数据总长度的1/2,如果MSB是0,则数据中0的个数大于等于 数据总长度的1/2。计算出MSB的值后取反得到标识位的值。如图4。

第四步,将第二步产生的数据均和所述标识位进行异或处理得到最终的数据。如图4。

第五步,将第四步产生的数据(含标识位,置于数据最后一位)在相应的I/O数据接口 中输出(如图4output区域)。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号