提高NANDFlash存储可靠性的数据存储方法

文档序号:7527306阅读:1397来源:国知局
提高NAND Flash存储可靠性的数据存储方法
【专利摘要】提高NAND Flash存储可靠性的数据存储方法,属于固态硬盘存储【技术领域】。解决了现有的方法在处理NAND Flash的数据贮存错误和编程干扰错误中,有效性依赖于待处理数据的前后字节具有很强的相关性;以及浪费有效的存储空间和需要配备完善的数据增位缓冲机制才可以实现与页宽度的对齐,不能与地址映射算法进行透明适配的问题。技术方案为:在数据存储至NAND Flash之前应用半字节短码重映射编码,而在从NAND Flash中读出数据后应用半字节短码反映射解码,通过提升吞吐数据中“1”的比例,以达到提高数据存储可靠性。本发明适用于以NAND Flash为主存储芯片的固态存储设备。
【专利说明】提高NANDFlash存储可靠性的数据存储方法

【技术领域】
[0001] 本发明涉及一种NANDFlash存储可靠性的编解码方法,尤其涉及一种提高NAND Flash存储可靠性的编解码方法,属于固态硬盘存储【技术领域】。

【背景技术】
[0002] 固态硬盘(SolidStateDrives,SSDs)具有读写速度快、功耗低、抗震性强等 优点,SSDs的优良特性使其逐渐取代传统的机械式旋转磁盘,目前已经广泛应用于嵌入 式和消费电子等移动存储设备领域。为提高SSDs的存储容量和降低其单位存储成本, NANDFlash也逐渐从单层单兀(SingleLevelCell,SLC)发展到多层单兀(Multi-level Cell,MLC)。目前主流的MLC芯片每个存储胞元存储两个二进制位,即有四个状态为"11、 01、00和10",与此对应的用于区分不同状态的阈值电压由低变高。
[0003] NANDFlash芯片生产工艺的提高在降低单位存储成本带来高性价比的同时,导致 相邻阈值电压间距逐渐变小,不可避免地带来NANDFlash存储可靠性的降低。影响NAND Flash存储可靠性的错误类型宏观上主要表现为数据贮存错误、编程干扰错误、读错误和擦 除错误四种。其中,长期数据贮存错误和编程干扰错误是最主要的两种错误类型。
[0004] (l)NANDFlash的数据贮存错误主要是由于原先存储于浮栅极的电子发生泄露, 其意味着浮栅极保持的电压变小,造成在读取数据时出现错误。因此如果使NANDFlash存 储胞元中的数据更多的处于最低保持电压的"11 "状态,可以有效减少NANDFlash长时间 的数据贮存错误。
[0005] (2)NANDFlash几乎所有的编程干扰错误均是由于"过编程"引起的,当过高的编 程电压施加于存储胞元时,势必会造成较大的编程干扰,进而造成阈值电压划分区域交叠 而发生错误。实验表明,编程干扰错误发生最多的状态转化为"01 - 〇〇"和"〇〇 - 10",因 此如果将待写入数据流中" 11"状态的比例提升(尽量避免受到干扰的状态),将会取得较 好编程干扰抑制效果。
[0006] 目前的固态存储以MLC型NANDFlash作为存储芯片为主,其编程和数据贮存可靠 性与存入其中数据的属性明显相关,即如果提高存储数据二进制流中"1"的比例,不仅能 够明显降低因过电压编程造成的编程干扰,同时也能够降低数据贮存过程中的电荷泄露现 象。因此如何在不浪费有效存储空间的前提下实现数据流中"〇、1"比例的调整是一个待研 究的热点。本发明专利涉及NANDFlash存入数据的可靠性编解码方法,该方法可以明显 提高NANDFlash存储过程的可靠性。
[0007] 目前国内文献未发现通过提高数据流中"1"比例提高NANDFlash存储可靠性的 专利或论文,国外文献有通过提高数据流中"1"比例提升NANDFlash存储可靠性的文献, 具体的编码方法主要有以下两种:其中一种采用相邻字节异或加位翻转的处理方法,该方 法针对某些数据类型可以显著提升" 1"的比例,但是该方法的有效性依赖于待处理数据的 前后字节具有很强的相关性,否则"1"比例的提升将不明显。另外一种处理方法是采用二 进制翻转加存储标志位的处理方法,具体地,首先针对待存储数据流中的一段进行"〇、1"比 例的判断,如果"〇"的比例高于" 1"的比例则将数据进行位翻转,并将翻转标志位" 1"附加 于数据段之后进行存储,反之不进行翻转并存储标志位"0"。这种编码方法在降低错误率的 同时,也存在两个明显的问题:首先翻转标志位的引入势必会浪费有效的存储空间;其次, 该编码方法因为标志位的引入会形成不规则长度的数据流,由于目前NANDFlash芯片的写 入只能以页为最小写入单位,故该编码机制需要配备完善的数据增位缓冲机制才可以实现 与页宽度的对齐,否则不能与地址映射算法进行透明适配。


