在数据存储系统中的具有模块化擦除的数据管理的制作方法

文档序号:11814874阅读:271来源:国知局
在数据存储系统中的具有模块化擦除的数据管理的制作方法与工艺

本发明总体上涉及一种数据存储系统,更具体地说,涉及在数据存储系统中的具有模块化擦除的数据管理。



背景技术:

除了电磁硬盘之外,计算机系统中的各种形式的长期存储体包括根源于半导体或另外的存储器技术的非易失性存储体。与非(NAND)闪速存储器是固态存储设备中所使用的非易失性存储器的一种形式。在闪速存储器的普通配置中,存储器单元以典型的行列方式被布置有用于存取单独单元的电路。这些单元的数据存储元件(例如晶体管)被配置为:在单级单元(SLC)的情况下保持两个逻辑状态,或在多级单元(MLC)的情况下保持多于两个的逻辑状态。

闪速存储器是基于块的存储体,并且可能要求块在被重写之前被擦除。在正执行擦除操作的同时,无法执行其它命令。这可能导致在其它命令等待擦除操作完成的同时、其它命令的较长命令时延。此外,因为擦除操作的持续时间可能随着闪速存储器老化而增加,所以命令时延可能随着时间而增加。

因此,仍需要更好的可以优化命令时延的数据存储设备。鉴于日益增加的商业竞争压力,连同对于市场中的有意义的产品分化的增长的消费者期待以及减少的机会一起,寻找针对这些问题的答案是重要的。此外,对于寻找对这些问题的答案,关于减少成本、改进效率和性能并且应对竞争压力的需要对关键必要性增加了日益更大的紧迫性。

先前的开发已经长期探求但并未发现对这些问题的优化解决方案。因此,仍需本领域技术人员长期规避。



技术实现要素:

本公开涵盖一种数据存储系统中具有模块化擦除的数据管理的系统和方法,包括:将擦除操作划分为一个或多个部分擦除操作;在各部分擦除操作之间执行介入命令;修改所述部分擦除操作的操作值;以及实现用于部分擦除的停驻时间延迟。

除了上述步骤或要素之外,或替代上述步骤或要素,特定实施例还具有其它步骤或要素。当参照附图时,通过阅读以下具体实施方式,步骤或要素对于本领域技术人员将变得明显。在此所描述的实施例是说明性的,而不应限制如权利要求所述的本发明的范围。

附图说明

图1是本发明实施例中的数据存储系统的框图。

图2是存储器示图的示例。

图3示出存储器块示图的示例。

图4示出数据存储系统的示例。

图5示出擦除操作的示例。

图6示出通过擦除分量进行的擦除操作的示例。

图7示出使用模块化擦除分量的擦除操作的示例。

图8示出交织式擦除处理的示例。

图9示出擦除处理的示例。

图10是本发明另一实施例中的数据存储系统中具有模块化擦除的数据管理的方法的流程图。

具体实施方式

足够详细地描述以下实施例,以使得本领域技术人员能够进行并且使用本发明。应理解,其它实施例基于本公开将是明显的,并且可以在不脱离本发明的范围的情况下进行系统、处理或机械改变。

在以下描述中,给出大量具体细节以提供本发明的透彻理解。然而,应理解,可以在没有这些具体细节的情况下实践本发明。为了简化本公开,并未详细公开一些公知的电路、系统配置和处理步骤。

示出系统的实施例的附图是半图示性的,而非按比例的,并且具体地说,一些尺寸用于澄清陈述,并且在附图中是夸大地示出的。

在公开并且描述具有一些共同特征的多个实施例的情况下,为了澄清并且简化说明、描述及其理解,通常将通过相似标号描述彼此相似或相同的特征。实施例已经为了描述方便性起见而编号为第一实施例、第二实施例等,而非意图具有任何其它意义或对本发明提供限制。

现参照图1,其中示出本发明实施例中的数据存储系统100的框图。数据存储系统100包括:存储器阵列106,经由存储器总线104耦合到控制器102。

控制器102是用于管理存储器阵列106中的数据的存储和检索的处理单元。控制器102可以是嵌入式处理器、控制逻辑或其组合。控制器102可以将所存储的数据从存储器阵列106传送到主机设备140。

存储器阵列106是用于存储数据的非易失性存储器单元。存储器阵列106可以包括NAND闪速存储器阵列、NOR闪速存储器阵列、其它非易失性存储器阵列或其组合。

可以通过存储器裸芯132形成存储器阵列106。存储器裸芯132是用于存储信息的半导体设备。存储器裸芯是可以独立地执行命令并且报告状态的最小单元。例如,存储器裸芯132可以是闪速存储器设备、NAND闪速存储器芯片、NOR闪速存储器设备或其组合。

存储器总线104是通信信道。存储器总线104在控制器102与存储器阵列106之间传递数据和控制信息。

存储器裸芯132可以包括单元阵列134。单元阵列134是用于存储数据的非易失性闪速存储器单元的集合。例如,单元阵列134可以包括单级单元闪速存储器、多级单元闪速存储器、混合功能单元或其组合。

单元阵列134可以包括存储器单元136。存储器单元136是用于存储信息的电子结构。例如,存储器单元136可以是浮置栅极闪速存储器设备。

存储器阵列106可以包括:阵列逻辑单元130,耦合到单元阵列134。阵列逻辑单元130是用于对控制存储器阵列106提供寻址、数据传送和感测以及其它支持的电路,用于从单元阵列134保存并且检索信息。

控制器102可以包括:存储器接口116,耦合到存储器阵列106。存储器接口116可以包括用于通过存储器总线104与存储器阵列106进行通信的电路。

控制器102可以包括:控制单元110,耦合到存储器接口116以及主机接口114。只读存储器118可以耦合到控制单元110。随机存取存储器120可以耦合到控制单元110和只读存储器118。随机存取存储器120可以用作缓冲存储器,以用于临时存储写入到或读取自存储器阵列106的数据。

随机存取存储器120可以包括控制器数据库124。控制器数据库124是数据存储和检索系统。控制器数据库124可以用于存储所读取的阈值信息。

只读存储器118可以包括:软件122,以用于操作控制单元110。软件122是用于实现数据存储系统100的智能的可执行代码。

控制器102可以包括:纠错码单元112,耦合到控制单元110。纠错码单元112是用于计算可以用于在所存储或发送自存储器阵列106的数据中检错、纠错或其组合的纠错码值的处理模块。

纠错码单元112可以使用不同的方法(例如Reed-Solomon码、Hamming码、Bose-Chauduri-Hocquenghem(BCH)码或其组合)来计算一个或多个纠错码值。虽然纠错码单元112是用于计算纠错码的专用元件,但应理解,也可以通过其它方式来计算纠错码,例如,使用控制单元110以计算纠错码。

控制器102可以包括:主机接口114,经由数字连接138耦合到主机设备140。主机设备140是可以使用数据存储系统100以用于存储数据的计算设备。例如,主机设备140可以是膝上型计算机、台式计算机、服务器、智能电话或其组合。

主机接口114可以通过数字连接138在主机设备140与控制器102之间传递命令和数据。例如,主机接口114可以检测对主机设备140的连接,并且基于对主机设备140的连接而生成命令。

数据存储系统100可以通过数字连接138连接到主机设备140。数字连接138是用于在数据存储系统100与主机设备140之间传送数字信息的通信链路。

可以通过各种方式形成数字连接138。例如,数字连接138可以是用于传送信息的通用串行总线(USB)连接。在另一示例中,数字连接138可以是无线通信介质,例如无线保真(Wi-Fi)、红外通信机构、光通信系统、近场通信系统或其组合。

现参照图2,其中示出存储器示图的示例。存储器示图示出数据存储系统100,其包括存储器页面202、存储器块204和数据寄存器212。可以使用图1的存储器裸芯132形成数据存储系统100。存储器裸芯132包括用于存储数据的图1的存储器单元136。

数据存储系统100可以具有用于形成数据存储系统100的存储器裸芯132的数量所确定的各种存储容量。例如,数据存储系统100可以包括2千兆字节(GB)的闪速存储器、8GB、16GB或其它存储器大小。

数据存储系统100可以包括多个存储器块204。存储器块204是图1的存储器阵列106的部分。例如,具有2GB的容量的数据存储系统100可以具有4,096个存储器块204。

存储器块204可以处于不同的逻辑单元222上。逻辑单元222是单线程化的并且允许一次仅一个操作的存储器裸芯132上的存储器块群组。逻辑单元222可以是存储器裸芯132、逻辑存储器分区或其组合中的完整一个。裸芯是包括经由一个单个CE(芯片选通)存取的多个存储器块的物理存储器元件。逻辑单元222(LUN)是单线程化的并且一次仅允许一个操作的裸芯上的逻辑擦除块群组。

存储器块204可以包括擦除块206。擦除块206是可以一次作为单个实体擦除的存储器的最小单元。

存在使用基于块的非易失性随机存取存储器(NVRAM)或NAND闪速存储器的用于数据存储系统100的多个不同配置。擦除命令可以导致时延将随着存储器的年龄增加而增加。

在数据存储系统100的正常操作期间,出于多种原因,需要擦除存储器的块。必须擦除存储器块204之一(例如擦除块206),以重写存储器块204之一。在擦除命令正执行的同时,在擦除块206驻留的逻辑单元222上无法执行除了状态读取之外的其它操作。

正擦除的擦除块206的逻辑单元222中的数据直到擦除命令已经完成才可用于供其它命令使用。因此,在擦除命令的开始时接收到的主机读取操作可以具有读取操作加上执行擦除操作的时延。时延可以定义为存储设备耗费于对主机请求进行响应的时间量。读取时延是在接收到主机读取请求与当所读取的数据开始流回到主机时之间耗费的时间量。

擦除块206中的每一个可以具有编程擦除周期计数218。当擦除块206之一被擦除时,编程擦除周期计数218可以增加。编程擦除周期计数218可以是用于确定存储器块204之一的年龄或磨损等级的一个因素。编程擦除周期计数218是擦除块206之一内的使用等级的测度。闪速存储器设备(例如NAND闪速)具有有限数量的有用编程擦除周期。编程擦除周期计数218可以是如何在擦除块206内替换数据的基本等级确定。NAND闪速存储器和其它存储器类型具有有限数量的有用编程擦除周期。

在数据存储系统100的正常操作期间,出于各种原因,可以对擦除块206之一进行擦除。例如,在NAND闪速存储器中,擦除块206必须在通过用于存储器块204的给定数据集合受重写之前受擦除。

存储器块204可以划分为存储器页面202。存储器页面202是可以在数据存储系统100中读取或写入的最小数据字节群组。存储器页面202是可以编程的存储器的最小可寻址单元。例如,存储器块204中的每一个可以具有64个存储器页面202。

存储器页面202包括数据区域208和空闲区域210。数据区域208是用于存储用户数据的存储器单元群组。数据区域208可以是各种大小。例如,存储器页面202之一的数据区域208可以是2,048字节。

空闲区域210是用于存储关于数据区域208的元数据的存储器单元群组。例如,空闲区域210可以包括纠错码信息、状态信息或其组合。空闲区域210可以具有各种大小。例如,空闲区域210可以是128字节。存储器页面202可以具有用于数据区域208和空闲区域210的4,224字节的大小。

可以通过擦除存储器块204并且将新的数据编程到已经擦除的存储器块204中来更新图1的存储器阵列106。对存储器块204进行编程将数据写入到存储器块204中。

读取存储器页面202之一可能产生读取错误,其中,存储器页面202中的比特中的一个或多个是不正确的。数据的流中的单独误比特的数量描述为误比特率216。误比特率216(BER)定义为数据存储系统100中所存储的数据流中的不正确的比特的数量。可以在纠错码(ECC)所保护的码字内检测不正确的比特。

码字指代多个ECC奇偶字的单个实例所覆盖的数据字节群组。纠错码指代在成组为码字的主机或用户数据集合上所生成的奇偶或冗余数据。误比特率216是闪速存储器中所存储的数据流中的不正确的比特的数量。

数据存储系统100可以包括与不同存储器元件关联的存储器年龄220。存储器年龄220是指示存储器元件的使用等级的值。存储器年龄220可以指示存储系统或存储器组件已经存在或已经处于操作中达多久。例如,存储器年龄220可以基于擦除周期的数量、自从最后一次写入擦除块已经多久、擦除块正产生的平均BER、设备已经运转的温度或其组合。

可以基于年龄度量221而计算存储器年龄220。年龄度量221是用于指示擦除块206的磨损等级的值。年龄度量221可以还包括误比特率216、温度、日历年龄、使用周期或其组合。在另一示例中,年龄度量221可能受编程擦除周期计数218影响。

存在大量用于测量存储器年龄220的方法。例如,存储器年龄220可以基于年龄度量221(例如误比特率216、温度、程序时间、优化读取阈值、擦除时间或其组合)之一的值。存储器年龄220是闪速存储器元件上的磨损量的估计。

存储器年龄220可以表示各种存储器元件。例如,存储器年龄220可以包括存储器裸芯132之一、存储器块204之一、存储器页面202之一、擦除块206之一、存储器单元之一或其组合的年龄。

现参照图3,其中示出存储器块示图的示例。存储器块示图可以描述图1的数据存储系统100的存储器配置。数据存储系统100可以包括存储器块204、擦除块206、瑕疵块306、目标块302、擦除块池304和瑕疵池308。

存储器块204是存储器的单元。具有不再需要的内容的存储器块204可以被设计为擦除块206并且分配给擦除块池304。擦除块池304是可以回收并且在重写之前擦除的擦除块206的集合。目标块302是可以执行读取或写入操作的存储器块204之一。

瑕疵池308是指定为有缺陷并且不重用的瑕疵块306的列表。如果擦除操作失败并且擦除块206之一无法被擦除,则擦除块206之一可以分配给瑕疵池308并且指定为瑕疵块306之一。瑕疵块306可以具有擦除失败状态310,以指示擦除操作已经失败。

现参照图4,其中示出数据存储系统100的示例。图1的数据存储系统100可以包括:控制器102,耦合到存储器阵列106。

数据存储系统100可以通过数字连接138耦合到主机设备140。主机设备140可以包括:主机命令队列402,以用于保存用于数据存储系统100的数据操作命令424。数据操作命令424是用于操控数据的指令。数据操作命令424可以包括读取、写入、擦除、状态、设置参数或其组合。

主机命令队列402可以包括用于操控数据存储系统100中的数据的有序命令集合(例如读取、写入、擦除、状态或其组合)。主机命令队列402中的数据操作命令424可以传送到控制器102,以用于执行。

数据存储系统100可以包括:控制器102,通过存储器总线104耦合到存储器阵列10。控制器102可以包括控制器命令队列404。

控制器命令队列404是用于保存数据操作命令424的结构。控制器命令队列404可以包括来自主机命令队列402的数据操作命令424以及控制器102内所生成的本地命令。控制器命令队列404可以包括用于操控存储器阵列106中的数据的有序命令集合。例如,控制器命令队列404可以包括例如读取、写入、擦除、状态或其组合的命令。

控制器命令队列404可以包括各种数据操作命令424。例如,控制器命令队列404可以包括用于对擦除块206之一进行擦除的数据操作命令424之一。控制器命令队列404可以包括用于读取目标块302的数据操作命令424之一。

在说明性示例中,控制器102可以从控制器命令队列404选择命令(例如擦除命令406),并且将擦除命令406传送到存储器阵列106,以用于执行。擦除命令406是用于对擦除块206中的一个或多个进行擦除的操作。擦除命令406可以包括具有配置信息的操作矩阵408。

擦除命令406可以包括命令状态430。命令状态430是指示操作的结果的值。例如,命令状态430可以指示擦除命令406的成功或失败。

操作矩阵408是用于控制如何执行擦除命令406的值集合。操作矩阵408可以包括用于控制擦除命令406的电性质的擦除操作值426。

例如,操作矩阵408可以包括例如擦除模式410、擦除脉冲计数412、擦除电压414、擦除脉冲宽度416、最大执行时间418、阈值电压420和停驻时间422的值。操作矩阵408可以包括用于完全擦除操作的值、用于一个或多个部分擦除操作的单独值或其组合。

擦除模式410可以指示用于执行的擦除操作的类型。例如,擦除模式410可以指定在单个步骤中执行完全擦除操作。在另一示例中,擦除模式410可以指定通过一个或多个部分擦除操作执行完全擦除操作。部分擦除可以是不完全擦除存储器(即,部分地擦除存储器)的擦除分量。最终擦除可以是完全擦除存储器的擦除分量。最终擦除是多擦除分量操作的最后擦除分量。擦除脉冲计数412可以指示待用于执行擦除命令406的擦除脉冲的数量。使用擦除脉冲计数412的较低值可以产生擦除块206之一的部分擦除。

擦除电压414可以指示待用于执行擦除命令406的电压的值。使用擦除电压414的较低值可以产生擦除块206之一的部分擦除。

擦除脉冲宽度416是在包括部分擦除操作的擦除操作期间施加到擦除块206之一的擦除电压414的时间长度。擦除脉冲是施加达擦除脉冲宽度416所定义的时间段的擦除电压414。对于给定的擦除电压414的值使用较短的擦除脉冲宽度416的值可以产生擦除块206的部分擦除。

最大执行时间418是用于执行完全擦除操作的最大时间量。最大执行时间418可以包括擦除脉冲宽度416的一个或多个周期。

阈值电压420是指示擦除块206之一已经得以擦除的电压等级。阈值电压420可以指示施加到确定NAND单元中所存储的数字值的内部NAND比较器的电压设置。在擦除操作之后,擦除块206的电压等级可以与阈值电压420进行比较,并且如果擦除块206的电压等级满足或超过阈值电压420,则擦除块206已经得以完全擦除。

停驻时间422是各个相继擦除或部分擦除操作之间的时间量。增加各个擦除操作之间的停驻时间422可以增加擦除块206的耐久性或有效寿命。术语耐久性可以是包括NAND闪速设备的存储器设备在包括固态盘驱动器(SSD)的数据存储系统的给定操作生命时段上容忍的操作的数量。

每次执行擦除操作,擦除的动作就可以临时改变图1的存储器单元136的材料的电荷瑕疵。电荷瑕疵可以随着时间而自动地耗散,从而停驻时间422越长,瑕疵自身修复就越多。瑕疵随着时间累积,但如果停驻时间422过短,则瑕疵可能累积得更快。

在另一说明性示例中,擦除命令406可以包括具有用于擦除块206之一的四个部分擦除操作中的每一个的单独值的操作矩阵408。操作矩阵408可以指定擦除电压414初始地设置为高值并且对于每个部分擦除操作而较低。操作矩阵408可以指定擦除脉冲宽度416可以对于每个部分擦除操作保持恒定。

操作矩阵408可以指定指示最大擦除操作时延的最大执行时间418,以确定何时应完成擦除操作。操作矩阵408可以指定用于确定擦除操作是否已经成功的阈值电压420。操作矩阵408可以指定用于调度单独部分擦除操作的停驻时间(dwell time)422。

操作矩阵408可以用于执行擦除优化428。擦除优化428是用于修改擦除命令406的行为的操作。擦除优化428可以通过修改擦除命令406的擦除操作值426来改进擦除命令406的性能。例如,擦除优化428可以改变擦除电压414、擦除脉冲宽度416和停驻时间422,以改进擦除命令406的总体性能。

已经发现,通过操作矩阵408执行擦除命令406增加灵活性和性能。凭借通过擦除命令中的每一个包括可变操作参数,图1的数据存储系统100可以通过更精细的粒度来控制擦除操作,以增加灵活性并且增加性能。

已经发现,通过指定停驻时间422的操作矩阵408执行擦除命令406增加数据存储系统100的耐久性。优化停驻时间422可以减少擦除操作对擦除块206的物理影响,并且增加擦除块206的耐久性或有效寿命。

已经发现,通过停驻时间422执行擦除命令406提供更长的总体擦除操作的持续时间,这样改进耐久性。将模块化擦除操作配置为允许更长的擦除时间产生更高的耐久性,而不牺牲时延。

现参照图5,其中示出擦除操作502的示例。擦除操作502可以在完全擦除操作中擦除图2的擦除块206之一。

擦除操作502可以包括:接收擦除命令406;在擦除持续时间504上执行擦除命令406;以及当完成时提供命令状态430。擦除持续时间504是接收到擦除命令406与完成擦除命令406之间的时间。完全擦除时间508可以包括接收擦除命令406、擦除持续时间504以及提供命令状态430。例如,传统闪速存储器系统可以在3-30毫秒(ms)的范围中执行完全擦除操作。在另一示例中,针对最大耐久性所配置的闪速存储器系统可以在10-30ms的范围中执行完全擦除操作。用于完全擦除操作的时间将优选地是10ms之下。

对擦除块206之一进行擦除所需的时间可以随擦除块206的使用以及图2的存储器年龄220而加长。在另一示例中,用于擦除块206之一的擦除时间可以开始于2ms,并且在图1的数据存储系统100的寿命的结束时逐渐延长为长达25ms。

现参照图6,其中示出通过擦除分量604进行的擦除操作602的示例。擦除操作602可以划分为可以依次执行的擦除分量604。擦除分量604可以在初始化或启动时间时被配置一次,并且不随着图1的数据存储系统100操作而改变。

通过限制给定擦除操作中的擦除脉冲的数量,NAND闪速存储器中的擦除命令406可以分解为分段。通过限制擦除脉冲的数量,擦除操作不能通过单个擦除命令完成,但将不超过给定的命令处理时间量。擦除操作602于是包括多个擦除分量604。

使用擦除分量允许控制固件,以对用于正通过分量擦除命令擦除的裸芯/LUN的其它操作进行交错。如果不存在对于正擦除的设备所目标的(targeted)其它主机操作,则软件也可以执行将把多个擦除分量堆叠在一起的“前瞻(look ahead)”操作。

擦除分量604是擦除操作602的一部分。擦除分量604中的每一个可以表示使用通过图4的操作矩阵408配置的擦除操作602来部分擦除图2的擦除块206。擦除分量604可以是作为多分量闪速擦除操作的分量的发送到闪速的擦除命令。归因于脉冲计数限制,一个或多个擦除分量可以在存储器被完全擦除之前完成。

擦除操作602可以执行擦除分量604中的一个或多个,直到擦除操作602完成。当图4的命令状态430指示成功擦除时,擦除操作602完成。命令状态430指示在擦除分量604的结束时的状态。

擦除操作602可以包括重新配置擦除功能608,以用于将操作矩阵408应用于擦除分量604。可以在不同的时间执行重新配置擦除功能608。例如,重新配置擦除功能608可以在制造期间在驱动器初始化时间执行一次。在另一示例中,重新配置擦除功能608可以对于数据存储系统100在驱动器启动时间得以执行,并且不随着数据存储系统100操作而改变。

擦除操作602可以接收具有操作矩阵408的部分擦除命令610,并且对擦除块206之一进行擦除。可以根据操作矩阵408中的设置来执行部分擦除命令610。

擦除操作602可以包括擦除持续时间612。在擦除持续时间612期间,部分擦除命令610可以在图1的存储器阵列106上操作,以部分地对擦除块206之一进行擦除,并且其它操作不能执行。

当擦除分量604已经完成时,擦除操作602可以提供命令状态430。命令状态430指示操作(例如部分擦除命令610)的状态。例如,命令状态430可以指示部分擦除命令610产生不完全擦除或完全擦除状况。

图1的数据存储系统100包括基于块的存储器,并且当正受存取的存储器执行擦除操作时可能经历高时延时间。当块擦除时间归因于存储器设备上的高使用率而开始加长时,该情况朝着生命的结束而恶化。

已经发现,多次执行擦除分量604可以减少命令时延。擦除块206可以变为擦除的,如同通过执行擦除分量604中的一个或多个来执行正常擦除操作,这样可以提供用于转译为最大时延时间的图4的最大执行时间418的保证值。

现参照图7,其中示出使用模块化擦除分量704的擦除操作702的示例。擦除操作702可以划分为可以依次执行的擦除分量704。

擦除分量704是擦除操作702的一部分。擦除分量704中的每一个可以表示使用通过图4的操作矩阵408配置的擦除操作702来部分地擦除图2的擦除块206之一。擦除分量704可以包括重新配置擦除功能708、部分擦除命令710、擦除持续时间712以及图4的命令状态430。

擦除操作702可以执行擦除分量704中的一个或多个,直到擦除操作702完成。当命令状态430指示成功擦除时,擦除操作702完成。命令状态430指示在擦除分量704的结束时的状态。

擦除操作702可以包括用于执行部分擦除的擦除分量704。擦除分量704中的每一个可以包括用于将操作矩阵408应用于擦除分量704之一的重新配置擦除功能708。

可以对于擦除分量704中的每一个执行重新配置擦除功能708,以提供针对擦除操作702的精细粒度控制。操作矩阵408可以包括用于擦除分量704中的每一个的参数集合。

擦除操作702可以接收具有操作矩阵408的部分擦除命令702,并且对擦除块206之一进行擦除。可以根据操作矩阵408中的设置来执行部分擦除命令710。

擦除操作702可以包括擦除持续时间712。在擦除持续时间712期间,部分擦除命令702可以在图1的存储器阵列106上操作,以部分地对擦除块206之一进行擦除,并且其它操作无法执行。

当擦除分量704已经完成时,擦除操作702可以提供命令状态430。命令状态430指示操作(例如部分擦除命令710)的状态。例如,命令状态430可以指示部分擦除命令710产生不完全擦除或完全擦除条件。在另一示例中,命令状态430可以指示部分擦除操作处于进展中(例如不完全擦除状态720)。

已经发现,基于在擦除分量704的完成时接收到的状态而动态地重新配置擦除分量704中的每一个可以增加擦除操作702的灵活性。对于擦除分量704中的每一个增加图4的擦除电压414确保完成擦除操作702。

现参照图8,其中示出交织式擦除处理802的示例。交织式擦除处理802可以包括部分擦除操作中的一些之间的介入命令806。

介入命令806(例如读取或写入命令)可以是图4的数据操作命令424。可以在各部分擦除操作之间执行介入命令806,以减少命令时延。

擦除操作804可以包括产生完全擦除操作的部分擦除分量812的集合。部分擦除分量812是不完全擦除图2的擦除块206的擦除分量。将擦除操作804实现为部分擦除操作集合使得能够在各部分擦除分量812之间执行介入命令806。

例如,擦除操作804可以包括部分擦除分量812中的两个以及最终擦除分量810。擦除操作804可以包括最终擦除分量810。最终擦除分量810是多擦除分量操作的最后擦除分量。图4的命令状态430可以指示擦除操作804已经成功完成(例如擦除完成状态816)。

图2的擦除块206在最终擦除分量810之后得以完全擦除。在擦除操作804已经完成之后,交织式擦除处理802可以包括不与擦除操作804重叠的其它数据操作命令424。

交织式擦除处理802可以包括具有部分擦除操作集合的交织式擦除操作808,其中,介入命令806中的一个或多个在部分擦除操作内交织。在各部分擦除操作之间交织介入命令806可以避免关于主机命令的高时延。高时延可以是等待擦除操作完成的结果。

在部分擦除操作之一之后,交织式擦除操作808可以包括停驻延迟814。停驻延迟814是在执行另一部分擦除操作之前达图4的停驻时间422所指示的时间量的暂停。用于停驻时间422的停驻延迟814可以有助于减少擦除块206上的磨损。

将交织式擦除操作808分离为一个或多个部分擦除操作可以支持在各部分擦除操作之间具有停驻时间延迟。将部分擦除操作彼此分离达停驻时间422可以产生图1的数据存储系统100上的较低的磨损,并且延长数据存储系统100的操作寿命。

已经发现,在图7的各擦除分量704之间执行介入命令806可以减少命令时延。在不等待完全擦除操作完成的情况下执行用于执行的介入命令806允许介入命令806执行得更快,并且具有更低的命令时延。

现参照图9,其中示出擦除处理902的示例。擦除处理902可以在各部分擦除操作之间通过图8的介入命令806执行擦除操作。

擦除处理902可以包括配置模块904、部分擦除模块906、检查状态模块908、介入命令模块912、优化模块914和更新模块924。优化模块914可以包括擦除参数模块916、总时间模块918、停驻时间模块920和存储器年龄模块922。

根据使用术语的上下文,在此指代的术语“模块”在本发明中可以包括软件、硬件或其组合。例如,软件可以是机器代码、固件、嵌入式代码以及应用软件。此外,例如,硬件可以是电路、处理器、计算机、集成电路、集成电路内核、微机电系统(MEMS)、无源设备、环境传感器或其组合。

配置模块904可以通过接收图4的操作矩阵408并且对于图7的擦除分量704中的每一个计算图4的擦除操作值426来配置擦除处理902。配置模块904可以确定用于图4的擦除模式410、图4的擦除脉冲计数412、图4的擦除电压414以及图4的擦除脉冲宽度416的值。配置模块904可以处理用于图4的最大执行时间418、图4的阈值电压420以及图4的停驻时间422的值。

例如,配置模块904可以使用擦除模式410以确定待执行的擦除的类型。如果擦除模式410指示完全擦除操作,则擦除处理902可以执行为单个完全擦除操作。如果擦除模式410指示部分擦除操作,则擦除处理902可以执行为一系列部分擦除分量,以支持执行介入命令806。

在另一示例中,配置模块904可以设置用于擦除脉冲计数412、擦除电压414和擦除脉冲宽度416的操作值。操作值可以确定在擦除分量704之一期间对图2的擦除块206之一的图1的存储器单元136执行的电荷的改变程度。

在又一示例中,配置模块904可以确定擦除分量704中的当前擦除分量与擦除分量704的下一擦除分量之间的停驻时间422的量。停驻时间422的延迟可以降低图1的数据存储系统100的存储器单元136上的磨损并且增加功能寿命。

在另一示例中,配置模块904可以基于最大执行时间418而调整图4的擦除命令406的行为。配置模块904可以基于最大执行时间418的值而计算用于擦除命令406的操作值。用于最大执行时间418的较小值可以产生用于擦除电压414的较高值、较少数量的擦除分量704以及用于停驻时间422的较低值,以确保部分擦除操作和介入命令806可以在最大执行时间418内完成。最大执行时间418可以用于强制用于数据存储系统100的特定最大命令时延。

配置模块904可以设置用于擦除处理902的操作值中的一个或多个。当配置模块904完成时,控制流程可以传递到部分擦除模块906。

部分擦除模块906可以使用来自操作矩阵408的操作值对擦除块206中的所选择的擦除块执行部分擦除操作。部分擦除模块906可以形成擦除分量之一的部分。

当部分擦除模块906通过将擦除电压414施加到擦除块206来有源地执行部分擦除操作时,另外操作无法发生在擦除块206上的图2的逻辑单元222上。部分擦除模块906可以设置用于擦除块206中的所选择的擦除块的图4的命令状态430,以指示擦除命令406在逻辑单元222中处于进展中。

部分擦除模块906可以设置命令状态430,以指示擦除命令406的状态。命令状态430可以指示擦除块206完全擦除并且准备使用,或部分擦除仍处于进展中并且擦除分量704中的另一个仍需要完成擦除命令406。

部分擦除模块906可以实现用于停驻时间422的图8的停驻延迟814,以增加耐久性。当部分擦除模块906已经完成时,控制流程可以传递到检查状态模块908。

检查状态模块908可以通过检查命令状态430来确定擦除命令406是否已经完全对擦除块206中的所选择的擦除块进行擦除。如果命令状态430指示已经完全对擦除块206进行擦除,则检查状态模块908可以计算并且更新用于擦除块206的存储器年龄220,然后擦除命令406可以终止。

如果命令状态430匹配图3的擦除失败状态310,则擦除操作已经失败,并且擦除块206可以基于命令状态430而受处理。例如,具有擦除失败状态310的擦除块206可以被重新配置用于擦除重试,分配给图3的瑕疵池308,或其组合。如果命令状态430指示尚未完全对擦除块206进行擦除,则控制流程可以传递到介入命令模块912。

介入命令模块912可以在各擦除分量704之间的间隔中标识并且执行介入命令806中的一个或多个。执行介入命令806而不等待完全擦除操作可以减少用于介入命令806的命令时延930。命令时延930是命令执行所需的时间量。

介入命令模块912可以通过搜索命令队列标识介入命令806之一,以标识受调度以在执行擦除命令406期间操作的图4的任何数据操作命令424。命令队列是待执行的数据操作的列表。例如,命令队列可以包括图4的控制器命令队列404、图4的主机命令队列402或其组合。

命令队列中的命令(例如读取命令或写入命令)可以在图3的目标块302上操作。一旦已经在命令队列中标识出可用命令,介入命令模块912就可以检查以查看所标识的命令的目标块302处于逻辑单元222的与擦除块206不同的块上。逻辑单元222可以包括整个存储器裸芯。

如果目标块302的逻辑单元222与擦除块206的不同,则命令可以指定为介入命令806,并且介入命令模块912可以在目标块302上执行介入命令806之一。

当介入命令806已经完成时,介入命令模块912可以评估是否可以在执行另一部分擦除之前执行另一命令。例如,介入命令模块912可以计算是否可以在停驻时间422的时间间隔内执行另一介入命令806。在另一示例中,介入命令模块912可以计算是否可以在不超过图4的最大执行时间418的情况下执行另一介入命令806。

介入命令模块912可以执行介入命令806,直到可用命令耗尽,或直到可用时间已经结束。介入命令模块912可以依次执行包括不同类型的介入命令806的来自命令队列的多于一个的介入命令806,以改进性能。介入命令模块912可以在擦除操作中的一个与擦除操作中的另一个之间执行介入命令806中的一个或多个不同的介入命令。在已经完成介入命令806中的最终介入命令之后,介入命令模块912可以将控制流程传递到优化模块914。

优化模块914可以计算用于擦除分量704之一的操作值。优化模块914可以包括擦除参数模块916、总时间模块918、停驻时间模块920和存储器年龄模块922。优化模块914可以通过改变用于擦除分量704之一的操作值来执行图4的擦除优化428。

优化模块914可以通过修改用于擦除分量704的操作值来管理用于擦除操作的总执行时间932的实现方式。优化模块914可以确保用于擦除操作的总执行时间932小于或等于最大执行时间418。

优化模块914可以取决于优化模块914的内部配置而将控制传递到模块中的一个或多个。例如,优化模块914可以基于擦除模式410而执行其它模块。在另一示例中,优化模块914可以基于预先定义的配置而选择用于执行的其它模块。在优化模块914已经完成之后,控制流程可以传递到更新模块924。

擦除参数模块916可以计算用于下一部分擦除操作的擦除操作值。擦除操作值可以包括擦除脉冲计数412、擦除电压414、擦除电压414和擦除脉冲宽度416。

擦除操作值可以通过不同方式而变化。例如,擦除参数模块916可以调度用于擦除脉冲计数412、擦除电压414和擦除脉冲宽度416的增加值的序列。所述值可以单独地或彼此一起地增加。

在另一示例中,擦除参数模块916可以调度用于擦除脉冲计数412、擦除电压414和擦除脉冲宽度416的降低值的序列。所述值可以单独地或彼此一起地降低。

总时间模块918可以确定是否可以在最大执行时间418内执行另一介入命令806。总时间模块918可以确保擦除处理902在最大执行时间418所定义的间隔内完成。

停驻时间模块920可以确定停驻时间422的值。停驻时间422是在执行部分擦除操作以减少存储器单元136上的磨损之后数据存储系统100可以等待的时间量。

擦除操作值可以通过不同方式而变化。停驻时间422可以是固定值、基于擦除块206的图2的存储器年龄220计算的值、基于擦除操作值的值或其组合。停驻时间422可以关于擦除分量704中的每一个并且关于擦除块206中的每一个而变化。

例如,停驻时间模块920可以调度用于擦除分量704中的每一个的停驻时间422的增加值的序列。在另一示例中,停驻时间模块920可以调度用于擦除分量704中的每一个的停驻时间422的降低值的序列。

存储器年龄模块922可以基于擦除块206中的每一个的存储器年龄220而计算用于下一部分擦除操作的擦除操作值。擦除操作值可以包括擦除脉冲计数412、擦除电压414、擦除电压414和擦除脉冲宽度416。

可以基于擦除块206的存储器年龄220而计算擦除脉冲计数412。随着擦除块206的存储器年龄220增加,擦除块206可能需要用于擦除脉冲计数412的更高值,以实现相同等级的擦除或部分擦除。

可以基于擦除块206的存储器年龄220而计算擦除电压414。随着擦除块206的存储器年龄220增加,擦除块206可能需要用于擦除电压414的更高值,以实现相同等级的擦除或部分擦除。

可以通过各种方式计算擦除脉冲宽度416。例如,可以基于擦除块206的存储器年龄220而计算擦除脉冲宽度416。随着擦除块206的存储器年龄220增加,擦除块206可能需要用于擦除脉冲宽度416的更长值,以实现相同等级的擦除或部分擦除。

更新模块924可以通过接收优化模块914中所计算的操作值并且基于擦除操作值426而配置下一部分擦除操作来配置擦除处理902。在完成之后,更新模块924可以将控制流程传递回到部分擦除模块906。

擦除处理902的模块可以实现于软件、硬件或其组合中。例如,可以通过凭借图1的控制单元110执行图1的软件122来执行擦除处理902。软件122可以通过发送配置命令以调谐(tune)数据存储系统100上的擦除设置或通过仅多次执行部分擦除操作来实现擦除处理902。.

擦除处理902可以在作为专用硬件单元的硬件中得以执行,并且然后提供命令接口以存取擦除分量。擦除处理902可以实现为定制命令,或可以通过修改数据存储系统100的擦除命令406而得以实现。

源自擦除处理902的物理变换产生数据存储系统100的存储器单元136中的电荷等级的改变。由于电荷等级在物理世界中改变,例如,擦除处理902随部分擦除操作的周期继续并且执行介入命令806,因此存储器单元136中的电荷等级的增量改变了创建关于电荷等级的附加信息,其用于数据存储系统100的继续操作,并且确定电荷等级的进一步改变,以完成擦除处理902。

控制器102可以使用控制单元110上执行的软件122以实现擦除处理902。例如,软件122可以包括配置模块904、部分擦除模块906、检查状态模块908、介入命令模块912、优化模块914和更新模块924。软件122可以包括擦除参数模块916、总时间模块918、停驻时间模块920和存储器年龄模块922。

控制器102可以使用控制单元110和软件122实现擦除处理902,以控制图1的纠错码单元112、图1的主机接口114、图1的存储器接口116、图1的只读存储器118、图1的随机存取存储器120以及图1的数据库124。控制器102可以使用控制单元110和软件122实现擦除处理902,以控制包括图1的阵列逻辑130、图1的存储器裸芯132、图1的单元阵列134和存储器单元136的存储器阵列106。

控制单元110可以执行软件122,以用于配置模块904配置存储器阵列106。控制单元110可以执行软件122,以用于部分擦除模块906部分地擦除存储器阵列106。控制单元110可以执行软件122,以用于检查状态模块908确定擦除操作的状态。

控制单元110可以执行软件122,以用于介入命令模块912执行介入命令806。控制单元110可以执行软件122,以用于优化模块914计算擦除操作值426。控制单元110可以执行软件122,以用于更新模块924更新操作矩阵408。

数据存储系统100描述模块功能或顺序作为示例。模块可以不同地分区。例如,部分擦除模块906和检查状态模块908可以组合。模块中的每一个可以单独地或独立于其它模块而操作。

此外,一个模块中所生成的数据可以由另一模块在无需彼此直接耦合的情况下使用。例如,优化模块914可以从检查状态模块9089接收命令状态430。

已经发现,在介入命令806的情况下执行擦除操作804可以减少用于基于块的NAND闪速存储器的主机存取时延。甚至由于擦除时间随着擦除块206的存储器年龄220增加而增加,因此使得介入命令806能够在完成擦除块206的擦除之前完成可以允许更多的命令在更少的时间中执行,提供用于介入命令806的低时延。

已经发现,在介入命令806的情况下执行擦除操作804可以减少复杂度并且简化存储器操作。因为可以在没有存储器冲突的情况下执行擦除操作和介入命令806,所以擦除操作无需中断并且在稍后时间重启。

已经发现,随着擦除块206的存储器年龄220增加,在介入命令806的情况下执行擦除操作804可以提供随着时间一致的性能。通过交织介入命令806,命令时延可以与实际擦除时间解耦合,并且提供更一致的操作。

已经发现,在各擦除分量704之间变化擦除脉冲宽度416和擦除电压414可以增加灵活性。在各擦除分量704之间改变擦除电压414和擦除脉冲宽度416允许数据存储系统100动态地适配存储器单元132中的电荷量,以执行完全擦除。

已经发现,基于擦除块206的存储器年龄220而在各擦除分量704之间变化擦除电压414和擦除脉冲宽度416可以增加灵活性。基于擦除块206的存储器年龄220而调整擦除电压414和擦除脉冲宽度416可以允许数据存储系统100动态地适配存储器单元132中的电荷量,以执行完全擦除。

已经发现,在各擦除分量704之间提供达停驻时间422的延迟可以增强耐久性并且增加操作寿命。允许存储器单元136通过暂停达停驻时间422而在各擦除分量704之间恢复减少NAND闪速存储器的物理结构上的磨损并且导致更少的磨损。通过在较长时间段上执行温和的擦除操作增强耐久性。为了补偿超过最大读取时延的擦除操作,擦除操作可以划分为多个部分擦除操作,以允许在各部分擦除操作之间执行介入命令806。

已经发现,基于擦除块206的存储器年龄220而在各擦除分量704之间变化停驻时间422可以增加操作寿命。允许擦除块206通过动态地增加用于具有较高值的存储器年龄220的擦除块206的停驻时间422而在各擦除分量704恢复减少了NAND闪速存储器的物理结构上的磨损并且导致更少的磨损。

现参照图10,其中示出本发明另一实施例中的在图1的数据存储系统100中具有模块化擦除的数据管理的方法1000的流程图。在数据存储系统中具有模块化擦除的数据管理的方法,其中,存储器阵列具有擦除块和目标块,其中,逻辑单元中的所述目标块与所述擦除块分离,包括:在块1002中,对所述擦除块执行擦除操作,所述擦除操作具有操作矩阵,被配置用于所述擦除块的部分擦除;在块1004中,更新用于所述擦除块的命令状态;在块1006中,基于指示不完全擦除状态的所述命令状态而在所述目标块上启用介入命令,其中,所述介入命令更新所述命令状态;在块1008中,基于所述命令状态而执行擦除优化;在块1010中,基于所述擦除优化而执行附加擦除操作;以及在块1012中,基于所述附加擦除操作而将所述命令状态更新为擦除完成状态。

因此,已经发现,本发明的数据存储系统通过模块化擦除对于数据存储系统提供重要的并且此前未知的并且不可用的解决方案、能力以及功能方面。所得方法、处理、装置、设备、产品和/或系统是直接的、成本有效的、不复杂的、高度多样化的、精确的、灵敏的并且有效的,并且可以通过关于就绪的、高效的并且经济的制造、应用和利用来适配已知组件而得以实现。

本发明的另一重要方面是,其有价值地支持并且服务于减少成本、简化系统以及增加性能的历史趋势。

本发明的这些和其它有价值的方面因此将现有技术推进到至少下一等级。

虽然已经结合具体实施方式描述了本发明,但应理解,根据以上所提供的描述,很多替选、修改和变形将对于本领域技术人员是清楚的。相应地,期望涵盖落入所附权利要求的范围内的所有这些替选、修改和变形。在此阐述或在附图中示出的所有实施例是在说明性以及非限定性的意义上解释的。

本发明提供一种在具有存储器阵列的数据存储系统中具有模块化擦除的数据管理的方法,其中,存储器阵列具有擦除块和目标块,其中,逻辑单元中的所述目标块与所述擦除块分离,包括:对所述擦除块执行擦除操作,所述擦除操作具有操作矩阵,被配置用于所述擦除块的部分擦除;更新用于所述擦除块的命令状态;基于指示不完全擦除状态的所述命令状态而在所述目标块上启用介入命令,其中,所述介入命令更新所述命令状态;基于所述命令状态而执行擦除优化;基于所述擦除优化而执行附加擦除操作;以及基于所述附加擦除操作而将所述命令状态更新为擦除完成状态。

本发明提供一种数据存储系统,包括:配置模块,用于配置具有擦除块和目标块的存储器阵列,逻辑单元中的所述目标块与所述擦除块分离;部分擦除模块,耦合到所述配置模块,以用于:对所述擦除块执行擦除操作,所述擦除操作具有被配置用于所述擦除块的部分擦除的操作矩阵,所述擦除操作更新用于所述擦除块的命令状态;以及基于擦除优化而执行附加擦除操作;介入命令模块,耦合到所述部分擦除模块,以用于基于指示不完全擦除的所述命令状态而对所述目标块执行介入命令,其中,所述介入命令更新所述命令状态;优化模块,耦合到所述介入命令模块,以用于基于所述命令状态而执行擦除优化;以及更新模块,耦合到所述优化模块,以用于基于所述附加擦除操作而将所述命令状态更新为擦除完成状态。

本发明提供一种数据存储系统,包括:控制器,耦合到具有擦除块和目标块的存储器阵列,逻辑单元中的所述目标块与所述擦除块分离;控制单元,耦合到所述存储器阵列,以用于:对所述擦除块执行擦除操作,所述擦除操作具有被配置用于所述擦除块的部分擦除的操作矩阵,所述擦除操作更新用于所述擦除块的命令状态;以及基于擦除优化而执行附加擦除操作;存储器接口,耦合到所述控制单元,以用于基于指示不完全擦除的所述命令状态而对所述目标块执行介入命令,其中,所述介入命令更新所述命令状态;阵列逻辑,耦合到所述存储器接口,以用于基于所述命令状态而执行擦除优化;以及数据库,耦合到所述控制单元,以用于基于所述附加擦除操作而将所述命令状态更新为擦除完成状态。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1