CN104126177B - 预交错顺序数据的系统及方法 - Google Patents

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

Info

Publication number
CN104126177B
CN104126177B CN201280070257.3A CN201280070257A CN104126177B CN 104126177 B CN104126177 B CN 104126177B CN 201280070257 A CN201280070257 A CN 201280070257A CN 104126177 B CN104126177 B CN 104126177B
Authority
CN
China
Prior art keywords
data
programming
memory devices
sequential
staggeredly
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201280070257.3A
Other languages
English (en)
Other versions
CN104126177A (zh
Inventor
S.斯普劳斯
Y.黄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN104126177A publication Critical patent/CN104126177A/zh
Application granted granted Critical
Publication of CN104126177B publication Critical patent/CN104126177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

公开了一种用于操作编程模式下的存储器设备的方法和系统。该存储器设备包括编程模式和正常模式。该存储器设备在编程模式下相比于在正常模式下可以被编程的增加可以被并行编程的物理平面的数量。以这种方式,存储器设备可以在存储器设备操作的不同时间(如,在制造期间)更快地编程。主机系统可以将重新排列的数据发送到编程模式下的存储器设备,该重新排列的数据使得能够增加并行编程的物理平面的数量。

Description

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

Claims (20)

1.一种从主机系统加载数据到存储器设备中的方法,所述方法包括:
在主机系统中执行:
访问编程指示符,所述编程指示符指示不同裸片中的多个屏面的并行平面结构,其用于以编程模式将数据写入存储器设备中,其中所述存储器设备包括不同并行平面结构,用于以正常模式将数据写入存储器设备中;
标识用于传输到存储器设备的数据的顺序流,其中,所述顺序流包括以顺序次序的数据的有限序列;
使用所述编程指示符以及标识的数据的顺序流以获得交错的数据,所述交错的数据包括遵循所述不同裸片中的多个屏面的并行平面结构的数据的顺序流的重新排序,使得所述交错的数据包括跨裸片内的多个屏面的、根据数据的顺序流的顺序次序的顺序数据和用于跨所述不同裸片的多个屏面的、根据数据的顺序流的顺序次序的非顺序数据,以便于所述存储器设备以所述编程模式并行地写入所述交错的数据;以及
顺序发送所述交错的数据到所述存储器设备,使得所述存储器设备存储跨所述裸片内的多个屏面的、根据数据的顺序流的顺序次序的顺序数据和用于跨所述不同裸片的多个平面的、根据数据的顺序流的顺序次序的非顺序数据。
2.如权利要求1所述的方法,其中使用所述编程指示符和标识的数据的顺序流以获得交错的数据包括:
使用所述编程指示符和标识的数据的顺序流访问存储位置以获得交错的数据。
3.如权利要求1所述的方法,其中使用所述编程指示符和标识的数据的顺序流以获得交错的数据包括:
访问数据的顺序流;以及
使用所述编程指示符对数据的顺序流重新排序以生成所述交错的数据。
4.如权利要求1所述的方法,其中所述编程指示符包括所述存储器设备的类型;以及
进一步包括使用数据构造,使得存储器设备的类型与特定的并行平面结构相关联。
5.如权利要求1所述的方法,进一步包括发送通信到存储器设备,所述通信指示对存储器设备的编程模式,以便于存储器设备将其自己配置为根据编程模式对跨所述不同裸片的多个页面中的所述交错的数据并行编程。
6.如权利要求5所述的方法,其中所述数据的顺序流包括顺序页面流;
其中所述不同裸片包括第一裸片和第二裸片;并且
其中所述顺序页面流被重新排序到所述交错的数据之中,使得在存储器设备根据编程模式对跨不同裸片的多个页面中的所述交错的数据编程之后,第一裸片和第二裸片包括与顺序页面流相同的顺序的存储的页面。
7.如权利要求5所述的方法,进一步包括发送第二通信到存储器设备,所述第二通信指示对存储器设备的正常模式,以便于存储器设备将其自身配置在元块大小中的编程,所述元块大小比在编程模式下的跨不同裸片的多个页面的大小更小。
8.如权利要求7所述的方法,其中所述元块大小包括单个裸片中的多个页面。
9.如权利要求1所述的方法,其中所述访问编程指示符是对询问存储器设备所述存储器设备的并行平面结构的响应。
10.如权利要求1所述的方法,其中所述在编程模式下的平行平面结构包括第一数量的物理平行屏面;
其中所述在正常模式下的平行屏面结构包括第二数量的物理平行屏面;以及
其中所述第一数量的物理平行屏面大于第二数量的物理平行屏面。
11.一种用于将数据从主机系统加载到存储器设备的主机系统,所述主机系统包括:
存储器;以及
与存储器通信的控制器,所述控制器被配置成:
访问编程指示符,所述编程指示符指示不同裸片中的多个屏面的并行平面结构,其用于以编程模式将数据写入存储器设备中,其中所述存储器设备包括不同并行平面结构,用于以正常模式将数据写入存储器设备中;
标识用于传输到存储器设备的数据的顺序流,其中,所述顺序流包括以顺序次序的数据的有限序列;
使用所述编程指示符以及标识的数据的顺序流以获得交错的数据,所述交错的数据包括遵循所述不同裸片中的多个屏面的并行平面结构的数据的顺序流的重新排序,使得所述交错的数据包括跨裸片内的多个屏面的、根据数据的顺序流的顺序次序的顺序数据和用于跨所述不同裸片的多个屏面的、根据数据的顺序流的顺序次序的非顺序数据,以便于所述存储器设备以所述编程模式并行地写入所述交错的数据;以及
顺序发送所述交错的数据到所述存储器设备,使得所述存储器设备存储跨所述裸片内的多个屏面的、根据数据的顺序流的顺序次序的顺序数据和用于跨所述不同裸片的多个屏面的、根据数据的顺序流的顺序次序的非顺序数据。
12.如权利要求11所述的主机系统,其中所述控制器被配置为使用编程指示符和标识的数据的顺序流以便通过使用编程指示符和标识的数据的顺序流访问存储器以获得交错的数据来获得交错的数据。
13.如权利要求11所述的主机系统,其中所述控制器被配置为使用编程指示符和标识的数据的顺序流以便通过访问数据的顺序流和使用编程指示符和标识的数据的顺序流对数据的顺序流重新排序以生成交错的数据来获得交错的数据。
14.如权利要求11所述的主机系统,其中所述编程指示符包括存储器设备的类型;并且
其中所述控制器被进一步配置为使用数据构造使得存储器设备的类型与特定的并行平面结构相关联。
15.如权利要求11所述的主机系统,其中所述控制器被进一步配置为发送通信到存储器设备,所述通信指示对存储器设备的编程模式,以便于存储器设备将其自己配置为根据编程模式对跨所述不同裸片的多个页面中的所述交错的数据并行编程。
16.如权利要求15所述的主机系统,其中所述数据的顺序流包括顺序页面流;
其中所述不同裸片包括第一裸片和第二裸片;并且
其中所述顺序页面流被重新排序到所述交错的数据之中,使得在存储器设备根据编程模式对跨不同裸片的多个页面中的所述交错的数据编程之后,第一裸片和第二裸片包括与顺序页面流相同的顺序的存储的页面。
17.如权利要求15所述的主机系统,其中所述控制器被进一步配置为发送第二通信到存储器设备,所述第二通信指示对存储器设备的正常模式,以便于存储器设备将其自身配置在元块大小中的编程,所述元块大小比在编程模式下的跨不同裸片的多个页面的大小更小。
18.如权利要求17所述的主机系统,其中所述元块大小包括单个裸片中的多个页面。
19.如权利要求11所述的主机系统,其中所述控制器被配置为响应于询问存储器设备所述存储器设备的并行平面结构而访问编程指示符。
20.如权利要求11所述的主机系统,其中所述在编程模式下的平行平面结构包括第一数量的物理平行屏面;
其中所述在正常模式下的平行屏面结构包括第二数量的物理平行屏面;以及
其中所述第一数量的物理平行屏面大于第二数量的物理平行屏面。
CN201280070257.3A 2011-12-30 2012-12-21 预交错顺序数据的系统及方法 Active CN104126177B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/341,704 2011-12-30
US13/341,704 US9329989B2 (en) 2011-12-30 2011-12-30 System and method for pre-interleaving sequential data
PCT/US2012/071290 WO2013101739A1 (en) 2011-12-30 2012-12-21 System and method for pre-interleaving sequential data

Publications (2)

Publication Number Publication Date
CN104126177A CN104126177A (zh) 2014-10-29
CN104126177B true CN104126177B (zh) 2017-08-25

Family

ID=48695910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280070257.3A Active CN104126177B (zh) 2011-12-30 2012-12-21 预交错顺序数据的系统及方法

Country Status (3)

Country Link
US (1) US9329989B2 (zh)
CN (1) CN104126177B (zh)
WO (1) WO2013101739A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9734050B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
KR20150058927A (ko) * 2013-11-21 2015-05-29 삼성전자주식회사 불 휘발성 메모리의 쓰기 속도를 제어하는 기술
US9208083B2 (en) 2013-12-04 2015-12-08 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method to interleave memory
US10452596B2 (en) * 2015-10-29 2019-10-22 Micron Technology, Inc. Memory cells configured in multiple configuration modes
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10175903B2 (en) * 2016-03-31 2019-01-08 Intel Corporation N plane to 2N plane interface in a solid state drive (SSD) architecture
KR102605609B1 (ko) * 2018-04-02 2023-11-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11789612B2 (en) 2020-06-16 2023-10-17 Sandisk Technologies Llc Plane programming scheme for non-volatile memory with large block sizes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1703678A (zh) * 2002-10-28 2005-11-30 桑迪士克股份有限公司 在非易失性存储器系统中执行多页面写入操作的方法和设备
CN1918552B (zh) * 2003-12-30 2012-05-30 桑迪士克股份有限公司 基于主机使用特性的快闪存储器地址映射的适应性模式切换

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7966462B2 (en) * 1999-08-04 2011-06-21 Super Talent Electronics, Inc. Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips
US7827348B2 (en) * 2000-01-06 2010-11-02 Super Talent Electronics, Inc. High performance flash memory devices (FMD)
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
WO2007081638A2 (en) 2005-12-21 2007-07-19 Sandisk Corporation Non-volatile memories and methods with adaptive file handling in a directly mapped file storage system
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
US8456905B2 (en) * 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
WO2009097681A1 (en) 2008-02-04 2009-08-13 Mosaid Technologies Incorporated Flexible memory operations in nand flash devices
US8482976B2 (en) 2008-12-09 2013-07-09 Kabushiki Kaisha Toshiba Semiconductor memory device and semiconductor memory system storing multilevel data
JP5317689B2 (ja) 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US9092340B2 (en) 2009-12-18 2015-07-28 Sandisk Technologies Inc. Method and system for achieving die parallelism through block interleaving
TWI494948B (zh) * 2011-01-31 2015-08-01 Phison Electronics Corp 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1703678A (zh) * 2002-10-28 2005-11-30 桑迪士克股份有限公司 在非易失性存储器系统中执行多页面写入操作的方法和设备
CN1918552B (zh) * 2003-12-30 2012-05-30 桑迪士克股份有限公司 基于主机使用特性的快闪存储器地址映射的适应性模式切换

Also Published As

Publication number Publication date
US9329989B2 (en) 2016-05-03
US20130173874A1 (en) 2013-07-04
CN104126177A (zh) 2014-10-29
WO2013101739A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
CN104126177B (zh) 预交错顺序数据的系统及方法
KR102143086B1 (ko) 동적 슈퍼 블록을 포함하는 메모리 장치 및 관련 방법 및 전자 시스템
US10459636B2 (en) System and method for managing data in non-volatile memory systems having multiple mapping layers
US9778863B2 (en) System and method for folding partial blocks into multi-level cell memory blocks
CN102754088B (zh) 用于在非易失性存储器阵列中的同时后台和前台操作的方法和系统
CN100585570C (zh) 具有存储元件的存储卡及其控制方法
CN109791519A (zh) 具有集成计算引擎的非易失性存储系统和本地快速存储器的优化用途
CN107957961A (zh) 存储设备、存储系统和计算设备
US20110153911A1 (en) Method and system for achieving die parallelism through block interleaving
US9582358B2 (en) Initialization scheme during dual programming of a memory system
CN106663073A (zh) 用于适应性突发模式的储存模块和方法
CN107111456A (zh) 用于生成与主机命令相关联的提示信息的系统和方法
CN108509351A (zh) 存储器系统和控制方法
CN110069212A (zh) 存储装置及存储装置的操作方法
CN104126178A (zh) Slc-mlc损耗平衡
CN107578793A (zh) 非易失性存储器系统和非易失性存储器装置的操作方法
CN108509146A (zh) 存储系统和控制方法
DE102009026178A1 (de) Mehrstufiger Controller mit intelligentem Speicher-Transfer-Manager zum Verschachteln mehrfacher Ein-Chip-Flash-Speichereinheiten
CN108509145A (zh) 存储系统和控制方法
US8775722B2 (en) Storing data in parallel in a flash storage device using on chip page shifting between planes
CN110275673A (zh) 存储装置及其操作方法
CN109947361A (zh) 存储器系统及其操作方法
CN109992202A (zh) 数据存储设备、其操作方法以及包括其的数据处理系统
CN107274929A (zh) 用于执行随机操作的非易失性存储器装置
CN109521944A (zh) 数据储存装置以及数据储存方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: texas

Applicant after: DELPHI INT OPERATIONS LUX SRL

Address before: texas

Applicant before: Sandisk Corp.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant