CN113342569B - 一种用于闪存胞元不可靠状态消除的等长编解码方法 - Google Patents
一种用于闪存胞元不可靠状态消除的等长编解码方法 Download PDFInfo
- Publication number
- CN113342569B CN113342569B CN202110672532.XA CN202110672532A CN113342569B CN 113342569 B CN113342569 B CN 113342569B CN 202110672532 A CN202110672532 A CN 202110672532A CN 113342569 B CN113342569 B CN 113342569B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- data
- state
- code segment
- cell
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提出了一种用于闪存胞元不可靠状态消除的等长编解码方法,通过编码器对胞元数据预处理,再将多级胞元所有状态等分为4组,然后根据码段中的状态组合得到重映射编码方法;将重映射编码后的信息存储到闪存的不同块中:解码器根据标志位将经过步骤三的3胞元码段反映射为原始数据;本发明基于等长编码的特性保证了所***字的码长都相等,即原始数据流不会因为存储的调制数据中的比特翻转而发生窜动,实现一种以消除目标状态的数据形式对多级胞元闪存进行数据存储的编解码方法。对于MLC型闪存可消除一种状态,对于TLC型闪存可消除两种状态。
Description
技术领域
本发明属于固态存储领域,具体地,涉及一种用于闪存胞元不可靠状态消除的等长编解码方法。
背景技术
目前的固态存储以MLC(Multi-Level Cell,每个胞元中存储2位信息)、TLC(Trinary-Level Cell,每个胞元中存储3位信息)这两种多级胞元NAND闪存为主,其可靠性与其写入数据后的胞元阈值电压分布特征密切相关,本发明专利涉及对写入NAND闪存的数据形式进行调制,通过优化阈值电压分布在相同的写入面积内尽可能将胞元编程到更可靠的状态,可以在多种存储应用场景中明显提高NAND闪存数据存储的可靠性。
随着数据中心、物联网、移动设备等技术的发展,人们对数据存储的需求呈现出***式的增长,其中NAND闪存因其低位成本和高集成度等优势成为实现非易失性存储的主流介质。近年来,闪存制造商采取了3D堆叠技术、多级胞元技术等集成工艺创新来维持存储介质容量的发展,然而,这也对NAND闪存可靠性提出了新的挑战。
大量研究表明,多级闪存的各胞元状态可靠性之间存在明显差异,因而可以通过优化闪存阈值电压分布来实现闪存可靠性的提升,即在相同的写入面积将闪存胞元尽可能编程到更可靠的状态从而降低整体的错误率。现有的实现状态消除的数据调制方法是基于变长编码的,其缺陷是,发生在闪存中的比特翻转在解码后可能会导致码长的变化,进而导致存储数据中关键位的位置发生窜动。
发明内容
本发明提出了一种用于闪存胞元不可靠状态消除的等长编解码方法,提出的编解码方法实现了基于等长编码的状态消除数据调制,即所有的码长都相同,其保证了发生在闪存中比特翻转翻映射后不会导致码长的变化,进而保证了存储数据中关键位的位置不会发生窜动,从而抑制多种主要的状态转换类型引入的错误。
本发明是通过以下方案实现的:
一种用于闪存胞元不可靠状态消除的等长编解码方法,
所述方法包括以下步骤:
步骤一:通过编码器对胞元数据预处理;
步骤二:将多级胞元所有状态等分为4组,记为Gi,其中i=1,2,3,4;设其中一组中的状态为目标消除的状态Y,用2-bit的标志位Flag(i)分别标记这4组,即Flag(i)分别取00,01,10和11;根据码段中的状态组合得到重映射编码信息;
步骤三:将重映射编码后的信息存储到闪存的不同块中;
步骤四:解码器根据标志位将经过步骤三的3胞元码段反映射为原始数据。
进一步地,
编码器向闪存中写入一个块的数据后,根据闪存实际应用场景向存储的数据施加错误应力,并在全测试周期中统计各种状态转换数量,进而确定目标消除的不可靠状态。
进一步地,
将原始数据流按字线长度进行划分后,取3胞元作为一个编码的码段,
从i=1开始逐次递增检索,所述3胞元的码段中至少有1组状态没有出现,设最先检索到的组为第k组,X是第k组中的状态,则对编码的3胞元码段进行重映射Y→X后,再与2-bit标志位Flag(k)一起写入NAND闪存。
进一步地,
待将1个字线以3胞元为一个码段进行重映射后,可以得到1个字线的调制后的数据和2-bit标志位组成的阵列,将其分别存储在闪存中的不同块上。
进一步地,
解码器的工作流程为:
S1:从NAND闪存中读取出一个字线的数据;
S2:读取出所述字线对应的2-bit标志位序列;
S3:将用户区数据按照3胞元为一个码段进行拆分并和相应的2-bit标志位配对;
S4:判断一个字线的数据是否均已反映射,如未反映射进行步骤S6,如已经反映射则进行步骤S7;
S5:针对拆分的每3胞元调制数据,依据其对应的2-bit标志位序列反映射回原始的3胞元数据;
S6:将反映射的3胞元数据整合成一个字线的原始数据流输出。
本发明有益效果
(1)本发明的编解码方法实现一种以消除目标状态的数据形式对多级胞元闪存进行数据存储的编解码方法。对于MLC型闪存可消除一种状态,对于TLC型闪存可消除两种状态;
(2)本发明的编解码方法基于等长编码的特性保证了所***字的码长都相等,即原始数据流不会因为存储的调制数据中的比特翻转而发生窜动,特别适用于关键位敏感的存储应用场景误;
(3)本发明闪存胞元状态间的可靠性差异普遍存在于多种存储应用场景中,因而该编解码方法的闪存可靠性提升效果具备广泛的适用面。
附图说明
图1为本发明写入崭新闪存新块的图片;
图2为本发明写入后立即读出的图片;
图3为通过数据调对多级胞元闪存进行状态消除示意图,其中(a)为MLC型NAND闪存的状态消除示意图,(b)为TLC型NAND闪存的状态消除示意图;
图4为TLC型NAND闪存状态转换示例;
图5为TLC型NAND闪存中消除B状态和C状态的重映射方法示例;
图6为从闪存读出数据后的反映射流程图;
图7为编解码方法提升降低TLC型NAND闪存整体错误率的示例。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面以图片数据为例说明关键位敏感数据类型对保证关键位位置不发生窜动的重要性。图1是写入闪存崭新块(写入/擦除循环为0)的一张图片,图2是写入后立即读出的数据恢复出的图片,二者的误差在10-5量级,尽管该错误率非常低,但是可以看出恢复的图片数据存在严重的失真,这是因为在关键位上发生了比特翻转,因而可以看出,保证存储数据中的关键位的位置在原始数据流中不发生窜动,对存储数据的进一步纠错工作具有重要意义。
本发明的方法可以实现在MLC闪存中消除一个状态或在TLC闪存中消除两个状态的编解码方法,主要分为编码器和解码器两个部分。其中,编码器用于向闪存写入数据前对原始数据的预处理环节,解码器用于从闪存中读取数据后将其恢复成原始数据的环节。
编码器编码特征:
如图3所示,如果将随机数据直接写入到闪存中,可以发现被编程到各种状态的胞元数量几乎相等,通过提出的数据调制方法后,可以实现在MLC闪存中消除一个状态或在TLC闪存中消除两个状态。
一种用于闪存胞元不可靠状态消除的等长编解码方法:
所述方法包括以下步骤:
步骤一:通过编码器对胞元数据预处理;
步骤二:将多级胞元所有状态等分为4组,记为Gi,其中i=1,2,3,4;设其中一组中的状态为目标消除的状态Y,用2-bit的标志位Flag(i)分别标记这4组,即Flag(i)分别取00,01,10和11;根据码段中的状态组合得到重映射编码方法;
步骤三:将重映射编码后的信息存储到闪存的不同块中;
步骤四:解码器根据标志位将经过步骤三的3胞元码段反映射为原始数据。
编码器向闪存中写入一个块的数据后,根据闪存实际应用场景向存储的数据施加错误应力,并在全测试周期中统计各种状态转换数量,进而确定目标消除的不可靠状态。
图4是向TLC型NAND闪存新块中写入随机数据,将芯片置于85℃环境中产生相当于常温下1年的驻留效果,期间统计到的各种状态转换产生的错误比特数量。可以看出,状态转换主要发生在相邻的状态间,此外,胞元间的可靠性存在明显差异,例如,C到B(C>B)这种状态转换类型发生的概率显著高于D到C(D>C)这种状态转换类型发生的概率,因而可以通过数据调制使得编程后的TLC型NAND闪存中不含C状态的胞元,进而避免由C>B引入的错误比特。
将原始数据流按字线长度进行划分后,取3胞元作为一个编码的码段,
从i=1开始逐次递增检索,所述3胞元的码段中至少有1组状态没有出现,设最先检索到的组为第k组,X是第k组中的状态,则对编码的3胞元码段进行重映射Y→X后,再与2-bit标志位Flag(k)一起写入NAND闪存。
图5是以在TLC型NAND闪存中以消除B状态和C状态为例,在分组方式为{ER,A}、{B,C}、{D,E}、{F,G}、k取1~4时,对编码方法作出的示例说明
待将1个字线以3胞元为一个码段进行重映射后,可以得到1个字线的调制后的数据和2-bit标志位组成的阵列,将其分别存储在闪存中的不同块上。
译码器的工作流程如图6所示,其与编码器工作流程基本相反,主要功能是根据标志位将经过数据调制的3胞元码段反映射为原始的数据。
解码器的工作流程为:
S1:从NAND闪存中读取出一个字线的数据;
S2:读取出所述字线对应的2-bit标志位序列;
S3:将用户区数据按照3胞元为一个码段进行拆分并和相应的2-bit标志位配对;
S4:判断一个字线的数据是否均已反映射,如未反映射进行步骤S6,如已经反映射则进行步骤S7;
S5:针对拆分的每3胞元调制数据,依据其对应的2-bit标志位序列反映射回原始的3胞元数据;
S6:将反映射的3胞元数据整合成一个字线的原始数据流输出。
如图7所示为按提出的编解码方案对TLC型NAND闪存进行存储后起到的整体错误率降低效果示例,分别将原始数据和调制数据存储在一TLC型NAND闪存的新块中(写入/擦除循环为0),并将闪存芯片置于85℃的环境中使其存储的数据产生常温下1年的驻留效果,测量结果显示期间错误率平均减少幅度为49%,即近一半的错误比特被消除。
本发明采用基于每3胞元码段附加2-bit标志位的数据调制方法,对MLC型NAND闪存以消除1个不可靠状态的数据形式完成编程,起到的效果是消除了由该不可靠状态引起的状态翻转错误类型;
采用基于每3胞元码段附加2-bit标志位的数据调制方法,对于TLC型NAND闪存以完除2个目标状态的数据形式完成编程,起到的效果是消除了由该两种不可靠状态引起的状态翻转错误类型;
基于等长编码的数据调制方案保证了所***字的码长都相同,即,存储在闪存中的调制数据码字中即便发生了比特翻转,在反映射后也不会导致原始数据码段码长的变化,起到的效果是提升了关键位敏感数据类型的存储可靠性。
以上对本发明所提出的一种用于闪存胞元不可靠状态消除的等长编解码方法,进行了详细介绍,对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (5)
1.一种用于闪存胞元不可靠状态消除的等长编解码方法,其特征在于:
所述方法包括以下步骤:
步骤一:通过编码器对胞元数据预处理;
步骤二:将多级胞元所有状态等分为4组,记为Gi,其中i=1,2,3,4;设其中一组中的状态为目标消除的状态Y,用2-bit的标志位Flag(i)分别标记这4组,即Flag(i)分别取00,01,10和11;根据码段中的状态组合得到重映射编码信息;
步骤三:将重映射编码后的信息存储到闪存的不同块中;
步骤四:解码器根据标志位将经过步骤三的3胞元码段反映射为原始数据。
2.根据权利要求1所述方法,其特征在于:
编码器向闪存中写入一个块的数据后,根据闪存实际应用场景向存储的数据施加错误应力,并在全测试周期中统计各种状态转换数量,进而确定目标消除的不可靠状态。
3.根据权利要求2所述方法,其特征在于:
将原始数据流按字线长度进行划分后,取3胞元作为一个编码的码段,
从i=1开始逐次递增检索,所述3胞元的码段中至少有1组状态没有出现,设最先检索到的组为第k组,X是第k组中的状态,则对编码的3胞元码段进行重映射Y→X后,再与2-bit标志位Flag(k)一起写入NAND闪存。
4.根据权利要求3所述方法,其特征在于:
待将1个字线以3胞元为一个码段进行重映射后,可以得到1个字线的调制后的数据和2-bit标志位组成的阵列,将其分别存储在闪存中的不同块上。
5.根据权利要求4所述方法,其特征在于:
解码器的工作流程为:
S1:从NAND闪存中读取出一个字线的数据;
S2:读取出所述字线对应的2-bit标志位序列;
S3:将用户区数据按照3胞元为一个码段进行拆分并和相应的2-bit标志位配对;
S4:判断一个字线的数据是否均已反映射,如未反映射进行步骤S6,如已经反映射则进行步骤S7;
S5:针对拆分的每3胞元调制数据,依据其对应的2-bit标志位序列反映射回原始的3胞元数据;
S6:将反映射的3胞元数据整合成一个字线的原始数据流输出;
S7:结束映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110672532.XA CN113342569B (zh) | 2021-06-17 | 2021-06-17 | 一种用于闪存胞元不可靠状态消除的等长编解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110672532.XA CN113342569B (zh) | 2021-06-17 | 2021-06-17 | 一种用于闪存胞元不可靠状态消除的等长编解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342569A CN113342569A (zh) | 2021-09-03 |
CN113342569B true CN113342569B (zh) | 2022-02-11 |
Family
ID=77476008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110672532.XA Active CN113342569B (zh) | 2021-06-17 | 2021-06-17 | 一种用于闪存胞元不可靠状态消除的等长编解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342569B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636285A (zh) * | 2015-02-03 | 2015-05-20 | 北京麓柏科技有限公司 | 一种闪存存储***及其读写、删除方法 |
CN105243025A (zh) * | 2015-09-25 | 2016-01-13 | 联想(北京)有限公司 | 一种映射表的形成及加载方法、电子设备 |
CN109446117A (zh) * | 2018-09-06 | 2019-03-08 | 杭州电子科技大学 | 一种固态硬盘页级闪存转换层设计方法 |
CN109661654A (zh) * | 2016-09-30 | 2019-04-19 | 英特尔公司 | 存储器中的差错校验和纠正码的扩展应用 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7904780B2 (en) * | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of modulating error correction coding |
US8072805B2 (en) * | 2009-08-18 | 2011-12-06 | Skymedi Corporation | Method and system of finding a read voltage for a flash memory |
CN103198869B (zh) * | 2013-03-04 | 2016-04-27 | 中国科学院长春光学精密机械与物理研究所 | 一种空间ccd图像存储器nand闪存纠错编/解码器及纠错方法 |
US9009568B2 (en) * | 2013-08-09 | 2015-04-14 | Sandisk Technologies Inc. | Sensing parameter management in non-volatile memory storage system to compensate for broken word lines |
CN104467871B (zh) * | 2014-11-17 | 2018-03-27 | 哈尔滨工业大学 | 提高NAND Flash存储可靠性的数据存储方法 |
CN107590021B (zh) * | 2017-08-22 | 2020-01-03 | 华中科技大学 | 一种降低闪存误码率的编、解码器和编、解码方法 |
-
2021
- 2021-06-17 CN CN202110672532.XA patent/CN113342569B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636285A (zh) * | 2015-02-03 | 2015-05-20 | 北京麓柏科技有限公司 | 一种闪存存储***及其读写、删除方法 |
CN105243025A (zh) * | 2015-09-25 | 2016-01-13 | 联想(北京)有限公司 | 一种映射表的形成及加载方法、电子设备 |
CN109661654A (zh) * | 2016-09-30 | 2019-04-19 | 英特尔公司 | 存储器中的差错校验和纠正码的扩展应用 |
CN109446117A (zh) * | 2018-09-06 | 2019-03-08 | 杭州电子科技大学 | 一种固态硬盘页级闪存转换层设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113342569A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10521292B2 (en) | Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information | |
TWI533304B (zh) | 用於儲存資料於具有跨頁區段、多頁編碼及每頁編碼之多位準單元快閃記憶體器件中之方法及裝置 | |
CN107590021B (zh) | 一种降低闪存误码率的编、解码器和编、解码方法 | |
US8625347B2 (en) | Memory device and control method of memory device | |
US9047972B2 (en) | Methods, devices, and systems for data sensing | |
KR101429184B1 (ko) | 낸드 플래시 메모리 장치의 독출 전압 조정 방법 | |
US9025374B2 (en) | System and method to update read voltages in a non-volatile memory in response to tracking data | |
TWI430092B (zh) | 三階儲存單元的快閃記憶體裝置及其控制方法 | |
US20130013870A1 (en) | Differential vector storage for non-volatile memory | |
US20090316490A1 (en) | Method of writing data into semiconductor memory and memory controller | |
KR102068519B1 (ko) | 저장 장치, 그것의 쓰기 방법 및 읽기 방법 | |
Tanakamaru et al. | Highly reliable and low power SSD using asymmetric coding and stripe bitline-pattern elimination programming | |
CN110047544B (zh) | 用于包括qlc单元的存储器装置的编码方法及*** | |
US9171629B1 (en) | Storage device, memory controller and memory control method | |
CN111813591B (zh) | Nand Flash的数据纠错方法、装置、电子设备及存储介质 | |
CN103365739A (zh) | 一种nand闪存存储设备及其数据恢复方法 | |
CN114639436A (zh) | 一种闪存芯片数据读取方法 | |
CN109872764B (zh) | 一种多级存储单元闪存的ecc多码率编解码***及方法 | |
TW201320090A (zh) | 基於匹配位元型樣之資料修正 | |
CN112181710B (zh) | 一种基于比特翻转的固态盘数据存储方法和装置 | |
CN113342569B (zh) | 一种用于闪存胞元不可靠状态消除的等长编解码方法 | |
CN107294542B (zh) | Mlc闪存中基于双层ldpc码的编、译码方法 | |
US10360973B2 (en) | Data mapping enabling fast read multi-level 3D NAND to improve lifetime capacity | |
CN117497018A (zh) | 非易失性存储设备中读取参考电压的调整方法和存储***控制器 | |
CN113342570B (zh) | 一种适配3d tlc型nand闪存数据存储的双目标状态消除编解码方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |