CN109933457A - 一种降低ssd误码率的数据编码方法及其*** - Google Patents
一种降低ssd误码率的数据编码方法及其*** Download PDFInfo
- Publication number
- CN109933457A CN109933457A CN201910176784.6A CN201910176784A CN109933457A CN 109933457 A CN109933457 A CN 109933457A CN 201910176784 A CN201910176784 A CN 201910176784A CN 109933457 A CN109933457 A CN 109933457A
- Authority
- CN
- China
- Prior art keywords
- data
- ssd
- bit
- unit
- error rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明涉及一种降低SSD误码率的数据编码方法及其***;其中,降低SSD误码率的数据编码方法,包括以下步骤:S1,将数据输入到原始数据;S2,将数据按照设定的规则进行分段;S3,根据调整规则,在每个数据段前面***控制位;S4,根据控制位对源数据进行调整;S5,将调制后的数据写入NAND。本发明针对容易出错的电压分布区域,通过动态调节数据编码的方式,改变NAND Cell在不同电压区间的分布,降低了容易出错的电压区间的Cell分布,进而降低数据出错的概率,能够更好地满足需求。
Description
技术领域
本发明涉及固态硬盘读设计技术领域,更具体地说是指一种降低SSD误码率的数据编码方法及其***。
背景技术
SSD(固态硬盘)已经被广泛应用于各种场合,由于其在性能、功耗、环境适应性等方面的优秀指标,正逐步替换传统的硬盘。
由于NAND的物理特性,其存储数据的CELL单元存在不同的失效场景:例如随着擦写次数/读取次数/数据保存时间等因素的影响,其CELL的状态会产生翻转,进而导致NAND内存储的数据出错。典型地,SSD内部由专门的ECC纠错算法来处理一定范围内的错误,但是随着错误数据的积累,会需要引入特定的电压偏移的方式来读取数据,这会极大地影响读写性能;进一步地,随着错误数据的增加,以上的方法无法再保证数据纠错,进而导致用户数据丢失,因此无法满足需求。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种降低SSD误码率的数据编码方法及其***。
为实现上述目的,本发明采用于下技术方案:
一种降低SSD误码率的数据编码方法,包括以下步骤:
S1,将数据输入到原始数据;
S2,将数据按照设定的规则进行分段;
S3,根据调整规则,在每个数据段前面***控制位;
S4,根据控制位对源数据进行调整;
S5,将调制后的数据写入NAND。
其进一步技术方案为:所述S1中,所述数据的每两个bit代表一个cell的状态,从而映射到一个物理页中的Cell电压分布。
其进一步技术方案为:所述S2中,所述设定的规则为以4个bit,即2个Cell的值,将数据进行分段。
其进一步技术方案为:所述S3中,所述调整规则为1代表该数据段数据将会被取反,0代表保持不变。
其进一步技术方案为:所述S4中,所述调整将控制位为1的数据段按位取反。
一种降低SSD误码率的数据编码***,包括:输入单元,分段单元,***单元,调整单元,及写入单元;
所述输入单元,用于将数据输入到原始数据;
所述分段单元,用于将数据按照设定的规则进行分段;
所述***单元,用于根据调整规则,在每个数据段前面***控制位;
所述调整单元,用于根据控制位对源数据进行调整;
所述写入单元,用于将调制后的数据写入NAND。
其进一步技术方案为:所述输入单元中,所述数据的每两个bit代表一个cell的状态,从而映射到一个物理页中的Cell电压分布。
其进一步技术方案为:所述分段单元中,所述设定的规则为以4个bit,即2个Cell的值,将数据进行分段。
其进一步技术方案为:所述***单元中,所述调整规则为1代表该数据段数据将会被取反,0代表保持不变。
其进一步技术方案为:所述调整单元中,所述调整将控制位为1的数据段按位取反。
本发明与现有技术相比的有益效果是:针对容易出错的电压分布区域,通过动态调节数据编码的方式,改变NANDCell在不同电压区间的分布,降低了容易出错的电压区间的Cell分布,进而降低数据出错的概率,能够更好地满足需求。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
图1为NAND的物理组成示意图;
图2为现有技术中NAND在一般场景下的电压分布示意图;
图3为现有技术中NAND在电压右移后分布示意图;
图4为本发明一种降低SSD误码率的数据编码方法的流程图;
图5为一种降低SSD误码率的数据编码方法的应用示意图;
图6为调整后的电压分布示意图;
图7为写入NAND后,电压右移后分布示意图;
图8为本发明一种降低SSD误码率的数据编码***的方框图。
10 输入单元 20 分段单元
30 ***单元 40 调整单元
50 写入单元
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
如图1到图8所示的具体实施例,其中,如图1所示,典型的NAND组成如下:DIE,可独立并发操作的单元;Block,可独立擦除的单元,其内各个物理位置的数据写入后在下一次写之前必须要将整个Block擦除;Page,读写单元,同一物理块内的Page必需按顺序编程:0->1->2->3…。
其中,如图2至图3所示,NAND在各个场景下的电压分布:以MLC(闪存)为例,每个CELL对应四个可能的状态:A/B/C/D,其中A为默认的擦除后的状态,B/C/D,分别为Program到某个状态;一般情形下,处于某个状态下的Cell数量呈正态分布,且彼此之间间隔比较清晰;在读取时,通过与Vref_A/Vref_B/Vref_C参考电压的比较,即可确认某个Cell所处的状态,进而可得知其存储的值;当某个物理块中的某些页反复被读取时,会导致Read Disturb(读取扰动)效应,整体电压分布会右移,此时部分状态的电压分布会出现重合,使用默认的参考电压读取时,无法正确判断Cell的状态;此时需要尝试调整参考电压的位置到Vref_A’/Vref_B’/Vref_C’,尝试读取数据;该尝试过程会导致读性能的降低,并且如果电压偏移过大,则可能无法找到合适的参考电压,进而无法获取正确的数据。
在现有的SSD产品中,NAND的数据存储是靠Cell不同状况来进行的,以MLC为例,每个Cell对应两个bit,可以分别编程为0/1,组合起来即可表示00,01,10,11四个值,而这四个值可关联到不同的电压分布;数据的读取,是靠不同电压分布中的参考电压进行比较来判别数据为0还是1的;当数据写入后,一般都会将数据随机化,使得各个电压范围内的cell数量一致;并且在早期,各个电压分布之间的间隔很大,可以很容易区分0/1,所以数据总能正确地读取;但在某些场景下,例如对于反复读取的数据来说,由于Read Disturb的问题,导致物理块内的电压分布右移。这种情形下,NAND读取的默认电压都不能正确读回正确数据,需要尝试移动Vref电压来读取数据,大大降低了读性能;进一步地,当电压偏移较大时,使得数据不可纠错,从而导致数据丢失。
如图4至图7所示,本发明公开了一种降低SSD误码率的数据编码方法,包括以下步骤:
S1,将数据输入到原始数据;
S2,将数据按照设定的规则进行分段;
S3,根据调整规则,在每个数据段前面***控制位;
S4,根据控制位对源数据进行调整;
S5,将调制后的数据写入NAND。
其中,在所述S1中,所述数据的每两个bit代表一个cell的状态,从而映射到一个物理页中的Cell电压分布。
其中,在所述S2中,所述设定的规则为以4个bit,即2个Cell的值,将数据进行分段。
其中,在所述S3中,所述调整规则为1代表该数据段数据将会被取反,0代表保持不变。
其中,在所述S4中,所述调整将控制位为1的数据段按位取反。
其中,通过上述的方法,降低了容易出错的B:01状态的Cell分布,通过降低了原始数据中的01值,在写入NAND后,B状态的Cell分布大大减少;当发生电压偏移后,容易出错的B状态与C状态的重叠部分大大降低,进而降低了数据不可纠的概率。
相应地,当读取数据时,按照固定的数据段以及控制位信息,进行相应的数据翻转,然后再ECC(错误检查和纠正)解码。
其中,在传统SSD中,在数据写入NAND之前都会进行随机化,使得类似MLC的四个电压分布为均等的。通过对NAND的失效模型进行分析后,可以看到某些区域比较容易出现电压分布的重合,而这些区域正是错误数据的来源;而本发明通过改变写入到NAND上的数据值,即可改变Cell的电压分布,从而使得电压偏移后,重叠区域较小,进而降低了数据错误率。
如图8所示,本发明公开了一种降低SSD误码率的数据编码***,包括:输入单元10,分段单元20,***单元30,调整单元40,及写入单元50;
所述输入单元10,用于将数据输入到原始数据;
所述分段单元20,用于将数据按照设定的规则进行分段;
所述***单元30,用于根据调整规则,在每个数据段前面***控制位;
所述调整单元40,用于根据控制位对源数据进行调整;
所述写入单元50,用于将调制后的数据写入NAND。
其中,所述输入单元10中,所述数据的每两个bit代表一个cell的状态,从而映射到一个物理页中的Cell电压分布。
其中,所述分段单元20中,所述设定的规则为以4个bit,即2个Cell的值,将数据进行分段。
其中,所述***单元30中,所述调整规则为1代表该数据段数据将会被取反,0代表保持不变。
其中,所述调整单元40中,所述调整将控制位为1的数据段按位取反。
本发明通过在原始数据中***控制位的方式动态调节每个数据段的0/1分布,改变NAND Cell在不同电压区间的分布;在读取时根据控制位的标记,进行相应的数据翻转控制,恢复源数据;通过改变NAND Cell在容易出错的相邻电压区间的分布,降低了因为电压偏移导致的误码率。
综上所述,本发明针对容易出错的电压分布区域,通过动态调节数据编码的方式,改变NAND Cell在不同电压区间的分布,降低了容易出错的电压区间的Cell分布,进而降低数据出错的概率,能够更好地满足需求。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。
Claims (10)
1.一种降低SSD误码率的数据编码方法,其特征在于,包括以下步骤:
S1,将数据输入到原始数据;
S2,将数据按照设定的规则进行分段;
S3,根据调整规则,在每个数据段前面***控制位;
S4,根据控制位对源数据进行调整;
S5,将调制后的数据写入NAND。
2.根据权利要求1所述的一种降低SSD误码率的数据编码方法,其特征在于,所述S1中,所述数据的每两个bit代表一个cell的状态,从而映射到一个物理页中的Cell电压分布。
3.根据权利要求1所述的一种降低SSD误码率的数据编码方法,其特征在于,所述S2中,所述设定的规则为以4个bit,即2个Cell的值,将数据进行分段。
4.根据权利要求1所述的一种降低SSD误码率的数据编码方法,其特征在于,所述S3中,所述调整规则为1代表该数据段数据将会被取反,0代表保持不变。
5.根据权利要求1所述的一种降低SSD误码率的数据编码方法,其特征在于,所述S4中,所述调整将控制位为1的数据段按位取反。
6.一种降低SSD误码率的数据编码***,其特征在于,包括:输入单元,分段单元,***单元,调整单元,及写入单元;
所述输入单元,用于将数据输入到原始数据;
所述分段单元,用于将数据按照设定的规则进行分段;
所述***单元,用于根据调整规则,在每个数据段前面***控制位;
所述调整单元,用于根据控制位对源数据进行调整;
所述写入单元,用于将调制后的数据写入NAND。
7.根据权利要求6所述的一种降低SSD误码率的数据编码***,其特征在于,所述输入单元中,所述数据的每两个bit代表一个cell的状态,从而映射到一个物理页中的Cell电压分布。
8.根据权利要求6所述的一种降低SSD误码率的数据编码***,其特征在于,所述分段单元中,所述设定的规则为以4个bit,即2个Cell的值,将数据进行分段。
9.根据权利要求6所述的一种降低SSD误码率的数据编码***,其特征在于,所述***单元中,所述调整规则为1代表该数据段数据将会被取反,0代表保持不变。
10.根据权利要求6所述的一种降低SSD误码率的数据编码***,其特征在于,所述调整单元中,所述调整将控制位为1的数据段按位取反。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910176784.6A CN109933457A (zh) | 2019-03-08 | 2019-03-08 | 一种降低ssd误码率的数据编码方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910176784.6A CN109933457A (zh) | 2019-03-08 | 2019-03-08 | 一种降低ssd误码率的数据编码方法及其*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109933457A true CN109933457A (zh) | 2019-06-25 |
Family
ID=66986572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910176784.6A Pending CN109933457A (zh) | 2019-03-08 | 2019-03-08 | 一种降低ssd误码率的数据编码方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109933457A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430362A (zh) * | 2001-10-31 | 2003-07-16 | 三星电子株式会社 | 移动通信***中用于分组重发的方法和发送/接收设备 |
CN102611951A (zh) * | 2012-03-12 | 2012-07-25 | 东南大学 | 用于降低以太网无源光网络物理层集成电路***功耗的方法 |
EP2890016A1 (en) * | 2013-12-30 | 2015-07-01 | Alcatel Lucent | Ldpc encoder and decoder |
CN106547487A (zh) * | 2016-10-21 | 2017-03-29 | 华中科技大学 | 一种提高闪存可靠性的数据塑型方法 |
CN107682020A (zh) * | 2017-10-26 | 2018-02-09 | 北京邮电大学 | 一种基于Turbo码的编码、解码方法及装置 |
CN108141320A (zh) * | 2015-10-23 | 2018-06-08 | 摩托罗拉移动有限责任公司 | 随机线性网络编码数据传输 |
CN109116211A (zh) * | 2018-07-03 | 2019-01-01 | 福州大学 | 一种测试激励分段及编码方法 |
-
2019
- 2019-03-08 CN CN201910176784.6A patent/CN109933457A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430362A (zh) * | 2001-10-31 | 2003-07-16 | 三星电子株式会社 | 移动通信***中用于分组重发的方法和发送/接收设备 |
CN102611951A (zh) * | 2012-03-12 | 2012-07-25 | 东南大学 | 用于降低以太网无源光网络物理层集成电路***功耗的方法 |
EP2890016A1 (en) * | 2013-12-30 | 2015-07-01 | Alcatel Lucent | Ldpc encoder and decoder |
CN108141320A (zh) * | 2015-10-23 | 2018-06-08 | 摩托罗拉移动有限责任公司 | 随机线性网络编码数据传输 |
CN106547487A (zh) * | 2016-10-21 | 2017-03-29 | 华中科技大学 | 一种提高闪存可靠性的数据塑型方法 |
CN107682020A (zh) * | 2017-10-26 | 2018-02-09 | 北京邮电大学 | 一种基于Turbo码的编码、解码方法及装置 |
CN109116211A (zh) * | 2018-07-03 | 2019-01-01 | 福州大学 | 一种测试激励分段及编码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9141475B2 (en) | Methods for tag-grouping of blocks in storage devices | |
CN103577342B (zh) | 管理闪存中所储存的数据的方法及相关记忆装置与控制器 | |
US8046645B2 (en) | Bad block identifying method for flash memory, storage system, and controller thereof | |
US10613943B2 (en) | Method and system for improving open block data reliability | |
US8510637B2 (en) | Data reading method, memory storage apparatus and memory controller thereof | |
CN101573761B (zh) | 具有可变读取阈值的非易失性存储器 | |
US9189313B2 (en) | Memory system having NAND-type flash memory and memory controller with shift read controller and threshold voltage comparison module | |
US8055834B2 (en) | Method for preventing read-disturb happened in non-volatile memory and controller thereof | |
US20100180145A1 (en) | Data accessing method for flash memory, and storage system and controller system thereof | |
US7979737B2 (en) | Method for accessing a Flash memory, and associated memory device and controller thereof | |
CN101599305B (zh) | 具有数据修复功能的储存***及其数据修复方法 | |
CN107608628A (zh) | 闪存控制器 | |
CN101494085B (zh) | 防止非易失性存储器发生读取干扰的方法及其控制器 | |
TW201539455A (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
KR20080069822A (ko) | 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법 | |
CN103955430A (zh) | 一种闪存存储设备中数据管理的方法及装置 | |
CN102543196B (zh) | 数据读取方法、存储器储存装置及其控制器 | |
US20130019049A1 (en) | Block management method, memory controller and memory stoarge apparatus | |
US20110138254A1 (en) | Method for reducing uncorrectable errors of a memory device regarding error correction code, and associated memory device and controller thereof | |
CN102693758B (zh) | 数据读取方法、存储器储存装置及其存储器控制器 | |
CN104699413A (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
US11068201B2 (en) | Flash memory controller, method for managing flash memory module and associated electronic device | |
CN112347001B (zh) | 闪存垃圾回收的校验方法、装置及电子设备 | |
CN102880432A (zh) | 利用数据有限寿命提高闪存芯片写入速度的方法、***及其控制器 | |
CN109669641B (zh) | 降低ssd误码率的数据存放方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190625 |