掌桥专利:专业的专利平台
掌桥专利
首页

完全多平面操作启用

文献发布时间:2023-06-19 11:52:33


完全多平面操作启用

本专利申请要求Wu等人在2019年12月30日提交的题为“完全多平面操作启用(FULL MULTI-PLANE OPERATION ENABLEMENT)”的美国专利申请第16/730,881号的优先权,所述美国专利申请被转让给本申请的受让人并且特此通过引用整体并入本文。

技术领域

本技术领域涉及完全多平面操作启用。

背景技术

存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。通常,主机系统可以利用存储器子系统在存储器装置中存储数据并从存储器装置中检索数据。

发明内容

描述了一种方法。所述方法可以包含:确定存储器管芯的平面集合中的第一平面是无效平面;以及至少部分地基于所述确定来发布与用于所述存储器管芯的所述平面集合的多平面操作相关联的单个描述符,其中所述单个描述符包括用于所述多平面操作的多个命令,并且其中至少部分地基于所述第一平面是所述无效平面,所述多个命令中的第一命令是所述多个命令中的第二命令的副本,所述第二命令用于所述平面集合中的第二平面。

描述了一种方法。所述方法可以包含:接收与用于存储器管芯的平面集合的多平面操作相关联的单个描述符;以及至少部分地基于接收所述单个描述符来发布用于所述多平面操作的多个命令,其中所述单个描述符指示用于所述多平面操作的所述多个命令,并且其中所述多个命令中的第一命令是所述多个命令中的第二命令的副本。

描述了一种系统。所述系统可以包含多个存储器部件和处理装置,所述处理装置与所述多个存储器部件可操作地耦合以确定存储器管芯的平面集合中的第一平面是有效平面;至少部分地基于所述平面集合中的第二平面是无效平面,复制用于所述平面集合的多平面操作的多个命令中的第一命令;以及至少部分地基于所述确定来发布与所述多平面操作相关联的单个描述符,其中所述单个描述符指示所述多个命令包含所述第一命令和所述第一命令的副本。

附图说明

根据以下给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,不应将附图用于将本公开限制于特定实施例,而仅是为了便于解释和理解。

图1示出了根据本公开的一些实例的计算系统的实例,所述计算系统包含存储器子系统。

图2是根据本公开的一些实例的支持用于存储器的完全多平面操作启用的示例性方法的示意图。

图3是根据本公开的一些实例的支持用于存储器的完全多平面操作启用的示例性方法的示意图。

图4是根据本公开的一些实例的支持用于存储器的完全多平面操作启用的示例性系统的框图。

图5A是根据本公开的一些实例的支持用于存储器的完全多平面操作启用的示例性存储器子系统。

图5B是根据本公开的一些实例的支持用于存储器的完全多平面操作启用的示例性存储器子系统。

图6是根据本公开的一些实例的支持用于存储器的完全多平面操作启用的示例性系统的框图。

具体实施方式

本公开的各方面涉及完全多平面操作启用。存储器子系统可以是存储装置、存储器模块,或存储装置与存储器模块的混合体。本文结合图1描述了存储装置和存储器模块的实例。通常,主机系统可以利用包含一或多个部件(诸如存储数据的存储器装置)的存储器子系统。主机系统可以提供要存储在存储器子系统中的数据,并且可以请求从存储器子系统中检索数据。

存储器装置可以是非易失性存储器装置。非易失性存储器装置是一或多个管芯的封装。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下面结合图1描述非易失性存储器装置的其它实例。封装中的管芯可以被分配给一或多个通道以与存储器子系统控制器进行通信。每个管芯可以由一或多个平面组成。可以将平面分组为逻辑单元(LUN)。对于一些类型的非易失性存储器装置(例如,NAND存储器装置),每个平面都由物理块集合组成,所述物理块集合是用于存储数据的存储器单元集合。单元是存储信息的电子电路。下文中的数据块是指用于存储数据的存储器装置的单元,并且可以包含一组存储器单元、字线组、字线或单独的存储器单元。

可以将多个单元串在一起,并且可以在单个块中多次复制串。单元的每一列都可以被称为“串”,而每一行都可以被称为“页面”。单元的多个串和页面可以统称为“块”。数据块可以包含具有有效数据的页面和不含有数据的页面(例如,先前已擦除但尚未写入的页面)。然后可以将有效数据写入(例如,重写)到存储器装置(例如,存储器装置的不同页面)。

数据操作可以由存储器子系统执行。数据操作可以是主机发起的操作。例如,主机系统可以在存储器子系统上发起数据操作(例如,写入、读取、擦除等)。主机系统可以向存储器子系统发送存取请求(例如,写入命令、读取命令),诸如将数据存储在存储器子系统处的存储器装置上并从存储器子系统上的存储器装置读取数据。

如主机请求所指定,待读取或写入的数据在下文中被称为“主机数据”。主机请求可以包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、命名空间),所述逻辑地址信息是主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、命名空间)可以是主机数据的元数据的一部分。元数据还可以包含错误处理数据(例如,ECC码字、奇偶校验码)、数据版本(例如,用于区分所写入的数据的使用期限)、有效位图(其LBA或逻辑传输单元含有有效数据)等。

