固态器件中的多纠错码代码字尺寸的制作方法

文档序号:9547041阅读:407来源:国知局
固态器件中的多纠错码代码字尺寸的制作方法
【技术领域】
[0001]本主题技术总体涉及一种固态存储设备。
【背景技术】
[0002]主机数据可以通过将主机数据编码成纠错码(ECC)代码字并将该代码字存储在数据存储介质上而被可靠地存储在诸如闪存的数据存储介质中。响应于读取命令,代码字可以从所述数据存储介质中被读取并且在将无差错主机数据传递给主机之前被解码。主机数据的扇区的尺寸可以基于主机系统而改变。例如,在企业应用中,相对于在许多客户应用中所使用的512字节,主机扇区尺寸在增加ECC奇偶校验位之前可以是536字节。不同尺寸的和主机扇区可以增加如固态器件(SSD)的基于闪存的数据存储系统的复杂性以及折中该数据存储系统的性能。

【发明内容】

[0003]披露了一种用于在固态器件中存储数据的系统和方法。根据一个方面,一种方法可包括:接收多个主机数据单元,用于存储在固态非易失性存储器中;在多个数据有效载荷之间划分所述多个主机数据单元,其中第一数据有效载荷包括第一主机数据单元,而第二数据有效载荷包括第二主机数据单元的一部分;将第一数据有效载荷编码成具有第一代码字尺寸的第一代码字;将第二数据有效载荷编码成具有第二代码字尺寸的第二代码字,第二代码字尺寸不同于第一代码字尺寸;以及将第一代码字和第二代码字写到固态非易失性存储器中的第一页。在另一个方面,一种机器可读介质可以包括其上的指令,这些指令在被执行时执行前述方法。
[0004]在另一个方面,一种系统可以包括:固态非易失性存储器;一个或多个数据缓存器,配置为接收多个主机数据单元,用于存储在所述固态非易失性存储器中;控制器,被配置为在多个数据有效载荷之间划分在所述一个或多个数据缓存器中的所述多个主机数据单元,其中第一数据有效载荷包括第一主机数据单元,而第二数据有效载荷包括第二主机数据单元的一部分;以及编码器/解码器,被配置为将第一数据有效载荷编码成具有第一代码字尺寸的第一代码字以及被配置为将第二数据有效载荷编码成具有第二代码字尺寸的第二代码字,所述第二代码字尺寸不同于所述第一代码字尺寸,其中所述控制器还被配置为将所述第一代码字和所述第二代码字写到固态非易失性存储器中的第一页。
[0005]应该理解的是,本领域技术人员根据下面的详细描述易于清楚该主题技术还有其它配置,在下面的详细描述中通过图释方式示出并描述了该主题技术的各种配置。如所认识到的那样,该主题技术能够有其它的和不同的配置,并且其几个细节能够在各种其它方面进行修改,所有这些都不脱离本主题技术的范围。因此,这些附图和详细描述自然地都将被认为是阐述性的而不应该被认为是一种限制。
【附图说明】
[0006]下面将参照附图进行详细描述。
[0007]图1是根据本主题技术的方面的框图,图释了一系列包括主机数据和纠错码的代码字的实例,这些代码字跨存储器块的多个页被存储。
[0008]图2描绘了根据本主题技术的方面的框图,图释了固态器件的组件,这些组件被配置为存储从主机系统中接收的数据。
[0009]图3是根据本主题技术的方面的流程图,图释了用于将数据存储在固态器件中的实例处理。
【具体实施方式】
[0010]下面给出的详细描述意图作为本主题技术的各种配置而不意图代表其中可以实现本主题技术的仅有配置。所述附图被包含在此处并构成该详细描述的一部分。该详细描述包括用于提供该主题技术的整体理解的一些具体细节。不过,本主题技术可以不采用这些具体细节来实施。在某些实例中,构件和组件以框图形式显示以避免掩盖本主题技术的构思。为了便于理解相同的组件采用同样的元件数字来标记。
[0011]闪存被组织成闪存单元的块。每块包括多个可以含有成千上万个比特的页。数据以页为单位写入闪存以及从闪存中读出。不过,闪存必须以块为单位被擦除。数据可以被写到顺序地跨闪存器件的闪存页。可以经由独立信道在不同闪存器件上写顺序页,这会使得通过经由独立信道向每个各自的闪存器件发送读取命令来并行地读取该顺序页。采用这种方式,可以快速实现从闪存中的数据检索。
[0012]有些闪存器件的制造者可以将闪存页配置成将闪存页的尺寸固定在512字节大多个用于ECC开销的额外空间的倍数。不过,在企业(enterprise) SSD中,将要存储在SSD上的主机数据单元(或扇区)可以不与闪存页对齐(align)。例如,企业主机数据单元可以大于512字节,诸如528字节或536字节,这会降低用于ECC奇偶校验位的空间量。此外,指定的ECC格式可能不足以达到具有所需的不可校正比特错误率的编程/擦除循环的理想的数量,因为来自闪存的原始比特错误率会随着其磨损(wears out)而增加。
[0013]当在被配置用于512字节的主机数据单元的SSD中写入大于512字节的主机数据单元时,该SSD可能尚未填满闪存的整页而停止,因为未划分的代码字将不会填充该页,或者跨两页拆分某些代码字。前者会很昂贵,因为需要更多的闪存来存储相同数量的主机数据。后者可能需要读取两页来检索用于单一主机数据单元的代码字,这在等待检索两页的同时占用(tie up) SSD中的资源.
[0014]ECC解码直到整个代码字已经从闪存中检索到为止才开始。不过,为了使得闪存中的存储空间的利用率最大化,代码字可以被拆分跨在两个闪存页上。例如,如果闪存页的尺寸为16kB并且每个代码字的尺寸为4kB加ECC奇偶校验位,则三个完整的代码字就可以写入该闪存页,但是第四个完整的代码字可能不适于该闪存页,因为每个代码字的ECC奇偶校验位要占用空间。与将闪存页上的剩余的空间空出来不同,下一个代码字可以被拆分到跨两个闪存页。在该实例中,4kB代码字的3kB可以被写入该闪存页而4kB代码字的剩余lkB可以被写入另一个闪存页。
[0015]不过,如果代码字被拆分跨两个闪存页,则解码器必须等待两个页被读取,这会需要将第一接收部分保存在缓存器中直到接收到第二部分为止。对于诸如低密度奇偶校验(LDPC)的更高级ECC系统而言,后果会更严重,因为两页的错误特性可能需要不同的处理。因此,对代码字来说跨页边界是不理想的,并且不将闪存中的存储空间利用率最大化也是不理想的。
[0016]与将不适于一页的代码字分拆到两页上不同,本主题技术将主机数据单元划分成两个独立的代码字并将这两个代码字写到相邻的页。采用这种方式,每个代码字不会横跨页边界并且闪存中的存储空间可被最大化。
[0017]单一 ECC编码器/解码器可以被用于使用在最长和最短代码字两者中的相同数量的奇偶校验位切换代码字长度。例如,对于lkB代码字可以像4kB代码字一样使用相同数量的奇偶校验位。lkB代码字可以通过ECC被过度保护,由于其可能不需要与通过ECC提供的奇偶校验位一样多的奇偶校验位,但是,与通过具有附加的较小的代码字而从减少页中的无用位的数量所获得的增益相比,过量的奇偶校验位所占用的任何额外空间都是较小的。而且,如果在最长代码字中含有所有主机数据的大部分(bulk),则多个代码字尺寸系统的性能将接近于仅仅使用最长代码字的固定尺寸系统,并且读取放大率(readamplificat1n)也可能被最小化。
[0018]图1描绘了根据本主题技术的一个方面的一个框图,其图释了跨闪存块的多个页所存储的代码字的实例系列。每个代码字lOOa-lOOl、102a-102b、104a_104b、106a_106b包含有主机数据和纠错码。每个代码字的尺寸选自于可能代码字尺寸列表。例如,在图1中,代码字lOOa-lOOl都是第一尺寸,代码字102a-102b为第二尺寸,代码字104a_104b为第三尺寸,以及代码字106a-106b为第四尺寸。
[0019]本主题技术生成并提供所占空间尽可能与每个闪存页120a_120d—样多的代码字 100a-1001、102a-102b、104a-104b、106a-106b。例如在将代码字 100a-100c 写入页 120a之后,适合于页120a的剩余空间的最大代码字尺寸为代码字102a,其为第二次尺寸。通过使用代码字,与将代码字104a或代码字106a写入页120a中相比,代码字102a的尺寸将尽可能多地使用闪存页120a-120d。尽管代码字100a-100c和102a不会占用页120a的全部,但是实质上占用页120a的全部。在有些方面,如果在特定页中剩余的空间量小于最小代码字尺寸,那么该页的全部实质上被占用。
[0020]图2描绘了根据本主题技术的框图,其图释了固态器件的被配置为存储从主机系统接收的数据的组件。数据存储系统200包括:处理器201 (例如,数据存储或SSD控制器,微处理器等)、一个或多个存储器件202(例如,闪存器件或其它类型的存储器件,诸如随机存取存储器、光学
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1