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

文档序号:9547041阅读:来源:国知局
理数据存储系统200的数据和信息的易失性存储器。根据本主题技术的一个方面,存储介质205是一种随机存取存储器(RAM),诸如双数据率(DDR) RAM。其它类型的RAM也可以被用来实现存储介质205。存储器205可以使用单一 RAM模块或多个RAM模块来实现。尽管存储介质205别描绘成不同于处理器201,但是本领域技术人员将意识到,存储介质205可以结合到处理器201而不会脱离本主题技术的范围。可替代地,存储介质205可以数非易失性存储器,诸如,磁性盘、闪存、外围SSD等等。
[0034]如在图2中进一步描绘的那样,数据存储系统200还可以包括I/O接口 203(例如,主机接口)。I/O接口 203被配置为连接到主机设备,以便从主机设备接收数据以及向主机设备发送数据。I/O接口 203可以包括点连接和物理连接两者,用于例如经由处理器201的I/O接口可操作地将主机设备连接到处理器201。I/O接口 203被配置为在主机设备和处理器201之间进行数据、地址以及控制信号的通信。可替换地,处理器201的I/O接口可包括I/O接口 203和/或与I/O接口 203结合。I/O接口 203可以被配置为实现一种标准接口,诸如,串行连接 SCSI (SAS)、光纤通道接口、PCI Express 接口 (PCIe)、SATA、USB 等。1/0接口 203可以被配置为仅仅实现一个接口。可替换地,I/O接口 203(和/或处理器201的I/O接口 )可以被配置为实现多个接口,其使用用户所选择的或在组装时被编程的配置参数可以单个地选择。I/O接口 203可以包括一个或多个缓存其,用于缓存主机设备和处理器201之间的传输量(transmiss1n)。
[0035]存储器件202代表用于存储数据的非易失性存储器件。根据本主题技术的方面,存储器件202包括例如NAND闪存。存储器件202可以包括单一闪存期间或芯片,如图2所示,或者可以包括排列在多个通道中的多个闪存期间或芯片。闪存不限于任何特定容量或配置。例如,物理块的数量、每个物理块的物理页的数量、每个物理页的扇区的数量以及扇区的尺寸可以在本主题技术的范围内改变。
[0036]图3是根据本主题技术的流程图,图释了用于将数据存储在固态器件中的实例处理。图3中所呈现的实例处理可以采用闪存来执行,该闪存代表在用于数据存储的固态器件中使用的固态非易事存储器的一个实例。其它类型的固态非易失性存储器可以用于本主题技术,包括组织成有限长度页的存储器。其它类型的固态非易失性存储器可以包括但不限于,限制性随机存取存储器(ReRAM或RRAM)、非易失性静态随机存取存储器(nvSRAM)、铁电随机存取存储器(FeRAM)、磁阻效应随机存取存储器(MRAM)、自旋转移力矩RAM(STTRAM)、相变化存储器(PCM或PCRAM)、可编程金属化单元存储(PMC)、硅氧化物-氮氧化物-娃存储器(S0N0S)、赛道记忆体(racetrack)或磁畴壁(domain-wall)存储器(DWM)以及纳米RAM(NRAM)。用于在例如闪存的固态非易失性存储器中存储的主机数据单元(例如,扇区)可以通过所述控制器201 (302)接收。主机数据单元可以包括主机系统所提供的一个或多个扇区。如上所述,所述主机数据单元每个可以具有相同的尺寸。
[0037]所述多个主机数据单元划分成多个数据有效载荷,其中第一数据有效载荷包括第一主机数据单元而第二数据有效载荷包括第二主机数据单元的一部分(304)。在这方面,有些所述数据有效载荷包括整个主机数据单元而其他包括主机数据单元的部分。因此,尽管所述主机数据单元每个具有相同尺寸,但是所述数据有效载荷也可以不都具有相同尺寸。
[0038]所述第一数据有效载荷被编码到具有第一代码字尺寸的第一代码字(306)。第二数据有效载荷被编码到具有第二代码字尺寸的第二代码字,所述第二代码字尺寸不同于所述第一代码字尺寸(308)。如上所述,所述第一代码字尺寸和所述第二代码字尺寸可以基于ECC编码器/解码器206的能力。
[0039]所述第一代码字和所述第二代码字被写到闪存中的第一页(310)。通过将所述第二主机数据单元划分成多个数据有效载荷,可以将闪存存储空间最大化。例如,参见图1,如果闪存的页120a的尺寸为16kB以及用于开销(overhead)的一些空间(room),其能够存储三个尺寸为每个4kB加上ECC奇偶校验位的代码字100a-100c。不过,闪存中的页120a可以不具有剩余用于第四个4kB代码字和ECC奇偶校验位的足够空间(room)。相反,其可以具有用于3kB代码字和ECC奇偶校验位的空间。如果该闪存不具有剩余用于3kB代码字的足够空间,则所述控制器201可以核实看看是否存在用于2kB代码字的空间。如果该闪存不具有剩余用于2kB代码字的足够空间,则所述控制器201可以核实看看是否存在用于lkB代码字的足够空间。如果该闪存不具有剩余用于甚至最小的代码字的足够空间,则将最大尺寸的代码字,在该实例中为4kB,写到下一页。
[0040]一旦第二代码字102a被写入闪存内的第一页120a,则含有所述第二主机数据单元的剩余部分的第三数据有效载荷可以被编码成具有第三代码字尺寸的第三代码字104a。在上述实例中,第二代码字102a的尺寸为3kB,因此,第三代码字104a尺寸为lkB。第三代码字104a被写到与第一页120a邻近的第二页120b。如上所述,如果存在一个命令要读取在两页120a和120b上的被划分跨两个代码字102a和104a的主机数据单元,该系统可以解码所述两个代码字102a和104a,并且不会读取第一页120a或第二页120b上的任何其它数据以便访问所请求的主机数据单元。
[0041]为了尽可能多地将最大的代码字写入闪存,所述控制器201可以查看是否有一个或多个最大尺寸的代码字可以被写入该页。在这种情况下,有用于最大尺寸的多个代码字的足够空间,则将所述第一代码字尺寸的三个以上的代码字100d-100f (在本实例中,4kB)写入第二页120b。在写入具有lkB代码字尺寸的代码字104a和每个具有4kB代码字尺寸的代码字100d-100f之后,尺寸为16kB的第二页120b不能适于另一个3kB代码字,但是可适于具有2kB代码字尺寸的代码字106a。如前所述,将被存储在闪存上的下一个主机数据单元可以被划分成两个数据有效载荷,并被编码到两个代码字106a和106b。一个代码字106a被写入第二页120b而另一个代码字106b被写入第三页106b。
[0042]该处理继续,尽可能多地使用最大代码字尺寸。在图1中,代码字lOOg-lOOl、102b、104b被写入页120c-120d知道页以最大代码字尺寸的代码字结束为止。在该实例中,第四页120d以最大代码字尺寸的代码字1001结束。lkB代码字将不适于第四页120d。代码字lOOa-lOOl、102a-102b、104a_104b、106a_106被写入并按照代码字尺寸的模式(pattern)排列。在这种情况下,该模式为 4kB、4kB、4kB、3kB、lkB、4kB、4kB、4kB、2kB、2kB、4kB、4kB、4kB、lkB、3kB、4kB、4kB、4kB。在编码和存储剩余的主机数据单元时可以重复该相同的模式。
[0043]本领域技术人员会理解到,此处所描述的各种图释性的块、元件、组件、方法以及算法可以实现为电子硬件、计算机软件或两者的组合。为了解释硬件和软件的这种互换性,已经总体上按照其功能描述了各种图释性的块、元件、组件、方法以及算法。这种功能实现为硬件或软件依赖于影响到整体系统的特定的应用和设计限制。本领域技术人员可以以用于每种特定应用的不同方式实现所述功能。各种组件和块可以在不脱离本主题技术的范围的情况下被完全不同地排列(例如,按照不同顺序排列或者按照不同方式分隔)。
[0044]可以理解的是,在所披露的处理中的步骤的具体顺序或层级是一种举例方式的解释。基于设计偏好,可以理解的是,所述处理中的步骤的具体顺序或层级可以被重新排列。有些步骤可以同步地被执行。附后的方法权利要求以相同的顺序给出了各个步骤的元素,但是不意味着将按照所呈现的具体顺序或层级收到限制。
[0045]所提供的前面的描述使得本领域技术人员能够实现此处描述的各个方面。前述描述提供了该主题技术的各种实例,并且该主题技术不限于这些实例。本领域技术人员清楚对这些方面可以有各种修改,并且此处所限定的总原则可以应用到其他方面。因此,权利要求书不意图受限于此处所示的这些方面,而是将于由语言权利要求构成的全部范围一致,其中以单数形式提到的元件并不意图意味着“一个和仅有一个”,除非有明确的说明,而是应该理解为“一个或多个”。除非有具体明示,术语“有些”指的是一个或多个。男性代词(例如,他的)包括女性和
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1