具有有效的软信息接口的nand闪存存储系统的制作方法

文档序号:6547403阅读:229来源:国知局
具有有效的软信息接口的nand闪存存储系统的制作方法
【专利摘要】一种用于非易失性存储设备的控制器,包括传送控制模块和解码器模块。该传送控制模块被配置为请求从闪存存储模块读取数据。要被读取的数据包括对应于第一码字的数据。该传送控制模块被配置为从该闪存存储模块接收对应于该第一码字的硬判决。该传送控制模块被配置为从该闪存存储模块接收对应于该第一码字的软信息。在不接收对应于另一个码字的任何介入中间的硬判决或软信息的情况下,接收对应于该第一码字的该硬判决和对应于该第一码字的该软信息两者。该解码器模块被配置为使用对应于该第一码字的该硬判决和该软信息来解码该第一码字。
【专利说明】具有有效的软信息接口的NAND闪存存储系统
[0001]相关申请的交叉引用
[0002]本申请要求于2013年5月17日递交的美国临时申请第61/824,822号的权益。以上引用的申请的全部公开内容通过引用而被包含在本文中。

【技术领域】
[0003]本公开内容涉及非易失性存储器并且更具体地,涉及控制器/闪存接口中的数据传送接口。

【背景技术】
[0004]本文中提供的【背景技术】描述是出于一般性地给出本公开内容的背景的目的。当前发明人的工作的(以在这个【背景技术】章节中所描述的该工作的程度而言)以及不可以被另外地认定为在递交时间的现有技术的描述的方面,并非明确也非隐含地被承认为相对本公开内容的现有技术。
[0005]在图1中,系统100包括闪存系统104,其与主机108通信。闪存系统104包括闪存设备112和控制器116。闪存设备112包括存储阵列120和访问模块124。存储阵列120包括闪存系统,诸如NAND闪存单元。访问模块124负责对存储阵列120执行写入和读取,而控制器116被配置为响应于主机108的请求并且管理闪存设备112的更高级功能,诸如磨损均衡(wear leveling)。
[0006]在图2中,流程图示出了闪存系统104响应于来自主机108的请求的操作。控制开始于204,其中从闪存设备读取页面。在208,来自与该读取请求对应的页面的硬判决被发送至控制器。在210,控制判决是否需要传输重试。如果需要,控制传送至212以将与该读取请求对应的软信息发送至控制器,并且控制然后在216继续。尽管硬判决指示单元中的每个单元是否似乎已经存储了 O或1,软信息指示该0/1确定是正确的可能性是多少。软信息可能要花费时间来采集,并且因此该软信息不会在硬判决之后立即被发送。
[0007]如果在210不需要重试,控制在216继续。在许多现有技术的系统中,元素210和212不存在,并且没有软信息被发送至控制器。控制因此从208直接行进至216。在216,一旦控制器具有所有的硬判决以及潜在地具有一些软信息,该控制器解码数据并且执行纠错。在220,控制将该数据发送至主机,作为对读取请求的响应。
[0008]在图3中,示出了响应于读取的数据传送的顺序的图形表示。访问模块124首先发送针对该页面的硬判决,并且然后发送针对该页面的软信息。在各种实施方式中,这些硬判决可以在执行存储阵列120的第一读取之后被发送,并且该软信息可以响应于执行存储阵列120的进一步读取而被发送。例如,软信息可以通过调整用于读取存储阵列120的内容的阈值来获取。


【发明内容】