【发明内容】

[0008] 本发明的目的是提出一种提高NANDFlash存储可靠性的数据存储方法,以解决针 对现有的相邻字节异或加位翻转和二进制翻转加存储标志位处理方法,在处理NANDFlash 的数据贮存错误和编程干扰错误中,相邻字节异或加位翻转处理方法的有效性依赖于待处 理数据的前后字节具有很强的相关性,否则" 1"比例的提升将不明显;以及二进制翻转加 存储标志位的处理方法,存在浪费有效的存储空间和需要配备完善的数据增位缓冲机制才 可以实现与页宽度的对齐,不能与地址映射算法进行透明适配的问题。
[0009] 本发明为解决上述技术问题所采用的技术方案是:
[0010] 本发明所述的一种提高NANDFlash存储可靠性的数据存储方法,是按照以下步骤 实现的:
[0011] 步骤一、半字节数据短码出现频次的统计;
[0012] 具体为:对待写入NANDFlash的数据流进行拆分,以一页数据量为编码宽度,将 每个字节的数据拆分为两个半字节的数据短码,以编码宽度为单位,对数据流中包含的半 字节数据短码出现的频次进行统计,并将统计结果按照出现频次由大至小进行排列;
[0013] 步骤二、半字节数据短码重新映射编码;
[0014] 具体为:将出现频次最高的半字节数据短码重新映射为全1的半字节数据短码, 出现频次次之的半字节数据短码,用含3个1的半字节数据短码来代替,以此类推,出现频 次最低的半字节数据短码映射为全〇的半字节数据短码;
[0015] 步骤三、将步骤二编码后的数据写入NANDFlash;
[0016] 具体为:将步骤二处理后的数据存储于NANDFlash存储芯片每页的用户数据区, 将出现频次由大至小排列的原数据短码序列存储于NANDFlash存储芯片每页的带外区;
[0017] 步骤四、解析NANDFlash中读出的页数据;
[0018] 步骤五、将步骤四中读出的数据进行拆分;
[0019] 步骤六、半字节数据短码反映射解码处理;
[0020] 步骤七、数据段组合并输出。
[0021] 本发明的有益效果为:
[0022] 1.本发明所述的编解码方法不依赖待处理数据的前后字节具有很强的相关性,能 够显著提升数据流中" 1"所占的比例,进而能很好地抑制过高的编程电压造成编程干扰错 误。提升比例随文件类型的不同而不同,但是可以确定的是一定具有提升作用,例如MP3文 件可以提升6 %左右,而doc文件能够提升60 %左右,同时能够有效降低高阈值电压状态因 电荷泄露造成的长期数据滞留错误。
[0023] 2.本发明所述的编解码方法对数据处理前后不会引入数据宽度的变化,因此不需 要增添额外的数据宽度对齐缓冲机制,可以完全透明地适配各种地址映射算法。
[0024] 3.本发明所述的编解码方法存储的重新映射信息表较小,可以存于带外区,不占 用额外的NANDFlash有效的存储空间,重映射信息表的大小最小为8个字节(64位),与具 体进行编解码时选取的编码宽度有关,但可以确定的是为8个字节的整数倍数。
[0025] 4.本发明所述的编解码方法基于半字节数据短码出现频次统计信息,计算复杂度 很低,功耗和延时几乎可以忽略不计,因此不会对数据吞吐速度造成较大影响。

