预交错顺序数据的系统及方法

文档序号:6498207阅读:170来源:国知局
预交错顺序数据的系统及方法
【专利摘要】公开了一种用于操作编程模式下的存储器设备的方法和系统。该存储器设备包括编程模式和正常模式。该存储器设备在编程模式下相比于在正常模式下可以被编程的增加可以被并行编程的物理平面的数量。以这种方式,存储器设备可以在存储器设备操作的不同时间(如,在制造期间)更快地编程。主机系统可以将重新排列的数据发送到编程模式下的存储器设备,该重新排列的数据使得能够增加并行编程的物理平面的数量。
【专利说明】预交错顺序数据的系统及方法
[0001] 相关申请的交叉引用
[0002] 本申请要求申请日为2011年12月30日的美国专利申请号13/341704的优先权。 美国专利申请号13/341704在此通过引用整体并入本文。

【技术领域】
[0003] 本申请一般地涉及到存储器设备。更具体地,本申请涉及预交错 (pre-interleaving)顺序(sequential)数据,以最大限度地提升并行平面写入性能,同时 最小化系统元块(metablock)的大小。

【背景技术】
[0004] 非易失性存储器系统,如闪存设备,已经广泛地用于消费产品。闪存设备可以以不 同的形式存在,例如在主机设备之间迁移(carry)的便携式存储卡的形式,或作为嵌入到 主机装置中的固态盘(SSD)。当将数据写入到传统的闪存设备中时,主机通常将数据写入存 储器系统的逻辑地址空间中的多个地址,并从中读取数据。
[0005] 闪存设备包括:浮栅(floating-gate)存储单元阵列和系统控制器。控制器管 理与主机系统的通信和存储单元阵列的操作,以存储和获取用户数据。为了提高将用户数 据编程到存储器阵列中和从其读取用户数据期间的并行程度,该阵列通常被划分成多个子 阵列,通常称为平面,它包含它们自己的数据寄存器和其他电路以允许并行操作,使得数据 扇区可以被同时编程到所有平面中的每个或几个平面,或同时从中读取。单个集成电路上 的阵列可以在物理上被划分为多个平面,或每个平面可以从单独的一个或多个闪存芯片形 成。
[0006] 闪存设备的存储器单元可以一起被分组为多个页面和块。页面是块内的数据编程 和读取的单位,包含一次编程或读取数据的最小量。然而,为了增加存储器系统的操作并行 度,两个或更多块中的这些页面可以逻辑地链接到多个元页面(metapage)。元页面可以由 来自多个块的一个物理页面形成。这样一来,例如,元页面可以包括多个块的每个块中的页 面,而元页面的页面不一定在每个块中都有相同的相对位置。元页面是编程的最大单位。
[0007] 块由具有作为同时擦除的最小分组的块的多个页面组成。为了高效地管理存储 器,块可以链接在一起以形成虚拟块或元块。也就是说,每个元块都被定义为包括来自每个 平面的一个块。元块的使用在美国专利号6, 763, 424中进行了说明,其在此用于所有目的 通过引用整体并入本文。元块通过作为用于编程和读取数据的目的地的主机逻辑块地址确 定。同样,元块的所有块都一起擦除。
[0008] 为了符合各种标准,元块大小通常保持为较小。然而,较小的元块大小可能降低可 以并行操作的平面的数量,从而增加对闪存设备编程的时间。因此,存在解决这些问题的需 要。


【发明内容】

