一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

执行数据的状态整形的存储设备的制作方法

2021-02-02 13:23:00 来源:中国专利 TAG:构思 文中 整形 可靠性 存储设备


[0001]
本文中的本发明构思涉及半导体器件,并且更具体地涉及通过状态整形实现提高的可靠性的存储设备。


背景技术:

[0002]
用于数据存储的非易失性存储器件包括例如闪存、相变存储器、可变电阻存储器、铁电存储器、磁存储器和电阻存储器,这只是其中一些。数据以二进制位的形式存储在其中。
[0003]
一个二进制位具有两个值“0”和“1”之一。即,单个二进制位可以指示或具有两种状态。一对二进制位可以具有四个值“00”、“01”、“10”和“11”之一。通常,当将“m”个位(m是正整数)写入一个存储单元中时,这个存储单元可以具有2^m(即,2
m
)种状态之一。
[0004]
也就是说,“m”个二进制位可以指示或表示2^m种状态,并且存储m个位的存储单元可以具有2^m种状态。随着存储在一个存储单元中的位数的增加,一个存储单元表示的状态的数目呈指数增加。然而,随着存储单元表示的状态的数目增加,独立地识别2^m种状态以及将数据可靠地写入存储单元中将变得越来越难。


技术实现要素:

[0005]
本发明构思的实施例提供了一种在增加要写入一个存储单元中的位的数目的同时确保提高的可靠性的存储设备。
[0006]
本发明构思的实施例提供了一种存储设备,包括:包括多个页的非易失性存储器件,所述多个页均包括多个存储单元;以及控制器。所述控制器被配置为:从外部主机设备接收由2
m
种状态表示的第一写入数据,其中,m是大于1的整数;在第一操作模式下将所述第一写入数据整形为第二写入数据,其中,所述第二写入数据是由数目小于所述2
m
种状态的“k”种状态表示的,其中,k是大于2的整数;对所述第二写入数据执行第一纠错编码以生成由所述“k”种状态表示的第三写入数据;并且将所述第三写入数据发送到所述非易失性存储器件,以将其写入所述多个页中的选定页。
[0007]
本发明构思的实施例还提供了一种存储设备,包括:包括多个页的非易失性存储器件,所述多个页均包括多个存储单元;以及控制器。所述控制器从外部主机设备接收读取请求;响应于所述读取请求,从所述非易失性存储器件的所述多个页中的选定页读取由“k”种状态表示的第一读取数据,其中,k是大于2的整数;对所述第一读取数据执行纠错解码,以生成由所述“k”种状态表示的第二读取数据;将所述第二读取数据整形为由数目大于所述“k”种状态的2
m
种状态表示的第三读取数据,其中,m是大于1的整数;并且将所述第三读取数据输出到所述外部主机设备。
[0008]
本发明构思的实施例还提供了一种存储设备,包括:包括多个页的非易失性存储器件,所述多个页均包括多个存储单元;以及控制器。所述控制器包括:主机接口,其从外部主机设备接收第一页数据至第六页数据;缓冲器,其存储从所述主机接口发送的所述第一
页数据至所述第六页数据;二进制纠错编码器,其分别对存储在所述缓冲器中的所述第一页数据至所述第四页数据执行纠错编码,以生成第一编码页数据至第四编码页数据;整形编码器,其将存储在所述缓冲器中的所述第五页数据和所述第六页数据整形为三进制数据;三进制纠错编码器,其对所述三进制数据执行三进制纠错编码以生成三进制编码数据;以及存储器接口,其向所述非易失性存储器件发送所述第一编码页数据至所述第四编码页数据和所述三进制编码数据。所述非易失性存储器件将所述第一编码页数据至所述第四编码页数据和所述三进制编码数据写入所述多个页中的选定页。
[0009]
本发明构思的实施例还提供了一种存储设备,包括:包括多个页的非易失性存储器件,所述多个页均包括多个存储单元;以及控制器。所述控制器在第一操作模式下,从外部主机设备接收页数据;对所述页数据的第一部分执行二进制纠错编码以生成二进制编码数据;对所述页数据的第二部分进行整形以生成n进制数据;对所述n进制数据执行n进制纠错编码以生成n进制编码数据;并将所述二进制编码数据和所述n进制编码数据发送到所述非易失性存储器件以进行存储。所述非易失性存储器件将发送的所述二进制编码数据和发送的所述n进制编码数据写入所述多个页中的选定页,并且n是大于2的整数。
附图说明
[0010]
鉴于以下参考附图对示例性实施例的详细描述,本发明构思的上述以及其他目的和特征将变得显而易见。
[0011]
图1示出了根据本发明构思的实施例的存储设备的框图。
[0012]
图2示出了描述图1的存储设备如何执行写入操作的示例的流程图。
[0013]
图3示出了描述图1的存储设备如何执行读取操作的示例的流程图。
[0014]
图4示出了写入非易失性存储器件的存储单元中的数据的示例。
[0015]
图5示出了存储单元可以具有的64种状态的示例。
[0016]
图6示出了在达到阈值的写入区域中累积的数据的示例。
[0017]
图7示出了描述根据本发明构思的实施例的整形编码器如何执行状态整形的示例。
[0018]
图8示出了整形编码器和整形解码器参考的用于状态整形的表格的示例。
[0019]
图9和图10一起示出了描述整形编码器如何将11个二进制位整形到14个二进制位以生成三进制数据的示例。
[0020]
图11示出了存储单元可以具有的48种状态的示例。
[0021]
图12示出了根据写入存储单元中的状态的数目的错误的数目。
[0022]
图13示出了根据本发明构思的示例实施例的控制器。
[0023]
图14示出了根据本发明构思的另一示例实施例的控制器。
[0024]
图15示出了根据本发明构思的另一示例实施例的控制器。
[0025]
图16示出了根据本发明构思的另一示例实施例的控制器。
[0026]
图17示出了根据本发明构思的另一示例实施例的控制器。
[0027]
图18示出了根据本发明构思的另一示例实施例的控制器。
[0028]
图19示出了在三进制数的伽罗华域(galois field)中定义的运算符的示例。
[0029]
图20示出了描述当选择性地启用状态整形时存储设备如何执行写入操作的示例
实施例的流程图。
[0030]
图21示出了描述当选择性地启用状态整形时存储设备如何执行读取操作的示例实施例的流程图。
具体实施方式
[0031]
在下文中,详细并清楚地描述了本发明构思的实施例,以使得本领域普通技术人员可以容易地实现本发明构思。
[0032]
如本发明构思的领域中传统,可以根据执行所描述的一个或多个功能的块来描述和示出实施例。在本文中可以被称为单元或模块等的这些块在物理上由模拟和/或数字电路(例如,逻辑门、集成电路、微处理器、微控制器、存储电路、无源电子组件、有源电子组件、光学组件、硬接线电路等)来实现,并且可以可选地由固件和/或软件驱动。电路可以例如包含在一个或更多个半导体芯片中,或者包含在诸如印刷电路板等的基板支撑件上。可以通过专用硬件,或通过处理器(例如,一个或更多个被编程的微处理器和相关电路),或者通过执行一个块的某些功能的专用硬件与执行这个块的其他功能的处理器的组合,来实现构成这个块的电路。在不脱离本发明构思的范围的情况下,实施例的每个块可以在物理上被分成两个或更多个相互作用且分立的块。同样地,在不脱离本发明构思的范围的情况下,实施例的块可以在物理上组合成更复杂的块。
[0033]
图1示出了根据本发明构思的实施例的存储设备100的框图。参照图1,存储设备100可以包括非易失性存储器件110和控制器120。非易失性存储器件110可以包括非易失性存储器,尤其可以包括诸如闪存、相变存储器、可变电阻存储器、铁电存储器、磁存储器或电阻存储器的非易失性存储器。
[0034]
控制器120可以依据外部主机设备的请求或内部指定的调度来控制非易失性存储器件110。例如,控制器120可以控制非易失性存储器件110的写入操作、读取操作和擦除操作。
[0035]
控制器120可以包括主机接口121、缓冲器122、二进制纠错码(ecc)编码器123、整形编码器124、n进制ecc编码器125(n是大于2的整数)、存储器接口126、二进制ecc解码器127、n进制ecc解码器128和整形解码器129。
[0036]
主机接口121可以与外部主机设备通信。主机接口121可以根据给定协议与外部主机设备交换信号。主机接口121可以从外部主机设备接收各种请求。主机接口121可以与外部主机设备交换数据。
[0037]
缓冲器122可以包括写入区域wa,其存储从主机接口121接收的第一写入数据wd1。当在写入区域wa中累积的数据量达到非易失性存储器件110的写入操作的单位时,写入区域wa中累积的数据可以写入非易失性存储器件110中。
[0038]
例如,写入区域wa中累积的数据的一部分可以作为第二写入数据wd2提供给二进制ecc编码器123。二进制ecc编码器123可以对第二写入数据wd2执行二进制纠错编码。
[0039]
二进制ecc编码器123可以通过将通过二进制纠错编码生成的奇偶校验添加到第二写入数据wd2来生成第三写入数据wd3。即,第三写入数据wd3的数据量可以大于第二写入数据wd2的数据量。第三写入数据wd3可以提供给存储器接口126。
[0040]
写入区域wa中累积的数据的其余部分可以作为第四写入数据wd4提供给整形编码
器124。整形编码器124可以对第四写入数据wd4执行状态整形编码。
[0041]
状态整形编码可以减少要由第四写入数据wd4表示的状态的数目,以生成第五写入数据wd5。状态整形编码可以将由二进制位表示的第四写入数据wd4整形为由n进制位表示的第五写入数据wd5。第五写入数据wd5的数据量可以大于第四写入数据wd4的数据量。
[0042]
n进制ecc编码器125可以从整形编码器124接收第五写入数据wd5。n进制ecc编码器125可以对第五写入数据wd5执行n进制纠错编码。
[0043]
n进制ecc编码器125可以通过将通过n进制纠错编码生成的奇偶校验添加到第五写入数据wd5来生成第六写入数据wd6。即,第六写入数据wd6的数据量可以大于第五写入数据wd5的数据量。第六写入数据wd6可以提供给存储器接口126。
[0044]
存储器接口126可以向非易失性存储器件110提供第三写入数据wd3、第六写入数据wd6或第三写入数据wd3和第六写入数据wd6的组合,作为第七写入数据wd7。存储器接口126可以向非易失性存储器件110发送写入命令以引起第七写入数据wd7的写入操作。
[0045]
此外,存储器接口126可以向非易失性存储器件110发送读取命令以引起读取操作。存储器接口126可以从非易失性存储器件110接收第一读取数据rd1。
[0046]
通过存储器接口126接收的第一读取数据rd1的一部分可以作为第二读取数据rd2提供给二进制ecc解码器127。二进制ecc解码器127可以对第二读取数据rd2执行纠错解码。
[0047]
二进制ecc解码器127可以从纠错后的数据去除奇偶校验数据,以生成(或恢复)第三读取数据rd3。二进制ecc解码器127可以将第三读取数据rd3存储在缓冲器122的读取区域ra中。
[0048]
通过存储器接口126接收的第一读取数据rd1的其余部分可以作为第四读取数据rd4提供给n进制ecc解码器128。n进制ecc解码器128可以对第四读取数据rd4执行纠错解码以纠正(一个或多个)错误。
[0049]
n进制ecc解码器128可以从纠错后的数据去除奇偶校验数据以生成(或恢复)第五读取数据rd5。n进制ecc解码器128可以将第五读取数据rd5传送给整形解码器129。整形解码器可以对第五读取数据rd5执行状态整形解码。
[0050]
状态整形解码可以增加要由第五读取数据rd5表示的状态的数目,以生成第六读取数据rd6。状态整形解码可以将由n进制位表示的第五读取数据rd5解整形为由二进制位表示的第六读取数据rd6。第六读取数据rd6的数据量可以小于第五读取数据rd5的数据量。状态整形解码器129可以将第六读取数据rd6存储在缓冲器122的读取区域ra中。
[0051]
当外部主机设备请求的数据被累积在读取区域ra中时,或者当与用于与外部主机设备交换数据的交换单位相对应的数据被累积在读取区域ra中时,可以通过主机接口121将累积在读取区域ra中的数据作为第七读取数据rd7发送给外部主机设备。
[0052]
在实施例中,整形编码器124和整形解码器129可以参考存储输入数据与输出数据之间的映射信息的表格来执行整形。该表格可以存储在控制器120中,或者该表格可以存储在非易失性存储器件110中并且可以加载到控制器120上。
[0053]
尽管图1中示出了作为用于描述发明构思的技术思想的组件的各种块,但是,可以添加各种其他组件。例如,诸如先入先出(fifo)电路、触发器(ff)和寄存器的各种存储设备可以设置在图1的控制器120内部所示的(一条或多条)路径的中间。
[0054]
图2示出了描述图1的存储设备100如何执行写入操作的示例的流程图。参照图1和
图2,在操作s110中,控制器120从外部主机设备接收写入数据。例如,写入数据可以存储在缓冲器122的写入区域wa中。
[0055]
当累积在写入区域wa中的数据达到阈值(例如,非易失性存储器件110的写入操作的单位)时,存储设备100执行操作s120和操作s130。在操作s120中,二进制ecc编码器123对写入数据的第一部分(例如,wd2)执行二进制ecc编码,并生成第一编码数据(例如,wd3)。
[0056]
在操作s130中,整形编码器124对写入数据的第二部分(例如,wd4)执行整形编码,并生成n进制写入数据(例如,wd5)。在操作s140中,n进制ecc编码器125对n进制写入数据(例如,wd5)执行n进制ecc编码,并生成第二编码数据(例如,wd6)。
[0057]
在实施例中,可以同时执行操作s120、操作s130和操作s140。在操作s150中,存储器接口126将第一编码数据(例如,wd3)和第二编码数据(例如,wd6)发送到非易失性存储器件110,以便将这些数据写入其中。
[0058]
根据本发明构思的实施例,存储设备100可以对写入数据的一部分执行状态整形。通过执行状态整形,可以减少被编程到存储单元的状态的数目。将在下面进一步描述状态整形。
[0059]
图3示出了描述图1的存储设备100如何执行读取操作的示例的流程图。参照图1和图3,在操作s210中,存储器接口126从非易失性存储器件110接收读取数据(例如,rd1)。
[0060]
在操作s220中,二进制ecc解码器127对读取数据(例如,rd1)的第一部分(例如,rd2)执行二进制ecc解码,并生成第一解码读取数据(例如,rd3)。
[0061]
在操作s230中,n进制ecc解码器128对读取数据(例如,rd1)的第二部分(例如,rd4)执行n进制ecc解码,并生成n进制读取数据(例如,rd5)。在操作s240中,整形解码器129对n进制读取数据(例如,rd5)执行整形解码,并生成第二解码读取数据(例如,rd6)。
[0062]
在实施例中,可以同时执行操作s220、操作s230和操作s240。在操作s250中,缓冲器122通过主机接口121将第一解码读取数据(例如,rd3)和第二解码读取数据(例如,rd6)作为读取数据(例如,rd7)输出到外部主机设备。
[0063]
图4示出了写入非易失性存储器件110的存储单元mc中的数据的示例。参照图1和图4,存储单元mc可以以行和列布置。存储单元mc的每一行连接到不同的字线。存储单元mc的行可以分别连接到第一字线wl1至第i字线wli。存储单元mc的每一列连接到不同的位线。存储单元mc的列可以分别连接到第一位线bl1至第j位线blj。
[0064]
图4示出了简化的连接关系。然而,存储单元mc可以通过任何其他组件连接到第一字线wl1至第i字线wli和/或第一位线bl1至第j位线blj。另外,用于访问存储单元mc的另外的线(例如,源极线或选择线)可以连接到存储单元mc。
[0065]
连接到一条字线(例如,wli)的存储单元mc可以形成一个物理页pp。以物理页pp为单位执行读取操作和写入操作。例如,可以在写入操作期间将数据同时写入物理页pp的存储单元mc中,并且可以在读取操作期间同时从物理页pp的存储单元mc中读取数据。
[0066]
单个存储单元mc可以存储两个或更多位。例如,如图所示,单个存储单元mc可以存储最低有效位(lsb)、第二有效位(2sb)、第三有效位(3sb)、第四有效位(4sb)、第五有效位(5sb)和最高有效位(msb)。
[0067]
以相同顺序写入存储单元中的单个物理页pp的位可以形成逻辑页。例如,如图所示,物理页pp的存储单元mc的lsb可以形成第一逻辑页lp1。物理页pp的存储单元mc的2sb可
以形成第二逻辑页lp2。物理页pp的存储单元mc的3sb可以形成第三逻辑页lp3。物理页pp的存储单元mc的4sb可以形成第四逻辑页lp4。物理页pp的存储单元mc的5sb可以形成第五逻辑页lp5。物理页pp的存储单元mc的msb可以形成第六逻辑页lp6。
[0068]
写入一个存储单元mc中的一位(例如,lsb)具有“0”值或“1”值之一。即,在存储单元mc处,lsb由两种状态表示。另外,在存储单元mc处,2sb由两种状态表示。因此,在存储单元mc处,lsb和2sb的组合由4(2
×
2)种状态表示。
[0069]
在存储单元mc处,lsb、2sb和3sb的组合由8(2
×2×
2)种状态表示。同样地,在存储单元mc处,lsb、2sb、3sb、4sb、5sb和msb的组合由64(2
×2×2×2×2×
2)种状态表示。
[0070]
图5示出了存储单元mc可以具有的64种状态的示例。在图5中,横轴表示存储单元mc的阈值电压,纵轴表示存储单元mc的数目。参照图4和图5,存储单元mc可以属于不同的阈值电压范围,并且可以被区分为具有不同的状态。
[0071]
也就是说,存储单元mc的64种状态(即,2^m(或等效地2
m
)种状态)表示为总vth范围内的64个不同的阈值电压范围。在写入操作期间,每个存储单元mc可以被控制为具有属于64个阈值电压范围(或64种状态)之一的阈值电压。
[0072]
当阈值电压范围之间的电压被施加到存储单元时,可以通过检测电流是否流过存储单元来执行读取操作。例如,在向其施加了特定电压时接通的存储单元可以确定为具有低于特定电压的阈值电压。例如,在向其施加了特定电压时关断的存储单元可以确定为具有高于特定电压的阈值电压。
[0073]
例如,可以使用63个读取电压彼此独立地确定64种状态。64种状态(或64个阈值电压范围)之间的距离可以用作读取余量。随着状态之间的距离变大,即使读取电压会变化或者存储单元mc的阈值电压会变化,也可以无错误地执行读取操作。
[0074]
随着存储单元mc的阈值电压变高,在写入操作、读取操作或任何其他时间中,存储单元mc在内部经受应力并且彼此施加应力。因此,可以限制总阈值电压范围,从而不会发生过度的应力。
[0075]
在总阈值电压范围受到限制的情况下,单独的阈值电压范围(或单独的状态)受到限制,并且阈值电压范围(或状态)之间的距离也受到限制。该限制经常导致存储单元mc中的数据错误,并且成为增加要写入一个存储单元中的位的数目的最大障碍。
[0076]
根据本发明构思的实施例的存储设备100可以将数据的至少一部分整形为不同于二进制格式的格式,使得整形后的数据以少于64个状态被写入存储单元mc中。因此,抑制了存储单元mc的数据错误的发生,因此,即使要写入一个存储单元中的位的数目增加,也可以确保存储数据的可靠性。
[0077]
参照图4和5给出的描述,其中存储单元具有64种状态之一。然而,本发明构思的技术思想不限于可编程为具有64种状态的存储单元。此外,参照图5描述了通过使用存储单元mc的阈值电压范围来表示状态的示例。然而,状态不限于阈值电压范围。例如,状态可以由电阻值的范围来表示。
[0078]
图6示出了累积在写入区域wa中的达到阈值(例如,非易失性存储器件110的写入操作的单位)的数据的示例。参照图1、图4和图6,当第一至第六二进制页数据存储在写入区域wa中时,存储在写入区域wa中的数据量可以达到阈值。
[0079]
第一至第四二进制页数据可以具有第一大小。第一大小可以对应于一个逻辑页的
大小。第一至第四二进制页数据可以作为第二写入数据wd2提供给二进制ecc编码器123。二进制ecc编码器123可以对第一至第四二进制页数据执行纠错编码以添加奇偶校验数据。
[0080]
这样被ecc编码的第一至第四二进制页数据可以作为第三写入数据wd3提供给存储器接口126。例如,这样被ecc编码的第一至第四二进制页数据中的每一者的位数可以与物理页pp的存储单元mc的数目相同,例如,除了元存储单元、监测存储单元或备用存储单元外的被指定为存储用户数据的存储单元的数目。
[0081]
第五和第六二进制页数据可以具有第二大小。第二大小可以小于第一大小。第五和第六二进制页数据可以作为第四写入数据wd4提供给整形编码器124。
[0082]
第一至第六二进制页数据可以被写入非易失性存储器件110的一个物理页pp中。即,与第一至第六二进制页数据相对应的6位可以被写入一个存储单元中。如参照图4和图5所描述的,第一至第六二进制页数据可以由64种状态表示。
[0083]
图7示出了描述根据本发明构思的实施例的整形编码器124如何执行状态整形的示例。参照图1和图7,第五二进制页数据的每个位可以具有“0”值和“1”值之一,并且第六二进制页数据的每个位可以具有“0”值和“1”值之一。
[0084]
通过组合第五二进制页数据中的一位和第六二进制页数据中的一位获得的两位由四种状态“00”、“01”、“10”和“11”来表示。整形编码器124可以消除由这样组合的两位表示的状态中的至少一种状态。
[0085]
例如,整形编码器124可以从由这样组合的两位表示的“00”、“01”、“10”和“11”状态中消除“10”状态。作为编码结果,这样组合的两位由三种状态“00”、“01”和“11”来表示。因此,编码结果可以是三进制数据。三进制数据可以包括解码所需的附加信息,并且可以具有与具有第一大小的两个页数据相对应的容量。
[0086]
图8示出了整形编码器124和整形解码器129参考的用于状态整形的表格的示例。参照图8,示出了11个二进制位(例如,“i”位)、4位十进制数、7位三进制数和14个二进制位(例如,“j”位)。为了更好地理解,添加了4位十进制数和7位三进制数,而整形编码器124和整形解码器129可以参考11个二进制位与14个二进制位的映射信息。
[0087]
11个二进制位的值,即“00000000000”至“11111111111”可以分别对应于十进制数“0000”至“2047”。7位三进制数,即“0000000”至“2222222”可以分别对应于十进制数“0000”至“2186”。因为7位三进制数的数目大于11个二进制位的值的数目,所以可以通过将11个二进制位的值映射到一些7位三进制数,来对11个二进制位进行整形。
[0088]
数据实际上以二进制位的形式写入非易失性存储器件110中。因此,可以以二进制位的形式将7位三进制数写入非易失性存储器件110中。通过使用三个值“0”、“1”和“2”来表示三进制数。这三个值均可以由两个二进制位表示。
[0089]
在实施例中,在从三进制数据消除模式(pattern)“10”的情况下,三进制数“0”可以由“00”表示,三进制数“1”可以由“01”表示,三进制数“2”可以由“11”表示。作为利用二进制位“00”、01”和“11”替换7位三进制数中的每一位的结果,获得了14个二进制位。14个二进制位不具有模式“10”,并且14个二进制位的值中的一些值对应于11个二进制位的值。
[0090]
例如,三进制数“0000000”由二进制位“00 00 00 00 00 00 00”表示。三进制数“0000001”由二进制位“00 00 00 00 00 00 01”表示。三进制数“0000002”由二进制位“00 00 00 00 00 00 11”表示。在这种情况下,在最低两位消除了包括“10”的模式。
[0091]
三进制数“0000010”由二进制位“00 00 00 00 00 01 00”表示。三进制数“0000011”由二进制位“00 00 00 00 00 01 01”表示。三进制数“0000012”由二进制位“00 00 00 00 00 01 11”表示。在这种情况下,在最低两位消除了包括“10”的模式。
[0092]
三进制数“0000020”由二进制位“00 00 00 00 00 11 00”表示。在这种情况下,在第二最低两位去除了包括“10”的模式。三进制数“0000021”由二进制位“00 00 00 00 00 11 01”表示。三进制数“0000022”由二进制位“00 00 00 00 00 11 11”表示。在这种情况下,在最低两位消除了包括“10”的模式。
[0093]
三进制数“0000100”由二进制位“00 00 00 00 01 00 00”表示。三进制数“2210211”由二进制位“11 11 01 00 11 01 01”表示。三进制数“2222222”由二进制位“11 11 11 11 11 11 11”表示。
[0094]
即,整形编码器124可以通过将11个二进制位(例如,第一模式)整形为14个二进制位(例如,第二模式),将由4种状态表示的第五和第六页数据整形为三进制数据。同样,整形解码器129可以通过将14个二进制位整形为11个二进制位,将三进制数据整形为第五和第六页数据。
[0095]
在实施例中,该表格可以将11个二进制位的值映射到14个二进制位的值中的一些值。在这种情况下,当14个二进制位中的“1”位引起较高的阈值电压范围时(参见图5),该表格可以将14个二进制位的值中的1的数目相对较少的值映射到11个二进制位的值。
[0096]
当14个二进制位中的“0”位引起较高的阈值电压范围时,该表格可以将14个二进制位的值中的0的数目相对较少的值映射到11个二进制位的值。
[0097]
在实施例中,当包括“z”个二进制位的第一数值被整形为包括“x”个二进制位的第二数值,x个二进制位被划分为多个子二进制组,每个子二进制组包括两个或更多个二进制位,所述两个或更多个二进制位表示n进制数时,“x”的值可以由下面的式1确定。
[0098][0099]
这里,“y”是确定“x”个二进制位的值的范围的数,并且由此确定的数必须满足下面的式2的条件。
[0100]2z
<n
y
ꢀꢀ
式2
[0101]
参照图8的示例,“z”是11,“n”是3,“y”是7。因此,满足式2的条件。根据式1,因为“n”是3,所以对数值的向上取整值是2。因此,“x”是14。
[0102]
当确定了“x”时,可以确定第五页数据和第六页数据的第二大小(参照图5和图6)。第二大小可以由下面的式3确定。
[0103][0104]
在式3中,s1表示第一大小,s2表示第二大小。
[0105]
图9和图10一起示出了描绘整形编码器124如何将11个二进制位整形为14个二进制位以生成三进制数据的示例。参照图1和图9,第五二进制页数据可以包括位“00110011001”,第六二进制页数据可以包括“01010101010”的二进制数据。
[0106]
整形编码器124可以从第五和第六二进制页数据选择11个位。以图9所示的选择11个位的方式为例,但是本发明构思不限于图9所示的选择11个位的方式。整形编码器124可
以从第五二进制页数据、第六二进制页数据或者第五和第六二进制页数据选择11个位。
[0107]
在实施例中,整形编码器124可以选择第一组g1“01010001100”作为11个二进制位。这11个二进制位可以对应于十进制数“0652”的值或三进制数“0220011”的值。为了更好地理解,提供了十进制数的值和三进制数的值,整形编码器124可以不参考十进制数的值和三进制数的值。根据图8所示的表格,可以将11个二进制位整形为14个二进制位“00 11 11 00 00 01 01”。
[0108]
此外,整形编码器124可以选择第二组g2“10101011001”作为11个二进制位。这11个二进制位可以对应于十进制数“1369”的值或三进制数“1212201”的值。根据图8所示的表格,可以将11个二进制位整形为14个二进制位“01 11 01 11 11 00 01”。
[0109]
参照图1和图10,整形编码器124可以在第五和第六二进制页数据的位置放置14个二进制位以生成第五和第六页数据。例如,可以将表示一位三进制数的两个二进制位中的一个二进制位放置在第五页数据处,而将另一个二进制位放置在第六页数据处。
[0110]
第五页数据和第六页数据的对应于(在水平方向上)相同位置的位被写入同一存储单元中。根据状态整形,在第五和第六页数据中,防止位“10”(以第五页数据位和第六页数据位的顺序)被写入同一存储单元中。第五页数据和第六页数据可以是由状态“00”、“01”和“11”表示的三进制数据。
[0111]
第五页数据和第六页数据作为第五写入数据wd5提供给n进制ecc编码器125。n进制ecc编码器125可以从第五和第六页数据生成奇偶校验数据,并且可以防止模式“10”包括在奇偶校验数据中。
[0112]
例如,n进制ecc编码器125可以接收包括由“00”、“01”和“11”组成的14位的(一个或多个)单元的段(segment),并且可以向该段添加包括由“00”、“01”和“11”组成的位的奇偶检验数据。因此,第六写入数据wd6也可以是三进制数据。
[0113]
第五页数据和第六页数据可以与第一至第四二进制页数据一起作为第七写入数据wd7写入非易失性存储器件110的一个物理页。第一至第四二进制页数据可以由存储单元mc具有的16(2
×2×2×
2)种状态表示。因为第五和第六页数据由3种状态表示,所以第一至第四二进制页数据以及第五和第六页数据可以由存储单元mc具有的48(2
×2×2×2×
3)种状态表示。
[0114]
图11示出了存储单元mc可以具有的48种状态的示例。在图11中,横轴表示存储单元mc的阈值电压,纵轴表示存储单元mc的数目。参照图4和图11,存储单元mc可以属于不同的阈值电压范围,并且可以被区分为具有不同的状态。
[0115]
第一至第四二进制页数据以及第五和第六页数据可以由总阈值电压范围内的48种状态(例如,k种状态)表示。与图5的64种状态(即,2^m或2
m
种状态)相比,单个阈值电压范围(或状态)的宽度可以增加,并且阈值电压范围(或状态)之间的距离(即,读取余量)也增加。因此,与图5的情况相比,写入存储单元mc中的数据变得对于错误更加鲁棒。
[0116]
用于写入图5的64种状态的电压(例如,编程电压、通过电压等)可以不同于用于写入图11的48种状态的电压。另外,用于读取图5的64种状态的电压(例如,读取电压、读取通过电压等)可以不同于用于读取图11的48种状态的电压。
[0117]
图12示出了根据写入存储单元mc中的状态的数目的错误的数目。在图12中,横轴表示状态的数目,纵轴表示错误的数目。参照图1、图4和图11,在将要写入存储单元mc的状
态的数目在64至32的范围内改变时,测量错误的数目。
[0118]
随着状态的数目从64减少到48,错误的数目逐渐减少。随着状态的数目从48减少到32,错误的数目逐渐增加。原因是纠错码(ecc)的效果依据状态的数目而变化。
[0119]
图13至图18示出了根据本发明构思的各种实施例实现的控制器。在图13至图18中,二进制页数据表示每个页由两种状态表示的位组成。例如,在两个二进制页数据中,可以通过将一个二进制页数据的一个位和另一二进制页数据的一个位组合来表示4种状态。
[0120]
例如,n进制页数据(n是大于2的整数)表示多条页数据的相同位置的位由“n”种状态表示。例如,两个三进制页数据由3种状态表示并且通过将一个三进制页数据的一个位和另一个三进制页数据的一个位组合而获得。
[0121]
图13示出了根据本发明构思的示例实施例实现的控制器220。参照图1和图13,控制器220可以包括主机接口221、缓冲器222、整形编码器224、三进制ecc编码器225、存储器接口226、三进制ecc解码器228和整形解码器229。
[0122]
整形编码器224可以从缓冲器222的写入区域wa接收由4种状态表示的两个二进制页数据。如参照10所描述的,整形编码器224可以将两个二进制页数据整形为由3种状态表示的两个页数据(例如,两条三进制页数据)。
[0123]
三进制ecc编码器225可以将由3种状态表示的奇偶校验数据添加到两个三进制页数据中。可以通过存储器接口226将添加了奇偶校验数据的三进制页数据写入非易失性存储器件110(例如,参见图1)中。
[0124]
同样地,三进制ecc解码器228可以通过存储器接口226从非易失性存储器件110接收由3种状态表示的两个三进制页数据。三进制ecc解码器228可以通过使用奇偶校验数据来校正两个三进制页数据的错误,并且可以去除奇偶校验数据。
[0125]
整形解码器229可以将2个纠错后的三进制页数据整形为两个二进制页数据。整形解码器229可以将两个二进制页数据存储在缓冲器222的读取区域ra中。
[0126]
即,控制器220可以将由4种状态表示的多电平单元(mlc)页数据整形为由3种状态表示的三进制页数据,并且可以将三进制页数据写入非易失性存储器件110中。
[0127]
图14示出了根据本发明构思的另一示例实现的控制器320。参照图1和图14,控制器320可以包括主机接口321、缓冲器322、整形编码器324、7进制ecc编码器325、存储器接口326、7进制ecc解码器328和整形解码器329。
[0128]
整形编码器324可以从缓冲器322的写入区域wa接收由8种状态表示的三个二进制页数据。如参照图10所描述的,整形编码器324可以将三个二进制页数据整形为由7种状态表示的三个页数据(例如,三条七进制页数据)。
[0129]
7进制ecc编码器325可以将由7种状态表示的奇偶校验数据添加到三个7进制页数据。可以通过存储器接口326将添加了奇偶校验数据的三个7进制页数据写入非易失性存储器件110(例如,参见图1)中。
[0130]
同样地,7进制ecc解码器328可以通过存储器接口326从非易失性存储器件110接收由7种状态表示的三个7进制页数据。7进制ecc解码器328可以通过使用奇偶校验数据校正这三个7进制页数据的错误,并且可以去除奇偶校验数据。
[0131]
整形解码器329可以将3个纠错后的7进制页数据整形为三个二进制页数据。整形解码器329可以将三个二进制页数据存储在缓冲器322的读取区域ra中。
[0132]
即,控制器320可以将由8种状态表示的三电平单元(tlc)页数据整形为由7种状态表示的7进制页数据,并且可以将7进制页数据写入非易失性存储器件110中。
[0133]
图15示出了根据本发明构思的另一示例实现的控制器420。参照图1和图15,控制器420可以包括主机接口421、缓冲器422、二进制ecc编码器423、整形编码器424、三进制ecc编码器425、存储器接口426、二进制ecc解码器427、三进制ecc解码器428和整形解码器429。
[0134]
二进制ecc编码器423可以从缓冲器422的写入区域wa接收由2种状态表示的一个二进制页数据。二进制ecc编码器423可以向二进制页数据添加奇偶校验数据,并且可以将二进制ecc编码后的二进制页数据提供给存储器接口426。
[0135]
整形编码器424可以从缓冲器422的写入区域wa接收由4种状态表示的两个二进制页数据。如参照图10所描述的,整形编码器424可以将两个二进制页数据整形为由3种状态表示的两个页数据(例如,两条三进制页数据)。
[0136]
三进制ecc编码器425可以将由3种状态表示的奇偶校验数据添加到两个三进制页数据中。两个三进制ecc编码后的三进制页数据可以提供给存储器接口426。存储器接口426可以向非易失性存储器件110(例如,参见图1)发送由6种状态表示的一个二进制ecc编码后的二进制页数据和两个三进制ecc编码后的三进制页数据,以便将其写入非易失性存储器件110中。
[0137]
同样地,二进制ecc解码器427可以通过存储器接口426从非易失性存储器件110接收由2种状态表示的一个二进制页数据。二进制ecc解码器427可以通过使用奇偶校验数据来校正二进制页数据的错误,并且可以去除奇偶校验数据。一个ecc解码后的二进制页数据可以存储在缓冲器422的读取区域ra中。
[0138]
三进制ecc解码器428可以通过存储器接口426从非易失性存储器件110接收由3种状态表示的两个三进制页数据。三进制ecc解码器428可以通过使用奇偶校验数据来校正两个三进制页数据的错误,并且可以去除奇偶校验数据。
[0139]
整形解码器429可以将两个ecc解码后的三进制页数据整形为两个二进制页数据。整形解码器429可以将两个二进制页数据存储在缓冲器422的读取区域ra中。
[0140]
即,控制器420可以将由8种状态表示的tlc页数据整形为由6种状态表示的一个二进制页数据和两个三进制页数据,并且可以将整形后的数据写入非易失性存储器件110中。
[0141]
图16示出了根据本发明构思的另一示例实现的控制器520。参照图1和图16,控制器520可以包括主机接口521、缓冲器522、二进制ecc编码器523、整形编码器524、7进制ecc编码器525、存储器接口526、二进制ecc解码器527、7进制ecc解码器528和整形解码器529。
[0142]
二进制ecc编码器523可以从缓冲器522的写入区域wa接收由2种状态表示的一个二进制页数据。二进制ecc编码器523可以向二进制页数据添加奇偶校验数据,并可以将二进制ecc编码后的二进制页数据提供给存储器接口526。
[0143]
整形编码器524可以从缓冲器522的写入区域wa接收由8种状态表示的三个二进制页数据。如参照图10所描述的,整形编码器524可以将三个二进制页数据整形为由7种状态表示的三个页数据(例如,三条七进制页数据)。
[0144]
7进制ecc编码器525可以将由7种状态表示的奇偶校验数据添加到三个7进制页数据。三个7进制ecc编码后的7进制页数据可以提供给存储器接口526。存储器接口526可以向非易失性存储器件110(例如,参见图1)发送由14种状态表示的一个二进制ecc编码后的二
进制页数据和三个7进制ecc编码后的7进制页数据,以便将其写入非易失性存储器件110中。
[0145]
同样地,二进制ecc解码器527可以通过存储器接口526从非易失性存储器件110接收由2种状态表示的一个二进制页数据。二进制ecc解码器527可以通过使用奇偶校验数据来校正二进制页数据的错误,并且可以去除奇偶校验数据。一个ecc解码后的二进制页数据可以存储在缓冲器522的读取区域ra中。
[0146]
7进制ecc解码器528可以通过存储器接口526从非易失性存储器件110接收由7种状态表示的三个7进制页数据。7进制ecc解码器528可以通过使用奇偶校验数据校正三个7进制页数据的错误,并且可以去除奇偶校验数据。
[0147]
整形解码器529可以将三个ecc解码后的7进制页数据整形为三个二进制页数据。整形解码器529可以将三个二进制页数据存储在缓冲器522的读取区域ra中。
[0148]
即,控制器520可以将由16种状态表示的四电平单元(qlc)页数据整形为由14种状态表示的一个二进制页数据和两个7进制页数据,并且可以将整形后的数据写入非易失性存储器件110中。
[0149]
图17示出了根据本发明构思的另一示例实现的控制器620。参照图1和图17,控制器620可以包括主机接口621、缓冲器622、二进制ecc编码器623、整形编码器624、三进制ecc编码器625、存储器接口626、二进制ecc解码器627、三进制ecc解码器628和整形解码器629。
[0150]
二进制ecc编码器623可以从缓冲器622的写入区域wa接收由8种状态表示的三个二进制页数据。二进制ecc编码器623可以向三个二进制页数据添加奇偶校验数据,并且可以向存储器接口626发送三个二进制ecc编码后的二进制页数据。
[0151]
整形编码器624可以从缓冲器622的写入区域wa接收由4种状态表示的两个二进制页数据。如参照图10所描述的,整形编码器624可以将两个二进制页数据整形为由3种状态表示的两个页数据(例如,两条三进制页数据)。
[0152]
三进制ecc编码器625可以将由3种状态表示的奇偶校验数据添加到两个三进制页数据。两个三进制ecc编码后的三进制页数据可以提供给存储器接口626。存储器接口626可以向非易失性存储器件110(例如,参见图1)发送由24种状态表示的三个二进制ecc编码后的二进制页数据和两个三进制ecc编码后的三进制页数据,以将其写入非易失性存储器件110中。
[0153]
同样地,二进制ecc解码器627可以通过存储器接口626从非易失性存储器件110接收由8种状态表示的三个二进制页数据。二进制ecc解码器627可以通过使用奇偶校验数据来校正三个二进制页数据的错误,并且可以去除奇偶校验数据。三个ecc解码后的二进制页数据可以存储在缓冲器622的读取区域ra中。
[0154]
三进制ecc解码器628可以通过存储器接口626从非易失性存储器件110接收由3种状态表示的两个三进制页数据。三进制ecc解码器628可以通过使用奇偶校验数据来校正两个三进制页数据的错误,并且可以去除奇偶校验数据。
[0155]
整形解码器629可以将两个ecc解码后的三进制页数据整形为两个二进制页数据。整形解码器629可以将两个二进制页数据存储在缓冲器622的读取区域ra中。
[0156]
即,控制器620可以将由32种状态表示的五电平单元(plc)页数据整形为由24种状态表示的三个二进制页数据和两个三进制页数据,并且可以将整形后的数据写入非易失性
存储器件110中。
[0157]
图18示出了根据本发明构思的另一示例实现的控制器720。参照图1和18,控制器720可以包括主机接口721、缓冲器722、二进制ecc编码器723、整形编码器724、三进制ecc编码器725、存储器接口726、二进制ecc解码器727、三进制ecc解码器728和整形解码器729。
[0158]
二进制ecc编码器723可以从缓冲器722的写入区域wa接收由16种状态表示的四个二进制页数据。二进制ecc编码器723可以将奇偶校验数据添加到四个二进制页数据,并且可以向存储器接口726发送四个二进制ecc编码后的二进制页数据。
[0159]
整形编码器724可以从缓冲器722的写入区域wa接收由4种状态表示的两个二进制页数据。如参照图10所描述的,整形编码器724可以将两个二进制页数据整形为由3种状态表示的两个页数据(例如,两条三进制页数据)。
[0160]
三进制ecc编码器725可以将由3种状态表示的奇偶校验数据添加到两个三进制页数据。两个三进制ecc编码后的三进制页数据可以提供给存储器接口726。存储器接口726可以向非易失性存储器件110(参见图1)发送由48种状态表示的四个二进制ecc编码后的二进制页数据和两个三进制ecc编码后的三进制页数据,并将其写入非易失性存储器件110中。
[0161]
同样地,二进制ecc解码器727可以通过存储器接口726从非易失性存储器件110接收由16种状态表示的四个二进制页数据。二进制ecc解码器727可以通过使用奇偶校验数据来校正四个二进制页数据的错误,并且可以去除奇偶校验数据。四个ecc解码后的二进制页数据可以存储在缓冲器722的读取区域ra中。
[0162]
三进制ecc解码器728可以通过存储器接口726从非易失性存储器件110接收由3种状态表示的两个三进制页数据。三进制ecc解码器728可以通过使用奇偶校验数据校正两个三进制页数据的错误,并且可以去除奇偶校验数据。
[0163]
整形解码器729可以将两个ecc解码后的三进制页数据整形为两个二进制页数据。整形解码器729可以将两个二进制页数据存储在缓冲器722的读取区域ra中。
[0164]
即,控制器720可以将由64种状态表示的六电平单元(hlc)页数据整形为由48种状态表示的四个二进制页数据和两个三进制页数据,并且可以将整形后的数据写入非易失性存储器件110中。
[0165]
在实施例中,当接收到两个或更多个二进制页数据时,二进制ecc编码器或二进制ecc解码器可以依次或同时(或并行)对两个或更多个二进制页数据执行ecc编码或ecc解码。
[0166]
在实施例中,控制器可以包括两个或更多个整形编码器、两个或更多个n进制ecc编码器、两个或更多个n进制ecc解码器以及两个或更多个整形解码器。两个或更多个整形编码器可以将多条输入的二进制页数据整形为多条相同或不同的n进制页数据。
[0167]
两个或更多个整形解码器可以将接收到的多条相同或不同的n进制页数据整形为二进制页数据。当使用两个或更多个整形编码器时,可以对其中写入数据的非易失性存储器件110的存储单元的状态的数目进行各种改变。
[0168]
在实施例中,给出了如下描述:与一个物理页pp相对应的页数据从写入区域wa被读取、被选择性地编码并被写入非易失性存储器件110中。然而,多条页数据可以被连续编码且不被写入非易失性存储器件110中。
[0169]
例如,非易失性存储器件110可以被配置为将数据交替地写入两个或更多个页中。
在将多条二进制页数据写入两个或更多个页中的一页时,一个或更多个二进制页数据可以从写入区域wa被读取,可以被二进制ecc编码,并且可以被写入该页。
[0170]
之后,在将多条二进制页数据写入两个或更多个页中的另一页时,一个或更多个二进制页数据可以从写入区域wa被读取,可以被二进制ecc编码,并且可以被写入该页。
[0171]
在将多条n进制页数据写入两个或更多个页中的一页时,两个或更多个二进制页数据可以从写入区域wa被读取,可以被整形编码,可以被n进制ecc编码,并且可以被写入该页。
[0172]
图19示出了在三进制数的伽罗华域中定义的运算符的示例。参照图1和图19,n进制ecc编码器125和n进制ecc解码器128可以是基于n进制数的伽罗华域的。在实施例中,图19示出了定义三进制数的伽罗华域的运算符的示例。
[0173]
第一运算符op1可以定义加法。例如,加法可以被定义为通过将两个值相加的结果除以3而获得的余数。第二运算符op2可以定义乘法。在乘法中,当两个值之一为“0”时,相乘的结果为“0”。当两个值分别为“1”和“2”时,相乘的结果为“2”。当两个值均为“1”或“2”时,相乘的结果为“1”。
[0174]
可以基于第一运算符op1和第二运算符op2定义用于纠错编码和纠错解码的约束。例如,当满足下面的式4的约束时,可以定义不存在被视为错误的约束。
[0175]
2x1 x3 x4=0
[0176]
x2 x3 2x4=0
[0177]
2x1 2x2 x3=0
ꢀꢀ
式4
[0178]
可以从式4的约束获得生成矩阵和校验矩阵。n进制ecc编码器125可以通过使用生成矩阵生成奇偶校验数据,并且n进制ecc解码器128可以通过使用校验矩阵来校验错误。
[0179]
图20示出了描述当选择性地启用状态整形时存储设备100如何执行写入操作的示例实施例的流程图。参照图1和图20,在操作s310中,控制器120接收写入请求。
[0180]
在操作s320中,控制器120确定是否启用整形。例如,可以由外部主机设备设置或依据控制器120的内部策略设置状态整形的启用和停用。
[0181]
当确定启用整形时(s320为是),在操作s330中,控制器120执行状态整形并将整形后的数据发送到非易失性存储器件110。此外,控制器120允许非易失性存储器件110通过使用第一写入电压以第一操作模式写入数据。例如,写入非易失性存储器件110中的数据可以具有如参照图11描述的48种状态。
[0182]
当确定未启用整形时(s320为否),在操作s340中,控制器120将未整形的数据发送到非易失性存储器件110。另外,控制器120允许非易失性存储器件110通过使用第二写入电压以第二操作模式写入数据。例如,写入非易失性存储器件110中的数据可以具有如参照图5描述的64种状态。
[0183]
控制器120可以与数据一起写入指示数据是否被整形的标志。作为另一示例,控制器120可以在存储外部主机设备的逻辑地址与非易失性存储器件110的物理地址之间的映射信息的元数据上记录指示数据是否被整形的标志。
[0184]
图21示出了描述当选择性地启用状态整形时存储设备100如何执行读取操作的示例实施例的流程图。参照图1和图21,在操作s410中,控制器120接收读取请求。
[0185]
在操作s420中,控制器120确定请求读取的数据是否被整形。例如,控制器120可以
通过从非易失性存储器件110读取标志或者通过参考元数据的记录来确定请求读取的数据是否被整形。
[0186]
当确定请求读取的数据被整形时(s420为是),在操作s430中,控制器120允许非易失性存储器件110通过使用第一读取电压以第一操作模式读取数据。
[0187]
当确定请求读取的数据未被整形时(s420为“否”),在操作s440中,控制器120允许非易失性存储器件110通过使用第二读取电压以第二操作模式读取数据。
[0188]
在上述实施例中,通过使用术语“第一”、“第二”、“第三”等来描述存储设备100的组件。然而,术语“第一”、“第二”、“第三”等可以仅用于使组件彼此区分开,而不用于限制本发明构思。例如,术语“第一”、“第二”、“第三”等不涉及任何形式的顺序或数字含义。
[0189]
在以上实施例中,根据本发明构思的实施例的组件被示为块。可以利用各种硬件设备(例如,集成电路、专用ic(asci)、现场可编程门阵列(fpga)和复杂可编程逻辑设备(cpld))、在硬件设备中驱动的固件、诸如应用的软件或者硬件设备和软件的组合来实现这些块。此外,这些块可以包括被注册为电路或利用集成电路中的半导体元件实现的知识产权(ip)的电路。
[0190]
根据本发明构思,存储设备对数据执行状态整形,以使得由数据表示的状态的数目减少,然后将状态整形后的数据写入存储单元中。因此,即使写入单个存储单元的位数增加,也提供了一种确保可靠性的存储设备。
[0191]
虽然已经参考本发明构思的示例性实施例描述了本发明构思,但是对于本领域的普通技术人员应当显而易见的是,在不脱离在所附权利要求中阐述的本发明构思的精神和范围的前提下,可以对示例性实施例进行各种改变和修改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