【专利附图】

【附图说明】
[0026] 图1为【具体实施方式】三中,编码前后数据宽度变化示意图;
[0027] 图2为【具体实施方式】四中,编码信息存储方法示意图;
[0028] 图3为【具体实施方式】五至九中的解码流程示意图;
[0029] 图4为本发明的对比试验中mp3文件测试结果,图中横轴表示进行对比试验的不 同大小的四个jpg文件,纵轴表示数据处理前后整个文件数据流中" 1"的比例,"No-Code" 表示原始的jpg文件,"XOR-Code"表示执行相邻字节异或加位翻转处理后的数据, "xxxB-Code"表示以"XXX"字节为编码宽度执行本发明编码后的数据;
[0030] 图5为本发明的对比试验中jpg文件测试结果,图中横轴表示进行对比试验 的不同大小的四个jpg文件,纵轴表示数据处理前后整个文件数据流中"1"的比例, "No-Code"表示原始的jpg文件,"XOR-Code"表示执行相邻字节异或加位翻转处理后的数 据,"XXXB-Code"表示以"XXX"字节为编码宽度执行本发明编码后的数据; 图6为本发明所述的编解码方法对编程干扰错误率的影响示意图,其中No-Code表示 未使用本发明编解码方法,其数据流中"1"的比例为31. 6%,而Code表示采用本发明所述 的编解码方法后其数据流中"1"的比例提升为69. 8% ; 图7为本发明所述的编解码方法对数据贮存错误率的影响示意图,其中No-Code表示 未使用本发明编解码方法,其数据流中" 1"的比例为31. 6 %,而Code表示采用本发明所述 的编解码方法后其数据流中" 1"的比例提升为69. 8 %。

【具体实施方式】
[0031] 结合附图进一步详细说明本发明的【具体实施方式】。本发明提供一种可以提升NAND Flash存储数据流中" 1"比例的编解码方法,主要分为编码器和解码器两部分。其中,编码 器用于向NANDFlash存入数据的过程,而解码器用于从NANDFlash中读取数据并恢复至 编码之前数据的过程。
[0032] 编码器主要工作于向NANDFlash中写入数据环节,解码器的工作流程与编码器工 作流程基本相反,主要功能是将重新映射编码后写入NANDFlash中的数据读出,经半字节 数据短码反映射回编码前的数据。

【具体实施方式】 [0033] 一:本实施方式所述的一种提高NANDFlash存储可靠性的数据存 储方法,所述方法包括编解码过程,方法的具体步骤如下:
[0034] 步骤一、半字节数据短码出现频次的统计;
[0035] 具体为:对待写入NANDFlash的数据流进行拆分,以一页数据量为编码宽度,将 每个字节的数据拆分为两个半字节的数据短码,以编码宽度为单位,对数据流中包含的半 字节数据短码出现的频次进行统计,并将统计结果按照出现频次由大至小进行排列;
[0036] 步骤二、半字节数据短码重新映射编码;
[0037] 具体为:将出现频次最高的半字节数据短码重新映射为全1的半字节数据短码, 出现频次次之的半字节数据短码,用含3个1的半字节数据短码来代替,以此类推,出现频 次最低的半字节数据短码映射为全〇的半字节数据短码;
[0038] 步骤三、将步骤二编码后的数据写入NANDFlash;
[0039] 具体为:将步骤二处理后的数据存储于NANDFlash存储芯片每页的用户数据区, 将出现频次由大至小排列的原数据短码序列存储于NANDFlash存储芯片每页的带外区;
[0040] 步骤四、解析NANDFlash中读出的页数据;
[0041] 步骤五、将步骤四中读出的数据进行拆分;
[0042] 步骤六、半字节数据短码反映射解码处理;
[0043] 步骤七、数据段组合并输出。
[0044] 本发明的编码特征如图1所示,待写入NANDFlash的数据流经过编码器进行可靠 性编码之后再写入NANDFlash芯片,该编码方法执行前后数据的宽度保持不变。这样可以 很好地与目前广泛应用于NANDFlash中的地址映射机制透明适配。

【具体实施方式】 [0045] 二:本实施方式与一不同的是:步骤一所述的编码宽 度也可以为1/2,1/4,1/8页等,满足N= 1页/编码宽度即可,N为正整数。其它步骤与具 体实施方式一相同。

【具体实施方式】 [0046] 三:结合图1理解本实施方式,本实施方式与一或二 不同的是:步骤二所述的重新映射的方式为:出现频次高的半字节数据短码优先映射为 "1"比例高的半字节数据短码,当重新映射后的半字节数据短码中"1"的比例相同时,重新 映射后的半字节数据短码先后顺序可以随意替换。其它步骤与一或二相同。

【具体实施方式】 [0047] 四:结合图2理解本实施方式,本实施方式与一至三 之一不同的是:当步骤三中的编码宽度不是整页宽度时,对应于每页的带外区需要存储N 组数据短码序列。其它步骤与一至三之一相同。

【具体实施方式】 [0048] 五:结合图3理解本实施方式,本实施方式与一至四 之一不同的是:步骤四的具体过程为:通过执行NANDFlash"读页命令"读出每页的用户 数据区和带外区数据,对带外区读出的数据按照先后顺序进行半字节数据短码的拆分与统 计,获取其存储的半字节数据短码序列的个数N和解析出每个序列的具体内容。其它步骤 与一至四之一相同。

【具体实施方式】 [0049] 六:结合图3理解本实施方式,本实施方式与一至五 之一不同的是:步骤五的具体过程为:将从用户数据区读出的数据按照步骤四中获取的N 值进行等宽度的数据段拆分。其它步骤与一至五之一相同。

【具体实施方式】 [0050] 七:结合图3理解本实施方式,本实施方式与一至六 之一不同的是:步骤六的具体过程为:将步骤五等分的N份数据段,根据步骤四中获取的带 外区对应的半字节序列进行反映射解码处理,恢复至编码之前待写入NANDFlash中的数据 段。其它步骤与一至六之一相同。
[0051]

【具体实施方式】八:结合图3理解本实施方式,本实施方式与【具体实施方式】一至七 之一不同的是:步骤六所述的反映射解码处理的方式为:数据段中的半字节数据短码,按 照其中"1"的比例由高至低的顺序依次替换为步骤四中解析出的具体内容,对于数据段中 "1"比例相同的半字节数据短码按照编码时约定的映射关系进行替换。其它步骤与具体实 施方式一至七之一相同。

【具体实施方式】 [0052] 九:结合图3理解本实施方式,本实施方式与一至八 之一不同的是:步骤七的具体过程为:待步骤六中的N份数据段全部反映射解码结束后,将 N份反映射后的数据段按照先后顺序重新组合整页宽度的数据输出。其它步骤与具体实施 方式一至八之一相同。
[0053] 本发明的实施例如下:
[0054] 步骤一、半字节数据短码出现频次的统计;
[0055] 具体为:对待写入NANDFlash的数据流(数据流就是要存入NANDFlash的数据) 进行拆分,以一页数据量(对应的英文解释为"PageSize",目前主流的NANDFlash的Page Size主要有以下几种:1024Bytes、2048Bytes、4096Bytes和8192Bytes)为编码宽度,将每 个字节的数据拆分为两个半字节的数据短码(数据短码就是将数据流拆成相等长度的数 据段后,每个数据段中的四位二进制数),以编码宽度为单位,对数据流中包含的半字节数 据短码出现的频次进行统计,并将统计结果按照出现频次由大至小进行排列;
[0056] 以表1中数据为例,将待写入NANDFlash的4096字节数据(共有8192个半字节 数据短码)中半字节短码进行排序,出现频次最高的短码为"〇〇〇〇",出现频次最低的短码 为 "1110,,。
[0057] 表1半字节短码出现频次统计举例
[0058]
[0059]

【权利要求】
1. 一种提高NAND Flash存储可靠性的数据存储方法,所述方法包括编解码过程,其特 征在于所述方法的具体步骤如下: 步骤一、半字节数据短码出现频次的统计; 具体为:对待写入NAND Flash的数据流进行拆分,W-页数据量为编码宽度,将每个 字节的数据拆分为两个半字节的数据短码,W编码宽度为单位,对数据流中包含的半字节 数据短码出现的频次进行统计,并将统计结果按照出现频次由大至小进行排列; 步骤二、半字节数据短码重新映射编码; 具体为:将出现频次最高的半字节数据短码重新映射为全1的半字节数据短码,出现 频次次之的半字节数据短码,用含3个1的半字节数据短码来代替,W此类推,出现频次最 低的半字节数据短码映射为全0的半字节数据短码; 步骤H、将步骤二编码后的数据写入NAND Flash; 具体为:将步骤二处理后的数据存储于NAND Flash存储芯片每页的用户数据区,将出 现频次由大至小排列的原数据短码序列存储于NAND Flash存储芯片每页的带外区; 步骤四、解析NAND Flash中读出的页数据; 步骤五、将步骤四中读出的数据进行拆分; 步骤六、半字节数据短码反映射解码处理; 步骤走、数据段组合并输出。
2. 根据权利要求1所述的提高NAND Flash存储可靠性的数据存储方法,其特征在于 步骤一所述的编码宽度也可W为1/2,1/4,1/8页,满足N = 1页/编码宽度即可,N为正整 数。
3. 根据权利要求2所述的提高NAND Flash存储可靠性的数据存储方法,其特征在于步 骤二所述的重新映射的方式为:出现频次高的半字节数据短码优先映射为"1"比例高的半 字节数据短码,当重新映射后的半字节数据短码中"1"的比例相同时,重新映射后的半字节 数据短码先后顺序可W随意替换。
4. 根据权利要求3所述的提高NAND Flash存储可靠性的数据存储方法,其特征在于当 步骤H中的编码宽度不是整页宽度时,对应于每页的带外区需要存储N组数据短码序列。
5. 根据权利要求4所述的提高NAND Flash存储可靠性的数据存储方法,其特征在于步 骤四的具体过程为;通过执行NAND Flash "读页命令"读出每页的用户数据区和带外区数 据,对带外区读出的数据按照先后顺序进行半字节数据短码的拆分与统计,获取其存储的 半字节数据短码序列的个数N和解析出每个序列的具体内容。
6. 根据权利要求5所述的提高NAND Flash存储可靠性的数据存储方法,其特征在于步 骤五的具体过程为;将从用户数据区读出的数据按照步骤四中获取的N值进行等宽度的数 据段拆分。
7. 根据权利要求6所述的提高NAND Flash存储可靠性的数据存储方法,其特征在于步 骤六的具体过程为;将步骤五等分的N份数据段,根据步骤四中获取的带外区对应的半字 节序列进行反映射解码处理,恢复至编码之前待写入NAND Flash中的数据段。
8. 根据权利要求7所述的提高NAND Flash存储可靠性的数据存储方法,其特征在于步 骤六所述的反映射解码处理的方式为:数据段中的半字节数据短码,按照其中"1"的比例 由高至低的顺序依次替换为步骤四中解析出的具体内容,对于数据段中"1"比例相同的半 字节数据短码按照编码时约定的映射关系进行替换。
9.根据权利要求8所述的提高NAND Flash存储可靠性的数据存储方法,其特征在于步 骤走的具体过程为:待步骤六中的N份数据段全部反映射解码结束后,将N份反映射后的数 据段按照先后顺序重新组合为整页宽度的数据输出。
【文档编号】H03M13/03GK104467871SQ201410653332
【公开日】2015年3月25日 申请日期:2014年11月17日 优先权日:2014年11月17日
【发明者】魏德宝, 邓立宝, 赵浩然, 乔立岩 申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1