[0009] 为了解决上述问题,公开了一种用于控制存储器设备中的垃圾(garbage)收集的 方法和系统。
[0010] 根据本发明的第一方面,公开了一种加载数据到存储器设备中的方法。该方法包 括,在主机系统中:访问指示符,指示符指示存储器设备的并行平面结构;使用指示符以获 得交错的数据,交错的数据包括遵循存储器设备的并行平面结构的数据的重新排序,以便 于存储器设备对交错的数据并行编程;以及顺序发送交错的数据到存储器设备。存储器设 备的并行平面结构的指示符可以包括存储器设备的类型(如,存储器设备的型号)或存储 器设备可以并行编程的平面的实际最大数量。主机系统可以使用指示符以几种方式之一获 得交错的数据,如使用指示符访问已经在其中存储交错的数据的存储位置,或使用指示符 重新排列数据以生成交错的数据。
[0011] 根据本发明的第二个方面,公开了用于将数据加载到存储器设备的主机系统。主 机系统包括存储器和与存储器通信的控制器。控制器被配置成:访问指示符,指示符指示存 储器设备的并行平面结构;使用指示符以获得交错的数据,交错的数据包括遵循存储器设 备的并行平面结构的数据的重新排序,以便于存储器设备对交错的数据并行编程;以及顺 序发送交错的数据到存储器设备。
[0012] 根据本发明的第三方面,公开了一种用于存储器设备加载数据的方法。该方法包 括,在存储器设备中:接收命令以将存储器设备配置到编程模式;配置设备用于编程模式; 接收交错的数据;根据编程模式存储交错的数据;接收命令以将配置设备到正常模式;配 置存储器设备用于正常模式,其中存储器设备在编程模式下比在正常模式下对更多的平面 并行编程。例如,编程模式下的存储器设备对最大数量的平面并行编程。
[0013] 根据本发明的第四个方面,公开了一种用于加载数据于其中的存储器设备。存储 器设备包括存储器和与存储器通信的控制器。控制器被配置为:接收命令以配置存储器设 备到编程模式;配置设备用于编程模式;接收交错的数据;根据编程模式存储交错的数据; 接收命令以配置设备到正常模式;以及配置存储器设备用于正常模式,其中存储器设备在 编程模式下比在正常模式下对更多的平面并行编程。

【专利附图】

【附图说明】
[0014] 图1是与具有非易失性存储器的存储器系统连接的主机的框图。
[0015] 图2示出了图1的系统的示例性的物理存储器组织。
[0016] 图3示出了图2的物理存储器的一部分的扩展图。
[0017] 图4是适合作为多个闪存区块(bank)之一的示例性的一个闪存区块。
[0018] 图5是可以在图4的存储器区块中使用的存储单元阵列的代表性电路图。
[0019] 图6是在不同裸片中的平面的框图。
[0020] 图7是示出发送交错的数据到存储器设备的主机系统的方法的流程图。
[0021] 图8是示出从主机系统接收交错的数据的存储器设备的方法的流程图。

