CN112992256B - 误码率平衡方法及装置 - Google Patents
误码率平衡方法及装置 Download PDFInfo
- Publication number
- CN112992256B CN112992256B CN201911300109.6A CN201911300109A CN112992256B CN 112992256 B CN112992256 B CN 112992256B CN 201911300109 A CN201911300109 A CN 201911300109A CN 112992256 B CN112992256 B CN 112992256B
- Authority
- CN
- China
- Prior art keywords
- distribution state
- bit
- state combination
- error rate
- combination
- 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
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000012986 modification Methods 0.000 claims abstract description 81
- 230000004048 modification Effects 0.000 claims abstract description 81
- 230000015654 memory Effects 0.000 claims description 61
- 238000003860 storage Methods 0.000 claims description 22
- 238000011156 evaluation Methods 0.000 claims description 20
- 238000013210 evaluation model Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 description 14
- 238000012937 correction Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000009792 diffusion process Methods 0.000 description 7
- 230000014759 maintenance of location Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000007480 spreading Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/44—Indication or identification of errors, e.g. for repair
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
本发明提供误码率平衡方法及装置,以实现对不同逻辑页的误码率的平衡。在本发明实施例中,在编码得到第一码字组后,对第一码字组中的第一比特单元组执行了平衡各逻辑页的误码率的修改操作,得到第二码字组并保存。在执行修改操作后,第一比特单元组被修改为第二比特单元组,而第二比特单元组中的G个比特单元的分布态组合为第二分布态组合集中的分布态组合。第一比特单元组中G个比特单元的分布态组合则为第一分布态组合集中的分布态组合。第二分布态组合集中的分布态组合与第一分布态组合集中的分布态组合相比,可在一定程度上平衡Upper Page、Middle Page、Lower Page的误码率,进而推迟了读出纠错再写入的操作的发生时间。
Description
技术领域
本发明涉及非易失存储器技术领域,特别涉及误码率平衡方法及装置。
背景技术
NAND闪存是用于SSD和存储卡的一种非易失性存储体系结构。
典型的NAND包括多个块(Block),每个Block又由多个物理页(Page)组成,每个Page对应着一个字线(Word line,WL),由多个存储单元(最小存储粒度)构成。物理页是读写的单元,也就是向NAND闪存中写入或读出数据必须以页为操作单位进行。
其中,TLCNAND闪存是NAND的一种,TLCNAND的一个存储单元可存储3比特,这3比特分别属于不同的逻辑页:快页(Upper Page)、中页(Middle Page)、慢页(Lower Page)。也即,一物理页对应三个虚拟页。
这3比特的格雷码有多个分布态(E至P7)如下表1所示。
E | P1 | P2 | P3 | P4 | P5 | P6 | P7 | |
Lower page | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Middle page | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
Upper page | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
表1
在将数据写入物理页之前,会对原始数据进行编码存储。当Upper Page、MiddlePage、Lower Page中任一页数据的误码率上升到纠错能力上限时,就需要将Upper Page、Middle Page、Lower Page中的数据读出进行纠错,纠错后再重新编码写入。
Upper Page、Middle Page、Lower Page存在误码率不平衡的问题,请参见图1,在Upper Page达到纠错上限时,当Upper page误码率上升到纠错能力上限时,就需要进行读出纠错再写入的操作,而此时Middle page和Lower Page的误码率还较低,纠错能力被浪费。
发明内容
有鉴于此,本发明实施例提供误码率平衡方法及装置,以实现对不同逻辑页的误码率的平衡。
为实现上述目的,本发明实施例提供如下技术方案:
一种误码率平衡方法,包括:
获取待存储的原始数据;
采用预设编码算法对所述原始数据进行编码,得到第一码字组;其中,所述第一码字组包括:J个第一码字,所述J个第一码字与J个逻辑页一一对应;所述J个第一码字中对应同一存储单元的数据为一个比特单元;每一比特单元包括J比特的数据;J为正整数;
根据比特单元的分布态,确定第一比特单元组;所述第一比特单元组包括:与同一沟道上G个连续的存储单元相对应的G个比特单元,并且,所述G个比特单元的分布态组合为第一分布态组合集中的分布态组合;G为自然数;
对所述第一比特单元组执行平衡各逻辑页的误码率的修改操作,得到第二码字组;在执行所述修改操作后,所述第一比特单元组被修改为第二比特单元组;所述第二比特单元组中的G个比特单元的分布态组合为第二分布态组合集中的分布态组合;
向非易失存储器写入所述第二码字组。
一种误码率平衡装置,包括:
获取单元,用于获取待存储的原始数据;
编码单元,用于:
采用预设编码算法对所述原始数据进行编码,得到第一码字组;其中,所述第一码字组包括:J个第一码字,所述J个第一码字与J个逻辑页一一对应;所述J个第一码字中对应同一存储单元的数据为一个比特单元;每一比特单元包括J比特的数据;J为正整数;
根据比特单元的分布态,确定第一比特单元组;所述第一比特单元组包括:与同一沟道上G个连续的存储单元相对应的G个比特单元,并且,所述G个比特单元的分布态组合为第一分布态组合集中的分布态组合;G为自然数;
对目标存储单元组在第一码字中所对应的比特单元,执行平衡各逻辑页的误码率的修改操作,得到第二码字组;在执行所述修改操作后,所述第一比特单元组被修改为第二比特单元组;所述第二比特单元组中的G个比特单元的分布态组合为第二分布态组合集中的分布态组合;
向非易失存储器写入所述第二码字组。
可见,在本发明实施例中,在编码得到第一码字组后,对第一码字组中的第一比特单元组执行了平衡各逻辑页的误码率的修改操作,得到第二码字组并保存。在执行修改操作后,第一比特单元组被修改为第二比特单元组,而第二比特单元组中的G个比特单元的分布态组合为第二分布态组合集中的分布态组合。第一比特单元组中G个比特单元的分布态组合则为第一分布态组合集中的分布态组合。第二分布态组合集中的分布态组合与第一分布态组合集中的分布态组合相比,可在一定程度上平衡Upper Page、Middle Page、LowerPage的误码率,进而推迟了读出纠错再写入的操作的发生时间。
此外,需要说明的是,本发明在第一码字组的基础上引入了修改错误得到第二码字组,但引入的修改错误在纠错能力范围内是可以纠正的。在需要从非易失存储器中读取数据时,会使用与编码算法相应的译码算法对存储的码字进行解码和纠错处理,这样就能纠正本发明实施例在编码时引入的修改错误。
附图说明
图1为误码率不平衡示意图;
图2a为本发明实施例提供的横向扩散效应示意图;
图2b为本发明实施例提供的存储单元间相互影响示意图;
图2c为本发明实施例提供的固态驱动器结构示意图;
图3、4为本发明实施例提供的误码率平衡方法的示例性流程;
图5为本发明实施例提供的修改前后逻辑页的误码率示意图;
图6为本发明实施例提供的误码率平衡装置的结构示意图。
具体实施方式
NAND闪存分为SLC(单层次存储单元)NAND闪存、MLC(双层存储单元)NAND闪存以及TLC(Triple-Level Cell,三层存储单元)NAND闪存等。
TLCNAND的一个存储单元可存储3比特,这3比特分别属于不同的逻辑页:快页(Upper Page)、中页(Middle Page)、慢页(Lower Page)。也即,一物理页对应三个虚拟页。
TLCNAND闪存通过增加存储单元在垂直方向(位线方向)上的堆叠(3D堆叠)数量(Word Line的堆叠数)以实现高密度化、大容量化。
请参见图2a,TLCNAND闪存采用“共享电荷存储层(Share Silicon)”结构,该结构在简化了工艺制程的同时带来了横向扩散(Lateral spreading)效应:若对一个块进行数据写入,那么对于同一个沟道上相邻字线(Word Line)所对应的存储单元,如果存储的电荷差距大,会导致明显的横向扩散效应,进而导致对应存储单元的误码率的明显上升。
以P6态为例,图2b示出了在同一沟道上相邻字线分别是E到P7态下误码率的情况。可以看到如果相邻WL存储的信息是E,则P6的误码率明显比相邻WL存储的信息是P7的情况高很多。
请参见图2b,根据统计当WL(n)(字线n)存储的是P6态时,若WL(n+1)存储的信息是E态,则P6的误码率相比于相邻是P7态的误码率来说要高得多。同时,因为编程顺序(从WL(0)开始编程),WL(n+1)对WL(n)的影响比WL(n-1)要大。
由于高态(例如P7态)的阈值分布在存储过程中会因横向扩散效应和纵向脱陷导致更严重的展宽和更快的漂移速度,这造成高态分布态之间的交叠更加严重。若以上表1中的格雷码编码方式进行数据写入,P7和P6态交叠产生的错误是由Upper Page承担,P6和P5态交叠产生的错误是由Middle Page承担。这些高态产生的错误往往较其他态交叠产生的错误要多,从而导致TLC中三个逻辑页的错误增长速度不同,进而导致逻辑页间误码率的不平衡。
为解决上述问题,本发明提供误码率平衡方法及装置,以实现对不同逻辑页的误码率的平衡。
请参见图2c,上述装置具体可为固态驱动器(Solid State Disk或Solid StateDrive,简称SSD)中的ECC(Error Checking and Correcting,错误检查和纠正)模块,或为SSD中的控制器(包括ECC模块和读写控制器)。
来自PC(个人电脑)的待写入NAND的数据,会经ECC模块处理后,由读写控制器写入NAND。而在需要读取数据时,可由读写控制器从NAND中读取数据,交由ECC模块进行译码后,再提供给PC。
图3示出了上述误码率平衡方法的一种示例性流程,其可包括:
S0:获取待存储的原始数据。
在待存储的原始数据较多时,可将其划分为固定长度的多个数据块。每一数据块包括J*K比特数据,对每一数据块中的原始数据执行下述操作。
上述J为正整数。以SLC为例,J=1,以MLC为例,J=2,以TLC为例,J=3。
S1:采用预设编码算法对上述原始数据进行编码,得到第一码字组。
在编码时,是按照逻辑页分别编码,因此得到的第一码字组包括J个第一码字。
预设编码算法可为BCH(Bose-Chaudhuri-Hocquenghem)编码算法、LDPC(low-density parity-check,LDPC)编码算法等。
在一个示例中,可使用BCH(9872,8192,120)编码算法进行编码。
需要说明的是,BCH码通常表示为BCH(n,k,t),其中η为码字长度;k为码字中数据信息的长度;t为该BCH码所允许的纠正错误的个数;n-k为冗余位的长度,n-k的值越大,冗余位的开销越多,则BCH码的纠错能力越强。
则BCH(9872,8192,120)表示码字长度为9872,码字中数据信息长度为8192,所允许的纠正错误个数等于120个。
前述提及的数据块的长度K,与编码算法支持的数据信息的长度相等,若采用BCH(9872,8192,120),K取值为8192。
J个第一码字中对应同一存储单元的数据为一个比特单元,一个比特单元包括J比特的数据,一个比特单元中的J比特分别属于J页逻辑页,这J比特数据的格雷码对应一个分布态。
对于TLCNAND闪存,J=3,也即,一个比特单元包括3个比特,这正好是一个TLCNAND存储单元可存储的容量。
与前述提及的相同,一个比特单元中的3比特分别属于不同的逻辑页:UpperPage、Middle Page和Lower Page。
这3比特的格雷码分布态(E至P7)如下表1所示。
E | P1 | P2 | P3 | P4 | P5 | P6 | P7 | |
Lower page | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Middle page | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
Upper page | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
表1
第一码字可以DP1表示。
S2:根据比特单元的分布态,确定第一比特单元组。
第一比特单元组包括:与同一沟道上G个连续的存储单元相对应的G个比特单元(G为自然数),并且,这G个比特单元所对应的分布态组合为第一分布态组合集中的分布态组合。本文后续将以G=3为例进行介绍。
同一沟通上的G个连续的存储单元可视为一个存储单元组,则第一比特单元组对应一个目标存储单元组。
以图2a为例,在同一沟道上字线WL(n+3)、WL(n+2)、WL(n+1)所对应的存储单元可构成一个存储单元组,该存储单元组对应的比特单元组可称为单元组n+2;在同一沟道上字线WL(n+2)、WL(n+1)、WL(n)所对应的存储单元可构成一个存储单元组,该存储单元组对应的比特单元组可称为单元组n+1;同理,在同一沟道上字线WL(n+1)、WL(n)、WL(n-1)所对应的存储单元亦可构成一个存储单元组,该存储单元组对应的比特单元组可称为单元组n。
假定,单元组n所对应的分布态组合与第一类分布态组合相匹配,那么,单元组n即为第一比特单元组。
本文后续会详细介绍第一分布态组合集。
S3:对第一比特单元组执行平衡各逻辑页的误码率的修改操作,得到第二码字组。
在执行上述修改操作后,第一比特单元组被修改为第二比特单元组。第二比特单元组中的G个比特单元的分布态组合为第二分布态组合集中的分布态组合。这样,第一码字组被修改为第二码字组。
第二码字组与第一码字组相类似,包括J个第二码字,第二码字可用DalgPalg表示。
上述平衡各逻辑页的误码率的修改操作,具体用于降低横向扩散效应和纵向脱陷效应。
具体的,平衡各逻辑页的误码率的修改操作可包括:
对第一比特单元中与目标逻辑页对应的数据进行修改,得到第二目标比特单元。
其中,第一目标比特单元为对应第一预设分布态的比特单元,第二目标比特单元对应的分布态为第二预设分布态。
也即,本实施例中,通过对数据进行修改,改变了目标存储单元组所对应的分布态组合。
本文后续会详细介绍第二分布态组合集。
S4:向非易失存储器写入第二码字组。
可按照现有的写入方式写入第二码字组。
步骤S4可由前述的读写控制器执行。
在编码得到第一码字组后,对第一码字组中的第一比特单元组执行了平衡各逻辑页的误码率的修改操作,得到第二码字组并保存。在执行修改操作后,第一比特单元组被修改为第二比特单元组,而第二比特单元组中的G个比特单元的分布态组合为第二分布态组合集中的分布态组合。第一比特单元组中G个比特单元的分布态组合则为第一分布态组合集中的分布态组合。第二分布态组合集中的分布态组合与第一分布态组合集中的分布态组合相比,可在一定程度上平衡Upper Page、Middle Page、Lower Page的误码率,进而推迟了读出纠错再写入的操作的发生时间。
此外,需要说明的是,本实施例是在第一码字组的基础上引入了修改错误得到第二码字组,但引入的修改错误在译码算法的纠错能力内是可以纠正的。
实际上,现有技术在需要从NAND中读取数据时,会使用与编码算法相应的译码算法对存储的码字进行译码,在译码过程中,会使用与编码算法相应的译码算法对存储的码字进行解码和纠错处理,这样就能纠正本发明实施例在编码时引入的修改错误。
下面以G=3为例,重点介绍如何确定第一分布态组合集和第二分布态组合集。
本申请是基于数据修改评估模型来确定第一分布态组合集和第二分布态组合集的,其建立步骤如下:
步骤1:定义某沟道上三个相邻的WL所对应的三个存储单元为一个存储单元组。
步骤2:计算第一码字组中各分布态组合所对应的存储单元组的误码率:
以某一分布态组合ABD为例,其对应的各存储单元组中的三个存储单元均分别以WL(n+1)、WL(n)、WL(n-1)表示,WL(n)分别与WL(n+1)和WL(n-1)相邻。
ABD也可分别称为第一至第三分布态。
在一个示例中,可采用如下计算公式计算ABD在预定时刻t的误码率Error Rate(ABD,t):
Error Rate(ABD,t)=Error Num(ABD,t)/Total Num(ABD)。
预定时刻t为预估的数据保持时间,本领域技术人员可根据实际情况灵活设计时刻t,在此不作赘述。
Error Num(ABD,t)表示t时刻分布态组合为ABD但发生错误的存储单元组的数量,Total Num(ABD)表示分布态组合为ABD的存储单元组的总数量。
假定要将ABD修改为ACD。其中,ABD可视为初始分布态组合,ACD可视为目标分布态组合,以TLC为例,A、C、D中的每一个分布态为E至P7态中的任一个,但ABD与ACD是不同的,也即B与C是不同的。
C也可称为第四分布态。
同理,ACD在预定时刻t的误码率Error Rate(ACD,t)=Error Num(ACD,t)/TotalNum(ACD)。
其他分布态在预定时刻的误码率计算方式与之相类似,在此不作赘述。
步骤3:计算修改前后WL(n)的误码率变化:
WL(n)的误码率变化=Error Rate(ABD,t)-Error Rate(ACD,t)
也即,WL(n)的误码率变化为初始分布态组合和目标分布态组合间的差值(可称为第一误码率差值)。
步骤4:计算修改前后WL(n-1)的误码率变化:
计算修改前后WL(n-1)的误码率变化时,是将WL(n-1)作为中间存储单元的。
在修改前,以WL(n-1)作为中间存储单元的存储单元组的分布态可表示为:XAB,分布态X表示任一分布态。
XAB可视为一个分布态组合集(可称为第三分布态组合集),以TLC模式为例,以0对应E态,1对应P1态,以此类推,则XAB可包括:0AB、1AB、2AB、3AB、4AB、5AB、6AB、7AB。
在修改后,以WL(n-1)作为中间存储单元的存储单元组的分布态可表示为:XAC。
同理,XAC可视为一个分布态组合集(可称为第四分布态组合集),以TLC模式为例,则XAC可包括:0AC、1AC、2AC、3AC、4AC、5AC、6AC、7AC。
设修改前WL(n-1)的误码率表示为Error Rate aver(AB,t)或ERaver1,则
Error Rate aver(AB,t)=average(∑X∈[0,7]Error Rate(XAB,t));
也即,将0AB、1AB、2AB、3AB、4AB、5AB、6AB、7AB在预定时刻t的误码率相加再取平均值作为Error Rate aver(AB,t)。
设修改后WL(n-1)的误码率表示为Error Rate aver(AC,t)或ERaver2,则
Error Rate aver(AC,t)=average(∑X∈[0,7]Error Rate(XAC,t))。
也即,将0AC、1AC、2AC、3AC、4AC、5AC、6AC、7AC在预定时刻t的误码率相加再取平均值作为Error Rate aver(AC,t)。
WL(n-1)的误码率变化=Error Rate aver(XAB)-Error Rate aver(XAC)。
WL(n-1)的误码率变化可称为第二误码率差值。
步骤5:计算修改前后WL(n+1)的误码率变化:
计算修改前后WL(n+1)的误码率变化时,也是将WL(n+1)作为中间存储单元的。
在修改前,以WL(n+1)作为中间存储单元的存储单元组的分布态可表示为BDY,分布态Y表示E至P7分布态。
BDY可视为一个分布态组合集(可称为第五分布态组合集),以TLC模式为例,以0对应E态,1对应P1态,以此类推,则BDY可包括:BD0、BD1、……BD7。
在修改后,以WL(n+1)作为中间存储单元的存储单元组的分布态可表示为:CDY。
同理,CDY可视为一个分布态组合集(可称为第六分布态组合集),以TLC模式为例,则CDY可包括:CD0、CD1、……CD7。
以Error Rate aver(BDY)或ERaver3表示修改前在时刻tWL(n+1)的误码率,以Error Rate aver(CDY)或ERaver4表示修改后在时刻tWL(n+1)的误码率,则:
WL(n+1)的误码率变化=Error Rate aver(BDY)-Error Rate aver(CDY)
WL(n+1)的误码率变化可称为第三误码率差值。
步骤6:计算更改增益(将ABD改成ACD):
更改增益=WL(n)的误码率变化+WL(n-1)的误码率变化+WL(n+1)的误码率变化。
某第一码字组计算出的数据修改评估模型如下表2所示,表2中的每一行为一个数据修改评估结果,包括初始分布态组合、目标分布态组合、误码率增益等:
表2
以表2中第一行为例,初始分布态组合为:070(也即,E态、P7态、E态),误码率为0.45,目标分布态组合为000(也即,E态、E态、E态),也即,将WL(k)的分布态由P7态修改为E态,通过表1可知,是将Middle page上的数据由“0”修改为“1”。
表2中第一行中,目标分布态组合的误码率等于0;WL(n)的误码率增益为正0.447,表示WL(n)的误码率降低了0.447;WL(n-1)的误码率增益为负0.002,表示WL(n-1)的误码率增大了0.002;WL(n+1)的误码率增益为负0.001,表示WL(n+1)的误码率增大了0.001;总增益为0.444。
基于上述表2,可将满足预设条件的数据修改评估结果作为目标数据修改评估结果,将目标数据修改评估结果中的初始分布态组合放入所述第一分布态组合集,将目标数据修改评估结果中的目标分布态组合放入所述第二分布态组合集中。
在一个示例中,预设条件可包括:增益高,并且,修改的逻辑页为lower page。
例如,第一分布态组合集可包括如下任意一种或多种:
第一组合:E态、P7态、E态,对应表2中的070;
第二组合:E态、P7态、P1态,对应表2中的071;
第三组合:P1态、P7态、E态,对应表2中的170;
第四组合:P2态、P7态、E态,对应表2中的270。
第二分布态组合集可包括如下组合中的至少一种:
第五组合:E态、P2态、E态,对应表2中的020;
第六组合:E态、P2态、P1态,对应表2中的021;
第七组合:P1态、P2态、E态,对应表2中的120;
第八组合:P2态、E态、E态,对应表2中的200。
基于上述分析,请参见图4,误码率平衡方法的示例性得可包括如下步骤:
S40:获取待存储的原始数据;
S40与前述的步骤S0相同,在此不作赘述。
S41:采用BCH(9872,8192,120)编码算法对上述原始数据进行编码,得到第一码字组。
BCH(9872,8192,120)编码算法请参见前述记载,在此不作赘述。
S42:将分布态组合为第一组合至第四组合的比特单元组确定为第一比特单元组。
具体的,可将与同一沟道上3个连续的存储单元相对应,且分布态组合为070、071、170、270的比特单元组确定为第一比特单元组。
S43:对第一比特单元组执行平衡各逻辑页的误码率的修改操作,得到第二码字组。
其中,S43可进一步包括如下步骤:
S4301:将第一组合(070)中P7态所对应的Lower Page页的数据由1修改为0,以将P7态修改为P2态,从而将第一组合修改为第五组合(020);
S4302:将第二组合(071)中P7态所对应的Lower Page页的数据由1修改为0,以将P7态修改为P2态,从而将第二组合修改为第六组合(021);
S4303:将第三组合(170)中P7态所对应的Lower Page页的数据由1修改为0,以将P7态修改为P2态,从而将第三组合修改为第七组合(120);
S4304:将第四组合(270)中P7态所对应的Middle Page页的数据由0修改为1,以将P7态修改为E态,从而将第四组合修改为第八组合(200)。
S4301至S4304的操作可总结如下:
070--->020[1;1;1;1;0;1;1;1;1]--->[1;1;1;0;0;1;1;1;1]
071--->021[1;1;1;1;0;1;0;1;1]--->[1;1;1;0;0;1;0;1;1
170--->120[0;1;1;1;0;1;1;1;1]--->[0;1;1;0;0;1;1;1;1]
270--->200[0;0;1;1;0;1;1;1;1]--->[0;0;1;1;1;1;1;1;1]
可见,在本实施例中,目标逻辑页为:Middle Page或Lower Page,第一预设分布态为P7态,第二预设分布态为P2态或E态。
S44:向非易失存储器写入第二码字组。
步骤S44与前述步骤的S4相同,在此不赘述。
下面简单介绍如何进行译码。
由于随着时间的推移第二码字会出现其他错误,因此,可将译码时获取的各第二码字以D′algP′alg表示。
使用BCH(9872,8192,120)对D′algPa′lg进行解码处理和纠错处理,可得到原始数据。
在本实施例中,通过修改单元组,在Lower page或Middle page上引入修改以降低Middle page和Upper page的误码率。
图5示出了使用本实施例的技术方案修改数据后,修改前后逻辑页的误码率示意图,图5中的‘ini’表示“修改前”,‘alg’表示“修改后”。可见,与修改前相比,lower page的误码率增大了,同时,Lower page和Middle page的误码率减小了,三个逻辑页的误码率得到平衡,三个逻辑页的误码率几乎在同时超过纠错能力。data valid time表示数据保持(有效)时间,与修改前相比,data valid time推迟了。
修改前后的实验数据对比还可参见下表3:
表3
BCH(9872,8192,120)允许的纠正错误的个数是120个。那么,采用传统的ECC方案,以125摄氏度下为例,在写入5.5小时后,Upper page的错误达到120个时,Middle page和Lower page的错误分别为100个和56个。
而采用本实施例所提供的方案后,同样在125摄氏度下,在写入5.5小时后,Upperpage的错误达到106个,Middle page和Lower page的错误分别为108个和113个。在6.8小时后,Upper page的错误才达到120个,Middle page和Lower page的错误分别为118个。
这表明,本实施例所提供的技术方案,在TLC模式下三个逻辑页的误码率几乎在同时超过纠错能力,使纠错能力被完全使用,有效时间得到了延长,在减少横向电荷扩散效应对NAND Flash数据保持能力的影响的同时调整了TLC误码率不平衡现象,大大提高NANDFlash的数据保持能力。
上述介绍了G=3时技术方案,实际上G可取1、2、4、5等。对于G=1的情况,则未考虑横向电荷扩散效应,只是减少了纵向脱陷效应。
对于G=1的情况,将不再考虑分布态组合,只考虑将高态修改为低态。以TLC模式为例,示例性的可将P7态修改为P2态。
下面介绍误码率平衡装置(ECC模块或SSD中的控制器),请参见图6,其示例性的包括:
获取单元1,用于获取待存储的原始数据;
编码单元2,用于:
采用预设编码算法对原始数据进行编码,得到第一码字
组;其中,所述第一码字组包括:J个第一码字,所述J个第一码字与J个逻辑页一一对应;所述J个第一码字中对应同一存储单元的数据为一个比特单元;每一比特单元包括J比特的数据;J为正整数;
根据比特单元的分布态,确定第一比特单元组;所述第一比特单元组包括:与同一沟道上G个连续的存储单元相对应的G个比特单元,并且,所述G个比特单元的分布态组合为第一分布态组合集中的分布态组合;G为自然数;
对目标存储单元组在第一码字中所对应的比特单元,执行平衡各逻辑页的误码率的修改操作,得到第二码字组;在执行所述修改操作后,所述第一比特单元组被修改为第二比特单元组;所述第二比特单元组中的G个比特单元的分布态组合为第二分布态组合集中的分布态组合;
向非易失存储器写入所述第二码字组。
具体细节请参见本文前述记载,在此不作赘述。
在本发明其他实施例中,还包括:
评估单元3,用于在执行平衡各逻辑页的误码率的修改操作之前,建立数据修改评估模型;所述第一分布态组合集和第二分布态组合集是根据数据修改评估模型确定的。
如何建立模型,以及如何确定第一分布态组合集和第二分布态组合集的具体细节请参见本文前述记载,在此不作赘述。
在本发明其他实施例中,执行平衡各逻辑页的误码率的修改操作的方面,上述所有实施例中的编码模块2可具体用于:
对第一目标比特单元中与目标逻辑页对应的数据进行修改,得到第二目标比特单元;其中,第二目标比特单元对应的分布态为第二预设分布态。分布态为第一预设分布态的比特单元为第一目标比特单元。
修改后目标存储单元组所对应的G个比特单元的分布态组合与第二分布态组合集相匹配。
具体细节请参见本文前述记载,在此不作赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及模型步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或模型的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、WD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种误码率平衡方法,其特征在于,包括:
获取待存储的原始数据;
采用预设编码算法对所述原始数据进行编码,得到第一码字组;其中,所述第一码字组包括:J个第一码字,所述J个第一码字与J个逻辑页一一对应;所述J个第一码字中对应同一存储单元的数据为一个比特单元;每一比特单元包括J比特的数据;J为正整数;
根据比特单元的分布态,确定第一比特单元组;所述第一比特单元组包括:与同一沟道上G个连续的存储单元相对应的G个比特单元,并且,所述G个比特单元的分布态组合为第一分布态组合集中的分布态组合;G为自然数;
对所述第一比特单元组执行平衡各逻辑页的误码率的修改操作,得到第二码字组;在执行所述修改操作后,所述第一比特单元组被修改为第二比特单元组;所述第二比特单元组中的G个比特单元的分布态组合为第二分布态组合集中的分布态组合;
向非易失存储器写入所述第二码字组。
2.如权利要求1所述的方法,其特征在于,在执行平衡各逻辑页的误码率的修改操作之前,还包括:
建立数据修改评估模型;所述第一分布态组合集和第二分布态组合集是根据数据修改评估模型确定的。
3.如权利要求2所述的方法,其特征在于,
所述数据修改评估模型包括:至少一个数据修改评估结果;
每一数据修改评估结果包括:初始分布态组合、目标分布态组合,以及,将对应初始分布态组合的比特单元组修改为对应目标分布态组合的比特单元组后的误码率增益;所述初始分布态组合和所述目标分布态组合为不相同的任意分布态组合;
在建立数据修改评估模型后,执行平衡各逻辑页的误码率的修改操作之前,还包括:
将目标数据修改评估结果中的初始分布态组合放入所述第一分布态组合集;
将目标数据修改评估结果中的目标分布态组合放入所述第二分布态组合集中;
所述目标数据修改评估结果包括满足预设条件的数据修改评估结果。
4.如权利要求3所述的方法,其特征在于,
G=3;
所述建立数据修改评估模型包括:
计算在预定时刻第一码字组中各分布态组合所对应的误码率;
将任一分布态组合作为初始分布态组合,将与初始分布态组合不同的任意分布态组合作为目标分布态组合;所述初始分布态组合包括第一至第三分布态;所述目标分布态组合包含第一分布态、第四分布态和第三分布态;
根据所述误码率,计算第三分布态组合集中各分布态组合的误码率的平均值ERaver1;所述第三分布态组合集中的任一分布态组合包分布态X、第一和第二分布态;分布态X为任一分布态;
根据所述误码率,计算第四分布态组合集中各分布态组合的误码率的平均值ERaver2;所述第四分布态组合集中的任一分布态组合包含分布态X、第一和第四分布态;
根据所述误码率,计算第五分布态组合集中各分布态组合的误码率的平均值ERaver3;所述第五分布态组合集中的任一分布态组合包含第二分布态、第三分布态和分布态Y;分布态Y为任一分布态;
根据所述误码率,计算第六分布态组合集中各分布态组合的误码率的平均值ERaver4;所述第六分布态组合集中的任一分布态组合包含第四分布态、第三分布态和分布态Y;
计算初始分布态组合和目标分布态组合间的第一误码率差值;
计算ERaver1和ERaver2之间的第二误码率差值;
计算ERaver3和ERaver4之间的第三误码率差值;
计算第一至第三误码率差值的和作为误码率增益。
5.如权利要求4所述的方法,其特征在于,在所述第一比特单元组的G个比特单元中,分布态为第一预设分布态的比特单元为第一目标比特单元;
所述执行平衡各逻辑页的误码率的修改操作包括:
对第一目标比特单元中与目标逻辑页对应的数据进行修改,得到第二目标比特单元;其中,第二目标比特单元对应的分布态为第二预设分布态。
6.如权利要求5所述的方法,其特征在于,所述目标逻辑页为:Middle Page或LowerPage。
7.如权利要求6所述的方法,其特征在于,所述第一预设分布态为P7态,所述第二预设分布态为P2态或E态。
8.一种误码率平衡装置,其特征在于,包括:
获取单元,用于获取待存储的原始数据;
编码单元,用于:
采用预设编码算法对所述原始数据进行编码,得到第一码字组;其中,所述第一码字组包括:J个第一码字,所述J个第一码字与J个逻辑页一一对应;所述J个第一码字中对应同一存储单元的数据为一个比特单元;每一比特单元包括J比特的数据;J为正整数;
根据比特单元的分布态,确定第一比特单元组;所述第一比特单元组包括:与同一沟道上G个连续的存储单元相对应的G个比特单元,并且,所述G个比特单元的分布态组合为第一分布态组合集中的分布态组合;G为自然数;
对目标存储单元组在第一码字中所对应的比特单元,执行平衡各逻辑页的误码率的修改操作,得到第二码字组;在执行所述修改操作后,所述第一比特单元组被修改为第二比特单元组;所述第二比特单元组中的G个比特单元的分布态组合为第二分布态组合集中的分布态组合;
向非易失存储器写入所述第二码字组。
9.如权利要求8所述的装置,其特征在于,还包括:
评估单元,用于在执行平衡各逻辑页的误码率的修改操作之前,建立数据修改评估模型;所述第一分布态组合集和第二分布态组合集是根据数据修改评估模型确定的。
10.如权利要求9所述的装置,其特征在于,
所述数据修改评估模型包括:至少一个数据修改评估结果;
每一数据修改评估结果包括:初始分布态组合、目标分布态组合,以及,将对应初始分布态组合的比特单元组修改为对应目标分布态组合的比特单元组后的误码率增益;所述初始分布态组合和所述目标分布态组合为不相同的任意分布态组合;
在建立针对所述第一码字组的数据修改评估模型后,所述评估单元还用于:
将目标数据修改评估记录中的初始分布态组合放入所述第一分布态组合集;
将目标数据修改评估记录中的目标分布态组合放入所述第二分布态组合集中;
所述目标数据修改评估记录包括满足预设条件的数据修改评估记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911300109.6A CN112992256B (zh) | 2019-12-16 | 2019-12-16 | 误码率平衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911300109.6A CN112992256B (zh) | 2019-12-16 | 2019-12-16 | 误码率平衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112992256A CN112992256A (zh) | 2021-06-18 |
CN112992256B true CN112992256B (zh) | 2022-12-09 |
Family
ID=76342030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911300109.6A Active CN112992256B (zh) | 2019-12-16 | 2019-12-16 | 误码率平衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112992256B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102034548A (zh) * | 2009-09-25 | 2011-04-27 | 三星电子株式会社 | 非易失性存储器件和***及非易失性存储器件编程方法 |
CN102279803A (zh) * | 2011-04-13 | 2011-12-14 | 西安交通大学 | 一种提高多层单元NAND-Flash存储可靠性的备用区分配方法 |
CN107395214A (zh) * | 2017-07-12 | 2017-11-24 | 华中科技大学 | 一种基于闪存页错误特性降低ldpc译码延迟的方法 |
CN109872764A (zh) * | 2019-01-18 | 2019-06-11 | 南京大学 | 一种多级存储单元闪存的ecc多码率编解码***及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8848438B2 (en) * | 2010-10-05 | 2014-09-30 | Stec, Inc. | Asymmetric log-likelihood ratio for MLC flash channel |
US8484519B2 (en) * | 2011-08-19 | 2013-07-09 | Stec, Inc. | Optimal programming levels for LDPC |
US9431125B2 (en) * | 2013-03-15 | 2016-08-30 | Sandisk Technologies Llc | Method and system for adaptive setting of verify levels in flash memory |
-
2019
- 2019-12-16 CN CN201911300109.6A patent/CN112992256B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102034548A (zh) * | 2009-09-25 | 2011-04-27 | 三星电子株式会社 | 非易失性存储器件和***及非易失性存储器件编程方法 |
CN102279803A (zh) * | 2011-04-13 | 2011-12-14 | 西安交通大学 | 一种提高多层单元NAND-Flash存储可靠性的备用区分配方法 |
CN107395214A (zh) * | 2017-07-12 | 2017-11-24 | 华中科技大学 | 一种基于闪存页错误特性降低ldpc译码延迟的方法 |
CN109872764A (zh) * | 2019-01-18 | 2019-06-11 | 南京大学 | 一种多级存储单元闪存的ecc多码率编解码***及方法 |
Non-Patent Citations (1)
Title |
---|
NAND闪存编程干扰错误研究;阳小珊 等;《中国传媒大学学报(自然科学版)》;20180630;第25卷(第3期);第23-27页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112992256A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11334413B2 (en) | Estimating an error rate associated with memory | |
US11763883B2 (en) | Nonvolatile memory and writing method | |
US9728263B2 (en) | Method and device for iteratively updating read voltages | |
KR101378349B1 (ko) | 메모리 장치 및 메모리 데이터 읽기 방법 | |
US20170132073A1 (en) | Memory devices having differently configured blocks of memory cells | |
US9025374B2 (en) | System and method to update read voltages in a non-volatile memory in response to tracking data | |
US20130135927A1 (en) | Systems and methods of decoding data using soft bits at a non-binary decoder that uses probabilistic decoding | |
US8386868B2 (en) | Using programming-time information to support error correction | |
US10719395B2 (en) | Memory system | |
US8234539B2 (en) | Correction of errors in a memory array | |
US9361036B2 (en) | Correction of block errors for a system having non-volatile memory | |
US9741451B2 (en) | Data storage device and data maintenance method thereof | |
US20160306693A1 (en) | Read voltage level estimating method, memory storage device and memory control circuit unit | |
US9171629B1 (en) | Storage device, memory controller and memory control method | |
US20160283319A1 (en) | Data storage device and encoding method thereof | |
JP2009537055A5 (zh) | ||
US10210042B2 (en) | Memory system | |
CN109545261B (zh) | 在读取操作后选择用于刷新的闪速存储块的方法 | |
US10223198B2 (en) | Error rate reduction | |
CN112992256B (zh) | 误码率平衡方法及装置 | |
US11923028B2 (en) | Reference voltage adjustment based on post-decoding and pre-decoding state information | |
CN112988448A (zh) | 误码率平衡方法及装置,读取方法及装置 | |
US11349495B2 (en) | Recovering from hard decoding errors by remapping log likelihood ratio values read from NAND memory cells | |
US20160071597A1 (en) | Storage device, memory controller and memory control method | |
TW201928985A (zh) | 具有錯誤更正功能的記憶體及相關記憶體系統 |
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 |