[0009]一种用于非易失性存储设备的控制器,包括传送控制模块和解码器模块。该传送控制模块被配置为请求从闪存存储模块读取数据。要被读取的数据包括对应于第一码字的数据。该传送控制模块被配置为从该闪存存储模块接收对应于该第一码字的硬判决。该传送控制模块被配置为从该闪存存储模块接收对应于该第一码字的软信息。在不接收对应于另一个码字的任何介入中间的硬判决或软信息的情况下,对应于该第一码字的该硬判决和对应于该第一码字的该软信息两者被接收。该解码器模块被配置为使用对应于该第一码字的该硬判决和该软信息来解码该第一码字。
[0010]在其他特征中,解码器模块被配置为在该传送控制模块完成对应于第二码字的硬判决和软信息的接收之前开始解码该第一码字,其中该第二码字紧随该第一码字之后。在其他特征中,该控制器包括缓存器,被配置为存储对应于该第一码字的硬判决和对应于该第一码字的软信息,其中该缓存器的大小小于针对一个页面的数据的所有硬判决的大小。
[0011]在其他特征中,该解码器模块被配置为在(i)对应于该第一码字的硬判决和(ii)对应于该第一码字的软信息被接收之后开始解码该第一码字。在其他特征中,该传送控制模块被配置为在接收对应于该第一码字的硬判决之前选择该闪存存储模块的硬判决缓存器;以及在接收对应于该第一码字的软信息之前选择该闪存存储模块的软信息缓存器。
[0012]在其他特征中,该传送控制模块被配置在对应于该第一码字的硬判决的地址处,从该闪存存储模块请求数据;以及在对应于该第一码字的软信息的地址处,从该闪存存储模块请求数据。在其他特征中,该传送控制模块被配置为指令该闪存控制器将码字的硬判决和该码字的软信息两者一起传输而不传输对应于另一个码字的任何介入中间的硬判决或软信息。
[0013]一种非易失性存储设备,包括非易失性存储单元的存储阵列、缓存器以及访问控制模块。该非易失性存储单元被分组成页面。该访问控制模块被配置为选择性地(i)将数据写入到所选择的页面或者(ii)从所选择的页面将数据读取到缓存器中。从所选择的页面读取数据包括:做出与所选择的页面中的非易失性存储单元的状态有关的硬判决,获得与所选择的页面中的该非易失性存储单元的该状态有关的软信息,以及将该硬判决和该软信息存储到缓存器中。所选择的页面包括对应于多个码字的数据。该访问控制模块进一步被配置为针对多个码字中的每个码字,将对应于该码字的硬判决和对应于该码字的任何软信息一起输出而不输出针对该多个码字中的任何其他码字的任何介入中间的硬判决或软信息。
[0014]根据以下详细描述、权利要求以及附图,本公开内容的可应用性的其他地方将变得明显。详细描述和具体示例旨在于仅解释说明的目的而非旨在于限制本公开内容的范围。

【专利附图】

【附图说明】
[0015]图1是根据现有技术的闪存系统的功能性框图。
[0016]图2是根据现有技术的读取操作的流程图。
[0017]图3是根据现有技术的数据传送的图形描绘。
[0018]图4是根据本公开内容的原理的闪存存储系统的功能性框图。
[0019]图5A-?是在闪存设备与控制器之间的示例数据传送的图形描绘。
[0020]图6A-6D是闪存系统的示例实施方式的功能性框图。
[0021]图7A-7C是用于与闪存系统一起使用的控制器的示例实施方式的功能性框图。
[0022]图8A-8E是在访问模块与控制器之间的示例通信序列。
[0023]图9A-9D是描绘控制器的示例操作的流程图。
[0024]图10是访问模块的示例操作的流程图。
[0025]在附图中,标号可以重复用于表示相似和/或相同元素。