当可以将主机数据写入存储器单元时,可以使用跨多个存储管芯和通道的多个块。在一些情况下,跨多个存储器管芯和通道的数据块可以包含具有无效数据的页面或平面。响应于使块不可靠的各种事件的发生,可以使块无效。例如,响应于对应的误码率(BER)超过阈值BER,可以使块无效。包含具有无效数据的页面或平面的数据块可以被称为不良块。下文中的不良块是指例如由于缺陷(例如,制造缺陷)或由于磨损而不再可靠地用于存储或检索数据的块。在一些情况下,不良块无法被访问以将无效数据替换为有效数据。例如,不良块不能被擦除、编程或读取。在此类情况下,如果块组中的至少一个含有不良块,则不能对块组进行并行编程、擦除或读取。

在常规系统中,含有至少一个不良块的多平面操作可以通过一次利用一个平面操作来执行多平面操作。为了在常规系统中实施完全多平面操作,可以发布用于每个平面的命令和描述符。例如,因为无法访问不良块,所以存储器子系统控制器可以发布单独的描述符以避免不良块。描述符可以包含地址和命令序列。例如,可以发布用于不良块的描述符,并且可以发布每个其余块(例如,良好块,诸如含有有效数据的那些良好块)的不同描述符。在常规系统中,为每个命令发布不同的描述符可能会由于控制器所利用的多个参数而增加开销,降低存储器子系统的性能,并增加存储器管芯的等待时间。

本公开的各方面通过具有启用完全多平面操作的存储器子系统来解决上述和其它缺陷。例如,控制器可以发布用于多平面操作的单个描述符。单个描述符可以包含用于多平面操作的多个命令。在一些情况下,多个命令可以包含与良好块相关联的命令,并且如果命令与不良块相关联,则控制器可以识别不良块,复制与良好块相关联的命令并将不良块的命令替换为良好块的命令。因为无法访问不良块,所以可以用良好块的命令序列替换不良块的命令序列,并且通过将不良块的命令替换为良好块的命令,控制器可以发布单个描述符以与其它块组并行地执行编程、擦除或读取操作(即,单个描述符可以用于对多个块或块组执行操作)。

通过为多个命令发布单个描述符,可以提高存储器子系统的整体性能。例如,通过减少与从存储器访问多个描述符相关联的资源成本和时间并提高存储器子系统的性能,启用完全多平面操作可以提高存储器子系统的整体效率。此类技术可能导致存储器子系统经历改善的读取、写入和擦除速度和/或减少功耗、改善处理时间等。

首先在如参考图1描述的计算环境的背景中描述本公开的特征。在如参考图2至5描述的方法、框图和示例性存储器管芯的背景中描述本公开的特征。本公开的这些和其它特征由计算机系统进一步示出并且参考计算机系统进行描述,所述计算机系统涉及如参考图6描述的完全多平面操作启用。

图1示出了根据本文所公开的实例的计算系统100的实例。计算环境可以包含主机系统105和存储器子系统110。存储器子系统110可以包含诸如一或多个非易失性存储器装置(例如,存储器装置130)、一或多个易失性存储器装置(例如,存储器装置140)之类的介质,或其组合。

存储器子系统110可以是存储装置、存储器模块,或存储装置与存储器模块的混合体。存储装置的实例包含固态驱动器(SSD)、闪存驱动器、通用串行总线(USB)闪存驱动器、嵌入式多介质控制器(eMMC)驱动器、通用闪存(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小尺寸DIMM(SO-DIMM)和各种类型的非易失性DIMM(NVDIMM)。

计算系统100可以是计算装置,诸如台式计算机、膝上型计算机、网络服务器、移动装置、车辆(例如,飞机、无人机、火车、汽车或其它运输工具)、物联网(IoT)使能装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机)或包含存储器和处理装置的此类计算装置。

计算系统100可以包含主机系统105,所述主机系统与一或多个存储器子系统110耦合。在一些实例中,主机系统105与不同类型的存储器子系统110耦合。图1示出了与一个存储器子系统110耦合的主机系统105的一个实例。如本文所使用的,“耦合到”或“与……耦合”通常是指部件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如,没有中间部件),无论是有线还是无线的,包含诸如电、光学、磁性等连接。

主机系统105可以包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可以包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)和存储器协议控制器(例如,PCIe控制器、SATA控制器)。主机系统105例如使用存储器子系统110以将数据写入存储器子系统110,并从存储器子系统110中读取数据。

主机系统105可以使用物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围部件互连快速(PCIe)接口、USB接口、光纤通道、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、双倍数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM插槽接口)、开放式NAND闪存接口(ONFI)、双倍数据速率(DDR)、低功耗双倍数据速率(LPDDR)或任何其它接口。物理主机接口可以用于在主机系统105与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统105耦合时,主机系统105可以进一步利用非易失性存储器快速(NVMe)接口来访问存储器部件(例如,存储器装置130)。物理主机接口可以提供用于在存储器子系统110与主机系统105之间传递控制、地址、数据和其它信号的接口。图1示出了作为实例的存储器子系统110。通常,主机系统105可以经由相同的通信连接、多个单独的通信连接和/或通信连接的组合来访问多个存储器子系统。

存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),诸如动态RAM(DRAM)和同步DRAM(SDRAM)。

非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型闪速存储器和就地写入存储器(write-in-place memory),诸如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可以基于体电阻变化结合可堆叠的交叉网格数据访问阵列来执行位存储。另外,与多种基于闪存的存储器相比,交叉点非易失性存储器可以执行就地写入操作,其中可以对非易失性存储器单元进行编程,而无需事先擦除非易失性存储器单元。NAND型闪速存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。

存储器装置130中的每一个可以包含一或多个存储器单元阵列。一种类型的存储器单元(例如单级单元(SLC))可以每个单元存储一位。其它类型的存储器单元(诸如多级单元(MLC)、三级单元(TLC)和四级单元(QLC))可以每个单元存储多个位。在一些实施例中,存储器装置130中的每一个可以包含一或多个存储器单元阵列,诸如SLC、MLC、TLC、QLC或此类存储器单元的任何组合。在一些实施例中,特定的存储器装置可以包含存储器单元的SLC部分和MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可以被分组为可以指代用于存储数据的存储器装置的逻辑单元的页面。对于一些类型的存储器(例如,NAND),页面可以被分组以形成块。

尽管描述了诸如NAND型闪速存储器(例如,2D NAND、3D NAND)和非易失性存储器单元的3D交叉点阵列之类的非易失性存储器部件,但是存储器装置130可以基于任何其它类型的非易失性存储器单元,诸如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电RAM(FeRAM)、磁RAM(MRAM)、自旋转移矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)闪速存储器以及电可擦可编程ROM(EEPROM)。

存储器子系统控制器115(或简称为控制器115)可以与存储器装置130通信以在存储器装置130中执行诸如读取数据、写入数据或擦除数据之类的操作以及其它此类操作。存储器子系统控制器115可以包含诸如一或多个集成电路和/或分立部件之类的硬件、缓冲存储器或它们的组合。所述硬件可以包含具有专用(即,硬编码)逻辑的数字电路以执行本文所述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP))或其它合适的处理器。

存储器子系统控制器115可以包含被配置为执行存储在本地存储器125中的指令的处理器120(例如,处理装置)。在所示实例中,存储器子系统控制器115的本地存储器125包含嵌入式存储器,所述嵌入式存储器被配置为存储用于执行各种过程、操作、逻辑流以及控制存储器子系统110的操作(包含处理存储器子系统110与主机系统105之间的通信)的例程的指令。

在一些实例中,本地存储器125可以包含存储存储器指针、所预取的数据等的存储器寄存器。本地存储器125还可以包含用于存储微代码的ROM。尽管图1中的示例性存储器子系统110已经被示为包含存储器子系统控制器115,但是在本公开的另一个实例中,存储器子系统110不包含存储器子系统控制器115,而是可以依赖于外部控制(例如,通过外部主机或通过与存储器子系统分离的处理器或控制器提供)。

通常,存储器子系统控制器115可以从主机系统105接收命令或操作,并且可以将命令或操作转换为指令或适当命令以实现对存储器装置130的期望访问。存储器子系统控制器115可以负责其它操作,诸如损耗均衡操作、垃圾回收操作、错误检测和纠错码(ECC)操作、加密操作、缓存操作以及逻辑地址(例如,逻辑块地址(LBA)、命名空间)与和存储器装置130相关联的物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可以进一步包含主机接口电路以经由物理主机接口与主机系统105通信。主机接口电路可以将从主机系统接收到的命令转换为存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换为主机系统105的信息。

存储器子系统110还可以包含未示出的附加电路或部件。在一些实例中,存储器子系统110可以包含可以从存储器子系统控制器115接收地址并对地址进行解码以存取存储器装置130的高速缓存或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器)。

在一些实例中,存储器装置130包含本地介质控制器135,所述本地介质控制器与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可以在外部管理存储器装置130(例如,对存储器装置130执行介质管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与用于同一存储器装置封装内的介质管理的本地控制器(例如,本地介质控制器135)组合的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。

本地介质控制器135可以接收与用于存储器管芯的平面集合的多平面操作相关联的单个描述符。基于接收到单个描述符,本地介质控制器135可以发布用于多平面操作的多个命令。单个描述符可以指示多个命令,并且多个命令可以包含第一命令和第二命令,其中第一命令可以是第二命令的副本。

存储器子系统110包含多平面操作管理器150,其可以确定平面集合中的第一平面是无效平面。例如,无效平面可以与硬件错误、块错误、存储器部件错误或其组合相关联。另外或替代地,无效平面可以包含平面损坏、无效数据、不能被校正的错误或其组合。在一些实例中,无效平面不能被存储器子系统访问。

在一些实例中,多平面操作管理器150可以发布与多平面操作相关联的单个描述符。单个描述符可以包含用于多平面操作的多个命令。包含在单个描述符中的第一命令可以是第二命令的副本,其中第二命令对应于有效平面(例如,第二平面)。在此类情况下,存储器子系统可以访问有效平面。通过发布单个描述符,可以通过访问单个命令而不是用于每个命令的描述符来减少开销,由此提高性能和可靠性。

在一些实例中,存储器子系统控制器115包含多平面操作管理器150的至少一部分。例如,存储器子系统控制器115可以包含处理器120(例如,处理装置),所述处理器被配置为执行存储在本地存储器125中的指令以执行本文所述的操作。在一些实例中,多平面操作管理器150是主机系统105、应用程序或操作系统的一部分。

多平面操作管理器150可以基于确定第一平面是无效平面来将无效平面的地址替换为有效平面的地址。在一些情况下,多平面操作管理器150可以确定多个平面中包含一个以上的无效平面。在此类情况下,多平面操作管理器150可以将无效平面的每个地址替换为有效平面的地址。本文中描述了关于多平面操作管理器150的操作的更多细节。

图2是根据本公开的一些实例的支持完全多平面操作启用的示例性方法200的示意图。方法200可以通过处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或它们的组合。在一些实例中,方法200由图1的多平面操作管理器150执行。尽管以特定的次序或顺序示出,但是除非另有规定,否则可以修改过程的顺序。因此,所示的实例应当仅被理解为实例,并且所示的过程可以不同顺序执行,并且一些过程可以并行地执行。另外,在各种实例中可以省略一或多个过程。因此,并非在每个实例中都需要所有过程。其它工艺流程是可能的。

在操作205处,闪存控制器的处理装置可以确定存储器管芯的第一平面包含不良块(例如,无效平面)。不良块可以被包含在存储器管芯的无效平面中。在一些实例中,无效平面可以是硬件错误、平面损坏、块错误、存储器部件故障或其组合的结果。在此类情况下,无效平面可能包含无法纠正的错误。在一些情况下,确定第一平面是不良块可以基于第一平面含有大量无效数据、第一平面超过存储器管芯的无效页面的阈值数量,或这两者。在一些实例中,闪存控制器可以是如参考图1所描述的存储器子系统控制器115的实例。在一些实例中,操作205的各方面可以由如参考图1所描述的多平面操作管理器150来执行。

在操作210处,处理装置可以发布与用于存储器管芯的多平面操作相关联的单个描述符,其中单个描述符包含第一命令和第二命令,其中基于第一平面包含不良块,第一命令是第二命令的副本。例如,可以将单个描述符发布到存储器管芯的本地存储器控制器。在一些情况下,单个描述符可以包含用于多平面操作的多个命令(例如,包含至少第一命令和第二命令)。在此类情况下,基于第一平面包含不良块,第一命令可以是第二命令的副本。在一些情况下,第二命令可以用于平面集合中所包含的第二平面。在此类情况下,第二命令可以对应于有效平面。在一些实例中,第二命令可以对应于与第一平面不同的第二平面。

在一些实例中,方法200可以包含将第一平面(例如,不良块)的地址替换为第二平面(例如,良好块)的地址。在此类情况下,平面集合中的第二平面可以是有效平面。在一些情况下,有效平面可以包含有效数据。在此类情况下,确定第二平面是有效平面是基于第二平面包含大量有效数据。

在一些实例中,方法200可以包含确定平面集合中的无效平面(例如,不良块)的数量,并且将多个无效平面中的每一个的地址替换为与有效平面相关联的地址。可以按由单个描述符指示的多平面命令序列替换地址。在一些实例中,方法200可以包含基于第一平面是无效平面来复制第二命令。在此类情况下,可以将第一命令(例如,地址)替换为第二命令。

在一些实例中,单个描述符可以仅含有用于平面集合中的有效平面的命令。在一些实例中,多个命令可以与读取操作、写入操作或擦除操作中的至少一个相关联。在一些实例中,操作210的各方面可以由如参考图1所描述的多平面操作管理器150来执行。

图3是根据本公开的一些实例的支持完全多平面操作启用的示例性方法300的示意图。方法300可以通过处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或它们的组合。在一些实例中,方法300由图1的多平面操作管理器150执行。尽管以特定的次序或顺序示出,但是除非另有规定,否则可以修改过程的顺序。因此,所示的实例应当仅被理解为实例,并且所示的过程可以不同顺序执行,并且一些过程可以并行地执行。另外,在各种实例中可以省略一或多个过程。因此,并非在每个实例中都需要所有过程。其它工艺流程是可能的。

在操作305处,NAND控制器的处理装置可以接收与用于存储器管芯的平面集合的多平面操作相关联的单个描述符。在一些实例中,NAND控制器可以是如参考图1所描述的本地介质控制器135的实例。在一些实例中,操作305的各方面可以由如参考图1所描述的多平面操作管理器150来执行。

在操作310处,处理装置可以基于接收单个描述符来发布用于多平面操作的命令,其中单个描述符指示用于多平面操作的命令,并且其中所述命令中的第一命令是所述命令中的第二命令的副本。在一些情况下,所述命令可以与读取操作、写入操作或擦除操作中的至少一个相关联。

在一些实例中,方法300可以包含发布用于第二平面的第一命令。第一命令可以对应于第一平面,其中第一平面是无效平面。在一些实例中,第二平面可以对应于第二命令,其中第二平面是有效平面。在此类情况下,基于第一平面是无效平面、第一平面含有的无效数据量超过存储器管芯的无效页面的阈值数量或这两者,可以针对第一命令复制第二指令。无效平面可以是硬件错误、平面损坏、块错误、存储器部件故障或其组合的结果。在此类情况下,无效平面可能包含无法纠正的错误。在一些情况下,无效平面可以包含无效数据(例如,不良块)。在一些情况下,有效平面可以包含无效数据(例如,良好块)。

在一些情况下,第一平面和第二平面可以被包含在平面集合中。在一些实例中,方法300可以发布用于第二平面的第二命令。在此类情况下,第一命令可以是第二命令的副本。在一些实例中,第二命令可以对应于与第一平面不同的第二平面。在一些实例中,操作310的各方面可以由如参考图1所描述的多平面操作管理器150来执行。

图4是根据本公开的一些实例的支持用于存储器的完全多平面操作启用的示例性系统的框图。框图400可以包含存储器子系统405。存储器子系统405可以包含闪存控制器410、NAND控制器420和后端管理器425。框图400还可以包含主机系统430。闪存控制器410可以是如参考图1所描述的存储器子系统控制器115的实例。NAND控制器可以是如参考图1所描述的本地介质控制器135的实例。

存储器子系统405可以执行多平面操作。例如,存储器子系统405可以执行4平面操作。在一些情况下,四个平面中的一或多个平面可以是无效平面。闪存控制器410可以确定平面集合中的平面是有效平面,并且平面集合中的另一不同平面是无效平面。为了对具有无效平面的存储器管芯执行4平面操作,闪存控制器410可以复制有效平面的命令序列,并且将无效平面的命令序列替换为所复制的命令序列。例如,闪存控制器410可以将用于无效平面的命令内的地址替换为有效平面的地址。在一些情况下,闪存控制器410可以复制用于有效平面的命令序列的次数与平面集合中的无效平面的数量相同。例如,如果存储器管芯含有两个无效平面,则闪存控制器410可以将有效平面的命令序列复制两次,并且将两个无效平面的每个地址替换为有效平面的地址。

闪存控制器410可以确认用于无效平面的复制命令序列与有效平面的命令序列相同。在此类情况下,无效平面的地址(例如,数据)可以与有效平面的地址相同。在一些情况下,数据可能会在行地址内变混乱;然而,闪存控制器410可以读回数据,确认所述数据在行地址内是混乱的,并且确认所述数据与所复制的数据相同。在一些情况下,混乱的数据可以与行地址相关联。

闪存控制器410可以发布与多平面操作(例如,4平面操作)相关联的单个描述符415。描述符415可以指示与多平面操作相关联的多个命令。例如,描述符415可以指示与有效平面相关联的命令和与无效平面相关联的命令。在此类情况下,与无效平面相关联的命令可以是与有效平面相关联的所复制命令。

在一些实例中,描述符415可以包含命令和行地址。例如,描述符415可以在行地址内包含通道的地址和存储器管芯的地址。在一些实例中,描述符415可以将与缓冲器相关联的数据连接到描述符415。描述符415可以用于生成命令序列(例如,复制有效平面的命令序列,并且将无效平面的命令序列替换为有效平面的命令序列)。在此类情况下,描述符415包含可以被发送到NAND控制器420的命令的语法。

在一些情况下,描述符415不能存储在闪存控制器410的存储器中,由此增加了与访问描述符415相关联的开销。例如,描述符415可以存储在SRAM存储器中。在一些存储器子系统中,为单个多平面操作访问一个以上的描述符415可能增加与从SRAM存储器中检索多个描述符相关联的开销、时间和资源。更确切地,为单个多平面操作访问单个描述符415可以减少与检索单个描述符相关联的开销、时间和资源。

闪存控制器410可以使用单个描述符415发送单个命令,所述单个命令指示NAND控制器420执行4平面操作。单个命令可以在存储器管芯内勾勒出四个平面,其中四个平面中的至少一个是无效平面。在此类情况下,所述命令可以包含有效平面中的至少一个的所复制数据,并且将无效平面的地址替换为有效平面的地址。

闪存控制器410可以将描述符415发送到NAND控制器420。在此类情况下,NAND控制器420可以接收描述符415并且发布包含在描述符415中的命令。NAND控制器420可以包含微代码,所述微代码被配置为接收包含在描述符415中的命令序列。当NAND控制器420接收到命令序列时,微代码可以发布与命令相关联的多平面操作。在一些情况下,微代码可以利用单个数据平面(例如,命令序列中的最后一个数据平面)来发布与多平面操作相关联的命令。在一些实例中,NAND控制器420可以将命令发布到每个平面(例如,有效平面和无效平面)。所述命令可以与读取操作、写入操作或擦除操作相关联。

图5A是根据本公开的一些实例的支持用于存储器的完全多平面操作启用的示例性存储器子系统500-a。存储器子系统500-a可以包含存储器管芯505-a,其中存储器管芯505-a可以包含平面510-a、平面515-a、平面520-a和平面525-a。每个平面可以包含一个数据块。例如,平面510-a包含数据块530-a,并且平面515-a包含数据块535-a。

存储器管芯505-a可以是包含单个无效平面(例如,平面510-a)的存储器管芯505-a的实例。存储器管芯505-a可以包含有效平面(例如,平面515-a、平面520-a和平面525-a)。由于数据块530-a中存在无效数据,因此平面510-a可以防止存储器管芯505-a使用单个描述符执行多平面操作。在一些情况下,包含无效数据的至少一个数据块530-a可能导致平面510-a是无效平面。无效平面可能经历硬件错误、块错误、存储器部件错误或其组合。在一些情况下,无效平面可以包含平面损坏、无效数据、不能被校正的错误或其组合。

在一些实例中,闪存控制器可以复制与有效平面中的一个相关联的命令,并且将无效平面的命令替换为有效平面的所复制命令。例如,可以复制平面515-a的命令。可以将平面510-a的命令替换为平面515-a的命令。在一些情况下,可以复制平面520-a的命令和平面525-a的命令,并且可以将平面510-a的命令替换为平面520-a的命令或平面525-a的命令。表格示出了3平面编程操作的命令序列。

表1

在一些情况下,命令“发布具有平面0页面数据的程序页面多平面(85h/80h-11h)”可以与平面515-a相关联。在此类情况下,可以复制命令,并且可以将平面510-a的命令替换为“发布具有平面0页面数据的程序页面多平面(85h/80h-11h)”。例如,用于平面510-a的命令序列和用于平面515-a的命令序列可以是相同的命令序列(例如,包含相同的地址)。

在一些实例中,命令“发布具有平面1页面数据的程序页面多平面(85h/80h-11h)”可以与平面520-a相关联。命令“发布具有平面2页面数据的程序页面多平面(85h/80h-10h)”可以与平面525-a相关联。在此类情况下,不能复制平面520-a的命令和平面525-a的命令来替换平面510-a的命令。在其它实例中,可以复制平面520-a的命令和平面525-a的命令来替换平面510-a的命令。

当NAND控制器收到表1的多平面序列时,在NAND控制器接收到“发布具有平面2页面数据的程序页面多平面(85h/80h-10h)”命令序列(例如,平面525-a的命令序列)之后,NAND控制器可以触发编程操作。在此类情况下,NAND控制器可以利用最后的命令序列来触发编程操作。在一些情况下,可以将用于平面510-a、平面515-a和平面515-c的命令序列排队(例如,保存在本地缓冲器上),直到接收到用于平面525-a的命令序列为止。NAND控制器可以对命令序列内的地址进行解码,以识别地址位置以覆盖数据块的原始数据。

在一些情况下,可以为编程操作发布单个描述符。如果我们复制平面515-a、平面520-a或平面525-a的地址以替换平面510-a的地址,则闪存控制器可以发布单个描述符,因为每个命令序列都与有效平面的地址相关联。如果命令序列可以与无效平面的地址相关联,则闪存控制器不能发布单个描述符,更确切地,闪存控制器可以为每个命令序列发布单独的描述符。为每个命令序列发布单独的描述符可能会增加处理时间并增加编程操作的等待时间。

在一些情况下,命令序列可以与擦除操作关联。表2可以提供用于3平面擦除操作的命令序列。

表2

在一些情况下,命令“发布具有平面0的擦除块多平面(60h-D1h)”可以与平面515-a相关联。在此类情况下,可以复制命令,并且可以将平面510-a的命令替换为“发布具有平面0的擦除块多平面(60h-D1h)”。例如,用于平面510-a的命令序列和用于平面515-a的命令序列可以是相同的命令序列(例如,包含相同的地址)。

在一些实例中,命令“发布具有平面1的擦除块多平面(60h-D1h)”可以与平面520-a相关联。命令“发布具有平面2的擦除块(60h-D0h)”可以与平面525-a相关联。在此类情况下,不能复制平面520-a的命令和平面525-a的命令来替换平面510-a的命令。在其它实例中,可以复制平面520-a的命令和平面525-a的命令来替换平面510-a的命令。

当NAND控制器收到表2的多平面序列时,在NAND控制器接收到“发布具有平面2的擦除块(60h-D0h)”命令序列(例如,平面525-a的命令序列)之后,NAND控制器可以触发擦除操作。在此类情况下,NAND控制器可以利用最后的命令序列来触发擦除操作。在一些情况下,可以将用于平面510-a、平面515-a和平面515-c的命令序列排队(例如,保存在本地缓冲器上),直到接收到用于平面525-a的命令序列为止。复制平面515-a的命令不会导致延迟,因为NAND控制器不能发布擦除操作,直到接收到用于平面525-a的命令序列为止。NAND控制器可以对命令序列内的地址进行解码,以识别地址位置以擦除数据块的数据。

在一些情况下,可以为擦除操作发布单个描述符。如果我们复制平面515-a、平面520-a或平面525-a的地址以替换平面510-a的地址,则闪存控制器可以发布单个描述符,因为每个命令序列都与有效平面的地址相关联。如果命令序列可以与无效平面的地址相关联,则闪存控制器不能发布单个描述符,更确切地,闪存控制器可以为每个命令序列发布单独的描述符。为每个命令序列发布单独的描述符可能会增加处理时间并增加擦除操作的等待时间。

图5B是根据本公开的一些实例的支持用于存储器的完全多平面操作启用的示例性存储器子系统500-b。存储器子系统500-b可以包含存储器管芯505-b,其中存储器管芯505-b可以包含平面510-b、平面515-b、平面520-b和平面525-b。每个平面可以包含一个数据块。例如,平面510-b包含数据块530-b,并且平面515-b包含数据块535-b。

存储器管芯505-b可以是包含一个以上的无效平面(例如,平面510-b和平面520-b)的存储器管芯505-b的实例。存储器管芯505-b可以包含有效平面(例如,平面515-b和平面525-b)。由于数据块530-b和数据块530-c中存在无效数据,因此平面510-b和平面520-b可以防止存储器管芯505-b使用单个描述符执行多平面操作。在一些情况下,包含无效数据的至少一个数据块530-b和数据块530-c可能分别导致平面510-b和平面520-b是无效平面。

在此类情况下,闪存控制器可以复制与有效平面相关联的命令,并且将无效平面的命令替换为有效平面的所复制命令。例如,可以复制平面515-b的命令,并且可以将平面510-b的命令替换为平面515-b的命令。可以复制平面525-b的命令,并且可以将平面520-b的命令替换为平面525-b的命令。在一些情况下,可以复制平面525-b的命令,并且可以将平面510-b的命令替换为平面525-b的命令。在其它实例中,可以复制平面515-b的命令,并且可以将平面520-b的命令替换为平面515-b的命令。表3可以提供用于2平面编程操作的命令序列。

表3

在一些情况下,命令“发布具有平面0页面数据的程序页面多平面(85h/80h-11h)”可以与平面515-b相关联。在此类情况下,可以复制命令,并且可以将平面510-b的命令替换为“发布具有平面0页面数据的程序页面多平面(85h/80h-11h)”。例如,用于平面510-b的命令序列和用于平面515-b的命令序列可以是相同的命令序列(例如,包含相同的地址)。

在一些情况下,命令“发布具有平面2页面数据的程序页面多平面(85h/80h-10h)”可以与平面525-b相关联。在此类情况下,可以复制命令,并且可以将平面520-b的命令替换为“发布具有平面2页面数据的程序页面多平面(85h/80h-10h)”。例如,用于平面520-b的命令序列和用于平面525-b的命令序列可以是相同的命令序列(例如,包含相同的地址)。

当NAND控制器收到表3的多平面序列时,在NAND控制器接收到“发布具有平面2页面数据的程序页面多平面(85h/80h-10h)”命令序列(例如,平面525-b的命令序列)之后,NAND控制器可以触发编程操作。NAND控制器可以识别与平面520-b相关联的命令序列是所复制的命令序列,由此指示平面520-b的命令序列不能是最后的命令序列。在此类情况下,NAND控制器可以避免发布编程操作。在一些情况下,可以将用于平面510-b、平面515-b和平面520-b的命令序列排队(例如,保存在本地缓冲器上),直到接收到用于平面525-b的命令序列为止。

在一些情况下,可以为编程操作发布单个描述符。如果我们复制平面515-b的地址以替换平面510-b的地址并且复制平面520-b的地址以替换525-b的地址,则闪存控制器可以发布单个描述符,因为每个命令序列都与有效平面的地址相关联。如果至少一个命令序列可以与无效平面的地址相关联,则闪存控制器不能发布单个描述符,更确切地,闪存控制器可以为每个命令序列发布单独的描述符。为每个命令序列发布单独的描述符可能会增加处理时间并增加编程操作的等待时间。

在一些情况下,命令序列可以与擦除操作关联。表4可以提供用于2平面擦除操作的命令序列。

表4

在一些情况下,命令“发布具有平面0的擦除块多平面(60h-D1h)”可以与平面515-b相关联。在此类情况下,可以复制命令,并且可以将平面510-b的命令替换为“发布具有平面0的擦除块多平面(60h-D1h)”。例如,用于平面510-b的命令序列和用于平面515-b的命令序列可以是相同的命令序列(例如,包含相同的地址)。

在一些情况下,命令“发布具有平面2的擦除块(60h-D0h)”可以与平面525-b相关联。在此类情况下,可以复制命令,并且可以将平面520-b的命令替换为“发布具有平面2的擦除块(60h-D0h)”。例如,用于平面520-b的命令序列和用于平面525-b的命令序列可以是相同的命令序列(例如,包含相同的地址)。

当NAND控制器收到表4的多平面序列时,在NAND控制器接收到“发布具有平面2的擦除块(60h-D0h)”命令序列(例如,平面525-b的命令序列)之后,NAND控制器可以触发擦除操作。NAND控制器可以识别与平面520-b相关联的命令序列是所复制的命令序列,由此指示平面520-b的命令序列不能是最后的命令序列。在此类情况下,NAND控制器可以避免发布擦除操作。在一些情况下,可以将用于平面510-b、平面515-b和平面520-b的命令序列排队(例如,保存在本地缓冲器上),直到接收到用于平面525-b的命令序列为止。

在一些情况下,可以为擦除操作发布单个描述符。如果我们复制平面515-b的地址以替换平面510-b的地址并且复制平面520-b的地址以替换525-b的地址,则闪存控制器可以发布单个描述符,因为每个命令序列都与有效平面的地址相关联。如果至少一个命令序列可以与无效平面的地址相关联,则闪存控制器不能发布单个描述符,更确切地,闪存控制器可以为每个命令序列发布单独的描述符。为每个命令序列发布单独的描述符可能会增加处理时间并增加擦除操作的等待时间。

在一些实例中,闪存控制器可以确定存储器管芯505-b的平面集合中的无效平面的数量,并且基于无效平面的数量来复制有效平面的命令。例如,闪存控制器可以确定平面510-b和平面520-b可以是无效平面。在此类情况下,平面515-b(例如,有效平面)的命令可以被复制两次,并且替换与平面510-b和平面520-b相关联的命令的每个地址。在其它实例中,平面525-b(例如,有效平面)的命令可以被复制两次,并且替换与平面510-b和平面520-b相关联的命令的每个地址。4平面操作的多平面块的平均百分比可以为94.051%。3平面操作的多平面块的平均百分比可以为5.809%。2平面操作的多平面块的平均百分比可以为0.139%。2平面操作的多平面块的平均百分比可以为0.000661%。因此,基于无效平面的数量来复制有效平面的命令可以提高存储器管芯505-b的效率和性能。

图6示出了根据本文所公开的实例的计算机系统600的示例性机器,所述计算机系统支持用于维持序列性的折叠记分板。计算机系统600可以包含指令集以使机器执行本文所述的技术中的任何一或多个。在一些实例中,计算机系统600可以对应于主机系统(例如,参考图1描述的主机系统105),所述主机系统包含、耦合到或利用存储器子系统(例如,参考图1描述的存储器子系统110)或者可以用于执行控制器的操作(例如,执行操作系统以执行与参考图1描述的多平面操作管理器150相对应的操作)。在一些实例中,所述机器可以与局域网(LAN)、内联网、外联网和/或互联网中的其它机器连接(例如,联网)。所述机器可以客户端-服务器网络环境中的服务器或客户端机器的身份操作,可以充当对等(或分布式)网络环境中的对等计算机,或者可以充当云计算基础架构或环境中的服务器或客户端计算机。

所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够执行指定由所述机器做出的动作的指令集(按顺序或以其他方式执行)的任何机器。此外,尽管示出了单个机器,但是术语“机器”还可以包含单独地或联合地执行指令集(或多个指令集)以执行本文所讨论的方法中的任何一或多种方法的任何机器集合。

示例性计算机系统600可以包含经由总线645彼此通信的处理装置605、主存储器610(例如,ROM、闪速存储器、诸如SDRAM或Rambus RDRAM(RDRAM)之类的DRAM等)、静态存储器615(例如,闪速存储器、静态RAM(SRAM)等)和数据存储系统625。

处理装置605表示一或多个通用处理装置,诸如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实现其他指令集的处理器或实现指令集组合的处理器。处理装置605还可以是一或多个专用处理装置,诸如ASIC、FPGA、DSP、网络处理器等。处理装置605被配置为执行用于执行本文所讨论的操作和步骤的指令635。计算机系统600可以进一步包含网络接口装置620以通过网络640进行通信。

数据存储系统625可以包含机器可读存储介质630(也被称为计算机可读介质),在所述机器可读存储介质上存储了具体体现本文描述的方法或功能中的任何一或多者的一或多个指令集635或软件。指令635还可以在由计算机系统600执行所述指令期间完全或至少部分地驻留在主存储器610内和/或处理装置605内,所述主存储器610和处理装置605也构成机器可读存储介质。机器可读存储介质630、数据存储系统625和/或主存储器610可以对应于存储器子系统。

在一个实例中,指令635包含用于实施与多平面操作管理器650(例如,参考图1描述的多平面操作管理器150)相对应的功能性的指令。尽管将机器可读存储介质630示为单个介质,但是术语“机器可读存储介质”可以包含存储一或多个指令集的单个介质或多个介质。术语“机器可读存储介质”还可以包含能够存储或编码指令集以供机器执行并且使机器执行本公开的方法中的任何一或多种方法的任何介质。术语“机器可读存储介质”可以包含但不限于固态存储器、光学介质和磁介质。

已经以对计算机存储器内的数据位的操作的算法和符号表示来呈现前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员使用来最有效地将其工作实质传达给本领域其它技术人员的方式。算法在此并且通常被认为是导致期望结果的自洽操作序列。所述操作是需要物理地操纵物理量的那些操作。通常,尽管不是必须的,但是这些量采取能够被存储、组合、比较和以其它方式操纵的电或磁信号的形式。已经证明,有时原则上出于通用的原因将此类信号称为位、值、元素、符号、字符、项、数量等是方便的。

然而,应当牢记,所有这些或类似术语将与适当的物理量相关联并且仅仅是应用于这些量的方便标签。本公开可以指代计算机系统或类似的电子计算装置的动作和过程,所述计算机系统或类似的电子计算装置将被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和变换为被类似地表示为所述计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。

本公开还涉及一种用于执行本文的操作的设备。该设备可以被具体构造用于预期目的,或者它可以包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可以被存储在计算机可读存储介质中,所述计算机可读存储介质为诸如但不限于包含软盘、光盘、CD-ROM、磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光学卡的任何类型的磁盘或适合于存储电子指令的任何类型的介质,所有这些都各自耦合到计算机系统总线。

本文呈现的算法和显示与任何特定计算机或其它设备没有固有的关联。各种通用系统可以与根据本文的教导的程序一起使用,或者可以证明构造更专用的设备来执行所述方法是方便的。如下文描述中所阐述的,将出现用于各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应当理解,可以使用各种编程语言来实施如本文所述的本公开的教导。

本公开可以被提供作为计算机程序产品或软件,其可以包含上面存储有指令的机器可读介质,所述指令可以用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,诸如ROM、RAM、磁盘存储介质、光学存储介质、闪速存储器部件等。

在前述说明书中,已经参考本公开的特定示例性实例描述了本公开的实例。显而易见的是,在不脱离如所附权利要求中阐述的本公开的实例的更宽范围和精神的情况下,可以对其进行各种修改。因此,应以说明性意义而不是限制性意义来理解本说明书和附图。

相关技术
  • 完全多平面操作启用
  • 启用用户识别卡的系统及启用用户识别卡操作电压的方法
技术分类

06120113084602