CN111863080A - 一种基于层间差异的3d闪存读性能优化方法 - Google Patents
一种基于层间差异的3d闪存读性能优化方法 Download PDFInfo
- Publication number
- CN111863080A CN111863080A CN202010650833.8A CN202010650833A CN111863080A CN 111863080 A CN111863080 A CN 111863080A CN 202010650833 A CN202010650833 A CN 202010650833A CN 111863080 A CN111863080 A CN 111863080A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- layer
- data
- error rate
- original
- 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
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- 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/1012—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 using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种基于层间差异的3D闪存读性能优化方法。三维闪存每层存储的数据表现出不同的错误特性,原始误码率具有层间差异性,使得每层存储的数据具有不同的可靠性。基于3D闪存的层间差异性,本发明提出动态LDPC纠错方法以提升3D闪存读性能。首先利用硬件测试平台研究每层存储的数据在不同保存和擦写周期下的误码率变化特征,然后根据层间原始误码率差异设计不同码长的LDPC纠错码。在具有较低误码率的层设计短码长的LDPC码,短码长的LDPC码具有较低的读写延迟。反之,在具有较高原始误码率的层,设计长码长的LDPC码,长码长的LDPC码具有较强的纠错能力,能够充分保证数据可靠性。
Description
技术领域
本发明属于固态盘存储技术领域,更具体地,涉及一种基于层间差异的3D闪存读性能优化方法。
背景技术
3D闪存作为大容量存储设备已经得到广泛应用,但是随着数据保存时间和擦写周期的增加,存储在闪存单元中的电荷会逐渐流失,引起可靠性问题。LDPC纠错码作为主流的纠错码广泛用于3D闪存中以保证数据可靠性。
由于工艺技术的影响,3D闪存每层存储的数据可靠性具有层间差异性。当受到保存和擦写周期影响时,每层的原始误码率表现出不同的特性。原始误码率的层间差异导致不同的存储层具有不同的读性能。
然而,现有的LDPC码在进行编码的过程中,没有充分考虑层间差异对编译码性能的影响,增加了编译码延迟,降低了3D闪存整体读性能。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于层间差异的3D闪存读性能优化方法。其技术原理在于,首先利用FPGA硬件测试平台对3D闪存每层的错误特征进行测试,统计分析每层的原始误码率受保存和擦写周期影响时的变化规律,研究3D闪存层间差异特征。然后基于误码率的层间差异性,设计不同码长的LDPC纠错码,保证数据存储可靠性的同时提升编译码效率和3D闪存读写性能。对具有较低误码率的层设计短码长LDPC码,短码长LDPC码能够降低编译码时间复杂度,提升编译码性能和降低编译码延迟。对具有较高误码率的层设计长码长LDPC纠错码,长码长LDPC纠错码具有较强的纠错能力,能够较有效的保证数据可靠性。本发明基于3D闪存层间错误特征差异性动态调整LDPC纠错码的码长从而能够解决现有LDPC引起高的编译码延迟的和降低3D闪存读写效率的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于层间差异的3D闪存读性能优化方法,其是应用在闪存系统中,所述方法包括以下步骤:
(1)设置3D闪存擦除周期为PE。其中PE的取值集合为{0,0.5k,1k,1.5k,2k,2.5k,3k,3.5k,4k,4.5k,5k,5.5k,6k}。
(2)标记PE为i,i初始化为0。
(3)将随机生成的数据逐层写入3D闪存芯片中,并将原始数据放入缓存中。将存储在3D闪存单元中的数据读出,并与原始数据进行比较获得PE为i时的原始误码率。
(4)将3D闪存磨损到i=i+0.5k。
(5)判断i是否小于等于6k。
(6)如果是,则重复执行步骤(3)和(4),分别记录不同PE段的原始误码率变化。
(7)如果否,则统计在相同的PE下,对3D闪存存储层进行分类,将具有相同或相近误码率的层归为一类。
(8)将整个存储层分为N类,其中N可以取3,4或5,可以根据需求调整分类数目。
(9)将原始数据进行编码时,首先判断原始数据要写入的层,然后判断该写入的层属于的分类,最后选取相应的码长进行编码。
(10)将编码之后的数据写入3D闪存页中。
(11)当对存储在3D闪存页中的数据进行读取时,首先获得读取的层信息,然后选取对应码长的译码算法进行译码操作。
(12)将译码后的数据输出。
本发明,能够反映出在相同PE下,层间结构差异对误码率的影响。
其中,将具有相同或相近的误码率的层归为一类,有利于使用相同长度进行统一编码。
本发明,根据不同的类可以动态设计不同长度的LDPC纠错码。
本发明,动态选取码长进行编码能够保证数据可靠性的同时降低编译码延迟,且在编码过程中能够进行并行操作提升编译码效率和读写性能。
本发明,译码过程首先获得层信息,且在译码过程中利用并行操作能够高效进行译码,提高译码吞吐率。
本发明,在分类的过程中可以采用机器学习算法进行操作。
其中,在编码的过程中,可以选取的码长分别为512B+R1,1KB+R2,2KB+R3和4KB+R4,R1,R2,R3和R4分别表示生成的冗余位。
说明:1K即1000次,编程-擦除为1次操作,以编程-擦除重复次数作为统计数据的依据。
要求保护的技术方案如下:
种基于层间差异的3D闪存读性能优化方法,包括以下步骤:
(1)设置3D闪存擦除周期为PE,其中PE的取值集合为{0,0.5k,1k,1.5k,2k,2.5k,3k,3.5k,4k,4.5k,5k,5.5k,6k};
(2)标记PE为i,i初始化为0;
(3)将随机生成的数据逐层写入3D闪存芯片中,并将原始数据放入缓存中;将存储在3D闪存单元中的数据读出,并与原始数据进行比较获得PE为i时的原始误码率;
(4)将3D闪存磨损到i=i+0.5k;
(5)判断i是否小于等于6k;
(6)如果是,则重复执行步骤(3)和(4),分别记录不同PE段的原始误码率变化;
(7)如果否,则统计在相同的PE下,对3D闪存存储层进行分类,将具有相同或相近误码率的层归为一类;
(8)将整个存储层分类,分类数目根据需求确定;
(9)将原始数据进行编码时,首先判断原始数据要写入的层,然后判断该写入的层属于的分类,最后选取相应的码长进行编码;
(10)将编码之后的数据写入3D闪存页中;
(11)当对存储在3D闪存页中的数据进行读取时,首先获得读取的层信息,然后选取对应码长的译码算法进行译码操作;
(12)将译码后的数据输出。
优选地,步骤(7)包括:在分类的过程中采用机器学习算法进行操作。
优选地,步骤(8)包括:将整个存储层分为3类,或4类,或5类。
优选地,步骤(9)包括:在编码的过程中,选取的码长分别为512B+R1,1KB+R2,2KB+R3和4KB+R4,其中R1,R2,R3和R4分别表示生成的冗余位。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明的方法能够降低LDPC编译码延迟和提升编译码效率。
(2)本发明能够根据3D闪存层间差异性动态调整LDPC的码长提升系统读写性能。
附图说明
图1是本发明一种基于层间差异的3D闪存读性能优化方法的设计结构图。
图2是本发明一种基于层间差异的3D闪存读性能优化方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的设计结构图如图1所示,当数据在写入3D闪存的过程中,首先判断数据将要写入的层信息,然后选取不同码长的LDPC纠错码进行编码,编码生成码字之后写入3D闪存芯片中,在进行编码和写入的过程中,可以进行并行化处理,提高编码和写入速度。当数据从3D闪存层中读取时,首先判断读取的数据所在的层,然后选取对应的LDPC译码器进行迭代译码,译码之后将数据输出到主机端。
如图2所示,本发明一种基于层间差异的3D闪存读性能优化方法,其是应用在闪存系统中,且包括以下步骤:
(1)设置3D闪存擦除周期为PE。其中PE的取值集合为{0,0.5k,1k,1.5k,2k,2.5k,3k,3.5k,4k,4.5k,5k,5.5k,6k}。
(2)标记PE为i,i初始化为0。
(3)将随机生成的数据逐层写入3D闪存芯片中,并将原始数据放入缓存中。将存储在3D闪存单元中的数据读出,并与原始数据进行比较获得PE为i时的原始误码率。
(4)将3D闪存磨损到i=i+0.5k。
(5)判断i是否小于等于6k。
(6)如果是,则重复执行步骤(3)和(4),分别记录不同PE段的原始误码率变化。
本步骤的优点在于:能够反映出在相同PE下,层间结构差异对误码率的影响。
(7)如果否,则统计在相同的PE下,对3D闪存存储层进行分类,将具有相同或相近误码率的层归为一类。其中在分类的过程中可以采用机器学习算法进行操作。
本步骤的优点在于:将具有相同或相近的误码率的层归为一类,有利于使用相同长度进行统一编码。
(8)将整个存储层分为N类,其中N可以取3,4或5,可以根据需求调整分类数目。
本步骤的优点在于:根据不同的类可以动态设计不同长度的LDPC纠错码。
(9)将原始数据进行编码时,首先判断原始数据要写入的层,然后判断该写入的层属于的分类,最后选取相应的码长进行编码。其中在编码的过程中,可以选取的码长分别为512B+R1,1KB+R2,2KB+R3和4KB+R4,R1,R2,R3和R4分别表示生成的冗余位。
本步骤的优点在于:动态选取码长进行编码能够保证数据可靠性的同时降低编译码延迟,提升编译码效率和读写性能。
(10)将编码之后的数据写入3D闪存页中。
(11)当对存储在3D闪存页中的数据进行读取时,首先获得读取的层信息,然后选取对应码长的译码算法进行译码操作。其中在进行译码操作时可以进行并行操作。
本步骤的优点在于:译码过程首先获得层信息,且在译码过程中利用并行操作能够高效进行译码,提高译码吞吐率
(12)将译码后的数据输出。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于层间差异的3D闪存读性能优化方法,其特征在于,包括以下步骤:
(1)设置3D闪存擦除周期为PE,其中PE的取值集合为{0,0.5k,1k,1.5k,2k,2.5k,3k,3.5k,4k,4.5k,5k,5.5k,6k};
(2)标记PE为i,i初始化为0;
(3)将随机生成的数据逐层写入3D闪存芯片中,并将原始数据放入缓存中;将存储在3D闪存单元中的数据读出,并与原始数据进行比较获得PE为i时的原始误码率;
(4)将3D闪存磨损到i=i+0.5k;
(5)判断i是否小于等于6k;
(6)如果是,则重复执行步骤(3)和(4),分别记录不同PE段的原始误码率变化;
(7)如果否,则统计在相同的PE下,对3D闪存存储层进行分类,将具有相同或相近误码率的层归为一类;
(8)将整个存储层分类,分类数目根据需求确定;
(9)将原始数据进行编码时,首先判断原始数据要写入的层,然后判断该写入的层属于的分类,最后选取相应的码长进行编码;
(10)将编码之后的数据写入3D闪存页中;
(11)当对存储在3D闪存页中的数据进行读取时,首先获得读取的层信息,然后选取对应码长的译码算法进行译码操作;
(12)将译码后的数据输出。
2.根据权利要求1所述的一种基于层间差异的3D闪存读性能优化方法,其特征在于,步骤(7)包括:在分类的过程中采用机器学习算法进行操作。
3.根据权利要求1所述的一种基于层间差异的3D闪存读性能优化方法,其特征在于,步骤(8)包括:将整个存储层分为3类,或4类,或5类。
4.根据权利要求1所述的一种基于层间差异的3D闪存读性能优化方法,其特征在于,步骤(9)包括:在编码的过程中,选取的码长分别为512B+R1,1KB+R2,2KB+R3和4KB+R4,其中R1,R2,R3和R4分别表示生成的冗余位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010650833.8A CN111863080A (zh) | 2020-07-08 | 2020-07-08 | 一种基于层间差异的3d闪存读性能优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010650833.8A CN111863080A (zh) | 2020-07-08 | 2020-07-08 | 一种基于层间差异的3d闪存读性能优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111863080A true CN111863080A (zh) | 2020-10-30 |
Family
ID=73152862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010650833.8A Pending CN111863080A (zh) | 2020-07-08 | 2020-07-08 | 一种基于层间差异的3d闪存读性能优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111863080A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356229A (zh) * | 2021-12-22 | 2022-04-15 | 合肥康芯威存储技术有限公司 | 一种数据存储设备的参数优化方法及其优化系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101000569A (zh) * | 2006-12-29 | 2007-07-18 | 福昭科技(深圳)有限公司 | 一种对多重扇区进行错误修正编码的方法 |
US20120042200A1 (en) * | 2010-08-11 | 2012-02-16 | The University Of Tokyo | Control device and data storage device |
CN102394114A (zh) * | 2011-11-14 | 2012-03-28 | 清华大学 | 具有自适应纠错能力的bch码纠错方法 |
CN103329103A (zh) * | 2010-10-27 | 2013-09-25 | Lsi公司 | 用于基于闪存的数据存储的自适应ecc技术 |
CN106484558A (zh) * | 2016-09-20 | 2017-03-08 | 华中科技大学 | 一种基于可变码率的纠错码提高固态盘的可靠性方法 |
CN111309544A (zh) * | 2020-02-11 | 2020-06-19 | 上海威固信息技术股份有限公司 | 一种读参考电压受多维因子影响的预测建模及施加方法 |
-
2020
- 2020-07-08 CN CN202010650833.8A patent/CN111863080A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101000569A (zh) * | 2006-12-29 | 2007-07-18 | 福昭科技(深圳)有限公司 | 一种对多重扇区进行错误修正编码的方法 |
US20120042200A1 (en) * | 2010-08-11 | 2012-02-16 | The University Of Tokyo | Control device and data storage device |
CN103329103A (zh) * | 2010-10-27 | 2013-09-25 | Lsi公司 | 用于基于闪存的数据存储的自适应ecc技术 |
CN102394114A (zh) * | 2011-11-14 | 2012-03-28 | 清华大学 | 具有自适应纠错能力的bch码纠错方法 |
CN106484558A (zh) * | 2016-09-20 | 2017-03-08 | 华中科技大学 | 一种基于可变码率的纠错码提高固态盘的可靠性方法 |
CN111309544A (zh) * | 2020-02-11 | 2020-06-19 | 上海威固信息技术股份有限公司 | 一种读参考电压受多维因子影响的预测建模及施加方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356229A (zh) * | 2021-12-22 | 2022-04-15 | 合肥康芯威存储技术有限公司 | 一种数据存储设备的参数优化方法及其优化系统 |
CN114356229B (zh) * | 2021-12-22 | 2023-09-22 | 合肥康芯威存储技术有限公司 | 一种数据存储设备的参数优化方法及其优化系统 |
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 | |
CN109616148B (zh) | 具有解码器的存储器系统、其操作方法和解码器 | |
US11632132B2 (en) | Configuring iterative error correction parameters using criteria from previous iterations | |
US11550663B2 (en) | Changing of error correction codes based on the wear of a memory sub-system | |
CN112181710B (zh) | 一种基于比特翻转的固态盘数据存储方法和装置 | |
WO2023134299A1 (en) | Memory device, memory system, and method of operating the same | |
US20230205438A1 (en) | Managing voltage bin selection for blocks of a memory device | |
CN114520014A (zh) | 用于确定读取阈值电压的变化的系统和方法 | |
US9071269B2 (en) | Encoding data for storage in a data storage device | |
US10042565B2 (en) | All-flash-array primary storage and caching appliances implementing triple-level cell (TLC)-NAND semiconductor microchips | |
US11709733B2 (en) | Metadata-assisted encoding and decoding for a memory sub-system | |
CN113936715A (zh) | 使用域变换的读取阈值优化系统和方法 | |
CN111863080A (zh) | 一种基于层间差异的3d闪存读性能优化方法 | |
US20230153011A1 (en) | Multi-page parity data storage in a memory device | |
US11914510B2 (en) | Layer interleaving in multi-layered memory | |
US11996860B2 (en) | Scaled bit flip thresholds across columns for irregular low density parity check decoding | |
US11750218B2 (en) | Iterative error correction with adjustable parameters after a threshold number of iterations | |
US11830545B2 (en) | Data programming techniques to store multiple bits of data per memory cell with high reliability | |
US20230223085A1 (en) | Memory device, memory system, and method of operating the same | |
US11675530B2 (en) | Memory controller, storage device and operating method of memory controller | |
US20230223078A1 (en) | Memory device, memory system, and method of operating the same | |
KR20120121675A (ko) | 쓰기 데이터 패턴 인식에 의한 플래시 메모리 관리 장치 및 방법 |
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 |
Application publication date: 20201030 |
|
RJ01 | Rejection of invention patent application after publication |