【具体实施方式】
[0026]在图4中,闪存存储系统300包括闪存系统304和主机108.例如,闪存系统304可以包括SSD (硬态驱动)和/或混合硬盘高速缓存,或者可以是SSD和/或混合硬盘高速缓存的一部分。主机108可以是通用处理器、总线控制器、RAID(廉价硬盘冗余阵列)控制器等。闪存系统304和主机108使用主机接口进行通信。仅例如,主机接口可以是PCI (外设部件互连),PCIe (PCI高速)、SCSI (小型计算机系统接口)、SAS(串行连接SCSI)、或者SATA (串行高级技术附加装置)。
[0027]闪存系统304包括闪存设备312和控制器316。闪存设备312和控制器316使用闪存接口进行通信。闪存接口可以被标准化以便于闪存设备312和控制器316能够从不同制造商获得并且仍然进行互操作。仅例如,闪存接口可以部分地或完全地依从ONFI (开放NAND闪存接口 )、切换模式(Toggle Mode)和/或切换V2.0。
[0028]闪存设备312包括闪存存储单元,诸如NAND或NOR闪存存储单元。闪存设备312可以具有低级别读取、写入和擦除功能,而控制器316可以实施更高级别的功能,诸如磨损均衡和逻辑/物理地址转译。
[0029]闪存设备312可以包括信号级别的单元,其中每个闪存单元存储O或1,和/或可以包括多级别的单元,其中每个闪存单元能够存储三个或更多值。尽管在闪存存储的背景中描述了本申请,闪存系统304可以备选地是另一种类型的非易失性设备,并且闪存设备312可以是包括非易失性存储元件的通用非易失性设备。仅例如,非易失性存储元件可以包括磁阻存储器、全息存储器、铁电存储器、电阻存储器、相变存储器等。
[0030]控制器316可以对要被写入到闪存设备312的数据使用FEC(前向纠错),也被称为ECC(纠错编码)。这可以检测在该数据被传送至闪存设备312或者被存储在闪存设备312时所引入的错误,并且可以允许一些错误被纠正。ECC可以被应用至具有预定大小的数据的一部分,其中该部分被称为码字。仅例如,码字大小可以是512字节、I千字节、或4千字节。ECC算法可以包括BCH (博斯-查德胡里-霍昆格母,Bose-Chaudhur1-Hocquenghem)算法、RS (里德-索罗门,Reed-Solomon)算法、汉明算法、维特比(Viterbi)算法、或LDPC(低密度奇偶校验)算法。软信息可以包括LLR(对数似然比率)信息。
[0031]控制器316可以以码字级别或者在分配单元级别来执行操作。分配单元是一个或多个码字。闪存设备312同时可以对不同预定大小的数据的部分(被称为页面)进行操作。使得页面大小较小可能需要更多电路装置以及更多物理区域以用于附加的电轨迹。因此,页面大小可以大于码字大小。仅例如,页面大小可以是16千字节、32千字节、64千字节、或128千字节。闪存设备312可以被约束为擦除整个数据块,以便于擦除该块的任何部分。每个块可以包括一个或多个页面。
[0032]因为闪存设备312执行整个页面的读取,但是ECC是每码字执行,可能对于控制器316而言更有效的是每次接收对应于单个码字的所有数据,以便于该码字的处理能够尽可能快地开始。例如,当闪存设备312从页面的存储单元获取硬判决和软信息(也被称为软判决数据)时,针对单个码字的硬判决和软信息可以被一起发送回到控制器316而没有来自其他码字的任何介入中间的数据。在这种方式下,控制器316能够立即开始处理第一码字。
[0033]这与现有技术的系统相反,在现有技术的系统中,针对页面中的所有码字的所有硬判决首先被发送,并且有时候在一些延迟之后跟随有针对这些码字的软信息。在这些现有技术的系统中,引入了附加的延迟,因为在控制器能够开始解码第一码字之前,控制器等待所有硬判决被接收,随后是针对第一码字的软信息。
[0034]在图5A中,示出了根据本公开内容的码字数据的传输顺序的图形示例。闪存设备312将针对码字O的硬判决传输至控制器316,随后是针对码字O的软信息。在这个点处,控制器316具有用于开始解码码字O所必要的所有信息。闪存设备312然后发送针对码字I的硬判决和针对码字I的软信息。控制器316然后能够开始解码码字I。闪存设备312继续发送交替的硬判决和软信息,直至到达最后的码字,码字N。例如,控制器316可以初始已经请求具有N+1个码字的长度的读取。
[0035]控制器316可以能够实时地处理码字一也就是说,控制器316能够在码字I已经完全被接收之前处理码字O。因此,相对于现有技术,控制器316中的缓存器的大小可以在某些实施方式中被显著地减少。在现有技术中,来自页面的所有硬判决被缓存并且在一些实施方式中,软信息也被接收。
[0036]除了减少缓存器的大小之外,这个传输顺序还可以允许延迟的减少,因为可以以码字级别来将数据提供至主机,以便于尽快地解码每个码字,解码后的码字被转发至主机。在其他实施方式中,解码后的码字可以被排队,并且排队的解码后的码字能够以组被发送至主机。当这些组小于页面大小时,针对这些初始组的延迟可以小于现有技术中的延迟。
[0037]在图5B中,软信息的数量被描绘为大于硬判决的数量。例如,在单个级别的单元中,硬判决可以简单地是O和I之间的选择(单个比特)。软信息可以是如图5A中的单个比特,指示硬判决的可靠性。然而,如图5B所示,软信息可以是指示硬判决的数量的两个或更多比特。
[0038]仅例如,如果硬判决是基于在处于所期望的范围的中间的阈值以上或以下的针对存储单元的读取值,软信息可以对应于被设置在所期望的范围的四分之一的阈值和被设置在所期望的范围的四分之三的阈值。这可以产生两比特的软信息来伴随着硬判决。从大于四分之一阈值并且小于四分之三阈值的单元进行读取可以更可能已经跨越在存储期间的中间阈值,因而指示该硬判决是较不可靠的。
[0039]在图5C中,示出了码字的硬判决和软信息的分割的图形描绘。闪存设备312可以不在一次发送针对单个码字的所有硬判决。实际上,闪存设备312可以以更小的粒度来传输硬判决。在图5C中,仅作为示例,一次发送一半的硬判决,随后是对应的软信息,然后发送第二半的硬判决以及针对该码字的软信息。硬判决和软信息可以被分割成任何数量和大小的部分并且以任何顺序来发送,只要在来自第二码字的硬判决或软信息被发送之前,针对第一码字的所有硬判决和软信息被接收。这允许第一码字的处理尽可能快地开始。
[0040]在图中,其中各种数量的软信息被传输的实施例的图形描绘。闪存设备312可以信令至控制器316,其具有硬判决之后将跟随有软信息,并且可以指示随后有多少软信息。仅作为示例,在图中,针对第一码字(CW O)的软信息被发送,随后是硬判决,而没有针对第二码字(CW I)的软信息被发送。同时,比针对第一码字更多的针对第三码字(CW 2)的软信息被发送。
[0041]在图6A中,闪存设备400的示例实施方式包括存储阵列404、访问模块408和缓存器412。缓存器412可以被分割成针对硬判决的部分412-1和针对软信息的部分412-2。访问模块408基于来自控制器316的请求,从存储阵列404将数据页面读取到缓存器412。访问模块408还可以基于来自控制器316的请求,将数据写入到存储阵列404。在各种实施方式中,缓存器412还可以用于存储要被写入存储阵列404的数据。
[0042]如以下更详细讨论的,访问模块408在发送针对第二码字的硬判决和软信息之前,输出针对第一码字的来自硬判决缓存器412-1的硬判决以及来自软信息缓存器412-2的软信息。这种行为可以由控制器316来明确地控制。备选地,访问模块408,无论是默认的还是基于设置或配置参数,可以根据如图5A-?所示出的顺序之一来发送硬判决和软信肩、O
[0043]在图6B中,闪存设备420的另一示例包括缓存器424,其被分节成硬判决缓存器424-1、第一软彳目息缓存器424_2、第二软/[目息缓存器424-3、和第二软/[目息缓存器424-4。缓存器424可以在存在针对每一个硬判决比特的三比特软信息时以这种方式来分节。
[0044]在图6C中,另一个示例闪存设备400包括交织缓存器444,硬判决和软信息可以一起被存储在其中。交织缓存器444还可以在硬判决和软信息之间没有区别时被使用。例如,可以在每个存储单元上执行单个模拟读取(诸如电流或电压)并且该读取的多比特数字化版本可以针对该单元来存储。可以根据来自该单元的数字读取推断硬判决和软信息两者。
[0045]在图6D中,示例闪存设备460包括压缩/解压缩模块464。压缩/解压缩模块464可以增加到控制器316的闪存接口上的吞吐量,和/或可以减少延迟。压缩/解压缩模块464可以将要被发送至控制器316的数据进行压缩,和/或可以对从控制器316接收的数据进行解压缩。
[0046]尽管压缩/解压缩模块464被示出与图6C的交织缓存器444 一起,但是压缩/解压缩模块464可以与根据本公开内容的原理的任何闪存设备一起使用。此外,尽管已经在图6A-6D中使用相同标号来示出访问模块408,但是访问模块408可以根据哪个缓存器配置被使用以及根据是否给出压缩/解压缩模块464而进行适当地配置。在各种其他实施方式中,访问模块408和压缩/解压缩模块464可以被组合。
[0047]在图7A中,控制器500的示例实施方式包括主机接口模块504,其从主机108接收数据请求。数据请求可以包括写入和读取请求。要被写入的数据被提供至写入缓存器508,数据被存储在其中直至该数据准备好要被发送至闪存设备312。当该数据准备好要被发送时,写入缓存器508将写入数据提供至编码器模块512,编码器模块512将ECC应用至该写入数据。解码后的数据通过传送控制模块516被传输至闪存设备312。
[0048]主机接口模块504与传送控制模块516进行通信以将读取和写入请求提供至闪存设备312。例如,主机接口模块504可以指令传送控制模块516从闪存设备312请求数据的读取,并且主机接口模块504可以指令传送控制模块516将来自写入缓存器508的数据写入到闪存设备312中。响应于读取请求而供应的读取数据由传送控制模块516从闪存设备312接收并且被存储在读取缓存器520。
[0049]在各种实施方式中,读取缓存器520可以被减少到仅能够持有针对单个码字的硬判决和软信息的大小。然而,读取缓存器520可能需要增加大小以容纳在对第一码字的解码开始时到达的第二码字的开端。进一步地,在其中单个解码器服务多信道的系统中,该信道可能比解码器更慢,因此需要更多缓存器以保持解码器活跃。
[0050]解码器模块524解码来自读取缓存器520的数据。解码可以包括识别和纠正错误。在各种实施方式中,一些检测的错误可能是不可纠正的,并且对应的错误可以被信令发送至主机108。该错误可能伴随有不可纠正的数据。附加地或备选地,控制器500的管理模块528可以基于该错误而采取动作。例如,管理模块528可以重新读取该错误在其中被发现的整个页面,并且确定是否存在其他错误。该页面然后可以被标记为较不可靠的,其可以导致管理模块528防止该页面用于存储数据。管理模块528还可以负责实施磨损均衡以及建立物理地址和逻辑地址之间的映射。
[0051]在图7B中,控制器540的另一个示例实施方式包括解压缩模块544。解压缩模块544在所解压的数据由解码器模块524解码之前,解压缩由闪存设备312发送的压缩数据。在各种实施方式中,解码器模块512可以被修改为包括压缩功能,以便于用于写入到闪存设备312的数据在传输期间也被压缩。
[0052]在图7C中,控制器580包括组合的解码器/解压缩模块584,替换图7B的解码器模块524和解压缩模块544。例如,解码器/解压缩模块584可以实施同时执行解码和解压缩功能的算法。
[0053]在图8A中,控制器向访问模块发送命令以读取页面。访问模块向控制器指示该读取被完成,并且作为响应,控制器通过地址请求第一码字。该地址在整个非易失性存储器内可以是绝对的,或者对于该页面的开端可以是相对的。该地址还可以基于存储阵列404的物理布局而被指定为行列格式。
[0054]在各种实施方式中,来自控制器的初始命令可以指示该控制器想要接收第一码字,并且因此访问模块可以在页面已经被读取时就发送来自第一码字的数据。在这样的情况下,来自控制器的单独请求可以被省略。进一步地,为了支持简单地开始发送该数据,从访问模块到控制器的完成指示可以被省略。
[0055]访问模块首先发送针对第一码字的硬判决,并且然后发送针对第一码字的软信息。出于解释说明的简单性,本申请描述了针对给定码字,在软信息之前发送硬判决。然而,硬判决和软信息的顺序可以倒转,只要⑴该顺序在访问模块和控制器之间被重新布置或者(ii)数据的特征(硬判决对软信息)被传达至控制器。
[0056]在图SB中,控制器发送读取请求,并且一经从访问模块接收完结/完成指示,就基于针对第一码字的硬判决所存储处的地址,发送针对第一码字的硬判决的请求。例如,硬判决所存储处的地址可以处于与针对软信息的地址不同的范围。在这种方式下,控制器能够分别表达它对硬判决和软信息的请求。访问模块用第一码字的硬判决来响应该请求。控制器然后请求对应于第一码字的软信息的地址。访问模块用针对第一码字的软信息来进行响应。
[0057]在图SC中,控制器从访问模块请求页面的读取。控制器可以用数字指代页面。备选地,控制器可以请求一个或多个码字,并且访问模块读取包含这些码字的页面。当该页面已经被读取时,控制器向访问模块发送指令以选择硬判决缓存器。这可以选择特定缓存器或者缓存器内的特定地址范围。控制器然后基于第一码字的地址来请求第一码字。因为选择了硬判决缓存器,访问模块用针对第一码字的硬判决来进行响应。
[0058]控制器然后指令访问模块选择软信息缓存器,并且再次通过地址请求第一码字。访问模块用针对第一码字的软信息进行响应。使用这个方法,允许单独选择硬判决对软信息的访问模块能够被用于在控制器的控制下根据本公开内容来传送数据。如利用图8B的实施方式,访问模块已经不需要根据本公开内容的原理来设计或配置。实际上,控制器根据图5A-?所示出的顺序之一来实现传送。
[0059]在图8D中,控制器可以将指令发送至被适当配置的访问模块,以依据码字发送软信息。换而言之,这个指令将使得访问模块在发送针对后续的码字的硬判决或软信息之前,完成发送针对特定码字的硬判决和软信息。在各种实施方式中,这可以是默认的和/或访问模块的仅有操作模式。在这样的情况下,来自控制器的这个指令可以被省略和/或不被实施。
[0060]控制器从访问模块请求第一码字的读取。访问模块然后用针对第一码字的硬判决、随后是针对第一码字的软信息来进行响应。在各种实施方式中,第一码字的读取可以指定码字的范围,并且可以被指定为第一码字的位置和要被传送的码字的总数量的计数。访问模块可以被配置为然后用针对请求中所指定的码字中的每个码字的交替的硬判决和软信息来进行响应。访问模块可以读取必要用于满足该请求的第一页面,并且如果来自后续的页面的附加码字必要用于满足该请求,则可以读取后续的页面。
[0061]在图SE中,描绘了软信息的各种数量。在各种实施方式中,软信息的不同数量可以针对每个码字或码字组而被发送。作为示例,在图8E中,第二码字被示出为与任何相关联的软信息一起被发送。作为结果,第二码字的硬判决之后立即跟随有第三码字的硬判决。进一步地,对应于第三码字的软信息用连续传输来描绘,指示存在比第一码字更多的软信肩、O
[0062]针对每个码字的软信息的长度可以从访问模块被明确地传输至控制器。附加地或备选地,定界符(诸如预定的信令序列)可以被用于指示软信息何时开始和结束。对于不具有相关联的软信息被传输的码字而言,针对该码字的硬判决之后立即跟随有后续码字的硬判决而没有软信息定界符。替代省略定界符,开始定界符之后可以立即跟随有结束定界符,指示软信息的缺失。
[0063]在图9A中,针对控制器的示例控制在600开始,其中控制指令闪存设备发送基于码字的软信息。也就是说,闪存设备被指令以在不发送针对另一个码字的任何介入中间的硬判决或软信息的情况下发送针对特定码字的硬判决和软信息。控制在604继续,其中如果从主机接收读取请求,控制传送至608 ;否则,控制维持在604。
[0064]在608,控制基于由主机所请求的地址,从闪存设备请求页面读取。控制在612继续,其中针对第一码字的硬判决(以及,如果可应用的话,软信息)被接收。在616,控制开始解码第一码字,因为针对该码字的硬判决和软信息是可用的。在各种实施方式中,来自闪存设备的压缩数据还可以被解压缩。这可以与解码同时地发生,或者可以在执行解码之前被执行。
[0065]控制在620继续,其中解码后的数据被发送至主机。在624,控制确定是否将接收附加的码字以满足来自主机的读取请求。如果是,控制继续回到612以接收针对附加码字的硬判决和软信息;否则,控制回到604。
[0066]在图9B中,另一个控制器的示例操作在700开始,其中如果从主机接收读取请求,控制传送至704 ;否则,控制维持在700。在704,控制从闪存设备请求页面读取。在708,如果闪存设备已经完成读取请求并且准备进行数据传送,控制传送至712 ;否则,控制维持在708。在712,控制请求该页面内的码字的范围。在716,控制接收针对该范围内的码字的硬判决(以及,如果可应用的话,软信息)。在720,控制解码该数据。在724,解码后的数据被发送至主机。在728,如果附加码字被包括在该范围内,控制回到716 ;否则,控制回到700。
[0067]在图9C中,类似于图9B中的那些元素被引用以使用相同的标号。当闪存设备在708准备好时,控制传送至750,其中控制通过地址来请求码字的硬判决,这些硬判决被存储在该地址处。在754,控制接收和缓存针对该码字的硬判决。在758,控制请求对应于该码字的软信息的地址。在762,接收针对该码字的软信息,并且控制在720继续。当相关联的软信息不被需要或者不被要求时,针对码字,元素758和762可以被跳过。
[0068]在图9D,类似于图9B-9C中的那些被引用以使用相同的标号。当闪存设备在708准备好时,控制传送至780,其中选择对应于硬判决的缓存器。在784,请求码字的地址。在788,接收针对该码字的硬判决。
[0069]在792,控制选择软信息缓存器,并且在796,请求该码字的地址。在798,接收针对该码字的软信息,并且控制在720继续。当相关联的软信息不被需要或者不被要求时,针对码字,元素792、796和798可以被跳过。在图9B-9D中的720处,以及与9A的616 —起,还可以执行解压缩。解压缩可以在闪存设备压缩用于通过闪存接口传输的数据时被执行。解压缩可以是单独的之前的步骤,或者可以与解码一起被执行。
[0070]在图10,示出了闪存设备的示例操作。例如,闪存设备的操作可以通过闪存设备内的访问模块来控制。控制开始于800,其中如果从控制器接收到读取请求,控制传送至804 ;否则,控制维持在800。在804,控制从对应于该读取请求的存储阵列中读取页面。在808,来自该页面的硬判决和软信息被缓存。在812,选择在该读取请求中被指定的第一码字。
[0071]控制在816继续,其中,针对所选择的码字,硬判决被发送至控制器。控制在820继续,其中,如果可应用的话,针对所选择的码字的软信息被发送至控制器。控制在824继续,其中如果在该读取请求中指定了附加的码字,控制传送至828;否则,控制回到800。在828,控制选择下一个码字,并且在816继续。
[0072]前述描述本质上仅是解释说明,并且决不是旨在限制本公开内容、它的应用或使用。本公开内容的广义教导能够以各种形式来实施。因此,尽管本公开内容包括特定示例,本公开内容的真实范围不应当被如此限制,因为依据对附图、说明书和以下权利要求书的学习,其他修改将变得明显。如本文中所使用的,短语A、B和C中的至少一个应当被认为意味着使用非排他逻辑OR的逻辑(A或B或C)。应当理解,方法内的一个或多个步骤可以以不同顺序(或者同时地)被执行而不改变本发明的原理。
[0073]在本申请中,包括在以下的定义中,术语模块可以用术语电路来替代。术语模块可以指的是以下的一部分或者可以包括以下:专用集成电路(ASIC);数字、模拟、或混合模拟/数字离散电路;数字、模拟、或混合模拟/数字集成电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器(共享的、专用的或组);存储由处理器执行的代码的存储器(共享的、专用的或组);提供所描述的功能的其他适当硬件部件;或者以上的一些或所有的组合,诸如在片上系统中。
[0074]术语代码,如以上所使用的,可以包括软件、固件和/或微代码,并且可以指代程序、例程、功能、类别和/或对象。术语共享处理器涵盖执行来自多个模块的一些或所有代码的单个处理器。术语组处理器涵盖结合附加的处理器一起来执行来自一个或多个模块的一些或所有代码的处理器。术语共享存储器涵盖存储来自多个模块的一些或所有代码的单个存储器。术语组存储器涵盖与附加的存储器一起来执行来自一个或多个模块的一些或所有代码的存储器。术语存储器是数据计算机可读介质的子集。术语计算机可读存储介质,如本文中所使用的,并不涵盖通过介质(诸如在载波上)进行传播的瞬态电或电磁信号;术语计算机可读存储介质因此可以被视为有形的和非瞬态的。非瞬态、有形计算机可读介质的非限制性示例包括非易失性存储器(诸如闪存存储器)、易失性存储器(诸如静态随机访问存储器和动态随机访问存储器)、磁性存储器(诸如磁带或硬盘驱动)和光学存储器。
[0075]在本申请中所描述的装置和方法可以部分地或全部地由一个或多个计算机程序来实施,该一个或多个计算机程序由一个或多个处理器来执行。这些计算程序包括处理器可执行的指令,这些指令被存储在至少一个非瞬态、有形的计算机可读介质上。这些计算机程序还可以包括和/或依赖于所存储的数据。
【权利要求】
1.一种用于非易失性存储设备的控制器,所述控制器包括: 传送控制模块,被配置为 请求从闪存存储模块读取数据,其中要被读取的所述数据包括对应于第一码字的数据, 从所述闪存存储模块接收对应于所述第一码字的硬判决,以及 从所述闪存存储模块接收对应于所述第一码字的软信息, 其中在不接收对应于另一个码字的任何介入中间的硬判决或软信息的情况下,接收对应于所述第一码字的所述硬判决和对应于所述第一码字的所述软信息两者;以及 解码器模块,被配置为使用(i)对应于所述第一码字的所述硬判决和(ii)对应于所述第一码字的所述软信息来解码所述第一码字。
2.根据权利要求1所述的控制器,其中所述解码器模块被配置为在所述传送控制模块完成对应于第二码字的硬判决和软信息的接收之前开始解码所述第一码字,其中所述第二码字紧随所述第一码字之后。
3.根据权利要求1所述的控制器,进一步包括缓存器,被配置为存储对应于所述第一码字的所述硬判决和对应于所述第一码字的所述软信息,其中所述缓存器的大小小于针对一个页面的数据的所有硬判决的大小。
4.根据权利要求1所述的控制器,其中所述解码器模块被配置为在(i)对应于所述第一码字的所述硬判决和(ii)对应于所述第一码字的所述软信息被接收之后开始解码所述第一码字。
5.根据权利要求1所述的控制器,其中对应于所述第一码字的所述软信息的数量是对应于所述第一码字的所述硬判决的数量的整数倍。
6.根据权利要求1所述的控制器,其中所述传送控制模块被配置为: 在接收对应于所述第一码字的所述硬判决之前选择所述闪存存储模块的硬判决缓存器;以及 在接收对应于所述第一码字的所述软信息之前选择所述闪存存储模块的软信息缓存器。
7.根据权利要求6所述的控制器,其中所述传送控制模块被配置为: 一经选择所述闪存存储模块的所述硬判决缓存器,就请求对应于所述第一码字的数据;以及 一经选择所述闪存存储模块的所述软信息缓存器,就请求对应于所述第一码字的数据。
8.根据权利要求1所述的控制器,其中所述传送控制模块被配置为: 在对应于所述第一码字的所述硬判决的地址处从所述闪存存储模块请求数据;以及 在对应于所述第一码字的所述软信息的地址处从所述闪存存储模块请求数据。
9.根据权利要求1所述的控制器,其中所述传送控制模块被配置为指令所述闪存存储模块将码字的硬判决和所述码字的软信息两者一起传输而不传输对应于另一个码字的任何介入中间的硬判决或软信息。
10.一种非易失性存储设备,包括: 非易失性存储单元的存储阵列,其中所述非易失性存储单元被分组成页面; 缓存器;以及 访问控制模块,被配置为选择性地(i)将数据写入到所选择的页面或者(ii)从所选择的页面将数据读取到所述缓存器中, 其中从所选择的页面读取数据包括 做出与所选择的页面中的非易失性存储单元的状态有关的硬判决, 获得与所选择的页面中的所述非易失性存储单元的所述状态有关的软信息,以及 将所述硬判决和所述软信息存储到所述缓存器中, 其中所选择的页面包括对应于多个码字的数据,并且 其中所述访问控制模块进一步被配置为针对所述多个码字中的每个码字,将对应于所述码字的所述硬判决和对应于所述码字的任何软信息一起输出而不输出针对所述多个码字中的任何其他码字的任何介入中间的硬判决或软信息。
11.根据权利要求10所述的非易失性存储设备,其中所述访问控制模块被配置为响应于来自控制器的读取请求而从所选择的页面读取数据。
12.根据权利要求11所述的非易失性存储设备,其中所述访问控制模块被配置为响应于所述读取请求而识别所选择的页面,并且其中所述访问控制模块被配置为根据所述读取请求而选择所选择的页面的第一码字以供输出。
13.一种操作用于非易失性存储设备的控制器的方法,所述方法包括: 请求从闪存存储模块读取数据,其中要被读取的所述数据包括对应于第一码字的数据; 从所述闪存存储模块接收对应于所述第一码字的硬判决; 从所述闪存存储模块接收对应于所述第一码字的软信息,其中在不接收对应于另一个码字的任何介入中间的硬判决或软信息的情况下,接收对应于所述第一码字的所述硬判决和对应于所述第一码字的所述软信息两者;以及 使用(i)对应于所述第一码字的所述硬判决和(ii)对应于所述第一码字的所述软信息来解码所述第一码字。
14.根据权利要求13所述的方法,进一步包括在完成对应于第二码字的硬判决和软信息的接收之前开始解码所述第一码字,其中所述第二码字紧随所述第一码字之后。
15.根据权利要求13所述的方法,进一步包括将对应于所述第一码字的所述硬判决和对应于所述第一码字的所述软信息存储在缓存器中,其中所述缓存器的大小小于针对一个页面的数据的所有硬判决的大小。
16.根据权利要求13所述的方法,进一步包括在完成(i)对应于所述第一码字的所述硬判决和(ii)对应于所述第一码字的所述软信息的接收之后开始解码所述第一码字。
17.根据权利要求13所述的方法,其中对应于所述第一码字的所述软信息的数量是对应于所述第一码字的所述硬判决的数量的整数倍。
18.根据权利要求13所述的方法,进一步包括: 在接收对应于所述第一码字的所述硬判决之前选择所述闪存存储模块的硬判决缓存器;以及 在接收对应于所述第一码字的所述软信息之前选择所述闪存存储模块的软信息缓存器。
19.根据权利要求13所述的方法,进一步包括: 一经选择所述闪存存储模块的所述硬判决缓存器,就请求对应于所述第一码字的数据;以及 一经选择所述闪存存储模块的所述软信息缓存器,就请求对应于所述第一码字的数据。
20.根据权利要求13所述的方法,进一步包括: 在对应于所述第一码字的所述硬判决的地址处,从所述闪存存储模块请求数据;以及 在对应于所述第一码字的所述软信息的地址处,从所述闪存存储模块请求数据。
21.根据权利要求13所述的方法,进一步包括: 指令所述闪存存储模块将码字的硬判决和码字的软信息两者一起传输而不传输对应于另一个码字的任何介入中间的硬判决或软信息。
22.—种操作非易失性存储设备的方法,所述非易失性存储设备包括缓存器和非易失性存储单元的存储阵列,其中所述非易失性存储单元被分组成页面,所述方法包括: 响应于针对所选择的页面的写入请求,将数据写入到所选择的页面; 响应于针对所选择的页面的读取请求, 做出与所选择的页面中的非易失性存储单元的状态有关的硬判决, 获得与所选择的页面中的所述非易失性存储单元的所述状态有关的软信息,以及将所述硬判决和所述软信息存储到所述缓存器中,其中所选择的页面包括对应于多个码字的数据;以及 针对所述多个码字中的每个码字,将对应于所述码字的所述硬判决和对应于所述码字的任何软信息一起输出而不输出针对所述多个码字中的任何其他码字的任何介入中间的硬判决或软信息。
23.根据权利要求22所述的方法,进一步包括: 响应于所述读取请求而识别所选择的页面;以及 根据所述读取请求而选择所选择的页面的第一码字以供输出。
【文档编号】G06F12/08GK104166629SQ201410219865
【公开日】2014年11月26日 申请日期:2014年5月19日 优先权日:2013年5月17日
【发明者】S·K·奇尔拉帕加瑞, G·伯德 申请人:马维尔国际贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1