专用块的动态预留空间分配的制作方法

文档序号:30498269发布日期:2022-06-22 11:19阅读:167来源:国知局
专用块的动态预留空间分配的制作方法

1.本公开的实施例总体上涉及存储器子系统,且更确切地说,涉及从存储器组件的存储区域块池动态分配一或多个块以用作专用块(purposed block)。


背景技术:

2.存储器子系统可包含一或多个存储数据的存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可使用将数据存储于存储器组件处及从存储器组件检索数据的存储器子系统。
附图说明
3.根据下文提供的详细描述和本公开的各种实施例的附图将更加全面地理解本公开。
4.图1a示出根据本公开的一些实施例的包含存储器子系统的实例计算环境。
5.图1b示出根据本公开的实施例的存储器子系统的块。
6.图1c示出根据本公开的实施例的数据条带。
7.图2a是根据本公开的一些实施例的用于从存储区域块池分配一或多个块以用作专用块的实例方法的流程图。
8.图2b是根据本公开的一些实施例的用于从预留空间(over provisioning)块池分配一或多个块以用作校验块的实例方法的流程图。
9.图3是根据本公开的一些实施例的图,示出了从存储区域块池全动态地分配一或多个块以用作专用块。
10.图4是根据本公开的一些实施例的图,示出了从存储区域块池部分动态地分配一或多个块以用作专用块。
11.图5是根据本公开的一些实施例的图,示出了从存储区域块池多相动态分配一或多个块以用作专用块。
12.图6示出计算机系统的实例机器,在所述计算机系统内可以执行用于使所述机器执行本文所论述的操作中的任何一或多个的一组指令。
具体实施方式
13.本公开的各方面涉及从存储器组件的存储区域块池动态分配一或多个块以用作专用块。存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置和存储器模块的实例在下文结合图1描述。一般来说,主机系统可使用包含一或多个存储数据的存储器装置的存储器子系统。主机系统可提供要存储在存储器子系统处的数据,并且可请求要从存储器子系统检索的数据。
14.存储器装置可以是非易失性存储器装置。非易失性存储器装置是一或多个裸片的封装。每一裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,与非
(nand)装置),每一平面由一组物理块组成。每一块由一组页组成。每一页由一组存储数据位的存储器单元组成。对于一些存储器装置,例如nand装置,块是可以擦除的最小区域,并且块内的页无法单独擦除。对于此类装置,每次执行一个块的擦除操作。块的页可含有有效数据、无效数据或不含数据。无效数据是在新版本的数据存储在存储器装置上被标记为过时的数据。有效数据是存储在存储器装置上的此类数据的最新版本。存储器子系统可基于例如从操作系统接收到的信息而将数据标记为无效。
15.块可具有一些含有有效数据的页和一些含有无效数据的页。为了避免等待块中的所有页都具有无效数据以便擦除和再次使用所述块,可以调用下文称为“垃圾收集”的算法,以允许所述块被擦除并再次用于写入操作。垃圾收集是一组包含例如以下的操作:选择含有有效和无效数据的块,选择所述块中含有有效数据的页,将所述有效数据复制到新位置(例如,另一块中的空闲页),将先前选定页中的数据标记为无效,并擦除选定块。
16.因为垃圾收集可在所述块擦除之前将有效数据写入到另一块,所以数据可以多次重写到存储器子系统处的不同块。存储器子系统中的数据的额外重写的量在本文中称为写放大。写放大可能会缩短存储器子系统的工作寿命。为了减少写放大,存储器子系统可包含超出在任何时候都可用于存储来自主机系统的数据的块的总数之外的一些额外块。此类额外块可被视为预留空间。由于试图释放块的垃圾收集导致数据在存储器子系统中被重写的次数减少,因此大量的预留空间可以显著减少写放大。
[0017]“存储区域块”可以指容纳额定存储器子系统容量(例如,驱动容量)和预留空间块的块池(例如,最小数目)。例如,如果存储器子系统的额定容量为256千兆字节(gb),那么存储区域块包含用于256gb的完整用户容量的块和预留空间块的池。正是从存储区域块池中动态地分配其它块作为校验块或其它“专用”块。在一些实施例中,从存储区域块分配作为专用块的块越多,分配作为预留空间块的块越少。在说明性实例中,存储区域块池包含1100个块。1000个块用作用户块以容纳265gb的数据容量,100个块用作预留空间块。
[0018]“专用块”可以指用于特定目的的块。专用块的实例可包含校验块、存储应用程序(如便笺簿应用程序)的临时数据或临时系统数据的块。在一些实施例中,分配用于特定目的的专用块的数目不是由瞬时使用(例如,在任何给定时间)决定的,而是由用于容纳在存储器子系统的寿命期间写入专用块的数据量x的块的数目决定的。
[0019]
校验块可以指存储校验数据的块。例如,可以跨多个节点写入用户数据条带。校验块可以至少临时地为特定用户数据条带存储校验数据。
[0020]
在一些常规存储器子系统中,在存储器子系统的寿命内使用的专用块总数在时间零被分配为制造默认值。分配的专用块用于存储写入存储器子系统的数据条带的专用数据。在相应数据条带的寿命内,专用数据存储在专用块中(例如,在相应数据条带存储在存储器子系统的整个时间内,专用数据存储在数据块中)。例如,如果在存储器子系统的寿命内使用10个校验块,那么在存储器子系统的操作开始时分配10个校验块。当数据写入数据条带时,校验数据将被创建并存储在校验块中,直到使用垃圾收集操作擦除数据条带的数据为止。在上述常规存储器子系统中,分配在存储器子系统的寿命内使用的专用块的总数会减少可用于执行垃圾收集操作的op的数量,这会增加写放大,并对存储器子系统的性能产生负面影响。
[0021]
本公开的各方面通过从存储区域块池动态地分配一或多个块以用作专用块(例
如,校验块)来解决上述挑战以及其它挑战。在一些实施例中,在任何给定时间所需要的专用块的数目小于在装置寿命中需要分配的专用块的总数。在一些实施例中,从存储器组件的存储区域块池分配一或多个块作为一组初始专用块。专用块用于存储专用数据,所述专用数据被存储为初始数据条带。在将初始数据(例如,专用数据)写入到初始数据条带之后,确定所述一组初始专用块中的块是否满足指示第一组专用块将被弃用的条件。例如,可以评估专用块的耐久性状态的指示,以确定专用块仍然可靠还是已经达到寿命终点状态。响应于确定块将被弃用,从存储区域块池分配一或多个其它块给一组后续专用块,并且所述一组初始专用块被弃用。所述一组后续专用块可用于存储用于后续数据条带的专用数据。
[0022]
在一些实施例中,存储器子系统可使用“临时校验方案”操作。可将校验数据“临时”存储在校验块处,而不是在相应数据条带的整个寿命内保持校验数据。在数据条带的相应数据进行垃圾收集之前,校验块可再次用于存储后续数据条带的校验数据。例如,特定块处的位错误通常来源于所述特定块上的编程操作。举例来说,块的页可以编程。在块开放(例如,块尚未被全部写入)时,可以编程块的另一页,这可能会干扰或损坏同一块的先前编程页的位。临时校验方案可将块的校验数据一直存储到块的内容被验证为止。一旦块的数据被验证,就不再需要校验数据,并且相应校验块可以再次用于存储另一数据条带的校验数据。举例来说,块可全部用数据写入,随后关闭。在关闭块之后,块的数据可被读取并与存储在易失性存储器中的实际数据比较。如果块处不存在不可校正的位错误,那么相关联的校验数据可以“刷新”,并且相应校验块可以再次使用。
[0023]
在一些实施例中,存储区域块池(例如,op块池)在多位模式(例如,tlc模式)或单位模式中操作,并且专用块在单位模式(例如,slc模式)中操作。当专用块被弃用时,从在多位模式或单位模式中操作的存储区域块池(例如,op块池)分配新的校验块。然后,所述新的专用块在单位模式中操作,其耐久性大于在多位模式中操作的块。在一些实施例中,存储区域块池中的某一块可在单位模式中操作,存储区域块池中的其它块可在多位模式中操作。
[0024]
如本文所描述,专用块的动态分配可通过允许在存储器子系统的寿命的至少一部分内分配更多块用于预留空间从而减少写放大并提高存储器子系统的性能来提高存储器子系统的存储器子系统性能。另外,专用块的动态分配可通过在存储器子系统的寿命的至少一部分内向用户空间提供额外数据块从而增加存储器子系统的用户空间容量来提高存储器子系统性能。
[0025]
图1a示出根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112a到112n,下文还称为“存储器装置”。存储器组件112a到112n可以是易失性存储器组件、非易失性存储器组件或它们的组合。存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)和非易失性双列直插式存储器模块(nvdimm)。
[0026]
计算环境100可包含耦合到存储器系统的主机系统120。存储器系统可包含一或多个存储器子系统110。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用存储器
子系统110以例如将数据写入到存储器子系统110和从存储器子系统110读取数据。如本文所使用,“耦合到”大体上是指组件之间的连接,连接可为间接通信连接或直接通信连接(例如,无中间组件),无论是有线的还是无线的,包含例如电学、光学、磁性等连接。
[0027]
主机系统120可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、嵌入式计算机(例如,包含在运载工具、工业设备或网络连接的商业装置中的一个嵌入式计算机),或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可以从存储器子系统110读取数据或向其写入数据。主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)等。物理主机接口可用于在主机系统120和存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步使用nvm快速(nvme)接口存取存储器组件112a到112n。物理主机接口可提供用于在存储器子系统110和主机系统120之间传递控制、地址、数据和其它信号的接口。
[0028]
存储器组件112a到112n可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(nand)型快闪存储器。存储器组件112a到112n中的每一个可包含一或多个存储器单元阵列,所述存储器单元例如单层级单元(slc)、多层级单元(mlc)、三层级单元(tlc)或四层级单元(qlc)。在一些实施例中,特定存储器组件可包含存储器单元的slc部分和另一类型(例如,mlc、tlc、qlc)部分。存储器单元中的每一个可存储供主机系统120使用的一或多个数据位(例如,数据块)。尽管描述的是例如nand型快闪存储器的非易失性存储器组件,但是存储器组件112a到112n可以基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112a到112n可以是但不限于随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁性随机存取存储器(mram)、或非(nor)快闪存储器、电可擦除可编程只读存储器(eeprom)和非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可基于体电阻的变化与可堆叠交叉网格化数据存取阵列一起执行位存储。另外,相比于许多基于快闪的存储器,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器单元可以在先前不擦除非易失性存储器单元的情况下进行编程。此外,存储器组件112a到112n的存储器单元可分组为存储器单元群组、字线、字线群组(例如,成群组的多个字线),或页,所述页可以指用于存储数据的存储器组件的单元。在一些类型的存储器(例如,nand)中,页可以分组以形成块。
[0029]
存储器系统控制器115(下文称为“控制器”)可与存储器组件112a到112n通信以执行操作,例如在存储器组件112a到112n处读取数据、写入数据或擦除数据和其它这类操作。控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。控制器115可包含配置成执行存储在本地存储器119中的指令的处理器(例如,处理装置)117。在所示出的实例中,控制器115的本地存储器119包含嵌入式存储器,其配置成存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处理存储器子系统110和主机系统120之间的通信。在一些实施例中,本地存储器119可包含存储存储器指标、所获取数据等的存储器寄存器。本地存储器119
还可包含用于存储微码的只读存储器(rom)。尽管图1中的实例存储器子系统110已被示出为包含控制器115,但是在本公开的另一个实施例中,存储器子系统110无法包含控制器115,而是可以依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
[0030]
一般来说,控制器115可从主机系统120接收命令或操作,并且可所述命令或操作将转换成指令或适当命令以实现对存储器组件112a到112n的所需存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作,及与存储器组件112a到112n相关联的逻辑地址(例如,逻辑块地址(lba))和物理地址(例如,物理块地址)之间的地址转换。控制器115可进一步包含主机接口电路系统,用于经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成存取存储器组件112a到112n的命令指令,并且将与存储器组件112a到112n相关联的响应转换成用于主机系统120的信息。
[0031]
存储器子系统110还可包含没有示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从控制器115接收地址并对所述地址进行解码以存取存储器组件112a到112n。
[0032]
存储器组件112a到112n中的任一个可包含媒体控制器(例如,媒体控制器130a和媒体控制器130n),用于管理存储器组件112的存储器单元,与存储器子系统控制器115通信,以及执行从存储器子系统控制器115接收到的存储器请求(例如,读取或写入)。
[0033]
存储器子系统110包含执行本文所述的操作的块分配组件113。在一些实施例中,块分配组件113可以是主机系统120、控制器115、存储器组件112a-112n、操作系统或应用程序的部分。块分配组件113可从一或多个存储器组件112a-112n的存储区域块池动态地分配一或多个块以用作专用块。例如,控制器115可包含处理器117(处理装置),其配置成执行存储在本地存储器119中的指令以用于执行本文所述的操作。
[0034]
在一些实施例中,存储器组件112a到112n可以是受管理存储器装置(例如,受管理nand),其为与本地控制器(例如,媒体控制器130)组合用于相同存储器装置封装内的存储器管理的原始存储器装置。媒体控制器130可包含块分配组件113。
[0035]
图1b示出根据本公开的实施例的存储器子系统的块。在一些实施例中,块120可在逻辑上表示存储器子系统(例如,存储器子系统110)的所有块。在一些实施例中,块120可以是存储器子系统110的一或多个存储器组件112a-112n的部分。块120可包含存储区域块128和专用块124的池。在一些实施例中,存储区域块128可包含用户块122的池和预留空间块126的池。根据本公开的方面,可以根据本公开的方面从存储区域块124动态地分配一或多个块到专用块124。专用块124的实例可以是校验块、与应用程序(如便笺簿应用程序)相关的临时数据或临时系统数据的块。
[0036]
在一些实施例中,存储器子系统中的存储器组件可包含存储器单元。存储器单元可包含一或多个存储器页(在本文中也被称为“页”),用于存储对应于从主机系统接收到的数据的二进制数据的一或多个位。存储器组件的一或多个存储器单元可分组在一起以形成块。例如,存储器组件的一或多个页可分组在一起以形成块。一或多个块可分组在一起以形成存储器组件的平面,以便允许在每一平面上进行并行操作(例如,并行性)。物理裸片可包
含一或多个平面。物理存储器组件(例如,在其自身的带有外部引脚或电触点的离散物理封装中的存储器组件)可具有一或多个物理裸片。
[0037]
在一些实施例中,单层级单元(slc)可每存储器单元仅存储一个位,而多层级单元(mlc)是能够存储超过单个信息位的存储器单元。应注意,存储器单元的状态可以编程,并且存储器单元的状态可通过比较存储器单元的读取电压与一或多个读取电平阈值来确定。也就是说,利用slc nand快闪技术,每个单元可以两个状态之一存在,每单元存储一个信息位,而mlc nand快闪存储器每单元具有四个或更多个可能状态,因此每一基于mlc的单元可每单元存储两个或更多个信息位。可能状态的数目越多,分离状态的裕量(例如,谷值裕量或电压范围)就越小。存储器装置可包含三层级单元(tlc)存储器。在tlc存储器中,存储器单元每单元存储三个信息位,并具有总共八个电压状态。存储器装置可包含四层级单元(qlc)存储器。在qlc存储器中,每一存储器单元可存储四个信息位,且具有十六个电压状态。例如,在qlc存储器中,存储器单元可存储对应于使用所述十六个电压状态从主机系统接收到的数据的四个数据位(例如,1111、0000、1101等)。存储器组件可在一或多个模式中操作。例如,存储器组件的一些存储器单元可在单位模式(例如,slc模式)中操作,而其它存储器单元在多位模式(例如,tlc模式)中并行操作。
[0038]
在一些实施例中,每个类型的存储器单元可具有用于存储数据的不同耐久性。存储器组件的耐久性是在数据不再可靠地存储在存储器组件的存储器单元处之前在存储器单元上执行的写入操作的数目或编程/擦除(pe)循环的数目。例如,具有较低数据密度的slc存储器单元可具有80xn个pe循环的耐久性阈值,而具有较高数据密度的tlc存储器单元可具有4xn个pe循环的耐久性阈值。
[0039]
在一些实施例中,垃圾收集是识别哪些块含有不需要的数据(即,过期数据)并将数据写入其它地方使得块可以被擦除的过程。垃圾收集操作的效率通常可为超出作为用户空间显示的存储器组件的逻辑大小之外的存储器组件的物理大小(例如,预留空间或op)的函数。例如,存储器子系统可具有64千兆字节(gb)的用户空间(也称为“用户块”)。除了64gb的用户块之外,可包含额外4%-5%(例如,3gb)的存储器作为用户块的补充,并用作预留空间块。在垃圾收集操作期间,额外op有助于减少垃圾收集工作并减少后续pe循环。例如,对于显示128gb的用户空间大小的存储器组件,如果物理大小是140gb,那么op是12gb。在此类例子中,垃圾收集操作可能没有具有相同用户空间大小的组件效率高。
[0040]
在一些实施例中,数据条带化可以指通过将逻辑连续的数据分段使得连续片段存储在不同存储装置或相同存储装置的不同部分(例如,相同存储装置的不同平面)上来存储数据的技术。举例来说,块条带可包含块逻辑群组,其中一或多个存储器组件的每一平面的不超过一个块是块条带的部分。数据条带化允许性能改进,至少是因为数据条带化允许并行写入和读取数据,这增加了吞吐量并提高了数据处理的性能。数据条带的可靠性可以通过包含校验来增强。校验可以指错误检测技术,并且可包含错误检测码。校验,例如存储在一或多个校验块上的校验,可允许在数据条带处检测或校正一或多个错误。校验可与每个数据条带相关联。例如,块条带可以使用一或多个校验块来存储块条带的校验数据。
[0041]
数据条带化技术的实例是独立nand冗余阵列(rain)操作,用来写入一或多个rain条带。rain可以指用于产生和向nand媒体写入数据的数据保护方案。rain条带可与rain校验相关联。例如,rain条带的数据可跨一或多个存储器组件的多个平面写入到多个用户块。
可对rain条带的每一连续块的数据执行异或(xor)操作,直到rain条带关闭(例如,条带的所有数据都已经写入)为止。举例来说,对rain条带的第一用户块和第二用户块执行xor操作以产生第一xor值。在写入rain条带的第三用户块之后,对第一xor值和第三用户块执行xor操作以产生第二xor值,以此类推。
[0042]
在一些常规存储器子系统中,在存储器子系统的寿命内使用的校验块总数在时间零被分配为制造默认值。分配的校验块用于存储写入存储器子系统的数据条带的校验数据。在相应数据条带的寿命内,校验数据存储在校验块中(例如,在相应数据条带存储在存储器子系统的整个时间内,校验数据存储在数据块中)。例如,如果在存储器子系统的寿命内使用10个校验块,那么在存储器子系统的操作开始时分配10个校验块。在上述常规存储器子系统中,分配在存储器子系统的寿命内使用的校验块的总数会减少可用于执行垃圾收集操作的op的数量,这会增加写放大,并对存储器子系统的性能产生负面影响。
[0043]
本公开的各方面通过从存储区域块池动态地分配一或多个块以用作专用块来解决上述挑战以及其它挑战。在一些实施例中,从存储器组件的存储区域块池分配一或多个块作为一组初始专用块。专用块用于存储初始数据的专用数据,所述初始数据被存储为初始数据条带。在将初始数据写入到初始数据条带之后,确定所述一组初始专用块中的块是否满足指示第一组专用块将被弃用的条件。例如,可以评估专用块的耐久性状态的指示,以确定专用块仍然可靠还是已经达到寿命终点状态。响应于确定块将被弃用,从存储区域块池分配一或多个其它块给一组后续专用块,并且所述一组初始专用块被弃用。所述一组后续专用块可用于存储用于后续数据条带的专用数据。
[0044]
在一些实施例中,存储器子系统可使用“临时校验方案”操作。可将校验数据“临时”存储在校验块处,而不是在相应数据条带的整个寿命内保持校验数据。在数据条带的相应数据进行垃圾收集之前,校验块可再次用于存储后续数据条带的校验数据。例如,特定块处的位错误通常来源于所述特定块上的编程操作。举例来说,块的页可以编程。在块开放(例如,块尚未被全部写入)时,可以编程块的另一页,这可能会干扰同一块的先前编程页的位。临时校验方案可将块的校验数据一直存储到块的内容被验证为止。一旦块的数据被验证,就不再需要校验数据,并且相应校验块可以再次用于存储另一数据条带的校验数据。举例来说,块可全部用数据写入,随后关闭。在关闭块之后,块的数据可被读取并与存储在易失性存储器中的实际数据比较。如果块处不存在不可校正的位错误,那么相关联的校验数据可以“刷新”,并且相应校验块可以再次使用。
[0045]
在一些实施例中,存储区域块池(例如,op块池)在多位模式(例如,tlc模式)或单位模式中操作,并且专用块在单位模式(例如,slc模式)中操作。当专用块被弃用时,从在多位模式中操作的存储区域块池分配新的专用块。然后,所述新的专用块在单位模式中操作,其耐久性大于在多位模式中操作的块。
[0046]
如本文所描述,专用块的动态分配可通过允许在存储器子系统的寿命的至少一部分内分配更多块给存储区域池从而减少写放大并提高存储器子系统的性能来提高存储器子系统的存储器子系统性能。另外,专用块的动态分配可通过在存储器子系统的寿命的至少一部分内向用户空间提供额外数据块从而增加存储器子系统的用户空间容量来提高存储器子系统性能。
[0047]
可注意到,本公开根据块描述实施例是出于说明的目的而不是限制。本公开的各
方面可应用于存储器组件的任何大小的数据单元。还可注意到,出于说明的目的而不是限制,本公开将实施例描述为从存储区域块池分配专用块。也可从其它域分配校验块。可注意到,本文所述的“组”可以指一或多个项。例如,一组专用块可包含一或多个块。
[0048]
在操作模式中(例如,当在现场操作时),本公开的各方面可以动态地运行以延长存储器子系统的存储器组件的使用寿命。如本文所使用,术语“动态”可以指在对应装置、系统、存储器子系统或实施例的操作、使用或部署期间及在运行制造商或第三方固件之后或期间进行的过程、功能、操作或实施方案。动态进行的过程、功能、操作或实施方案可发生在设计、制造和初始测试、设置或配置之后与其相继进行(例如,在测试模式之后)。
[0049]
图1c示出根据本公开的实施例的数据条带。数据条带130示出了8个数据条带,标记为条带1-8。条带标签右侧的一行块指示属于相应条带的块。例如,条带1包含节点132a-132f的第一行块和节点132g的第一专用(例如,校验)块。节点132a表示用于数据条带化并且可针对不同条带化技术而不同的存储器区段。例如,节点可表示平面、裸片、存储器组件。在另一实例中,特定条带化技术可在不同平面上将数据条带化。节点132a-132g可表示一或多个存储器组件处的不同平面。在另一实例中,特定条带化技术可在不同裸片上将数据条带化。节点132a-132g可表示一或多个存储器组件处的不同裸片。在一些实施例中,节点132a-132g可处于相同存储器子系统或不同存储器子系统。节点132g示出一些数据条带(例如,数据条带1-2)具有相应的专用(例如,校验)块,一些数据条带(例如,条带3-8)不具有相应的专用(例如,校验)块,以说明上文关于图1b所描述的临时校验方案。
[0050]
图2a和图2b分别示出方法200和方法250。方法200或方法250可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200或方法250由图1a的块分配组件113执行。尽管以特定次序示出,除非另外指定,否则操作次序可以修改。因此,所示实施例应理解为仅作为实例,并且所示操作可以不同次序执行,一些操作可并行执行。另外,在各种实施例中,可以省略一或多个操作。因此,并非在每个实施例中都需要全部操作。其它操作流是可能的。在一些实施例中,可使用不同操作。
[0051]
图2a是根据本公开的一些实施例的用于从存储区域块池分配一或多个块以用作专用(例如,校验)块的实例方法的流程图。
[0052]
在操作205处,执行方法200的处理逻辑从存储器组件的存储区域块池分配一或多个块到第一组专用块。
[0053]
在操作210处,处理逻辑执行在存储器组件的用户块处将第一数据写入到第一数据条带的第一写入操作。在一些实施例中,第一组专用块用于存储与第一写入操作相关联的第一数据条带的专用(例如,校验)数据。
[0054]
在一些实施例中,为了执行在存储器组件的用户块处将第一数据写入到第一数据条带的第一写入操作,处理逻辑执行第一写入操作中在存储器组件的用户块处将第一数据的第一部分写入到第一数据条带中的一个数据条带的第一写入操作。第一数据条带中的所述数据条带的专用(例如,校验)数据存储在第一组专用块处。
[0055]
在一些实施例中,处理逻辑验证已在存储器组件的用户块处写入的第一数据条带中的所述数据条带不存在不可校正的位错误。在一些实例中,不可校正的位错误是无法通
过错误校正技术校正的位值错误(例如,读取逻辑“1”而不是逻辑“0”,反之亦可),例如ecc。在一些实施例中,处理逻辑验证已在存储器组件的用户块处写入的第一数据条带中的所述数据条带不存在位错误。例如,如果在所述数据条带中检测到任何位错误或阈值数目的位错误,那么处理逻辑不验证所述数据条带。可注意到,在一些实施例中,验证可在更高粒度的级别下执行。举例来说,处理逻辑可验证数据条带的一或多个块。在一些实施例中,在所述数据条带开放(例如,在它关闭之前)时或在所述数据条带关闭之后,处理逻辑可验证所述数据条带的一或多个块。在一些实施例中,执行验证操作以验证所述数据条带的一或多个块(例如,或整个数据条带)。验证操作可读取在存储器组件的用户块处写入的数据,并比较所述数据与实际用户数据。实际用户数据可存储在易失性存储器(例如,缓冲器)中,并用于在存储器组件处写入用户数据。开放的数据条带可以指正用于写入操作的数据条带,其中所述条带含有一或多个开放块。关闭的数据条带可以指已被完全写入的数据条带。开放块可以指正用于写入操作的块,但数据尚未完全写入到所述块(例如,这个块的一或多个页尚未编程)。关闭块可以指已被完全写入的块。
[0056]
在一些实施例中,响应于验证已在存储器组件的用户块处写入的第一数据条带中的所述数据条带不存在不可校正的位错误,处理逻辑执行擦除第一组专用块的擦除操作。在一些实施例中,处理逻辑执行第一写入操作中在存储器组件的用户块处将第一数据的第二部分写入到第一数据条带中的另一数据条带的第二写入操作。在执行第一组专用块处的擦除操作之后,将所述另一数据条带的专用(例如,校验)数据写入并存储在第一组专用块处。
[0057]
在一些实施例中,在存储器组件的用户块处将第一数据写入到第一数据条带的第一写入操作是独立nand冗余阵列(rain)操作。与rain条带相关联的所述一或多个专用块可以是rain校验块。
[0058]
在一些实施例中,第一组专用块包含在任何给定时间可存储最大数目的开放用户块的专用(例如,校验)数据的最小数目个专用块(例如,临时校验方案)。在一些实施例中,第一组专用块包含数目比在存储器组件的寿命内使用的专用块总数少的专用块。
[0059]
在操作215处,处理逻辑确定第一组专用块中的块是否满足指示第一组专用块将被弃用的条件。如果处理逻辑确定第一组专用块中的块满足所述条件,那么处理逻辑前进到操作220。如果处理逻辑确定第一组专用块中的块不满足所述条件,那么处理逻辑继续进行到操作210。
[0060]
在一些实施例中,为了确定第一组专用块中的块是否满足所述条件,处理逻辑确定与第一组专用块相关联的原始位错误率(rber)。处理逻辑确定与第一组专用块相关联的rber是否满足阈值(例如,大于或等于rber阈值)。在一些实施例中,响应于确定与第一组专用块相关联的rber满足所述阈值,处理逻辑弃用第一组专用块。例如,处理逻辑可使所述专用块无法在未来使用,使得所述块不再用于存储新数据。rber对应于存储在数据块处的数据所经受的每单位时间的位错误数目。
[0061]
在一些实施例中,为了确定第一组专用块中的块是否满足所述条件,处理逻辑确定与第一组专用块相关联的编程-擦除(pe)循环的数目。编程-擦除循环可以指数据写入到存储器组件并随后擦除的一或多个操作(例如,编程或擦除操作)。处理逻辑确定pe循环是否满足阈值(例如,大于或等于pe循环的阈值数目)。响应于确定pe循环的数目满足所述阈
值,处理逻辑可弃用第一组专用块。
[0062]
在一些实施例中,为了确定第一组专用块中的块是否满足所述条件,处理逻辑可确定指示第一组专用块的耐久性状态的度量。处理逻辑确定所述度量是否满足阈值(例如,大于或等于耐久性阈值)。响应于确定所述度量满足所述阈值,处理逻辑可弃用第一组专用块。块可具有有限的寿命。耐久性可以指存储器单元(例如,块)的使用寿命,在所述使用寿命内,所述存储器单元可以可靠地写入(例如,如果写成“0”或“1”,那么存储器组件重新培训所述状态)。耐久性状态可指示存储器单元的操作状态处于耐久性范围内的何处(例如,新的、接近弃用的、弃用时间)。许多度量可用于指示耐久性状态,包含但不限于rber、pe循环计数、写入的数据总量等。
[0063]
在操作220处,处理逻辑从存储器组件的存储区域块池分配一或多个其它块到第二组专用块。在一些实施例中,从存储区域块池分配其它块中的一或多个是响应于确定第一组专用块中的块满足指示第一组专用块将被弃用的条件。在一些实施例中,响应于确定第一组专用块中的块满足所述条件,处理逻辑指示第一组专用块中的块将被弃用。
[0064]
在操作225处,处理逻辑执行在存储器组件的用户块处将第二数据写入到第二数据条带的第二写入操作。第二组专用块用于存储与第二写入操作相关联的第二数据条带的专用(例如,校验)数据。
[0065]
在一些实施例中,在存储器组件的用户块处将第二数据写入到第二数据条带的第二写入操作是用于写入rain条带的rain操作。
[0066]
在一些实施例中,写入第一数据条带或第二数据条带的存储器组件的用户块在多位模式(xlc)(例如,大于1位,如mlc、tlc、qlc)中操作。在一些实施例中,第一组专用块中的块或第二组专用块中的所述其它块在单位模式(例如,slc模式)中操作。在一些实施例中,存储区域块池在多位模式中操作。
[0067]
方法200的操作进一步关于图3、4和5描述。
[0068]
图2b是根据本公开的一些实施例的用于从预留空间块池分配一或多个块以用作校验块的实例方法的流程图。还可注意到,方法200的操作和元件还可应用于关于图2b描述的操作或与其结合使用。
[0069]
在操作255处,执行方法250的处理逻辑从存储器组件的预留空间块池分配一或多个块到第一组校验块。
[0070]
在一些实施例中,为了从存储器组件的预留空间块池分配所述一或多个块到第一组校验块,处理逻辑可从预留空间块池分配多个块,块的数目等于在任何给定时间可存储最大数目的开放用户块的校验数据的校验块的最小数目(例如,临时校验方案)。从预留空间块池分配数目等于在任何给定时间可存储最大数目的开放用户块的校验数据的校验块的最小数目的块进一步关于图3和4描述。
[0071]
在一些实施例中,为了从存储器组件的预留空间块池分配所述一或多个块到第一组校验块,处理逻辑从预留空间块池分配多个块,块的数目大于在任何给定时间可存储最大数目的开放用户块的校验数据的校验块的最小数目且小于在存储器组件的寿命内将要使用的校验块的总数。前述实施例进一步关于图5描述。
[0072]
在一些实施例中,第一组校验块包含数目比在存储器组件的寿命内使用的校验块总数少的校验块。前述实施例进一步关于图3、4和5描述。
[0073]
在操作260处,处理逻辑执行在存储器组件的用户块处将第一数据写入到第一数据条带的第一写入操作。在一些实施例中,第一组校验块用于存储与第一写入操作相关联的第一数据条带的校验数据。
[0074]
在一些实施例中,在存储器组件的用户块处将第一数据写入到第一数据条带的第一写入操作是独立nand冗余阵列(rain)操作,用于写入多个rain条带。
[0075]
在一些实施例中,为了执行在存储器组件的用户块处将第一数据写入到第一数据条带的第一写入操作,处理逻辑执行第一写入操作中在存储器组件的用户块处将第一数据的第一部分写入到第一数据条带中的一个数据条带的第一写入操作。第一数据条带中的所述数据条带的校验数据存储在第一组校验块处。
[0076]
在一些实施例中,处理逻辑验证已在存储器组件的用户块处写入的第一数据条带中的所述数据条带不存在不可校正的位错误。在一些实施例中,处理逻辑验证已在存储器组件的用户块处写入的第一数据条带中的所述数据条带不存在位错误。例如,如果在所述数据条带中检测到任何位错误或阈值数目的位错误,那么处理逻辑不验证所述数据条带。可注意到,在一些实施例中,验证可在更高粒度的级别下执行。举例来说,处理逻辑可验证数据条带的一或多个块。在一些实施例中,在所述数据条带开放(例如,在它关闭之前)时,处理逻辑可验证所述数据条带的一或多个块。在一些实施例中,执行验证操作以验证所述数据条带的一或多个块(例如,或整个数据条带)。
[0077]
在一些实施例中,响应于验证已在存储器组件的用户块处写入的第一数据条带中的所述数据条带不存在不可校正的位错误,处理逻辑执行擦除第一组校验块的擦除操作。在一些实施例中,处理逻辑执行第一写入操作中在存储器组件的用户块处将第一数据的第二部分写入到第一数据条带中的另一数据条带的第二写入操作。在执行第一组校验块处的擦除操作之后,将所述另一数据条带的校验数据存储在第一组校验块处。
[0078]
在一些实施例中,在执行操作260之后且在执行操作265之前,处理逻辑可确定第一组校验块是否满足指示第一组校验块将被弃用的条件。响应于确定第一组校验块满足所述条件,处理逻辑可指示第一组校验块中的块将被弃用,并从存储器组件的预留空间块池分配一或多个块到第三组校验块。处理逻辑可执行在存储器组件的用户块处将第三数据写入到第三多个数据条带的第三多个写入操作。第三组校验块用于存储与第三写入操作相关联的第三数据条带的校验数据。前述实施例进一步关于图3和4描述。
[0079]
在一些实施例中,为了确定第一组校验块是否满足指示第一组校验块将被弃用的条件,处理逻辑确定与第一组校验块相关联的原始位错误率(rber)。处理逻辑确定与第一组校验块相关联的rber是否满足阈值。响应于确定与第一组校验块相关联的rber满足所述阈值,处理逻辑弃用第一组校验块。
[0080]
在操作265处,处理逻辑确定存储器组件的用户块是否满足对应于用户块的耐久性状态的阈值。在一些实施例中,响应于确定存储器组件的用户块满足对应于用户块的耐久性状态的阈值,处理逻辑前进到操作270。在一些实施例中,响应于确定存储器组件的用户块不满足对应于用户块的耐久性状态的阈值,处理逻辑可返回到操作260,以执行第一写入操作中的额外写入操作。
[0081]
在一些实施例中,为了确定存储器组件的用户块是否满足对应于用户块的耐久性状态的阈值,处理逻辑可确定指示用户块的耐久性状态的度量。处理逻辑确定所述度量是
否满足阈值(例如,大于或等于耐久性阈值)。
[0082]
确定存储器组件的用户块是否满足对应于用户块的耐久性状态的阈值进一步关于图4和5描述,并在上文关于图2a描述。
[0083]
在操作270处,处理逻辑从预留空间块池分配块。在一些实施例中,处理逻辑从预留空间块池分配块到第二组校验块,块的数目至少等于在存储器组件的寿命内使用的校验块总数中剩余数目的校验块。使用在存储器组件的寿命内使用的校验块总数中剩余数目的校验块的实施例进一步关于图4和5描述。
[0084]
在操作275处,处理逻辑执行在存储器组件的用户块处将第二数据写入到第二数据条带的第二写入操作。在一些实施例中,第二组校验块用于存储与第二写入操作相关联的第二数据条带的校验数据。
[0085]
在一些实施例中,在存储器组件的用户块处将第二数据写入到第二数据条带的第二写入操作是用于写入多个rain条带的rain操作。
[0086]
在一些实施例中,写入第一数据条带或第二数据条带的存储器组件的用户块在多位模式(xlc)(例如,大于1位,如mlc、tlc、qlc)中操作。在一些实施例中,第一组校验块中的块或第二组校验块中的所述其它块在单位模式(例如,slc模式)中操作。在一些实施例中,预留空间块池在多位模式中操作。
[0087]
图3、4和5分别示出图300、400和500。图300、400和500示出表示pe循环的竖轴,其中pe循环从下到上增加。图300、400和500示出表示总写入字节(tbw)的横轴。tbw表示在存储器组件或存储器子系统的寿命期间写入到存储器单元(例如块)的总数。
[0088]
出于说明的目的而不是限制,图300、400和500将使用以下实例进行描述。如上文所提到,存储器子系统可使用临时数据保护技术(例如临时rain技术)操作。在任何给定时间(例如,任何给定时刻)使用的专用块(例如,slc校验块)的最小数目可由在任何给定时间的开放用户块(例如,存储区域块)的最大数目决定。在一个实例中,存储器子系统可使用8平面并行性,并且例如rain的数据保护技术可覆盖单个平面故障。用户块:校验块的比率是8:1。如果在任何给定时间存在两个开放tlc块(例如,在tlc模式中操作的用户块),那么tlc块将使用2/8tlc块校验大小。校验块可在slc模式中操作,并且用户块可在tlc模式中操作,从而转换到最小数目的校验块,等于3*2/8个slc块(例如,在当前实例中不到1个slc块)。一个块(例如,在slc模式中操作)表示在任何给定时间使用的最小数目的校验块(例如,在任何给定时间可存储最大数目的开放用户块的校验数据的最小数目的校验块)。可注意到,在tlc模式中操作的用户块是出于说明的目的使用的,而不是为了限制。存储器可在任何模式(例如,任何多位模式)中操作用户块。在一些例子中,用户块可在单位模式中操作。还可注意到,在slc模式中操作的校验块是出于说明的目的使用的,而不是为了限制。在一些例子中,校验块可在多位模式中操作。
[0089]
可确定在存储器子系统的寿命期间使用的校验块的总数,例如slc校验块的总数。在当前实例中,64gb存储器子系统可具有64兆兆字节(tb)的tbw规范。垃圾收集写放大是2,这使得垃圾收集数据等于128tb。在存储器子系统的寿命内写入到存储器子系统的总用户数据等于194tb(例如,64tb的用户数据和128tb的垃圾收集数据)。在存储器子系统的寿命期间写入的总校验数据量是194tb/8,大致为24tb。假设slc耐久性是80,000个pe循环,在存储器子系统的寿命内校验数据的大小大致为24tb/80k=0.3gb(在slc模式中)或0.9gb(在
tlc模式中),大致为64gb存储器子系统的1.5%。假设存储器子系统中存在700个块,存储器子系统的1.5%等于10个块。这10个块表示在存储器组件(或存储器子系统)的寿命内要使用的校验块的总数。
[0090]
在当前实例中,如上文所提到,在存储器组件(或存储器子系统)的寿命内要使用的校验块的总数是10个块。在任何给定时间可存储最大数目的开放用户块的校验数据的校验块的最小数目是1个校验块。tlc耐久性是2k个pe循环。slc耐久性是80k个pe循环。在执行n个tlc pe循环之后,块能够进行80k个slc pe循环。图300、400和500中的一或多个的n的值可不同。
[0091]
可注意到,出于说明的目的而不是限制,校验块在本文中描述为从存储区域块池分配。在一些实施例中,校验块可从用户块分配。
[0092]
图3是根据本公开的一些实施例的图,示出了从存储区域块池全动态地分配一或多个块以用作专用块。关于图300继续上述实例,在执行2k个tlc pe循环之后,块能够进行80k个slc pe循环,完全使用的tlc块仍可用于全slc耐久性。300示出在任何给定时间分配的最小数目的专用块(例如,slc校验块)(例如,1个slc校验块)。图300还示出当分配的专用块(例如,一组专用块)命中耐久性极限(例如,80k个pe循环)时,弃用专用块,并从tlc池(例如存储区域块池)分配新块(例如,新的一组专用块)。在图300中,存储器子系统可每1/10的tbw消耗1个slc专用块。在时间零的有效预留空间损失是0.14%,逐渐发展到存储器组件(或存储器子系统)的寿命终点处的1.4%。
[0093]
在图300中,线305表示tbw内存储区域块池和用户块的tlc pe循环的数目。从线305延伸的带圆圈的竖直线表示专用块从存储区域块池的分配。每一专用块在不同时间分配,时间表示为分配专用块的tbw。专用块用于存储数据条带的专用数据,直到它达到80k个pe循环的耐久性极限为止。在专用块达到耐久性极限之后,专用块被弃用,并从存储区域块池选择新的专用块来存储新数据条带的专用(例如,校验)数据。
[0094]
在下文提供表1,帮助说明图300。
[0095]
tbwtlc p/e循环slc校验块总数据块校验影响0%016990.14%10%20026980.29%20%40036970.43%30%60046960.57%40%80056950.71%50%100066940.86%60%120076931.00%70%140086921.14%80%160096911.29%90%1800106901.43%100%2000
ꢀꢀꢀ
[0096]
(表1)
[0097]
在tbw 0%(例如,时间零),从存储区域块池分配专用块(例如,一组校验块,校验块1)。存储区域块池(例如,预留空间块池)和用户块在tlc模式中操作。因为第一专用块在
时间零分配,专用块执行了零个tlc pe循环。在slc模式中,专用块可一直使用至专用块的耐久性极限,例如为80k个pe循环。在当前实例中,在tbw 0%,存储器组件(或存储器子系统)的700个块(例如,总块)中的一个块被分配用于存储专用数据,专用影响为总块的0.14%。可以再次注意到,在当前实例中,1个专用块是在任何给定时间使用的最小数目的专用块。
[0098]
在tbw 10%,在执行第一写入操作(例如,编程和擦除)之后,确定专用块已满足指示专用块将被弃用的条件。例如,在slc模式中,校验块1可一直使用至校验块的耐久性极限,例如为80k个pe循环。响应于确定专用块已满足指示耐久性状态的条件,弃用专用块1,并从存储区域块池分配新的专用块(例如,校验块2)。在tbw 10%,分配的专用块2已执行200个tlc pe循环作为存储区域块池的部分。tbw 10%处的专用影响是总块的0.29%。
[0099]
类似地,在tbw 20%,在执行第二写入操作之后,确定专用块2已满足指示专用块将被弃用的条件。例如,在slc模式中,专用块2可一直使用至专用块的耐久性极限,例如为80k个pe循环。响应于确定专用块已满足指示耐久性状态的条件,弃用专用块2,并从存储区域块池分配新的专用块(例如,专用块3)。在tbw 20%,分配的专用块2已执行400个tlc pe循环作为存储区域块池的部分。tbw 20%处的专用影响是总块的0.43%。
[0100]
可针对tbw 30%-90%重复操作。在100%tbw,已分配10个处于slc模式的专用块用于存储专用数据。每10%的tbw消耗一个处于slc模式的专用块。最后一个专用块将已执行1.8k个tlc pe循环和80k个slc pe循环。额外的1.8k个tlc pe循环预计将对80k slc pe循环能力产生非实质性贡献(例如,成效不大)。
[0101]
图4是根据本公开的一些实施例的图,示出了从存储区域块池部分动态地分配一或多个块以用作专用块。在一些实施例中,如果块超过特定耐久性状态,例如阈值数目的tlc pe循环,那么全slc耐久性可能会受到负面影响。图400类似于图3的图300(例如,tbw 0%-40%),直到确定对应于用户块(或存储区域块池)的耐久性状态的阈值为止。在tbw 50%,响应于确定存储器组件(或存储器子系统)的用户块满足对应于用户块的耐久性状态的阈值,从存储区域块池分配专用块6-10。所分配的专用块的数目等于在存储器组件(或存储器子系统)的寿命内使用的专用块总数中剩余数目的专用块。
[0102]
在图400中,线405表示tbw内存储区域块池和用户块的tlc pe循环的数目。从线405延伸的带圆圈的竖直线表示专用块从存储区域块池的分配。虚线410表示对应于用户块的耐久性状态的阈值。例如,阈值被设置为1k个tlc pe循环。
[0103]
在下文提供表2,帮助说明图400。
[0104]
(表2)
[0105]
在tbw 0%-40%,以类似于关于图3的图300所描述的方式分配和弃用专用块。例如,在tbw 0%,从存储区域块池分配专用块(例如,包含专用块1的一组专用块)。预留空间块池和用户块在tlc模式中操作。在slc模式中,专用块可一直使用至专用块的耐久性极限,例如为80k个pe循环。在当前实例中,在tbw 0%,存储器组件(或存储器子系统)的700个块中的一个块被分配用于存储专用数据,专用影响为总块的0.14%。在tbw 10%,弃用专用块1,并从存储区域块池分配新的专用块(例如,专用块2)。可以再次注意到,在当前实例中,从tbw 0%-40%分配并使用在任何给定时间使用的最小数目的专用块。
[0106]
在tbw 50%,用户块和存储区域块池达到对应于用户块的耐久性状态的阈值。例如,用户块和存储区域块池已执行1k个tlc pe循环。在tbw 50%,分配在存储器组件(或存储器子系统)的寿命内使用的专用块总数中剩余数目的专用块(例如,5个块)作为专用块(专用块6-10)。专用块6-10从存储区域块池分配并用于存储数据条带的专用数据。tbw 0%-50%处的专用影响较低,并使预留空间损失最小化。
[0107]
图5是根据本公开的一些实施例的图,示出了从存储区域块池多相动态分配一或多个块以用作专用块。从tbw 50%-100%,图500类似于图4的图400。在tbw 0%(例如,时间零),从存储区域块池分配多个专用块,专用块的数目大于在任何给定时间可存储最大数目的开放用户块的专用数据的专用块的最小数目且小于在存储器组件的寿命内要使用的专用块的总数。例如,在tbw 0%分配用于在用户块满足对应于用户块的耐久性状态的阈值之前存储专用数据的最小数目的专用块。在tbw 50%,响应于满足对应于用户块的耐久性状态的阈值,分配在存储器组件的寿命内使用的专用块总数中剩余数目的专用块到第二组专用块。例如,在到达tlc pe循环阈值之后,分配用于存储专用数据到tbw 100%的剩余专用块。
[0108]
在图500中,线505表示tbw内存储区域块池和用户块的tlc pe循环的数目。从线505延伸的带圆圈的竖直线表示专用块从存储区域块池的分配。虚线510表示对应于用户块的耐久性状态的阈值。例如,阈值被设置为1k个tlc pe循环。
[0109]
在下文提供表3,帮助说明图500。
[0110]
(表3)。
[0111]
在tbw 0%,分配用于在用户块满足对应于用户块的耐久性状态的阈值之前存储专用数据的最小数目的专用块。在当前实例中,在tbw 0%,分配专用块1-5用于存储数据条带的校验数据。在tbw 0%到tbw 50%之间,执行多个写入操作,其使用专用块1-5存储校验数据。在tbw 50%,弃用专用块1-5。
[0112]
可注意到,在图5中,在tbw 0%分配的块不会命中80k,一直到50%tbw。在一些实施例中,随着添加更多的p/e循环,存储器组件(例如,nand)可能会减弱,并且存储器组件的特性可能会随着p/e循环而降低,尽管这些特性在规定的限制范围内。通过如图5所示的批量分配,slc块上的p/e循环累积速率减慢。这有助于早期tbw(例如:《30%tbw)经历低于50k个p/e循环的p/e循环,并表现出良好的性能。在p/e循环累积率与op损失之间进行权衡(块越多,p/e循环累积量就越小,op损失就越大)。
[0113]
在tbw 50%,用户块和存储区域块池达到对应于用户块的耐久性状态的阈值。例如,在tbw 50%,用户块和存储区域块池已执行1k个tlc pe循环,其满足对应于用户块的耐久性状态的阈值。在tbw 50%,分配在存储器组件(或存储器子系统)的寿命内使用的专用块总数中剩余数目的专用块(例如,5个块)作为专用块(专用块6-10)。专用块6-10从存储区域块池分配并用于存储数据条带的专用(例如,校验)数据。tbw 0%-50%处的专用影响较低,并使预留空间损失最小化。
[0114]
图6示出计算机系统600的实例机器,在所述计算机系统内可以执行用于使所述机器执行本文中所论述的任何一或多种方法的一组指令。在一些实施例中,计算机系统600可对应于主机系统(例如,图1a的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1a的存储器子系统110)或可用于执行控制器的操作(例如,以执行操作系统来执行对应于图1a的块分配组件113的操作)。在替代实施例中,机器可连接(例如,联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础架构或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
[0115]
所述机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定待由所述机器采取的动作的一组指令的任何机器。另外,尽管示出的是单个机器,但还应认为术语“机器”包含机器的任何集合,所述机器单独地或联合地执行一组(或多组)指令以
执行本文中所论述的任何一或多种方法。
[0116]
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(sram)等),以及数据存储系统618,它们经由总线630彼此通信。
[0117]
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置602配置成执行用于执行本文中所论述的操作和步骤的指令626。计算机系统600可进一步包含网络接口装置608以在网络620上通信。
[0118]
数据存储系统618可以包含机器可读存储媒体624(也称为非暂时性计算机可读存储媒体),其上存储有一或多组指令626或体现本文中所描述的任何一或多种方法或功能的软件。指令626还可在其由计算机系统600执行期间完全或至少部分地驻留在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1a的存储器子系统110。
[0119]
在一个实施例中,指令626包含用以实施对应于图1a的块分配组件113的功能性的指令。虽然机器可读存储媒体624在实例实施例中展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储所述一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令且使机器执行本公开的任何一或多种方法的任何媒体。术语“机器可读存储媒体”应相应地被理解为包含(但不限于)固态存储器、光学媒体和磁性媒体。
[0120]
已依据计算机存储器内的数据位的操作和操作的符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法和操作在这里并且通常被认为是引起所要结果的操作的自洽序列。操作为要求对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操纵的电或磁信号的形式。主要出于常见使用的原因,有时将此些信号称为位、值、要素、符号、字符、项、数字等已证实是方便的。
[0121]
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便的标签。本公开可涉及将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
[0122]
本公开还涉及用于执行本文中的操作的设备。此设备可以出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如(但不限于)任何类型的盘(包含软盘、光盘、cd-rom和磁光盘)、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
[0123]
本文中呈现的算法、操作和显示并不与任何特定计算机或其它设备在本质上相
关。各种通用系统可根据本文中的教示与程序一起使用,或者可证明构造更专用的设备来执行所述方法是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用多种编程语言来实施本文中所描述的本公开的教示。
[0124]
本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有指令的机器可读媒体,所述指令可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
[0125]
这里使用的词语“实例”或“示例性”是指充当实例、例子或说明。本文中描述为“实例”或“示例性”的任何方面或设计不一定被解释为比其它方面或设计更优选或有利。相反,使用词语“实例”或“示例性”是为了以具体的方式呈现概念。如本技术中所使用,术语“或”意指包含性的“或”,而非排他性的“或”。也就是说,除非另外规定或自上下文可知,否则“x包含a或b”意指任何自然包含排列。也就是说,如果x包含a;x包括b;或x同时包含a和b,那么“x包含a或b”在上述任何情况下均成立。另外,除非另外规定或自上下文可知指示为单数形式,否则本技术和所附权利要求中使用的一(冠词“a”和“an”)通常可解释为“一或多个”。此外,术语“实施方案”或“一个实施方案”或“实施例”或“一个实施例”等等的使用通篇并不意指相同的实施方案或实施例,除非如此描述。本文描述的一或多个实施方案或实施例可以组合在特定实施方案或实施例中。本文中使用的术语“第一”、“第二”、“第三”、“第四”等旨在作为区别不同元素的标签,并且可能不一定具有与数字标号一致的顺序含义。
[0126]
在前述说明书中,已参考本公开的特定实例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开做出各种修改。因此,说明书和图式应在说明性意义上而非限制性意义上看待。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1