【具体实施方式】
[0022] 图1-5示出了适用于在实现本发明的各方面中使用的闪存系统。图1的主机系统 1〇〇将数据存储到闪存设备102中,并从其中获取数据。闪存设备102可以是被嵌入到主机 系统中的闪存,如以安装在个人计算机中的固态盘(SSD)驱动器、计算机服务器或存储装 置阵列的形式。替代性地,闪存设备102可以是通过机械和电连接器的配合件104和106 可移除地连接到主机系统的卡的形式,如图1所示。被配置用作内部或嵌入的SSD驱动器 的闪存设备可以看起来类似于图1的示意图,主要区别是闪存设备102的位置在主机系统 100内部。SSD驱动器可以是作为旋转磁盘驱动器的即用型(drop-in)替代物的分离模块 的形式。
[0023] 市售的SSD驱动器的一个示例是由SanDisk公司生产的32GB的SSD。市售的可 移动闪存卡的示例包括紧致闪存(CompactFlash) (CF)卡、多媒体卡(MMC)、安全数字(SD) 卡、miniSD卡、记忆棒、SM卡,TransFlash和microSD卡。虽然这些卡根据其标准化规范都 具有独特的机械和/或电接口,但每种卡中包含的闪存设备都是相似的。此外,闪存设备可 以是具有用于通过插入主机系统的USB插口与主机连接的通用串行总线(USB)插头的较小 封装的手持式存储器系统。这些存储卡和闪存驱动器中的每一个都包括与主机接口连接并 控制其中闪存的操作的控制器。
[0024] 图1的主机系统100可以视为具有两个主要部分,就闪存设备102而言,包括电路 和软件的组合。它们是应用程序部分108和与闪存设备102接口连接的驱动器部分110。 在PC中,例如,应用程序部分108可以包括处理器,如CPU 112和存储器114。存储器114 存储用于CPU 112执行的一个或多个程序,这些程序的执行运行计算设备的各种功能。例 如,存储器可以包括当由CPU 112执行时包括以下功能的软件(如,计算机可读指令):编 程(如,在编程模式下对闪存设备102编程,这将在下文讨论);文字处理;图形;控制或其 他流行的应用软件;以及用于管理主机系统100上的数据的文件系统。存储器可以包括易 失性和/或非易失性存储器,并且可以存储除软件之外其他的信息,如与闪存设备102的模 式相关的数据,这将在下文更详细地讨论。
[0025] 在主要专用于执行单组功能集的制造计算机中,应用程序部分108包括操作该制 造计算机以对闪存设备102进行编程等的软件。在摄像机中,在主要专用于执行单一功能 集的蜂窝电话或其他主机系统中,应用程序部分108包括操作摄像机以拍摄和存储照片、 操作蜂窝电话以拨打和接听电话等的软件。
[0026] 图1的闪存设备102可以包括非易失性存储器,如闪存116以及系统控制器118。 系统控制器118控制闪存116,并与主机系统100通信,闪存设备102与主机系统100连接, 以来回传递数据。系统控制器118可以在编程和读取期间在主机系统100使用的数据的逻 辑地址和闪存116的物理地址之间转换。
[0027] 闪存116可以包括一个或多个闪存芯片130。闪存芯片130包括作为非易失性存 储器的闪存阵列120和作为易失性存储器闪存缓冲器128。图1以示例的方式示出了具有 单个闪存阵列120和单个闪存缓冲器128的单个闪存芯片130。另外,闪存116可以包括多 个裸片(die)和易失性存储器缓冲器,其中每个裸片都包含被组织成多个平面的存储单元 阵列。替代性地,存储单元阵列可以不被划分为多个平面。在一个替代性实施例中,闪存芯 片130包括闪存阵列120,单独的芯片可以包括闪存缓冲器128。
[0028] 在功能上,系统控制器118可以包括控制器122,它可以包括处理器、控制逻辑、可 编程逻辑阵列等。系统控制器118还可以包括易失性和非易失性存储器,如控制器固件124 和控制器RAM 126,或与控制器122相关联的其他非易失性存储器。闪存设备的模式可以被 存储在系统控制器118的存储器中(如,在非易失性存储器中)。控制器固件124包括可以 由控制器122执行用于协调闪存116的操作、如监控闪存设备102的模式的指令,这将在上 下面讨论。系统控制器118可以在单个集成电路芯片上实现,如专用集成电路(ASIC),或者 也可以被包括在闪存116中。
[0029] 存储单元可以被操作用来在每个电荷存储元件或区域中存储电荷的两个以上的 可检测等级(level),从而在每个电荷存储元件或区域中存储多个比特的数据。这种结构 被称作多级单元(MLC)存储器。替代性地,存储单元可以被操作用来存储电荷的两个水平, 使得能够在每个单元中存储单个比特的数据。这通常被称为二进制或单级单元(SLC)存储 器。这两种类型的存储单元都可以在存储器中使用,例如,二进制闪存可以用于缓存数据, MLC存储器可以用于更长期的存储。存储单元的电荷存储元件是最常用的导电浮栅,但替代 性地也可以是不导电的介电电荷俘获材料。
[0030] 图2概念性地示出了在下面进一步的说明中用作示例的闪存单元阵列120(图1) 的组织。闪存单元阵列120可以包括各自分别由一个或多个存储器控制器122控制的多个 存储单元阵列。存储单元的四个平面或子阵列202、204、206和208可以在单个集成存储单 元芯片上,在两个芯片(每个芯片上2个平面)上或在四个单独的芯片上。具体布置对下 面的讨论不重要。当然,系统中也可以存在其他数量的平面,如1、2、8、16或更多。平面被 分别划分成形成最小擦除单元的多组存储单元,以下称为块。图2中用矩形示出了存储单 元的块,如位于相应平面202、204、206和208中的块210、212、214和216。在每个平面中可 以有几十个或几百个块。
[0031] 如上所述,存储单元的块是擦除的单位,即可以在物理上一起擦除的最小数量的 存储单元。然而,为了增加并行性,这些块以更大的元块单位操作。来自每个平面的一个块 在逻辑上链接在一起形成元块。四个块210、212、214和216被示为形成一个元块218。元 块内的所有单元通常被一起擦除。用于形成元块的块不需要被限制在其各自平面内的相同 的相对位置上,如所示的由块222、224、226和228组成的第二元块220。虽然通常优选地在 所有的平面上扩展元块,但为了较高的系统性能,存储器系统可以被操作具有动态形成不 同平面中的一个、两个或三个块中的任何几个或所有块的元块的能力。这允许元块的大小 与一次编程操作中可用于存储的数据量更紧密地匹配。
[0032] 为了操作的目的,各个块被依次划分成存储单元的多个页面,如图3所示。例如, 块210、212、214和216中的每个块的每个存储单元都被划分成八个页面P0-P7。替代性地, 在每个块中也可以是16、32或更多个存储单元的页面。页面是块内数据编程和读取的单 位,包含一次编程或读取数据的最小量。然而,为了增加存储器系统的操作并行度,在两个 或更多块中的这些页面可以在逻辑上链接成元页面。图3示出了元页面302,由来自四个块 210、212、214和216中的每一个的一个物理页面形成。元页面302例如包括在四个块中的 每一个中的页面P2,而元页面的页面不一定需要在每个块中具有相同的相对位置。元页面 是编程的最大单位。
[0033] 多区块(bank)闪存中的每个区块都可以包括一个或多个集成电路芯片,其中每 个芯片都可以包含被组织成多个平面的存储单元阵列。图4示出了单个芯片上的存储器区 块400的示例。为简单起见,图4的存储器区块400示出了这样的平面410和412,但可以 替代地使用更多数量的平面,例如4或8个平面。替代性地,存储器区块的存储单元阵列可 以不被划分成多个平面。然而,当进行这样的划分时,每个平面都有它自己的可以彼此独立 操作的列控制电路414和416。电路414和416从系统总线402的地址部分406接收它们 各自的存储单元阵列的地址,并对它们进行解码,以寻址特定的一条或多条相应的位线418 和420。响应于地址总线上接收到的地址通过行控制电路424来寻址字线422。源电压控 制电路426和428也与相应的平面连接,如p阱电压控制电路430和432。如果区块400 是具有单个存储单元阵列的存储器芯片的形式,并且如果系统中存在两个或更多这样的芯 片,那么每个芯片的阵列都可以类似于上面描述的多平面芯片内的平面进行操作。
[0034] 数据通过与系统总线402的数据部分404连接的相应的数据输入/输出电路434 和436移入和移出平面410和412。电路434和436通过相应的列控制电路414和416,并 通过连接到平面的线438和440,提供将数据编程到存储单元中以及从其相应平面的存储 单元中读取数据。
[0035] 每个区块中的每个存储器芯片都包含一些执行来自控制器122的命令以执行这 些功能的控制电路。接口电路442连接到系统总线402的控制和状态部分408。来自控制 器122的命令402被提供给状态机444,然后状态机444提供对其他电路的具体控制以执行 这些命令。控制线446-454使用图4所示的这些其他的电路与状态机444连接。来自状态 机444的状态信息通过线456通信给接口 442,以通过总线部分408传送给控制器122。
[0036] 尽管可以替代地单独或组合地使用其他的非易失性存储器体系结构或技术,如 N0R,但在下面讨论存储单元阵列410和412的NAND架构。图5的电路图示出了示例的NAND 阵列,其中该电路图是图4中存储器区块400的存储单元阵列410的一部分。提供大量的 全局位线,但为了简化说明,图5中只示出了四条这样的线502-508。若干串联连接的存储 单元串510-524被连接在这些位线之一和参考电位之间。使用存储单位串514作为代表, 多个电荷存储装置存储单元526-532串联连接,选择晶体管534和536位于该串的任一端。 当一串的选择晶体管被导通时,该串被连接到位线和参考电位之间。然后,每次对该串中的 一个存储单元进行编程或读取。
[0037] 图5中的字线538-544分别延伸穿过多个存储单元串中的每一个中的一个存储单 元的电荷存储元件,栅极546和550控制这些串的每一端上的选择晶体管的状态。使得共 享公共字线和控制栅线538-550的存储单元串形成被一起擦除的存储单元的块552。单元 的这种块包含可以在物理上一次擦除的最小数目的单元。一次对存储单元的一行,即那些 沿字线538-544之一的行进行编程。通常,按规定的顺序对NAND阵列的行进行编程,在此 情况下,从沿最接近接地或与另一公共电位连接的串的一端的字线544的行开始。接下来 对沿字线542的存储单元的行编程,以此类推,直到完成整个块552。最后对沿字线538的 行编程。
[0038] 第二块554类似,它的存储单元串连接到与第一块552中的串相同的全局位线,但 具有一组不同的字和控制栅线。行控制电路524将字和控制栅线驱动到它们合适的工作电 压。如果系统中存在一个以上的平面,如图4的平面1和2,那么一个存储器架构使用在它 们之间扩展的公共字线。替代性地,也可以有两个以上的平面共享公共字线。在其他的存 储器架构中,单独驱动各个平面的字线。
[0039] 系统控制器118可以控制关于图4-5所讨论的电路以对平面并行编程。以这种方 式,存储器设备102的系统控制器118可以将其自身配置为编程模式或正常模式,这将在下 文中更详细地讨论。
[0040] 如上面所讨论的,最小化闪存设备的元块大小以降低系统写入放大因子是有益 的。然而,较小的元块大小会减少可以并行操作的平面数量,从而增加对闪存设备编程的时 间。
[0041] 如上面所讨论的,元块大小通常保持为较小,以便符合各种标准。例如,具有2MB 的块大小和四个平面的NAND闪存设备,如果对所有平面并行操作,那么将具有8MB的元块 大小。并行操作这样的闪存设备的4个平面对希望快速下载内容的制造环境是最优的。然 而,在制造完之后,可能不推荐这么使用这么大的元块大小。仅仅是因为一个原因,具有如 此大的元块大小的闪存设备由于元块大小为8MB,而安全数字高容量(SDHC)标准原子单元 大小只有4MB的事实可能难以满足SD速度等级基准。因此,在以前的闪存设备中,块大小 保持为较小(即,〈=1MB),使得可以并行操作多达4个平面,同时仍然满足4MB的SDHC标 准原子单元大小。
[0042] 此外,对于许多的闪存设备,可以证明,系统写入放大(W/A)因子与闪存设备的元 块大小成比例。由于闪存设备在其可以被重写之前擦除,因此执行这些操作的过程会导致 多于一次地移动(或重写)用户数据和元数据。这种倍增效应(multiplying effect)导致 了写入放大因子,因为它增加了在闪存设备整个工作寿命期间的写入次数,这会缩短闪存 设备可以可靠工作的时间。因此,在一般情况下,尽可能小地最小化闪存设备的元块大小, 同时仍然满足产品的性能要求是有益的。
[0043] 然而,较小的元块大小会减少可以并行操作的平面数量,从而增加对闪存设备编 程的时间。这在对闪存设备预加载内容的制造环境中尤其如此。较小的元块大小会增加预 加载内容的时间,从而增加制造成本。
[0044] 在本发明的一个方面中,用于并行操作的物理并行平面的数量是动态的。闪存设 备可以包括多个模式,对多个模式中的每个模式,都有用于操作的不同数量的物理并行平 面。例如,闪存设备可以具有编程模式和正常模式,其中在编程模式下比在正常模式下对更 多的平面并行编程。编程模式可以在闪存设备的工作寿命期间的不同时间使用,如在制造 过程中(可以包括在闪存设备的制造和/或配置过程中的操作),以及如在顾客的操作过程 中(可以包括在大量的数据下载过程中的操作)。正常模式可以包括闪存设备的顾客在正 常操作期间的操作(并行平面的数量等于额定标准元页面/元块,如SDHC标准原子单元大 小)。编程模式下的闪存设备可以具有第一数量的用于并行操作的物理并行平面,正常模式 下可以具有第二数量的用于并行操作的物理并行平面。编程模式下用于并行操作的物理并 行平面的数量可以大于正常模式下用于并行操作的物理并行平面的数量。例如,编程模式 通过对存储器设备中尽可能多的物理平面并行操作可以允许最大性能。
[0045] 另外,主机系统可以基于闪存设备的模式排列下载的数据。例如,在将数据下载到 闪存设备之前可以对数据进行"预交错"。具体地,主机系统可以接收闪存设备的物理并行 平面结构的指示。主机系统可以以几种方式之一接收指示。例如,主机系统可以接收闪存 设备类型的指示。主机系统可以访问将闪存设备的类型与闪存设备的物理并行平面结构 (如,闪存设备的最大并行平面结构)相关联的存储器114中的查找表(或其他类型的数据 结构)。作为另一个示例,主机系统可以接收物理并行平面结构的数目的指示。
[0046] 主机系统100可以从闪存设备、从另一设备或通过访问主机系统100的存储器114 接收指示。例如,主机系统100可以发送通信到闪存设备,请求获得物理并行平面结构的指 示,并接收指示物理并行平面结构的响应。替代性地,主机系统可以访问主机系统中指示该 闪存设备的物理并行平面结构的存储位置(如,表格)。
[0047] 主机系统可以发送通信到闪存设备,以配置闪存设备进入想要的模式(如,配置 闪存设备进入增加的并行平面编程模式)。响应于接收到该通信,闪存设备可以对其自身进 行相应的配置。例如,存储器设备102的系统控制器118可以接收该通信,在编程时,控制 电路(如图4-5公开的)执行编程模式下的并行编程。
[0048] 图6示出了对具有1MB的块大小的NAND闪存设备的下载数据进行预交错的示例。 图6示出了两个裸片(裸片0和裸片1),每个裸片都有两个平面和256个页面。两平面交 错的系统将映射8kB的页面,如图6中所示。如果不改变模式,元块将只包含单个裸片(如 裸片〇)。这样一来,并行编程将只发生在裸片〇中,而裸片1将保持空闲状态,并且不会在 写入性能中获益。以这种方式,256个页面将被写入到只有两个平面并行的裸片0。
[0049] 然而,在编程模式下,可以对一个以上的裸片并行编程。例如,可以对两个裸片 (如裸片〇和裸片1)并行编程。为了做到这一点,主机系统发送数据到为了能够在编程模 式下并行编程而重新排序的闪存设备。在图6所示的示例中,有512个页面(原始顺序流 为 0,1,2,3,···510,511)。
[0050] 取代发送原始顺序流,主机系统发送修改顺序的原始顺序流。修改顺序是对原始 顺序流预交错的结果,使得能够在增加的并行平面编程模式期间并行编程。在图6所示的 示例中,预交错的顺序如下:〇,1,256, 257, 2, 3, 258, 259,4, 5, 260, 261,…254, 255, 510, 511。使得可以对裸片0和裸片1中的每个平面并行编程。平面的第一并行编程是页面0, 1(来自裸片〇)和256,257(来自裸片1)。平面的第二并行编程是页面2,3(来自裸片0) 和258, 259 (来自裸片1),以此类推。预交错使得闪存设备能够增加可用的平面并行度,而 不增加正常的客户操作期间的元块大小。图6示出了特定的元块大小和并行的若干平面的 示例。图6仅用于说明目的。所公开的概念可以应用到任何块大小、任何数量的并行平面 和/或任何数量的裸片的闪存设备。
[0051] 图7是示出主机系统发送交错的数据到存储器设备的方法的流程图700。在705 中,主机系统确定是否将数据发送到编程模式下的存储器设备。如果是,则在710中,主机 系统确定编程模式下的存储器设备的并行平面结构。如上面讨论的,主机系统可以以多种 方式之一,例如通过与存储器设备通信,访问主机设备的存储位置或与第三方设备通信来 确定存储器设备的并行平面结构。在715中,主机系统产生或访问预交错的数据。在对大 量的存储器设备编程的制造环境中,主机系统可以访问预交错的数据(无论是存储在主机 设备中的还是经由第三方设备访问的)。因此,预交错的数据可以用于对存储器设备编程。 替代性地,当主机系统对少量的存储器设备编程时,主机系统可以实时产生交错的数据,即 当它确定数据将要被编程到存储器设备中时,对数据进行重新排列。无论如何,在720中, 主机系统发送命令到存储器设备,用于存储器设备将其自身配置为编程模式。在图8中更 详细地讨论存储器设备的配置。在这之后,在725中,主机设备发送交错的数据到存储器设 备。在将交错的数据发送到存储器设备之后,在730中,主机系统可选地发送命令到存储器 设备,以将其自身配置为正常模式。
[0052] 图8是示出存储器设备从主机系统接收交错的数据的方法的流程图800。在805 中,存储器设备确定它是否已经接收到编程模式命令。如果是,则在810中,存储器设备将 其自身配置为编程模式。如上面所讨论的,存储器设备可以将其自身配置为编程模式,如通 过在控制器的存储器(如,控制器固件124或控制器的RAM 126)中设置指示模式是编程模 式的内部标志。在815中,存储器设备接收到数据,并基于内部标志控制闪存芯片130上 的电路,以增加被并行编程的平面的数量,从而根据编程模式下的配置来存储数据。在820 中,存储器设备确定它是否已经接收到正常模式的命令。如果不是,那么存储器设备继续接 收,并根据编程模式存储数据。如果是,则在825中,存储器设备将其自身配置为正常模式。
[0053] 因此,该方法和系统可以实现为硬件、软件或硬件和软件的组合。该方法和系统可 以以集中方式实现在至少一个计算机系统中(如图1的主机系统1〇〇中示出的),或以不同 的元件分散在若干相互连接的计算机系统上的分布方式实现。任何类型的计算机系统或适 于执行本文所描述的方法的其他装置都是合适的。硬件和软件的典型组合可以是载有当被 加载和执行时控制计算机系统使得它执行本文中所描述的方法的计算机程序的通用计算 机系统。这种编程的计算机可以被视为是专用计算机。
[0054] 所描述的方法和系统还可以嵌入到计算机程序产品中,它包括能够实现本文所描 述的操作并且当加载到计算机系统中时能够执行这些操作的所有特征。在本说明书的上下 文中的计算机程序的意思是旨在使得具有信息处理能力的系统执行特定功能的一组指令 的任何语言、代码或符号形式的任何表达,无论是直接地,还是在以下的任一或两者之后: a)转换成其他语言、代码或符号;B)以不同的物质形式再现。
[0055] 上述公开的主题应被视为是示例性的,而不是限制性的,并且所附权利要求旨在 覆盖落入本公开的精神和范围内的所有修改、增强和其他实施例。因此,在法律允许的最大 范围内,本说明书中的实施例的范围由所附权利要求及其等同物的最宽可允许解释确定, 并且不应被限制或限于前面的详细描述。虽然描述了各种实施例,但对本领域的技术人员 来说显而易见的是,在上面详细描述的范围内,许多更多的实施例和实现都是可能的。因 此,除根据所附权利要求及其等同物外,实施例不受限制。
【权利要求】
1. 一种加载数据到存储器设备中的方法,所述方法包括:在主机系统中: 访问指示符,所述指示符指示存储器设备的并行平面结构; 使用所述指示符以获得交错的数据,交错的数据包括遵循存储器设备的并行平面结构 的数据的重新排序,以便于存储器设备对交错的数据并行编程;以及 顺序发送交错的数据到存储器设备。
2. 如权利要求1所述的方法,其中使用所述指示符以获得交错的数据包括: 使用指示符访问存储位置以获得交错的数据。
3. 如权利要求1所述的方法,其中使用所述指示符以获得交错的数据包括: 访问数据;以及 使用指示符对数据重新排序以生成交错的数据。
4. 如权利要求1所述的方法,其中所述指示符包括存储器设备的类型;以及 进一步包括使用数据构造,使得存储器设备的类型与特定的并行平面结构相关联。
5. 如权利要求1所述的方法,其中所述指示符指示存储器设备中的多个裸片上的并行 平面结构。
6. 如权利要求5所述的方法,进一步包括发送通信到存储器设备,所述通信指示存储 器设备将存储器设备配置为对多个裸片上的多个页面中的交错的数据并行编程。
7. 如权利要求6所述的方法,其中所述数据包括顺序页面流; 其中所述多个裸片包括第一裸片和第二裸片;并且 其中所述顺序页面流被重新排序到交错的数据之中,使得在存储器设备对多个裸片上 的多个页面中的交错的数据编程之后,第一裸片和第二裸片包括与顺序页面流完全相同的 顺序的存储的页面。
8. 如权利要求6所述的方法,进一步包括发送第二通信到存储器设备,所述第二通信 指示存储器设备配置在元块大小中的编程,所述元块大小比多个裸片上的多个页面的大小 更小。
9. 如权利要求8所述的方法,其中所述元块大小包括单个裸片中的多个页面。
10. 如权利要求1所述的方法,其中所述访问指示符是对询问存储器设备所述存储器 设备的并行平面结构的响应。
11. 一种用于将数据加载到存储器设备的主机系统,所述主机系统包括: 存储器;以及 与存储器通信的控制器,所述控制器被配置成: 访问指示符,指示符指示存储器设备的并行平面结构; 使用指示符获得交错的数据,交错的数据包括遵循存储器设备的并行平面结构的数据 的重新排序,以便于存储器设备对交错的数据并行编程;以及 顺序发送交错的数据到存储器设备。
12. 如权利要求11所述的主机系统,其中所述控制器被配置为通过使用指示符访问存 储器以获得交错的数据来使用指示符获得交错的数据。
13. 如权利要求11所述的主机系统,其中所述控制器被配置为通过访问数据和使用指 示符对数据重新排序以生成交错的数据来使用指示符获得交错的数据。
14. 如权利要求11所述的主机系统,其中所述指示符包括存储器设备的类型;并且 其中所述控制器被进一步配置为使用数据构造使得存储器设备的类型与特定的并行 平面结构相关联。
15. 如权利要求11所述的主机系统,其中所述指示符指示存储器设备中的多个裸片上 的并行平面结构。
16. 如权利要求15所述的主机系统,其中所述控制器被进一步配置为发送通信到存储 器设备,所述通信指示存储器设备将存储器设备配置为对多个裸片上的多个页面中的交错 的数据并行编程。
17. 如权利要求16所述的主机系统,其中所述数据包括顺序页面流; 其中所述多个裸片包括第一裸片和第二裸片;并且 其中所述顺序页面流被重新排序到交错的数据之中,使得在存储器设备对多个裸片上 的多个页面中的交错的数据编程之后,第一裸片和第二裸片包括与顺序页面流完全相同的 顺序的存储的页面。
18. 如权利要求16所述的主机系统,其中所述控制器被进一步配置为发送第二通信到 存储器设备,所述第二通信指示存储器设备配置在元块大小中的编程,所述元块大小比多 个裸片上的多个页面的大小更小。
19. 如权利要求18所述的主机系统,其中所述元块大小包括单个裸片中的多个页面。
20. 如权利要求11所述的主机系统,其中所述控制器被配置为响应于询问存储器设备 所述存储器设备的并行平面结构而访问指示符。
【文档编号】G06F12/02GK104126177SQ201280070257
【公开日】2014年10月29日 申请日期:2012年12月21日 优先权日:2011年12月30日
【发明者】S.斯普劳斯, Y.黄 申请人:桑迪士克科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1