用于擦除非易失性存储器块中编程的数据的装置和方法与流程

文档序号:21550364发布日期:2020-07-21 10:55阅读:247来源:国知局
用于擦除非易失性存储器块中编程的数据的装置和方法与流程

相关申请的交叉引用

本专利申请要求于2019年1月11日提交的韩国专利申请号10-2019-0003825的优先权,其全部公开内容通过引用并入本文。

本公开涉及存储器系统,并且更具体地涉及用于擦除存储器系统的非易失性存储器块中的数据的方法和装置。



背景技术:

近来,用于计算环境的范例已转移到普适计算,这使得可以随时随地访问计算机系统。结果,诸如移动电话、数码相机、笔记本计算机等的便携式电子装置的使用正在迅速增加。这样的便携式电子装置通常使用或包括存储器系统,存储器系统使用或包括至少一个存储器装置,即,作为数据存储装置。存储器系统可以用作便携式电子装置的主存储装置或辅助存储装置。与硬盘不同,使用非易失性半导体存储器装置的存储器系统的优点在于,由于其没有机械驱动部件(例如,机械臂),其具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。在具有这种优点的存储器系统的上下文中,示例性数据存储装置包括通用串行总线(usb)存储器装置、具有各种接口的存储器卡、固态驱动器(ssd)等。



技术实现要素:

本发明的实施例可以提供存储器系统、数据处理系统和操作方法,其能够通过减少存储器系统的操作复杂度和性能劣化并提高存储器装置的使用效率来快速且可靠地处理针对存储器装置的数据。

另外,本公开的实施例可以提供用于在确保利用大容量数据进行编程的多个空闲块的过程中避免由于擦除多个块(包括不再有效的数据)所需的时间而在编程大容量数据时出现时延的方法和装置。

另外,本公开的实施例可以提供用于在对多个块执行编程操作以将大量数据存储在存储器装置中之前检查和控制用于编程操作的多个块的状态使得可以减少执行诸如损耗均衡或垃圾收集的操作所需的时间的方法。因此,可以提供可以改进或增强存储器装置的效率和稳定性的方法和装置。

另外,本公开的实施例可以提供可以通过可变地确定擦除计数来更准确地确定、测量和控制存储器块的状态(例如,寿命)的方法和装置,该擦除计数在通过包括多个擦除单元操作的擦除操作来擦除存储器块中存储的数据之后递增。

在实施例中,一种存储器系统可以包括:存储器装置,包括用于存储数据的多个存储器块;以及控制器,被配置为执行包括多个单位擦除操作的擦除操作,以擦除多个存储器块中包括的至少一个目标存储器块中存储的数据。控制器可被配置为在至少一个目标存储器块被分配用于存储数据之前对至少一个目标存储器块执行多个单位擦除操作中的至少一些。

作为示例而非限制,控制器在直接在执行多个单位擦除操作中的至少一些之后,不对至少一个目标存储器块执行擦除验证。

由控制器执行的多个单位擦除操作中的至少一些可以包括擦除操作的80%至90%。控制器可以被配置为当至少一个目标存储器块被分配用于存储数据时对至少一个目标存储器块执行擦除操作的剩余10%至20%。控制器被配置为执行擦除验证,以检查至少一个目标存储器块是否被擦除。

控制器可以被配置为即使在从主机未输入命令时,在至少一个目标存储器块被分配用于存储数据之前,对至少一个目标存储器块执行多个单位擦除操作中的全部。

控制器在直接在执行多个单位擦除操作的全部之后不对至少一个目标存储器块执行擦除验证。

控制器可以被配置为在至少一个目标存储器块被分配用于存储数据之后对至少一个目标存储器块执行擦除验证,并且当至少一个目标存储器块未被完全擦除时,执行附加的单位擦除操作。

控制器可以被配置为确定对至少一个目标存储器块执行擦除操作的第一定时和将至少一个目标存储器块分配用于存储数据的第二定时。第一定时可以在第二定时之前。

控制器可以被配置为单独地确定对多个目标存储器块执行擦除操作的定时,并且确定将多个目标存储器块同时分配用于存储数据的定时。

控制器可以被配置为当从主机未提供功率时,停止对至少一个目标存储器块执行多个单位擦除操作中的至少一些,直到至少一个目标存储器块被分配用于存储数据。

在另一实施例中,一种存储器系统中的控制器可以包括:目标块选择器,被配置为在多个存储器块之中选择至少一个存储器块作为至少一个目标存储器块;目标块管理器,被配置为确定至少一个目标存储器块是否用于存储数据;以及擦除执行器,被配置为执行包括多个单位擦除操作的擦除操作以擦除至少一个目标存储器块,并且在至少一个目标存储器块被确定用于存储数据之前对至少一个目标存储器块执行多个单位擦除操作中的至少一些。

控制器可以进一步包括被配置为检查至少一个目标存储器块是否被擦除的擦除状态验证器。

在另一实施例中,一种用于操作存储器系统的方法可以包括:在多个存储器块之中选择至少一个存储器块作为至少一个擦除目标块;执行第一擦除操作以擦除至少一个擦除目标块;以及在执行第一擦除操作之后,将至少一个擦除目标块之中的一个或多个编程目标块分配用于存储数据。

该方法可以进一步包括:检查一个或多个编程目标块是否被完全擦除;以及基于检查结果来对一个或多个编程目标块执行第二擦除操作。

该方法可以进一步包括对一个或多个编程目标块执行第二擦除操作。

第一擦除操作可以包括用于擦除存储器块的操作的80%至90%,并且第二擦除操作可以包括用于擦除存储器块的操作的其余10%至20%。

即使在从主机未输入命令时,也可以在将至少一个擦除目标存储器块分配为用于存储数据的至少一个编程目标块之前,对至少一个擦除目标存储器块执行第一擦除操作。

直接在第一擦除操作之后,可以不对至少一个擦除目标存储器块执行擦除验证。

可以在不同的定时或针对不同的结束,对多个擦除目标存储器块执行第一擦除操作。因此,最大功率或峰值电流的水平可以减小,以及第一擦除操作的操作裕度可以是适应性的或灵活的,使得存储器系统的性能可以提高。可以对多个擦除目标存储器块顺序地或基本同时地执行第二擦除操作。

在另一实施例中,一种存储器系统可以包括:存储器装置,包括被配置为存储数据的多个存储器块;以及控制器,被配置为:控制存储器装置以对存储器块之中选择的一个或多个擦除目标块中的每一个执行第一次数的单位擦除操作;以及控制存储器装置以对擦除目标块之中选择的一个或多个编程目标块中的每一个执行第二次数的单位擦除操作。

附图说明

本文的描述参考了附图,其中在所有附图中,相同的附图标记指代相同的部分,并且在附图中:

图1图示了根据本公开的实施例的存储器系统;

图2示出了根据本公开的实施例的包括耦合至主机的存储器系统的数据处理系统;

图3图示了根据本公开的实施例的存储器系统;

图4至图5是图示根据本公开的实施例的存储器系统的命令操作的图;

图6图示了根据本公开的另一实施例的存储器系统;

图7a和图7b图示了根据本公开的实施例的擦除操作;

图8是示意性地图示根据本公开的实施例的单位擦除操作的图;

图9是图示根据本公开的实施例的用于验证擦除操作的操作的图;

图10是图示根据本公开的实施例的存储器系统的操作方法的流程图;

图11是图示根据本公开的另一实施例的存储器系统的操作方法的流程图;

图12是图示根据本公开的另一实施例的存储器系统的操作方法的流程图;

图13至图21是示意性地图示根据本公开的实施例的包括存储器系统的其他数据处理系统的图。

具体实施方式

下面参考附图更详细地描述本公开的各种实施例。然而,本公开的元件和特征可以不同地被配置或布置来形成可以是任何公开的实施例的变型的其他实施例。因此,本发明不限于本文阐述的实施例。而是,提供所描述的实施例,使得本公开是彻底和完整的,并且将本公开的范围充分传达给本发明所属领域的技术人员。注意,对“实施例”、“另一实施例”等的引用不一定仅意味着一个实施例,并且对任何这样的短语的不同引用不一定针对相同的(多个)实施例。

将理解,尽管在本文中可以使用术语“第一”、“第二”、“第三”等来标识各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与具有相同或相似名称的另一元件区分开。因此,在不脱离本发明的精神和范围的情况下,在一个实例中的第一元件在另一实例中也可以被称为第二或第三元件。

附图不一定按比例绘制,并且在某些情况下,比例可能被放大以清楚地示出实施例的特征。

当一个元件被称为连接或耦合至另一元件时,应理解,前者可直接连接至或耦合至后者,或经由其间的中间元件而电连接至或耦合至后者。另外,还将理解,当元件被称为在两个元件之间时,它可以是两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。

本文中使用的术语仅出于描述特定实施例的目的,并且不旨在限制本发明。如本文所使用,除非上下文另外明确指出,否则单数形式旨在包括复数形式。除非另外说明,或者从上下文可以清楚地理解为单数形式,否则在本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为“一个或多个”。

将进一步理解,当在本说明书中使用时,术语“包括”、“包括……的”、“包含”、“包含……的”指定存在所述的元件并且不排除存在或增加一个或多个其他元件。如本文所使用,术语“和/或”包括一个或多个相关联的所列项目的任意和所有组合。

除非另有定义,否则本文中使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域的普通技术人员鉴于本公开而通常理解的相同含义。还将理解,除非本文中明确定义,否则诸如在常用词典中定义的那些的术语应被解释为具有与其在本公开和相关领域的上下文中的含义一致的含义,并且不应以理想化或过于正式的方式进行解释。

在下面的描述中,阐述了许多具体细节以便提供对本发明的透彻理解。可以在没有一些或所有这些具体细节的情况下实践本发明。在其他情况下,未详细描述公知的过程结构和/或过程,以免不必要地模糊本发明。

还应注意,在某些情况下,如对相关领域的技术人员显而易见,除非另有明确说明,否则结合实施例描述的特征或元件可以被单独使用或与另一实施例的其他特征或元件组合使用。

现在将参考附图来详细描述本公开的实施例,其中相同的附图标记指代相同的元件。

图1图示了根据本公开的实施例的存储器系统。

参考图1,存储器系统1002可以包括控制器1004和存储器装置1006。存储器装置1006可以包括第一块blk1,第一块blk1需要擦除存储在其中的数据以便存储新数据的操作。尽管未示出,但是存储器装置1006可以包括多个存储器块,多个存储器块可以包括封闭块(其中所有页可以利用数据被编程)、开放块(其中可以将页用于编程数据)或者空闲块(其中数据可以准备被编程)。

存储器装置1006中的多个存储器块可以被实现为非易失性存储器单元。在这种情况下,多个存储器块可能不支持数据覆写入操作。因此,如果数据从未被记录在存储器块的非易失性存储器单元中,则新数据可以被编程在存储器块的非易失性存储器单元中。然而,为了在先前在非易失性存储器单元中对数据进行编程之后将新数据编程在存储器块的该非易失性存储器单元中,需要在新数据可以被编程在存储器装置1006的相同位置中之前执行用于擦除该非易失性存储器单元的操作。在图1中,以第一块blk1为例示出其中在对新数据进行编程之前,必须擦除不再有效的数据。

在常规的存储器系统中,紧接(或直接)在用于将数据新存储在存储器装置中的多个存储器块之中选择的存储器块中的编程操作之前,对该存储器块执行擦除操作。如果在对存储器块执行针对新数据的编程操作之前很久就对该存储器块执行了擦除操作,则由于电荷损失和电荷获取,该存储器块中的非易失性存储器单元的阈值电压分布可能会随着时间逐渐变宽。变宽的阈值电压分布可能会在编程操作期间导致错误。由于该原因,在常规的存储器系统中,紧接(或直接)在对能够新编程数据的存储器块执行编程操作之前,对该存储器块执行擦除操作,使得存储器系统可以避免或减少由于阈值电压分布随时间变化而引起的误差。

然而,当需要多个存储器块的大容量数据(大量数据)要被编程在存储器装置中时,常规的存储器系统紧接在将大容量数据编程到多个存储器块之前对多个存储器块执行擦除操作,这可能会延迟编程操作,即,增加其时延。特别地,与包括非易失性存储器单元的存储器装置中的读取操作或编程操作相比,擦除操作可能花费更长的时间。因此,当在将大量数据编程在存储器装置中的过程中需要大量时间来擦除多个存储器块时,存储器系统的编程操作可能会变慢。这会极大地影响存储器系统的操作可靠性和性能。

根据实施例,当存储器装置1006中的至少一个存储器块中的数据可以被擦除(即,该数据不再被使用)时,存储器系统1002预先对该至少一个存储器块执行擦除操作,而不管该至少一个存储器块是否将被重用(例如,新编程数据)。因此,可以避免或减少由于紧接在对多个存储器块进行编程之前对多个存储器块执行擦除操作而可能发生的时延。

尽管未示出,但是在本公开的以下实施例中,可以假定以下几点。例如,可以存在当控制器1004确定存储在特定存储器块中的数据不再有效并且可以对特定存储器块执行擦除操作时的第一定时点。即,控制器1004可以将存储器块确定为空闲块或空块,因为在存储器装置1006中的存储器块中编程的所有数据在第一定时点不再有效。另外,可以存在当控制器1004选择被确定为空闲块或空块的存储器块来新编程数据时的第二定时点。即,在第二定时点,存储器系统可以确定是否仅使用存储器装置1006中的多个存储器块之中存储无效数据的特定存储器块以用于新编程数据。例如,在第二时间点,从与存储器系统1002可操作地接合的主机(参见图2至图3)输入具有大量数据的编程命令,然后控制器1004试图在存储器装置1006中确保与大量数据的大小相对应的多个存储器块以便执行编程命令。此外,可以存在当控制器1004将数据新编程在第二定时点确保的存储器块中时的第三定时点。

在常规的存储器系统中,在第二定时点和第三定时点之间执行擦除存储器块的操作。然而,在本公开的实施例中,当确定使用特定存储器块以用于新编程数据时,特定存储器块可以被擦除,而不管第二定时点如何。例如,控制器1004可以在第一定时点和第二定时点之间擦除特定存储器块。在下文中,可以参考第一定时点、第二定时点和第三定时点来描述本公开的实施例。

根据实施例,控制器1004可以对存储器装置1006中的存储器块执行第一擦除操作和/或第二擦除操作。在第一定时点和第二定时点之间,即,在控制器1004选择特定存储器块以新编程数据之前,可以对仅存储无效数据的至少一些存储器块执行第一擦除操作。另外,在第一擦除操作中,在施加用于擦除特定块的擦除脉冲之后,控制器1004可以不检查特定块是否被擦除。即,第一擦除操作可以不包括在向存储器块施加至少一个擦除脉冲之后向存储器块施加擦除验证脉冲以用于确认存储在其中的数据是否已被擦除的操作。即使当第一擦除操作包括多个单位擦除操作时,控制器1004也可以不检查在单位擦除操作之后或在单位擦除操作之间存储器块是否被擦除。

另一方面,仅在第二定时点和第三定时点之间,即,在控制器1004选择用于后续编程操作的特定存储器块之后,可以对特定存储器块执行第二擦除操作。而且,在第二擦除操作中,用于在擦除脉冲之后检查在特定存储器块中存储的数据是否被擦除的擦除验证脉冲擦除可以被施加到特定存储器块。当第二擦除操作包括多个单位擦除操作时,控制器1004可以检查在单位擦除操作之后或在单位擦除操作之间特定存储器块是否被擦除。

如上所述,在操作定时、作为擦除操作目标的存储器块的范围、或者在擦除操作之后是否执行擦除验证方面,第一擦除操作和第二擦除操作不同。第一擦除操作是用于减少第二擦除操作所花费的时间的预备操作的类型。第二擦除操作是擦除存储器块以及将存储器中的存储器单元的阈值电压分布调整在预设范围内以便避免在下一编程操作或随后执行的编程操作期间发生错误的实质或主要擦除操作类型。

在实施例中,针对单个存储器块,第一擦除操作可以比第二擦除操作执行得更长。例如,当第一擦除操作和第二擦除操作包括待在单个存储器块上执行的多个单位擦除操作时,在一个周期中对单个存储器块执行的单位擦除操作的数目可以不同。在常规存储器系统中,控制器可以在一个擦除操作周期期间执行100个单位擦除操作,以完全擦除单个存储器块。在本公开的实施例中,可以在一个周期期间通过90个单位擦除操作来对单个存储器块执行第一擦除操作,并且可以在一个周期期间通过其余10个单位擦除操作来对单个存储器块执行第二擦除操作。在另一实施例中,第一擦除操作可以包括在一个周期中对单个存储器块的80个单位擦除操作,并且第二擦除操作可以包括在一个周期中对单个存储器块的其余20个单位擦除操作。

在根据本公开的实施例的存储器系统1002中,在擦除操作期间在第一擦除操作和第二擦除操作中包括的单位擦除操作的数目的总和与常规存储器系统中的擦除操作期间执行的单位擦除操作的数目基本相同。然而,在本公开的实施例中,在第一擦除操作中执行的单位擦除操作的数目可以大于第二擦除操作的单位擦除操作的数目,以便减少紧接在编程操作之前执行的擦除操作所花费的时间。

根据另一实施例,当在第一擦除操作中执行100个单位擦除操作时,可以在第二擦除操作中执行单个单位擦除操作。在另一实施例中,构成用于擦除特定块的一个擦除操作的第一擦除操作和第二擦除操作的单位擦除操作的数目之和可以大于100次。例如,在控制器1004执行足以擦除特定块的100%第一擦除操作很久之后,特定块中的存储器单元的阈值电压分布可能改变。在这种情况下,可以在很短的时间内执行包括几个单位擦除操作的第二擦除操作,以调整或纠正特定块中的存储器单元的阈值电压分布。

参考图1,控制器1004可以执行第一擦除操作以用于擦除第一块blk1。根据实施例,在第一擦除操作之后,控制器1004可以不检查第一块blk1是否被完全擦除。即,控制器1004可以在第一定时点和第二定时点之间对第一块blk1执行第一擦除操作,并且可以不检查第一块blk1是否被擦除。这里,第一擦除操作可以被执行作为存储器系统1002的后台操作,而不管来自主机的命令如何。

根据实施例,控制器1004从主机接收具有可以存储在存储器装置1006中的多个块中的大量数据的编程命令,以及然后响应于编程命令而从存储器装置1006中的多个存储器块之中选择第一块blkl以存储大量数据。可以在确定从多个块之中选择的存储器块以编程数据的定时点,即,确定是否使用特定存储器块以及何时使用特定存储器块的第二定时点时,执行该操作。

在确定是否使用特定存储器块以及何时使用特定存储器块的第二时间点之后,控制器1004可以检查特定存储器块是否被擦除。根据实施例,控制器1004可以在第二定时点与第三定时点之间在将数据存储在第一块blk1中之前,检查第一块blk1是否已被擦除。在控制器1004检查第一块blk1是否被擦除之后,控制器1004可以确定是否对第一块blk1执行第二擦除操作。

当第一块blk1被擦除时,控制器1004可以响应于主机的编程命令而将数据编程在第一块blk1中,而无需对第一块blk1执行第二擦除操作。在第一块blk1被擦除时不必要地执行第二擦除操作可能导致第一块blk1的存储器单元特性的劣化。因此,当第一块blk1准备好对数据进行新编程时,不必对第一块blk1执行第二擦除操作。

如果第一块blk1未被擦除,则控制器1004可以通过执行第二擦除操作来擦除第一块blk1。而且,控制器1004可以在执行第二擦除操作之后检查第一块blk1是否被擦除。当通过第二擦除操作擦除第一块blk1时,控制器1004可以响应于从主机输入的编程命令而将数据新编程在第一块blk1中。

在另一实施例中,当第一擦除操作可以部分地擦除特定存储器块或者第一擦除操作可以被设置为擦除特定存储器块中存储的部分数据时,控制器1004在选择用于编程操作的特定存储器块之后立即执行第二擦除操作,而不检查特定存储器块的擦除状态。例如,第一擦除操作可以使用小于擦除第一块blk1中剩余的数据所需的资源的预定范围。具体地,擦除脉冲应被施加12ns至20ns的时段以擦除第一块blk1中剩余的数据,在第一擦除操作中擦除脉冲被施加到第一块blk1的时段短于10ns,以便不完全擦除第一块blk1中剩余的数据。在第一块blk1被选择用于下一个或随后的编程操作以新编程数据之后,可以执行第二擦除操作,而不检查第一块blk1是否被擦除。当通过第二擦除操作擦除特定存储器块时,控制器1004可以响应于从主机输入的编程命令而将数据新编程在特定存储器块中。通过这些过程,可以缩短或减少执行擦除和编程操作的时间。

此外,即使通过在确定使用第一块blk1之前执行的第一擦除操作完全擦除了第一块blk1,在经过一段时间之后,存储器单元的阈值电压也包括在第一块blk1中。根据实施例,当从完成第一擦除操作的时间起经过预定的时间范围时,控制器1004可以在将数据新编程在第一块blk1中之前对第一块blk1执行第二擦除操作,而不检查第一块blk1的擦除状态。例如,如果记录了对第一块blk1完成第一擦除操作的时间点,则当确定使用第一块blk1时可以检查经过的时间。可以响应于经过的时间而执行第二擦除操作,而无需检查第一块blk1是否已被擦除的操作。

图2图示了根据本公开的实施例的数据处理系统100。参考图2,数据处理系统100可以包括与存储器系统110接合或互锁的主机102。

主机102可以包括例如诸如移动电话、mp3播放器和膝上型计算机的便携式电子装置或者诸如台式计算机、游戏机、电视(tv)、投影仪等的电子装置。

主机102还包括通常可以管理和控制在主机102中执行的功能和操作的至少一个操作系统(os)。os可以在与存储器系统110接合的主机102和需要并使用存储器系统110的用户之间提供互操作性。os可以支持与用户请求相对应的功能和操作。作为示例而非限制,可以根据主机102的移动性将os分为通用操作系统和移动操作系统。通用操作系统可以根据系统要求或用户环境分为个人操作系统和企业操作系统。包括windows和chrome的个人操作系统可以服从于用于通用目的的支持服务。但是企业操作系统(包括windows服务器、linux、unix等)可以专门用于确保和支持高性能。此外,移动操作系统可以包括android、ios、windowsmobile等。移动操作系统可以服从用于移动性的支持服务或功能(例如,省电功能)。主机102可以包括多个操作系统。主机102可以执行与对应于用户请求的存储器系统110互锁的多个操作系统。主机102可以将与用户的请求相对应的多个命令发送到存储器系统110中,从而在存储器系统110内执行与命令相对应的操作。稍后将参考图4和图5来描述处理存储器系统110中的多个命令。

存储器系统110可以响应于来自主机102的请求而操作或执行特定功能或操作,并且特别地可以存储待由主机102访问的数据。存储器系统110可以用作主机102的主存储器系统110或辅助存储器系统。可以根据主机接口的协议,使用各种类型的存储装置中的任何一种来实现可以与主机102电耦合的存储器系统110。合适的存储装置的非限制性示例包括固态驱动器(ssd)、多媒体卡(mmc)、嵌入式mmc(emmc)、减小尺寸的mmc(rs-mmc)、微型mmc、安全数字(sd)卡、小型sd、微型sd、通用串行总线(usb)存储器装置、通用闪存(ufs)装置、紧凑型闪存(cf)卡、智能媒体(sm)卡、记忆棒等。

用于存储器系统110的存储装置可以利用易失性存储器装置(例如,动态随机存取存储器(dram)和静态ram(sram))和/或非易失性存储器装置(例如,只读存储器(rom)、掩码rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电ram(fram)、相变ram(pram)、磁阻ram(mram)、电阻ram(rram或reram)和闪存)来实现。

存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储待由主机102访问的数据。控制器130可以控制数据在存储器装置150中的存储。

控制器130和存储器装置150可以被集成到单个半导体装置中,单个半导体装置可以被包括在以上示例的各种类型的存储器系统中的任何一个中。

作为示例而非限制,控制器130和存储器装置150可以集成到单个半导体装置中。控制器130和存储器装置150可以被集成到ssd中以提高操作速度。当存储器系统110用作ssd时,与利用硬盘实现的主机102的操作速度相比,连接到存储器系统110的主机102的操作速度可以改进更多。另外,控制器130和存储器装置150可以集成到一个半导体装置中来形成诸如pc卡(pcmcia)、紧凑型闪存卡(cf)的存储器卡、诸如智能媒体卡(例如,sm、smc)的存储器卡、记忆棒、多媒体卡(例如,mmc、rs-mmc、mmcmicro)、安全数字(sd)卡(例如,sd、minisd、microsd、sdhc)、通用闪存等。

存储器系统110可以被配置作为例如计算机、超移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、web平板电脑、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航系统、黑匣子、数码相机、数字多媒体广播(dmb)播放器、3维(3d)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储部、能够在无线环境下发送和接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、射频id身份验证(rfid)装置或构成计算系统的各种部件之一的一部分。

存储器装置150可以是非易失性存储器装置,并且即使不提供电力也可以保留存储在其中的数据。存储器装置150可以通过写入操作来存储从主机102提供的数据,同时通过读取操作将存储在其中的数据提供给主机102。存储器装置150可以包括多个存储器块152、154、156,每个存储器块可以包括多个页。多个页中的每一个可以包括多个存储器单元,多个字线(wl)电耦合到多个存储器单元。存储器装置150还包括多个存储器管芯,每个存储器管芯包括多个平面,每个平面包括多个存储器块152、154、156。另外,存储器装置150可以是非易失性存储器装置(例如,闪存),其中闪存可以是三维堆叠结构。

控制器130可以控制存储器装置150的整体操作,诸如读取、写入、编程和擦除操作。例如,控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可以将从存储器装置150读取的数据提供给主机102。控制器130可以将由主机102提供的数据存储到存储器装置150中。

控制器130可以包括主机接口(i/f)132、处理器134、纠错码(ecc)部件138、功率管理单元(pmu)140、存储器接口(i/f)142和存储器144,其全部经由内部总线可操作地耦合。

主机接口132可以对从主机102提供的命令和数据进行处理,并且可以通过各种接口协议(诸如通用串行总线(usb)、多媒体卡(mmc)、外围部件互连快速(pci-e或pcie)、小型计算机系统接口(scsi)、串行连接的scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、小型计算机系统接口(scsi)、增强型小磁盘接口(esdi)和集成驱动电子装置(ide))中的至少一个与主机102通信。根据实施例,主机接口132是用于与主机102交换数据的部件,其可以通过被称为主机接口层(hil)的固件来实现。

ecc部件138可以纠正待在存储器装置150中处理(例如,从其输出)的数据的错误位,ecc部件138可以包括ecc编码器和ecc解码器。这里,ecc编码器可以对待在存储器装置150中编程的数据执行纠错编码,以生成添加了奇偶校验位的编码数据,并将编码数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ecc解码器可以检测并纠正从存储器装置150读取的数据中包含的错误。即,在对从存储器装置150读取的数据执行纠错解码之后,ecc部件138可以确定纠错解码是否成功并且输出指令信号(例如,纠正成功信号或纠正失败信号)。ecc部件138可以使用在ecc编码过程中生成的奇偶校验位来纠正读取数据的错误位。当错误位的数目大于或等于可纠正错误位的阈值数目时,ecc部件138可以不纠正错误位,而是可以输出指示纠正错误位失败的纠错失败信号。

ecc部件138可以基于诸如低密度奇偶校验(ldpc)码、bose-chaudhuri-hocquenghem(bch)码、turbo码、reed-solomon(rs)码、卷积码、递归系统代码(rsc)、网格编码调制(tcm)、块编码调制(bcm)等的编码调制来执行纠错操作。ecc部件138可以包括用于基于上述代码中的至少一个来执行纠错操作的所有电路、模块、系统或装置。

pmu140可以管理在控制器130中提供的功率。

存储器接口142可以用作用于处理在控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102传递的请求来控制存储器装置150。当存储器装置150是闪存并且尤其是当存储器装置150是nand闪存时,存储器接口142可以生成用于存储器装置150的控制信号并且可以在处理器134的控制下处理输入到存储器装置150或从存储器装置150输出的数据。存储器接口142可以提供用于处理控制器130和存储器装置150之间的命令和数据的接口,例如nand闪存接口的操作,特别是控制器130和存储器装置150之间的操作。根据实施例,存储器接口142可以通过被称为闪存接口层(fil)的固件来实现,作为用于与存储器装置150交换数据的部件。

存储器144可以支持由存储器系统110和控制器130执行的操作。存储器144可以存储在存储器系统110和控制器130中进行操作而发生或已传递的临时或事务数据。控制器130可以响应于来自主机102的请求而控制存储器装置150。控制器130可以将从存储器装置150读取的数据传递到主机102中。控制器130可以将通过主机102输入的数据存储在存储器装置150内。存储器144可以用于存储数据以供控制器130和存储器装置150执行诸如读取操作或编程/写入操作的操作。

存储器144可以利用易失性存储器来实现。存储器144可以利用静态随机存取存储器(sram)、动态随机存取存储器(dram)或两者来实现。虽然图1例示了设置在控制器130内的第二存储器144,但是本发明不限于此。即,存储器144可以位于控制器130内部或外部。例如,存储器144可以由具有在存储器144和控制器130之间传送数据和/或信号的存储器接口的外部易失性存储器来体现。

存储器144可以存储执行诸如主机102所请求的数据写入和数据读取的操作和/或在存储器装置150与控制器130之间用于诸如如下所述的垃圾收集和损耗均衡的后台操作的数据传送所必需的数据。根据实施例,为了支持存储器系统110中的操作,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。

处理器134可以利用微处理器或中央处理单元(cpu)来实现。存储器系统110可以包括一个或多个处理器134。处理器134可以控制存储器系统110的整体操作。作为示例而非限制,处理器134可以响应于从主机102输入的写入请求或读取请求,控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以使用或执行固件来控制存储器系统110的整体操作。在本文中,固件可以被称为闪存转换层(ftl)。ftl可以执行作为主机102和存储器装置150之间的接口的操作。主机102可以通过ftl将针对写入和读取操作的请求发送到存储器装置150。

ftl可以管理地址映射、垃圾收集、损耗均衡等操作。特别地,ftl可以加载、生成、更新或存储映射数据。因此,控制器130可以通过映射数据,将从主机102输入的逻辑地址与存储器装置150的物理地址进行映射。由于地址映射操作,存储器装置150可以类似于通用存储装置来执行读取或写入操作。而且,通过基于映射数据的地址映射操作,当控制器130试图更新存储在特定页中的数据时,由于闪存装置的特性,控制器130可以将经更新的数据编程在另一空页上并且可以使得特定页的旧数据无效(例如,将与经更新的数据的逻辑地址相对应的物理地址从先前的特定页更新到另一新编程的页)。此外,控制器130可以将新数据的映射数据存储到ftl中。

当执行从存储器装置150中的主机102请求的操作时,控制器130使用处理器134。处理器134可以处理与从主机102接收的命令相对应的指令或命令。控制器130可以执行作为与从主机102接收的命令相对应的命令操作的前台操作,诸如与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除/丢弃命令相对应的擦除/丢弃操作以及与具有设置命令的设置参数命令或设置特征命令相对应的参数设置操作。

对于另一示例,控制器130可以通过处理器134在存储器装置150上执行后台操作。作为示例但非限制,后台操作包括将存储器装置150中的存储器块152、154、156之中的存储器块中存储的数据复制并存储到另一存储器块的操作,例如垃圾收集(gc)操作。后台操作可以包括将存储器块152、154、156中的至少一个中存储的数据移动或交换到存储器块152、154、156中的至少另一个中的操作,例如损耗均衡(wl)操作。在后台操作期间,控制器130可以使用处理器134来将存储在控制器130中的映射数据存储到存储器装置150中的存储器块152、154、156中的至少一个,例如映射刷新操作。检查或搜索存储器块152、154、156之中的坏块的坏块管理操作是由处理器134执行的后台操作的另一示例。

根据实施例,图1的检错电路38可以通过图2中的控制器130的至少一个处理器134来实现。例如,当检错电路38包括固件时,可以在将固件加载到图2中的控制器130的至少一个存储器144中之后由至少一个处理器134执行固件。

在存储器系统110中,控制器130执行与从主机102输入的多个命令相对应的多个命令操作。例如,当顺序地、随机地或备选地执行与多个编程命令相对应的多个编程操作、与多个读取命令相对应的多个读取操作和与多个擦除命令相对应的多个擦除操作时,控制器130可以确定用于将控制器130连接到存储器装置150中包括的多个存储器管芯的多个信道(或通路)之中的哪些信道或通路适于或适合于执行每个操作。控制器130可以经由所确定的用于执行每个操作的信道或通路来发送数据或指令。在每个操作完成之后,存储器装置150中包括的多个存储器管芯可以分别经由相同的信道或通路来发送操作结果。然后,控制器130可以将响应或确认信号发送到主机102。在实施例中,控制器130可以检查每个信道或每个通路的状态。响应于从主机102输入的命令,控制器130可以基于每个信道或每个通路的状态来选择至少一个信道或通路,使得可以经由所选择的(多个)信道或(多个)通路来传递与数据有关的指令和/或操作结果。

作为示例而非限制,控制器130可以识别与包括在存储器装置150中的多个存储器管芯相关联的多个信道(或通路)有关的状态。控制器130可以将每个信道或每个通路的状态确定为繁忙状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态中的一个。控制器130可以基于物理块地址(例如,将指令(和/或数据)传递到哪些管芯)来确定指令(和/或数据)通过哪个信道或通路进行传递。控制器130可以参考从存储器装置150传递的描述符。描述符可以包括存储在块或页中的参数或信息,其可以描述关于存储器装置150的某些东西。描述符可以被划分为具有预定格式或结构的多个数据。例如,描述符可以包括装置描述符、配置描述符、单位描述符等。控制器130可以参考或使用描述符来确定经由哪个或哪些信道或通路来交换指令或数据。

处理器134中可以包括管理单元(未示出)。管理单元可以执行存储器装置150的坏块管理。管理单元可以在存储器装置150中找到不满足进一步使用条件的坏存储器块以及对坏存储器块执行坏块管理。当存储器装置150是闪存(例如,nand闪存)时,由于nand逻辑功能的特性,在写入操作(或编程操作)期间可能发生编程故障。在坏块管理期间,可以将编程故障的存储器块或坏存储器块的数据编程到新的存储器块中。坏块可能会严重劣化具有三维(3d)堆叠结构的存储器装置150的利用效率和存储器系统110的可靠性。因此,可靠的坏块管理可以增强和改善存储器系统110的性能。

图3示出了根据本公开的实施例的存储器系统的控制器130。

参考图3,详细描述根据本公开的另一实施例的存储器系统中的控制器130。控制器130与主机102和存储器装置150协作。控制器130包括主机接口(i/f)132、存储器接口(i/f)142、存储器144和闪存转换层(ftl)240。

尽管未在图3中示出,但是图2的ecc部件138可以被包括在ftl240中。在另一实施例中,ecc部件138可以被实现为被包括在控制器130中或与控制器130相关联的单独的模块、电路、固件等。

主机接口132可以处理从主机102接收的命令、数据等。作为示例而非限制,主机接口132可以包括缓冲器管理器52、事件队列54和命令队列56。命令队列56可以顺序地存储从主机102接收的命令、数据等,并且以存储的顺序将它们输出到缓冲器管理器52。缓冲器管理器52可以对从命令队列56传递的命令、数据等进行分类、管理或调整。事件队列54可以顺序地发送用于对从缓冲器管理器52接收的命令、数据等进行处理的事件。

可以连续地从主机102接收具有相同特性的多个命令和/或数据。备选地,在混合或混杂之后,可以从主机102接收具有不同特性的多个命令和/或数据。例如,主机102可以发送用于读取数据的多个命令(即,读取命令)。对于另一示例,主机102可以备选地发送用于读取数据的命令(即,读取命令)和用于编程/写入数据的命令(即,写入命令)。主机接口132可以将从主机102接收的命令、数据等顺序地存储到命令队列56。此后,主机接口132可以根据从主机102接收的命令、数据和其他相关信息的特性来估计或预测控制器130将执行哪种类型的操作。主机接口132可以至少基于它们的特性来确定处理顺序以及命令和数据的优先级。根据命令和数据的特性,主机接口132的缓冲器管理器52被配置为确定缓冲器管理器52是否应将命令和数据存储在存储器144中,或者缓冲器管理器52是否应将命令和数据传递到ftl240。事件队列54接收从缓冲器管理器52输入的、响应于命令和数据而将由存储器系统110或控制器130在内部执行和处理的事件,以便按照所接收的顺序将事件传递到ftl240。

根据实施例,图3的主机接口132和存储器接口142可以执行图1中描述的控制器130的功能(诸如由接口36执行的操作)。

根据实施例,ftl240可以包括状态管理器42、映射管理器(mm)44、主机请求管理器(hrm)46和块管理器(bm或bbm)48。主机请求管理器46可以管理从事件队列54输入的事件。映射管理器44可以处理或控制映射数据。状态管理器42可以执行垃圾收集或损耗均衡。块管理器48可以在存储器装置150中的块上执行命令或指令。

作为示例而非限制,主机请求管理器46可以使用映射管理器44和块管理器48来应付或处理根据从主机接口132传递的读取和编程命令以及事件的请求。主机请求管理器46可以向映射管理器44发送询问请求,以确定与利用事件输入的逻辑地址相对应的物理地址。主机请求管理器46可以将具有物理地址的读取请求发送到存储器接口142,以处理读取请求(或处理事件)。另一方面,主机请求管理器46可以向块管理器48发送编程请求(或写入请求),以将输入的数据编程到存储器装置150中未记录(没有数据)的特定页。然后,主机请求管理器46可以将与编程请求相对应的映射更新请求发送到映射管理器44,以在将逻辑到物理地址相互映射的信息中更新与编程数据有关的项。

块管理器48可以将从主机请求管理器46、映射管理器44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强图2的存储器系统110的编程或写入性能,块管理器48可以收集编程请求,并且将针对多平面和单次编程操作的闪存编程请求发送到存储器接口142。块管理器48可以将若干闪存编程请求发送到存储器接口142,以增强或最大化多信道和多向闪存控制器(即,存储器接口142)的并行处理。

块管理器48可以被配置为根据有效页的数目来管理存储器装置150中的块。此外,块管理器48可以在需要空闲块时选择并擦除不具有有效页的块,并且在确定需要垃圾收集时选择包括最少有效页的块。状态管理器42可以执行垃圾收集以将有效数据移动到空块并擦除包含所移动的有效数据的块,使得块管理器48可以确定在存储器装置150中存在足够的空闲块(即,不具有数据的空块)。如果块管理器48将关于待擦除的块的信息提供给状态管理器42,则状态管理器42可以检查待擦除的块的所有闪存页来确定每个页是否有效。例如,为了确定每个页的有效性,状态管理器42可以识别每个页的区域(例如,带外(oob)区域)中存储的逻辑地址。为了确定每个页是否有效,状态管理器42可以将页的物理地址与映射到从询问请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页向块管理器48发送编程请求。当编程操作完成时,可以通过映射管理器44的更新来更新映射表。

映射管理器44可以管理逻辑到物理映射表。映射管理器44可以处理由主机请求管理器46或状态管理器42生成的诸如询问、更新等的请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量来将映射条目高速缓存。当在处理询问或更新请求时发生映射高速缓存失误时,映射管理器44可以将读取请求发送到存储器接口142来加载存储器装置150中存储的相关映射表。当映射管理器44中的脏高速缓存块的数目超过某个阈值时,可以将编程请求发送到块管理器48,使得产生干净的高速缓存块,并且脏映射表可以存储在存储器装置150中。

当执行垃圾收集时,状态管理器42将(多个)有效页复制到空闲块中,并且主机请求管理器46可以针对页的相同逻辑地址对数据的最新版本进行编程,并且当前发布更新请求。当状态管理器42在未正常完成(多个)有效页的复制的状态下请求映射更新时,映射管理器44可以不执行映射表更新。这是因为,如果状态管理器42请求映射更新,并且稍后完成有效页复制,则利用旧的物理信息来发布映射请求。仅在最新映射表仍指向旧物理地址的情况下,映射管理器44可以执行映射更新操作以确保准确性。

根据实施例,状态管理器42可以包括图1所示的垃圾收集控制电路196。

存储器装置150可以包括多个存储器块。根据可以在块的一个存储器单元中存储或表示的位的数目,可以将多个存储器块分类为不同类型的存储器块,诸如单级单元(slc)存储器块、多级单元(mlc)存储器块等。slc存储器块包括由存储器单元实现的多个页,每个存储器单元存储一位数据。slc存储器块可以具有高数据输入和输出(i/o)操作性能以及高耐用性。mlc存储器块包括由存储器单元实现的多个页,每个存储器单元存储多位数据(例如,两位或更多位)。mlc存储器块在相同的空间中可以比slc存储器块具有更大的存储容量。就存储容量而言,mlc存储器块可以高度集成。在实施例中,可以利用诸如mlc存储器块的mlc存储器块、三级单元(tlc)存储器块、四级单元(qlc)存储器块及其组合来实现存储器装置150。mlc存储器块可以包括由存储器单元实现的多个页,每个存储器单元能够存储2位数据。三级单元(tlc)存储器块可以包括由存储器单元实现的多个页,每个存储器单元能够存储3位数据。四级单元(qlc)存储器块可以包括由存储器单元实现的多个页,每个存储器单元能够存储4位数据。在另一实施例中,可以利用包括由存储器单元实现的多个页的块来实现存储器装置150,每个存储器单元能够存储5位或更多位的数据。

在本公开的实施例中,存储器装置150被实现为非易失性存储器,诸如闪存,诸如nand闪存或nor闪存的。但是,在另一实施例中,存储器装置150可以由相变随机存取存储器(pcram)、铁电随机存取存储器(fram)、自旋注入磁存储器(stt-ram)和自旋转移力矩磁性随机存取存储器(stt-mram)等中的至少一个来实现。

图4和图5图示了根据本公开的实施例的在存储器系统中执行与多个命令相对应的多个命令操作。当从图2的主机102接收多个写入命令并且执行与写入命令相对应的编程操作时;当从主机102接收多个读取命令并且执行与读取命令相对应的读取操作时;当从主机102接收多个擦除命令并且执行与擦除命令相对应的擦除操作时;或者当从主机102一起接收多个写入命令和多个读取命令并且执行与写入命令和读取命令相对应的编程操作和读取操作时,将针对数据处理操作进行详细描述。

此外,将与来自主机102的多个写入命令相对应的写入数据存储在控制器130的存储器144中的缓冲器/高速缓存中,将缓冲器/高速缓存中存储的写入数据编程并存储在存储器装置150中的多个存储器块中,将与所存储的写入数据相对应的映射数据在多个存储器块中更新,并且将经更新的映射数据存储在存储器装置150中的多个存储器块中。在本公开的实施例中,执行与来自主机102的多个写入命令相对应的编程操作。此外,当从主机102接收针对存储在存储器装置150中的数据的多个读取命令时,通过检查与对应于读取命令的数据有关的映射数据,从存储器装置150读取与读取命令相对应的数据,将读取数据存储在控制器130的存储器144中的缓冲器/高速缓存中,并且将存储在缓冲器/高速缓存中的数据提供给主机102。换言之,执行与来自主机102的多个读取命令相对应的读取操作。另外,当从主机102接收针对存储器装置150中的存储器块的多个擦除命令时,检查对应于擦除命令的存储器块,擦除所检查的存储器块,更新对应于所擦除的数据的映射数据,并且将所更新的映射数据存储在存储器装置150中的多个存储器块中。即,执行与来自主机102的多个擦除命令相对应的擦除操作。

此外,如上所述,当控制器130在存储器系统110中执行命令操作时,控制器130中的处理器134可以通过闪存转换层(ftl)在存储器系统110中执行命令操作。此外,控制器130将与来自主机102的写入命令相对应的用户数据和元数据编程并存储在存储器装置150中的多个存储器块之中的任意存储器块中。控制器130还从存储器装置150中的多个存储器块之中的任意存储器块读取与来自主机102的读取命令相对应的用户数据和元数据,并将读取数据提供给主机102。此外,控制器130还从存储器装置150中的多个存储器块之中的任意存储器块擦除与从主机102输入的擦除命令相对应的用户数据和元数据。

针对与编程操作相对应的存储器块中存储的数据,元数据可以包括第一映射数据和第二映射数据,第一映射数据包括逻辑/物理或逻辑到物理(l2p)信息(下文中称为“逻辑信息”),第二映射数据包括物理/逻辑或物理到逻辑(p2l)信息(下文中称为“物理信息”)。元数据可以包括关于与来自主机102的命令相对应的命令数据的信息、关于与命令相对应的命令操作的信息、关于待对其执行命令操作的存储器装置150的存储器块的信息以及关于与命令操作相对应的映射数据的信息。换言之,元数据可以包括排除与来自主机102的命令相对应的用户数据的多个信息和数据。

在本公开的实施例中,当控制器130从主机102接收多个写入命令时,执行与写入命令相对应的编程操作。换言之,将与写入命令相对应的用户数据存储在存储器装置150的存储器块之中已执行擦除操作的空存储器块、开放存储器块或空闲存储器块中。而且,第一映射数据和第二映射数据存储在存储器装置150的存储器块之中的空存储器块、开放存储器块或空闲存储器块中。第一映射数据可以包括l2p映射表或l2p映射列表,其包括逻辑信息作为针对存储器块中存储的用户数据的逻辑地址和物理地址之间的映射信息。第二映射数据可以包括p2l映射表或p2l映射列表,其包括物理信息作为针对存储具有用户数据的存储器块的物理地址和逻辑地址之间的映射信息。

当从主机102接收写入命令时,控制器130将与写入命令相对应的用户数据存储在存储器块中。控制器130在其他存储器块中存储元数据,元数据包括针对存储器块中存储的用户数据的第一映射数据和第二映射数据。特别地,对应于存储器装置150的存储器块中存储的用户数据的数据段,控制器130生成并更新第一映射数据的l2p段和第二映射数据的p2l段,作为元数据的元数据段之中的映射数据的映射段。控制器130将经更新的l2p段和p2l段存储在存储器装置150的存储器块中。存储器装置150的存储器块中存储的映射段被加载到控制器130中的存储器144中,然后被更新。

当从主机102接收多个读取命令时,控制器130从存储器装置150读取与读取命令相对应的读取数据,将所读取的数据存储在控制器130的存储器144中的缓冲器/高速缓存中。控制器130将存储在缓冲器/高速缓存中的数据提供给主机102。

当从主机102接收多个擦除命令时,控制器130可以检查与擦除命令相对应的存储器装置150的存储器块,并且针对存储器块执行擦除操作。

当在执行后台操作时执行与来自主机102的多个命令相对应的命令操作时,控制器130将与后台操作相对应的数据(即,元数据和用户数据)加载并存储在存储器144中的缓冲器/高速缓存中。然后,控制器130将元数据和用户数据存储在存储器装置150中。作为示例而非限制,后台操作可以包括作为复制操作的垃圾收集操作或读取收回操作、作为交换操作的损耗均衡操作、或映射刷新操作。对于后台操作,控制器130可以在存储器装置150的存储器块中检查与后台操作相对应的元数据和用户数据。此外,控制器130可以将存储器装置150的某些存储器块中存储的元数据和用户数据加载并存储在存储器144的缓冲器/高速缓存中,并且然后将元数据和用户数据存储在存储器装置150的某些其他存储器块中。

当执行作为前台操作的命令操作和作为后台操作的复制操作、交换操作和映射刷新操作时,控制器130对与前台操作和后台操作相对应的队列进行调度。此外,控制器130将经调度的队列分配给控制器130中的存储器144和主机102中的存储器。在这方面,控制器130通过待在存储器装置150中执行的前台操作和后台操作的相应操作来分配标识符(id)。此外,控制器130对分别与分配有标识符的操作相对应的队列进行调度。根据本公开的实施例,不仅通过针对存储器装置150的相应操作来分配标识符,而且还通过针对存储器装置150的功能来分配标识符,并且对与分配有相应标识符的功能相对应的队列进行调度。

根据本公开的实施例,控制器130管理由将在存储器装置150中执行的相应功能和操作的标识符调度的队列。控制器130管理由待在存储器装置150中执行的前台操作和后台操作的标识符调度的队列。根据本公开的实施例,在将与由标识符调度的队列相对应的存储器区域分配给存储器144和主机102中的存储器之后,控制器130对所分配的存储器区域的地址进行管理。控制器130通过使用经调度的队列,不仅执行前台操作和后台操作,而且执行存储器装置150中的相应功能和操作。

参考图4,控制器130执行与来自主机102的多个命令相对应的命令操作。例如,控制器130执行与来自主机102的多个写入命令相对应的编程操作。这时,控制器130将与写入命令相对应的用户数据编程和存储在存储器装置150的存储器块中。与关于存储器块的编程操作相对应,控制器130生成和更新针对用户数据的元数据,并将元数据存储在存储器装置150的存储器块中。

控制器130生成并更新第一映射数据和第二映射数据,第一映射数据和第二映射数据包括指示用户数据存储在存储器装置150的存储器块中的页中的信息。即,控制器130生成并更新作为第一映射数据的逻辑段的l2p段和作为第二映射数据的物理段的p2l段。然后,控制器130将l2p段和p2l段存储在存储器装置150的存储器块中的页中。

例如,控制器130将与来自主机102的写入命令相对应的用户数据高速缓存并缓冲在作为存储器144的数据缓冲器/高速缓存的第一缓冲器510中。特别地,在将用户数据的数据段512存储在第一缓冲器510之后,控制器130将第一缓冲器510的数据段512存储在存储器装置150的存储器块中的页中。在数据段512被编程并存储在存储器装置150的存储器块的页中时,控制器130生成并更新第一映射数据和第二映射数据。控制器130将第一映射数据和第二映射数据存储在存储器144的第二缓冲器520中。特别地,控制器130针对用户数据,将第一映射数据的l2p段522和第二映射数据的p2l段524存储在作为映射缓冲器/高速缓存的第二缓冲器520中。如上所述,l2p段522和p2l段524可以被存储在存储器144的第二缓冲器520中。l2p段522的映射列表和p2l段524的另一映射列表可以存储在第二缓冲器520中。控制器130将第二缓冲器520中存储的l2p段522和p2l段524存储在存储器装置150的存储器块中包括的页中。

控制器130执行与从主机102接收的多个命令相对应的命令操作。例如,控制器130执行与从主机102接收的多个读取命令相对应的读取操作。特别地,控制器130在第二缓冲器520中加载第一映射数据的l2p段522和第二映射数据的p2l段524作为与读取命令相对应的用户数据的映射段。此外,控制器130检查l2p段522和p2l段524。然后,控制器130读取存储器装置150的存储器块之中对应存储器块的页中存储的用户数据,将所读取的用户数据的数据段512存储在第一缓冲器510中,并且然后将数据段512提供给主机102。

控制器130执行与从主机102输入的多个命令相对应的命令操作。例如,控制器130执行与来自主机102的多个擦除命令相对应的擦除操作。特别地,控制器130对存储器装置150的存储器块之中与擦除命令相对应的存储器块进行检查,以针对所检查的存储器块执行擦除操作。

当执行在存储器装置150中的存储器块之间复制数据或交换数据的操作(例如,作为后台操作的垃圾收集操作、读取收回操作或损耗均衡操作)时,控制器130将对应用户数据的数据段512存储在第一缓冲器510中,并且将与用户数据相对应的映射数据的映射段522、524加载在第二缓冲器520中。然后,控制器130执行垃圾收集操作、读取收回操作或损耗均衡操作。当针对存储器装置150的存储器块的元数据(例如,映射数据)执行作为后台操作的映射更新操作和映射刷新操作时,控制器130将对应的映射段522、524加载到第二缓冲器520中,然后执行映射更新操作和映射刷新操作。

如上所述,当针对存储器装置150执行包括前台操作和后台操作的功能和操作时,控制器130通过待针对存储器装置150执行的功能和操作来分配标识符。控制器130对与分配有标识符的功能和操作相对应的队列分别进行调度。控制器130将与相应队列相对应的存储器区域分配给控制器130中的存储器144和主机102中的存储器。控制器130管理分配给相应功能和操作的标识符、针对相应标识符调度的队列、以及分别分配给与队列相对应的存储器144和主机102的存储器的存储器区域。控制器130通过分配给存储器144和主机102的存储器的存储器区域来执行针对存储器装置150的功能和操作。

参考图5,存储器装置150包括多个存储器管芯。例如,存储器装置150包括存储器管芯0、存储器管芯1、存储器管芯2和存储器管芯3。存储器管芯中的每一个包括多个平面,例如,平面0、平面1、平面2和平面3。相应平面包括多个存储器块。例如,每个平面包括n个块block0至blockn-1。每个块包括多个页,例如,2m个页。此外,存储器装置150包括与相应存储器管芯相对应的多个缓冲器。例如,存储器装置150包括与存储器管芯0相对应的缓冲器0、与存储器管芯1相对应的缓冲器1、与存储器管芯2相对应的缓冲器2和与存储器管芯3相对应的缓冲器3。

当执行与来自主机102的多个命令相对应的命令操作时,与命令操作相对应的数据存储在存储器装置150的缓冲器中。例如,当执行编程操作时,与编程操作相对应的数据存储在缓冲器中,然后存储在存储器块的页中。当执行读取操作时,与读取操作相对应的数据从存储器块的页被读取,被存储在缓冲器中,然后通过控制器130被提供给主机102。

在本公开的实施例中,尽管下面将以存储器装置150的缓冲器存在于相应的对应存储器管芯外部的示例进行描述,但是应注意,缓冲器可以存在于相应的对应存储器管芯内部,并且应当注意,缓冲器可以对应于相应存储器管芯中的相应平面或相应存储器块。此外,应注意,缓冲器可以是存储器装置150中的多个高速缓存或多个寄存器。

存储器装置150中的多个存储器块可以被分组为多个超级存储器块。可以在多个超级存储器块中执行命令操作。超级存储器块中的每一个可以包括多个存储器块,例如第一存储器块组和第二存储器块组中包括的存储器块。当第一存储器块组被包括在某个第一存储器管芯的第一平面中时,第二存储器块组可以被包括在第一存储器管芯的第一平面中、可以被包括在第一存储器管芯的第二平面中或可以被包括在第二存储器管芯的平面中。

在本公开的实施例中,数据处理系统可以包括多个存储器系统。多个存储器系统110中的每一个可以包括控制器130和存储器装置150。在数据处理系统中,多个存储器系统110中的一个可以是主存储器系统,而其他可以是从属存储器系统。可以基于多个存储器系统110之间的竞争来确定主存储器系统。当从主机102接收多个命令时,主机可以至少基于信道或总线的状态来确定每个命令的目标。例如,对应于从多个存储器系统传递的信息,可以将第一存储器系统确定为多个存储器系统之中的主存储器系统。如果将第一存储器系统确定为主存储器系统,则将其余存储器系统视为从属存储器系统。主存储器系统的控制器可以检查耦合到多个存储器系统的多个信道(或通路、总线)的状态,以选择哪个存储器系统处理从主机102接收的命令或数据。在实施例中,可以在多个存储器系统之中动态地确定主存储器系统。在另一实施例中,可以利用其他从属存储器系统之一周期性地或根据事件来改变主存储器系统。

在下文中,将更详细地描述用于在包括存储器装置150和控制器130的存储器系统110中传送数据的方法和装置。随着存储器系统110中存储的数据量变大,可能需要存储器系统110一次读取或存储大量数据。然而,用于读取存储器装置150中存储的数据的读取时间或用于将数据写入存储器装置150中的编程/写入时间通常可以长于控制器130对数据进行处理的处理时间或在控制器130和存储器装置150之间的数据传输时间。例如,读取时间可以是处理时间的两倍。由于读取时间或编程时间比处理时间或数据传输时间相对长得多,因此在存储器系统110中传递数据的过程或进程可能会影响存储器系统110的性能(例如,操作速度)和/或存储器系统110的结构(例如,缓冲器大小)。

图6图示了根据本公开的另一实施例的存储器系统。

参考图6,存储器系统1002可以包括控制器1004和存储器装置1006。存储器装置1006可以包括可以被擦除(即,包括无效数据)的多个块blk1、blk2、blk3。尽管未示出,但是存储器装置1006可以包括能够存储数据的多个块。控制器1004可以包括目标块选择器1052、目标块管理器1054和擦除执行器1056。

在控制器1004中,目标块选择器1052可以确定是否擦除多个块blk1、blk2、blk3之中的至少一个存储器块中包括的数据。在第一定时点,目标块选择器1052可以在存储器装置1006中的多个块blk1、blk2、blk3之中选择存储无效数据的块作为擦除目标块。根据实施例,控制器1004可以考虑包括已编程但不再有效的数据的擦除目标块、不包括数据的空闲块。控制器1004可以确定包含已编程但不再有效的数据的擦除目标块可以被分配用于编程操作。

参考图6,目标块选择器1052可以将关于存储器装置1006中的擦除目标块的信息发送到目标块管理器1054和擦除操作执行器1056。响应于编程命令,接收关于擦除目标块的信息的目标块管理器1054可以在第二定时点从擦除目标块之中选择至少一个块作为编程目标块。编程目标块可以包括在当前开放存储器块进入封闭状态时被分配用于后续或下一编程操作的存储器块。在本文中,编程命令可以从与存储器系统1002可操作地接合的主机发送。根据实施例,编程命令可以包括针对作为后台操作执行的垃圾收集等而生成的内部编程命令。控制器1004可以确定是否使用或何时将数据新编程在由目标块管理器1054选择的编程目标块中。目标块管理器1054可以将与被确定为存储器装置1006中的编程目标块的至少一个块有关的信息发送到擦除执行器1056。

如上所述,控制器1004中包括的目标块选择器1052和目标块管理器1054可以在参考图1描述的第一定时点和第二定时点分别执行选择擦除目标块和编程目标块的操作。

接收关于由目标块选择器1052和目标块管理器1054确定的编程目标块和擦除目标块的信息的擦除执行器1056可以基于所接收的信息,在存储器装置1006中对擦除目标块执行第一擦除操作并且对编程目标块执行第二擦除操作。

根据实施例,控制器1004可以使用擦除执行器1056来执行多个单位擦除操作,以用于擦除所选择的块或目标块中存储或保留的数据。控制器1004可以将多个单位擦除操作划分为第一擦除操作和第二擦除操作。特别地,在所选择的块被分配用于编程操作之前,可以执行第一擦除操作中包括的单位擦除操作,例如多个单位擦除操作中的至少一些。例如,在第一定时点之后,即,所选择的块被考虑为是擦除目标块之后,控制器1004可以执行单位擦除操作,以用于擦除所选择的块中存储或保留的数据。然而,尽管未示出,但是在第三定时点利用数据编程特定块之后,擦除操作可能不会发生,直到特定块再次被选择作为擦除目标块。

在实施例中,控制器1004可以对由目标块选择器1052选择的擦除目标块执行第一擦除操作。另外,控制器1004可以对由目标块管理器1054选择的编程目标块执行第二擦除操作。编程目标块可以被包括在已对其执行了第一擦除操作的擦除目标块中,但是擦除目标块可以不被考虑为是编程目标块。

尽管未示出,但是控制器1004还可以包括被配置为检查编程目标块是否已被擦除的擦除验证单元(未示出)。在擦除验证单元中,控制器1004接收与由目标块管理器1054确定的编程目标块有关的信息,并且检查编程目标块是否已被擦除。

如上所述,根据实施例,接收关于由目标块选择器1052选择的擦除目标块的信息的擦除执行器1056可以对擦除目标块执行第一擦除操作。另外,目标块管理器1054可以将关于从擦除目标块之中选择的编程目标块的信息发送到擦除验证单元,以检查编程目标块是否被擦除。如果作为由擦除验证单元识别的检查结果没有完全擦除编程目标块,则擦除执行器1056可以对编程目标块执行第二擦除操作。

另一方面,如果预先知道目标块通过第一擦除操作未被擦除(例如,如果第一擦除操作被设置为部分地擦除特定存储器块),则当确定哪个存储器块被分配给编程目标块时,控制器1004可以在没有擦除验证的情况下执行第二擦除操作。例如,第一擦除操作可以被设置为部分地擦除特定存储器块。此外,第一擦除操作可能被异常终止。

图7a图示了根据本公开的实施例的存储器块中数据的存在或不存在的变化的一个示例。

参考图7a,随着时间检查在特定存储器块中数据的存在或不存在(即,特定存储器块是否被擦除)。在图7a中,x轴指示时间。在x轴上,存在三个定时点t1、t2、t3。在x轴上的定时点t1、t2、t3,可以确定是否存在特定存储器块中存储或保留的数据。参考图7a的第一表tb_a,在第一定时t1存在数据(是),在第二定时t2不存在数据(否),并且在第三定时t3不存在数据(否)。

这里,可以将特定存储器块中数据的存在或不存在与由图6中所示的控制器1004执行的擦除验证区分开。数据的存在或不存在示出了用于描述本公开的实施例的特定存储器块的数据状态,这可能不是通过控制器1004的操作来确定的。

根据实施例,第一定时t1可以对应于参考图1描述的第一定时点,第二定时t2可以对应于第二定时点,并且第三定时t3可以对应于第三定时点。控制器1004可以在第一定时t1和第二定时t2之间对特定存储器块执行第一擦除操作。特定存储器块中的数据在第一定时t1存在,但是作为第一擦除操作的结果,数据在第二定时t2不存在。即,控制器1004可以通过第一擦除操作来擦除特定存储器块。

同时,对于响应于从主机输入的编程命令的编程操作,控制器1004可以在存储器装置1006中的多个存储器块之中分配已通过擦除操作擦除了数据的空闲块。根据实施例,控制器1004可以执行擦除验证,以用于检查空闲块是否已被擦除。

根据实施例,控制器1004可以在第二定时t2和第三定时t3之间执行擦除验证,以用于检查是否擦除了特定存储器块。通过擦除验证获得的结果可以指示在第二定时t2和第三定时t3两者处的特定存储器块中没有数据。即,通过擦除验证,控制器1004可以识别在第二定时t2和第三定时t3之间特定存储器块中存储或保留的数据的存在或不存在没有改变。在这种情况下,当控制器1004在第二定时t2至第三定时t3或第三定时t3之后识别出特定存储器块被擦除时,控制器1004确定不需要对特定存储器块执行第二擦除操作。即,如果在特定存储器块被分配用于对数据进行新编程之前特定存储器块通过第一擦除操作来被擦除,则不必对分配用于编程操作的特定存储器块执行第二擦除操作。尽管未示出,但是间隔t1至t2、t2至t3可以长或短,并且可以相同或不同。

尽管未示出,但是控制器1004在第二定时t2至第三定时t3之间执行擦除验证,以用于检查特定存储器块是否被擦除。当确定特定存储器块未被擦除时,控制器1004可以对特定存储器块执行第二擦除操作。

图7b图示了根据本公开的实施例的特定存储器块中数据的存在或不存在的变化的另一示例。

随时间检查在特定存储器块中数据的存在或不存在(即,特定存储器块是否被擦除)。在图7b中,x轴指示时间。在x轴上,存在三个定时点t8、t9、t10。在x轴上的定时点t1、t2、t3,可以确定是否存在特定存储器块中存储或保留的数据。参考图7b的第三表tb_c,数据在第八定时t8存在(是),数据在第九定时t9仍然存在(是),并且数据在第十定时t10不存在(否)。

根据实施例,第八定时t8可以对应于参考图1描述的第一定时点,第九定时t9可以对应于第二定时点,并且第十定时t10可以对应于第三定时点。控制器1004可以在第八定时t8和第九定时t9之间对特定存储器块执行第一擦除操作。作为第一擦除操作的结果,在第八定时t8和第九定时t9,数据仍然存在于特定存储器块中。即,特定存储器块中包括的所有数据可能不会通过第一擦除操作被完全擦除。

控制器1004可以响应于从主机输入的编程命令而在存储器装置1006中的通过第一擦除操作已擦除数据的存储器块之中分配至少一个存储器块以对数据进行新编程。根据实施例,当第一擦除操作被设置为部分地擦除特定存储器块时,控制器1004不执行擦除验证以检查特定存储器块是否已被擦除,而是对特定存储器块执行第二擦除操作。

根据实施例,控制器1004可以在第九定时t9与第十定时t10之间在特定存储器块中执行第二擦除操作。作为第二擦除操作的结果,可以示出在第九定时t9在块中存在数据,但是在第十定时t10不存在数据。即,由控制器1004执行的第二擦除操作可以完全擦除特定存储器块。而且,控制器1004可以执行编程操作以用于将数据存储到其中通过第二擦除操作已完全擦除数据的特定存储器块上。尽管未示出,但是第八定时t8与第九定时t9之间以及第九定时t9与第十定时t10之间的间隔可以长或短,并且可以相同或不同。

图8是示意性示出根据本公开的实施例的多个单位擦除操作的视图。

参考图8,存储器系统1002可以包括控制器1004和存储器装置1006。尽管未示出,但是存储器装置1006可以包括能够存储数据的多个存储器块。此外,存储器装置1006可以包括作为示例示出的第一存储器块blk1,在第一存储器块blk1中,在其中新的数据被编程之前必须擦除不再有效的数据。

参考图8,控制器1004可以执行多个单位擦除操作,每个单位擦除操作用于以预定的时间差擦除特定存储器块。可以响应于用于擦除特定存储器块中包括的数据的多个单位擦除脉冲(第一单位擦除脉冲、第二单位擦除脉冲、...、第n单位擦除脉冲)来执行多个单位擦除操作。尽管未示出,但是单位擦除操作可以包括用于在将单位擦除脉冲提供给特定存储器块之后检查擦除结果的验证脉冲。在本文中,“n”可以是等于或大于3的自然数。

在实施例中,控制器1004可以对第一块blkl执行第一擦除操作。第一擦除操作可以包括多个单位擦除操作,并且可以通过被提供用于擦除第一块blk1的多个单位擦除脉冲(例如,第一单位擦除脉冲、第二单位擦除脉冲、…、第m单位擦除脉冲)单独执行多个单位擦除操作。同时,第一擦除操作中包括的每个单位擦除操作不包括响应于擦除验证脉冲而执行的擦除验证,擦除验证用于直接或紧接在每个单位擦除脉冲(第一单位擦除脉冲、第二单位擦除脉冲、...、第m单位擦除脉冲)被提供给第一块blk1之后检查擦除结果。例如,控制器1004可以生成单位擦除脉冲以擦除第一块blk1中包括的数据,但是可以不生成用于响应于单位擦除脉冲而检查第一块blk1中包括的数据是否被擦除的擦除验证脉冲。假设需要第n单位擦除操作来充分擦除第一块blk1中包括的所有数据。当第一擦除操作可以通过多个单位擦除脉冲(第一单位擦除脉冲至第m单位擦除脉冲,其中m是小于n的自然数)擦除第一块blk1中包括的数据时,可以假定通过第n单位擦除操作没有完全擦除第一块blk1中包括的数据,使得可能没有必要验证第一块blk1是否已被擦除。

在实施例中,控制器1004可以对第一块blk1执行第二擦除操作。第二擦除操作可以包括多个单位擦除操作,并且多个单位擦除操作可以包括被提供用于擦除第一块blk1的多个单位擦除脉冲(例如,第一单位擦除脉冲、第二单位擦除脉冲、…、第k单位擦除脉冲)。尽管未示出,但是第二擦除操作中包括的单位擦除操作可以包括响应于擦除验证脉冲而执行的擦除验证,擦除验证用于紧接在单位擦除脉冲(第一单位擦除脉冲、第二单位擦除脉冲、…、第k单位擦除脉冲)被提供给第一块blk1之后检查擦除结果。例如,控制器1004可以生成用于擦除第一块blk1中包括的数据的单位擦除脉冲和响应于单位擦除脉冲而检查第一块blk1中包括的数据是否被擦除的擦除验证脉冲。在本文中,k可以是小于m的自然数。

根据实施例,控制器1004可以响应于具有不同宽度或振幅的单位擦除脉冲而对第一块blkl执行第二擦除操作中包括的单位擦除操作。响应于用于检查第一块blk1中包括的数据的擦除结果的擦除验证脉冲,当第一块blk1尚未被擦除时,控制器1004可以生成具有与当前步骤相同或更高水平的另一擦除脉冲。在第二擦除操作中,可以执行多个单位擦除操作,直到第一块blk1被完全擦除。当响应于验证脉冲确认第一块blk1中包括的数据的擦除结果而确定第一块blk1被擦除时,控制器1004可以完成第二擦除操作并且不再执行另一单位擦除操作。

图9图示了根据本公开的实施例的基于用于验证目标块是否被擦除的脉冲的操作。例如,图9的操作可以由包括图1、图6和图8中的控制器1004和存储器装置1006的存储器系统1002来执行。

参考图9,描述了用于验证子擦除操作中包括的擦除结果的至少一个脉冲。尽管未示出,但是电源1050和第一块blk1可以被包括在存储器装置1006中。

电源1050可以接收与用于在子擦除操作期间验证擦除结果或检查擦除状态的脉冲相关联的指令。第一块blk1的多个页pg1至pgn中的每一个经由多个字线wl1至wln中的每一个连接至电源1050。电源1050可以经由字线wl1至字线wln中的每一个将脉冲提供到第一块blk1的页pg1至pgn的每一个中。经由每个字线施加了脉冲的多个存储器单元可以输出在每个存储器单元的源极/漏极之间流动的电流。可以顺序地读取存储器单元的每一页中存储的所有数据。这里,n可以是104以上的自然数。

根据在页中的存储器单元中所有数据是否被擦除,当通过字线从电源1050提供脉冲时,源极和漏极之间流动的电流可以变化。因此,可以验证页中的存储器单元是否存储数据。例如,当输出源极和漏极之间提供的电流时,没有数据存储在存储器单元中。当不输出源极和漏极之间提供的电流时,数据可能被存储在存储器单元中。

根据实施例,电源1050连接到多个字线wl1至wln中的每一个。响应于用于验证子擦除操作的擦除结果的脉冲,电源1050可以向第一块blk1的多个页pg1至pgn中的每一个提供电压。

作为示例而非限制,控制器1004可以检查由电源1050经由第一字线wl1提供有电压的第一页pg1中数据的存在或不存在或者数据默认值。然后,控制器1004可以检查通过电源1050经由第二字线wl2提供有电压的第二页pg2中的数据。控制器1004可以通过使用电源1050经由第三字线wl3提供的电压来检查第三页pg3中的数据。顺序地,控制器1004可以检查从电源1050通过第101字线wl101提供有电压的第101页pg101中的数据。控制器1004可以通过使用从电源1050经由第102字线wl102提供的电压来检查第102页pg102中的数据。然后,控制器1004可以检查由电源1050经由第103字线wl103提供有电压的第103页pg103中的数据。控制器1004可以通过使用从电源1050经由第n字线wln提供的电压来验证第n页pgn中的数据。

用于验证擦除结果的脉冲被用于确保特定块是否被擦除。可以在各种实施例中实现用于验证块是否被擦除的方法。例如,在执行第一子擦除操作之前,控制器1004可以选择块中的任意页,检查任意页是否被擦除,并且顺序地验证下一页中的数据,直到找到具有尚未被擦除的数据的任何页。如果控制器1004找到尚未清除数据的页,则控制器1004可能不再需要检查其他页,因为该块未被擦除。在实施例中,在当前或随后的子擦除操作中,可以不附加地验证不存储任何数据的先前验证的页。在随后的子擦除操作中,控制器1004可以从在第一子擦除操作中先前保留有数据的页顺序地执行验证。

图10是图示了根据本公开的实施例的存储器系统的操作方法的流程图。

参考图10,操作存储器系统的方法可以包括从多个存储器块之中选择至少一个存储器块作为至少一个擦除目标块(s1502),执行第一擦除操作以擦除至少一个擦除目标块(s1504),以及在至少一个擦除目标块之中选择至少一个编程目标块(s1506)。

通常,当数据不再有效时,存储器系统可以根据需要擦除存储器系统中的多个块之中的一些存储器块中包括或保留的数据。然而,根据实施例,存储器系统可以对目标块执行两次(即,在确定目标块被分配用于对数据进行新编程之前和之后)擦除操作。特别地,在目标块被分配或指定以对数据进行新编程之前,或者不管目标块是否被分配用于编程操作,擦除操作可以被执行作为后台操作。因此,可以减少由用于直接在编程操作之前擦除多个块中包括的数据的擦除操作引起的延迟。

可能需要多个块来对大量数据进行编程。当控制器在编程操作之前对存储器块执行擦除操作以确保用于编程操作的多个块时,具有大量数据的编程操作可能会被延迟。为了减小延迟,控制器对仅包括不再有效的数据的至少一个存储器块执行第一擦除操作,即使该至少一个存储器块没有被分配用于编程操作。例如,控制器可以在不存在从主机发送的命令的情况下执行第一擦除操作。

根据实施例,第一擦除操作在直接在试图擦除特定存储器块中包括的数据之后,可以不检查特定存储器块中包括的数据是否被擦除。通常,擦除操作包括直接在擦除操作之后检查特定存储器块是否已被擦除的操作。然而,当第一擦除操作被设置为部分地擦除特定存储器块时,可以假定数据通过第一擦除操作尚未被擦除,并且因此,控制器在直接在第一擦除操作之后不检查特定存储器块中包括的数据是否被擦除。当确定特定存储器块被分配用于对数据进行新编程时,可以对特定存储器块执行第二擦除操作。在该实施例中,由于第一擦除操作,可以减少用于执行第二擦除操作的时间,即,擦除特定存储器块中包括的所有数据所需的时间。因此,可以避免由于在用于多个存储器块的擦除操作上花费的时间而导致的大量数据的编程操作中的延迟。

例如,第一擦除操作包括用于擦除特定存储器块中包括的数据的擦除操作的80%至90%,并且当特定存储器块被分配用于编程操作时,可以执行包括剩余10%至20%的擦除操作的第二擦除操作。第一擦除操作和第二擦除操作的每一个中包括的单位擦除操作的数目可以被不同地设计。例如,当第一擦除操作包括与第二擦除操作相比更多数目的单位擦除操作时,可以更有效地减小编程操作中的延迟。

当存在包括无效数据的多个擦除目标块时,不论编程操作如何,控制器可以任意地确定何时对每个目标块执行第一擦除操作的定时点。如上所述,在存储器系统中没有从主机输入的命令或没有后台操作的状态下,控制器确定可以在其上执行第一擦除操作的存储器块,并且然后对至少一个存储器块执行第一擦除操作。至少一个存储器块是包括不再有效的数据的所有存储器块中的一部分但不是全部。而且,可以稍后对未执行第一擦除操作的一些块执行第一擦除操作。对于该操作,控制器可以生成并参考指示对包括不再有效的数据的所有存储器块之中哪个存储器块执行了第一擦除操作的信息。

另一方面,对于每个擦除目标块,用于执行第一擦除操作的定时点可以不同,但是在擦除目标块中的至少一些被分配为用于编程操作的编程目标块之后,对于每个编程目标块,用于执行第二擦除操作的定时点可以是基本相同的或相继的。限于被分配用于对大量数据进行新编程的存储器块的第二擦除操作可以与在存储器块中包括的数据不再有效之后可以任意执行的第一擦除操作区分开。

图11是图示根据本公开的另一实施例的存储器系统的操作方法的流程图。

参考图11,操作方法可以包括在至少一个擦除目标块之中选择至少一个编程目标块(s1506)之后,检查至少一个编程目标块是否被擦除(s1512),以及基于检查结果来对至少一个编程目标块执行第二擦除操作(s1514)。

由于第一擦除操作可以擦除几乎特定存储器块中保留或存储的数据,可以检查特定存储器块中保留或存储的数据是否被擦除。当特定存储器块被擦除时,可能没有必要不必要地执行第二擦除操作。当擦除操作不必要时将擦除脉冲施加到具有非易失性存储器特性的特定存储器块可能不利地影响特定存储器块中的存储器单元的操作特性,并且可能缩短存储器单元的寿命。因此,在特定存储器块中利用数据执行编程操作之前,对于存储器系统来说,验证特定存储器块中包括的数据是否通过第一擦除操作已被擦除是有益的,即使这需要花费时间。

图12是图示根据本公开的另一实施例的存储器系统的操作方法的流程图。

参考图12,操作方法可以包括在至少一个擦除目标块之中选择至少一个编程目标块(s1506)之后,对至少一个编程目标块执行第二擦除操作(s1522)。

当第一擦除操作被设计为部分地擦除特定存储器块时,可以假定特定存储器块没有通过第一擦除操作被完全擦除。尽管第一擦除操作被设计为部分地擦除特定存储器块,但是擦除特定存储器块所需的资源可以被划分为第一擦除操作和第二擦除操作,从而减少了由直接在利用大量数据执行编程操作之前对至少一个存储器块执行的擦除操作而引起的延迟。另外,由于第一擦除操作被设计为部分地擦除如图11所述的特定存储器块,在确定特定存储器块用于编程操作之后,可能没有必要消耗资源来检查特定存储器块是否被擦除。

在图13中,描述了根据实施例的包括存储器系统的数据处理系统的另一示例。例如,图13示意性地图示了应用存储器系统的存储器卡系统6100。

参考图13,存储器卡系统6100可以包括存储器控制器6120、存储器装置6130和连接器6110。

存储器控制器6120可以连接到由非易失性存储器体现的存储器装置6130。存储器控制器6120可以被配置为访问存储器装置6130。通过示例而非限制,存储器控制器6120可以被配置为控制存储器装置6130的读取、写入、擦除和后台操作。存储器控制器6120可以被配置为提供存储器装置6130和主机之间的接口,并使用固件来控制存储器装置6130。即,存储器控制器6120可以对应于参考图2描述的存储器系统110的控制器130,并且存储器装置6130可以对应于参考图2描述的存储器系统110的存储器装置150。

因此,存储器控制器6120可以包括ram、处理器、主机接口、存储器接口和纠错部件。存储器控制器130可以进一步包括如图2所示的元件。

存储器控制器6120可以通过连接器6110与外部装置(例如,图2的主机102)通信。例如,如参考图2所述,存储器控制器6120可以被配置为根据各种通信协议(诸如通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(emmc)、外围部件互连(pci)、pci快速(pcie)、高级技术附件(ata)、串行ata、并行ata、小型计算机系统接口(scsi)、增强型小型磁盘接口(edsi)、集成驱动电子装置(ide)、火线、通用闪存(ufs)、wifi和蓝牙)中的一个或多个与外部装置通信。因此,存储器系统和数据处理系统可以应用于有线/无线电子装置,特别地应用于移动电子装置。

存储器装置6130可以由非易失性存储器实现。例如,存储器装置6130可以由各种非易失性存储器装置(诸如可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、nand闪存、nor闪存、相变ram(pram)、电阻式ram(reram)、铁电ram(fram)和自旋转移力矩磁性ram(stt-ram))来实现。存储器装置6130可以包括如图2的存储器装置150的多个管芯。

存储器控制器6120和存储器装置6130可以集成到单个半导体装置中。例如,存储器控制器6120和存储器装置6130可以集成来形成固态驱动器(ssd)。在另一实施例中,存储器控制器6120和存储器装置6130可以被集成来形成诸如pc卡(例如,个人计算机存储器卡国际协会(pcmcia)卡)、紧凑型闪存(cf)卡、智能媒体卡(例如,sm和smc)、记忆棒、多媒体卡(例如,mmc、rs-mmc、mmcmicro和emmc)、安全数字(sd)卡(例如,sd、minisd、microsd和sdhc)和/或通用闪存(ufs)的存储器卡。

图14是示意性图示根据实施例的包括存储器系统的数据处理系统6200的图。

参考图14,数据处理系统6200可以包括具有一个或多个非易失性存储器(nvm)的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。如参考图2所描述,数据处理系统6200可以用作诸如存储器卡(cf、sd、微型sd等)或usb装置的存储介质。存储器装置6230可以对应于图2所示的存储器系统110中的存储器装置150。存储器控制器6220可以对应于图2所示的存储器系统110中的控制器130。

存储器控制器6220可以响应于主机6210的请求来控制对存储器装置6230的读取、写入或擦除操作。存储器控制器6220可以包括一个或多个cpu6221、诸如ram6222的缓冲存储器、ecc电路6223、主机接口6224和诸如nvm接口6225的存储器接口。

cpu6221可以控制存储器装置6230上的整体操作,例如读取、写入、文件系统管理和坏页管理操作。ram6222可以根据cpu6221的控制来操作。ram6222可以用作工作存储器、缓冲存储器或高速缓存存储器。当ram6222用作工作存储器时,由cpu6221处理的数据可以被临时存储在ram6222中。当ram6222用作缓冲存储器时,ram6222可以用于缓冲从主机6210发送到存储器装置6230或从存储器装置6230发送到主机6210的数据。当ram6222用作高速缓存存储器时,ram6222可以辅助低速存储器装置6230以高速操作。

ecc电路6223可以对应于图2中所示的控制器130的ecc部件138。如参考图2所述,ecc电路6223可以生成用于纠正从存储器装置6230提供的数据的故障位或错误位的ecc(纠错码)。ecc电路6223可以对提供给存储器装置6230的数据执行纠错编码,从而形成具有奇偶校验位的数据。奇偶校验位可以存储在存储器装置6230中。ecc电路6223可以对从存储器装置6230输出的数据执行纠错解码。ecc电路6223可以使用奇偶校验位来纠正错误。例如,如参考图2所述,ecc电路6223可以使用ldpc码、bch码、turbo码、reed-solomon码、卷积码、rsc或编码调制(诸如tcm或bcm)来纠正错误。

存储器控制器6220可以通过主机接口6224与主机6210交换数据。存储器控制器6220可以通过nvm接口6225与存储器装置6230交换数据。主机接口6224可以通过pata总线、sata总线、scsi、usb、pcie或nand接口连接到主机6210。存储器控制器6220可以利用移动通信协议(诸如wifi或长期演进(lte))具有无线通信功能。存储器控制器6220可以连接到外部装置(例如,主机6210或另一外部装置),然后与外部装置交换数据。特别地,在存储器控制器6220被配置为通过各种通信协议中的一个或多个与外部装置通信时,根据实施例的存储器系统和数据处理系统可以应用于有线/无线电子装置、特别是移动电子装置。

图15是示意性地图示根据实施例的包括存储器系统的数据处理系统的另一示例的图。例如,图15示意性地图示了应用存储器系统的固态驱动器(ssd)6300。

参考图15,ssd6300可以包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可以对应于图2的存储器系统110中的控制器130。存储器装置6340可以对应于图2的存储器系统中的存储器装置150。

具体地,控制器6320可以通过多个信道ch1至chi连接到存储器装置6340。控制器6320可以包括一个或多个处理器6321、缓冲存储器6325、ecc电路6322、主机接口6324和存储器接口,例如非易失性存储器接口6326。

缓冲存储器6325可以临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个闪存nvm提供的数据,或临时存储多个闪存nvm的元数据(例如,包括映射表的映射数据)。缓冲存储器6325可以由各种易失性存储器(诸如dram、sdram、ddrsdram、lpddrsdram以及gram)或非易失性存储器(诸如fram、reram、stt-mram和pram)来实现。例如,图15图示了缓冲存储器6325设置在控制器6320中。然而,缓冲存储器6325可以设置在控制器6320的外部。

ecc电路6322可以在编程操作期间计算待编程到存储器装置6340的数据的ecc值。ecc电路6322可以在读取操作期间基于ecc值来对从存储器装置6340读取的数据执行纠错操作。ecc电路6322可以在故障数据恢复操作期间对从存储器装置6340恢复的数据执行纠错操作。

主机接口6324可以提供与外部装置(例如,主机6310)的接口功能。非易失性存储器接口6326可以提供与通过多个信道连接的存储器装置6340的接口功能。

此外,应用了图2的存储器系统110的多个ssd6300可以被提供来实现数据处理系统,例如,raid(独立盘冗余阵列)系统。raid系统可以包括多个ssd6300和用于控制多个ssd6300的raid控制器。当raid控制器响应于从主机6310提供的写入命令而执行编程操作时,raid控制器可以根据多个raid级(即,ssd6300中的从主机6310提供的写入命令的raid级信息)来选择一个或多个存储器系统或ssd6300。raid控制器可以将与写入命令相对应的数据输出到所选择的ssd6300。此外,当raid控制器响应于从主机6310提供的读取命令来执行读取命令时,raid控制器可以根据多个raid级(即,ssd6300中的从主机6310提供的读取命令的raid级信息)来选择一个或多个存储器系统或ssd6300。raid控制器可以将从所选择的ssd6300中读取的数据提供给主机6310。

图16是示意性地图示根据实施例的包括存储器系统的数据处理系统的另一示例的图。例如,图16示意性地图示了应用存储器系统的嵌入式多媒体卡(emmc)6400。

参考图16,emmc6400可以包括控制器6430和由一个或多个nand闪存实现的存储器装置6440。控制器6430可以对应于图2的存储器系统110中的控制器130。存储器装置6440可以对应于图2的存储器系统110中的存储器装置150。

具体地,控制器6430可以通过多个信道连接到存储器装置6440。控制器6430可以包括一个或多个核6432、主机接口6431和存储器接口,例如nand接口6433。

核6432可以控制emmc6400的整体操作。主机接口6431可以在控制器6430和主机6410之间提供接口功能。nand接口6433可以在存储器装置6440和控制器6430之间提供接口功能。例如,主机接口6431可以用作并行接口,例如参考图2描述的mmc接口。此外,主机接口6431可以用作串行接口,例如uhs(超高速)-i和uhs-ii接口。

图17至图20是示意性图示根据实施例的包括存储器系统的数据处理系统的其他示例的图。例如,图17至图20示意性地图示了可以应用存储器系统的通用闪存(ufs)系统6500、6600、6700、6800。

参考图17至图20,ufs系统6500、6600、6700、6800可以分别包括主机6510、6610、6710、6810、ufs装置6520、6620、6720、6820以及ufs卡6530、6630、6730、6830。主机6510、6610、6710、6810可以用作有线/无线电子装置、特别是移动电子装置的应用处理器,ufs装置6520、6620、6720、6820可以用作嵌入式ufs装置,并且ufs卡6530、6630、6730、6830可以用作外部嵌入式ufs装置或可移除ufs卡。

相应ufs系统6500、6600、6700、6800中的主机6510、6610、6710、6810、ufs装置6520、6620、6720、6820以及ufs卡6530、6630、6730、6830可以通过ufs协议与外部装置(例如,有线/无线电子装置、特别是移动电子装置)通信,并且ufs装置6520、6620、6720、6820以及ufs卡6530、6630、6730、6830可以由图2所示的存储器系统110来体现。例如,在ufs系统6500、6600、6700、6800中,ufs装置6520、6620、6720、6820可以以参考图14至图16所描述的数据处理系统6200、ssd6300或emmc6400的形式来体现,并且ufs卡6530、6630、6730、6830可以以参考图13描述的存储器卡系统6100的形式来体现。

此外,在ufs系统6500、6600、6700、6800中,主机6510、6610、6710、6810、ufs装置6520、6620、6720、6820以及ufs卡6530、6630、6730、6830可以通过ufs接口(例如,mipi(移动行业处理器接口)中的mipim-phy和mipiunipro(统一协议))彼此通信。此外,ufs装置6520、6620、6720、6820以及ufs卡6530、6630、6730、6830可以通过ufs协议以外的各种协议(例如,ufd、mmc、sd、小型sd和微型sd)彼此通信。

在图17中所示的ufs系统6500中,主机6510、ufs装置6520和ufs卡6530中的每一个可以包括unipro。主机6510可以执行切换操作以与ufs装置6520和ufs卡6530通信。特别地,主机6510可以通过链路层切换(例如,以unipro的l3切换)与ufs装置6520或ufs卡6530通信。ufs装置6520和ufs卡6530可以通过主机6510的unipro处的链路层切换来彼此通信。在图17的实施例中,通过示例图示了一个ufs装置6520和一个ufs卡6530连接到主机6510的配置。然而,在另一实施例中,多个ufs装置和ufs卡可以并行或以星形的形式连接到主机6410。星形的形式是将单个集中式部件耦合到多个装置以进行并行处理的布置。多个ufs卡可以并联或以星形的形式连接到ufs装置6520,或者串联或以链的形式连接到ufs装置6520。

在图18所示的ufs系统6600中,主机6610、ufs装置6620和ufs卡6630中的每一个可以包括unipro,并且主机6610可以通过执行切换操作的切换模块6640(例如,通过以unipro执行链路层切换(例如,l3切换)的切换模块6640)与ufs装置6620或ufs卡6630通信。ufs装置6620和ufs卡6630可以通过unipro处的切换模块6640的链路层切换来彼此通信。在图18的实施例中,通过示例的方式图示了一个ufs装置6620和一个ufs卡6630连接到切换模块6640的配置。然而,在另一实施例中,多个ufs装置和ufs卡可以并联或以星形的形式连接到切换模块6640,并且多个ufs卡可以串联或以链的形式连接到ufs装置6620。

在图19所示的ufs系统6700中,主机6710、ufs装置6720和ufs卡6730中的每一个可以包括unipro,并且主机6710可以通过执行切换操作的切换模块6740(例如,通过以unipro执行链路层切换(例如,l3切换)的切换模块6740)与ufs装置6720或ufs卡6730通信。ufs装置6720和ufs卡6730可以通过unipro处的切换模块6740的链路层切换来彼此通信,并且切换模块6740可以与ufs装置6720作为一个模块被集成在ufs装置6720内部或外部。在图19的实施例中,通过示例的方式图示了一个ufs装置6720和一个ufs卡6730连接到切换模块6740的配置。然而,在另一实施例中,各自包括切换模块6740和ufs装置6720的多个模块可以并联或以星形的形式连接到主机6710,或者串联或以链的形式彼此连接。此外,多个ufs卡可以并联或以星形的形式连接到ufs装置6720。

在图20所示的ufs系统6800中,主机6810、ufs装置6820和ufs卡6830中的每一个可以包括m-phy和unipro。ufs装置6820可以执行切换操作,以与主机6810和ufs卡6830通信。特别地,ufs装置6820可以通过用于与主机6810通信的m-phy和unipro模块和用于与ufs卡6830通信的m-phy和unipro模块之间的切换操作(例如,通过目标id(标识符)切换操作)与主机6810或ufs卡6830通信。主机6810和ufs卡6830可以通过在ufs装置6820的m-phy和unipro模块之间的目标id切换来彼此通信。在图20的实施例中,通过示例的方式图示了一个ufs装置6820连接到主机6810并且一个ufs卡6830连接到ufs装置6820的配置。但是,多个ufs装置可以并联或以星形的形式连接到主机6810,或者串联或以链的形式连接到主机6810,并且多个ufs卡可以并联或以星形的形式连接到ufs装置6820,或者串联或以链的形式连接到ufs装置6820。

图21是示意性地图示根据本公开的实施例的包括存储器系统的数据处理系统的另一示例的图。例如,图21是示意性地图示应用存储器系统的用户系统6900的图。

参考图21,用户系统6900可以包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。

具体地,应用处理器6930可以驱动用户系统6900中包括的部件(例如,os)并且包括对用户系统6900中包括的部件进行控制的控制器、接口和图形引擎。应用处理器6930可以被提供作为片上系统(soc)。

存储器模块6920可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920可以包括易失性ram(诸如dram、sdram、ddrsdram、ddr2sdram、ddr3sdram、lpddrsdarm、lpddr2sdram或lpddr3sdram)或非易失性ram(诸如pram、reram、mram或fram)。例如,应用处理器6930和存储器模块6920可以基于pop(叠层封装)来被封装和安装。

网络模块6940可以与外部装置通信。例如,网络模块6940不仅可以支持有线通信,而且可以支持各种无线通信协议(诸如码分多址(cdma)、全球移动通信系统(gsm)、宽带cdma(wcdma)、cdma-2000、时分多址(tdma)、长期演进(lte)、全球微波接入互通(wimax)、无线局域网(wlan)、超宽带(uwb)、蓝牙、无线显示(wi-di)),从而与有线/无线电子装置、特别是移动电子装置进行通信。因此,根据本公开的实施例,存储器系统和数据处理系统可以应用于有线/无线电子装置。网络模块6940可以被包括在应用处理器6930中。

存储模块6950可以存储数据(例如,从应用处理器6930接收的数据),然后可以将所存储的数据传输到应用处理器6930。存储模块6950可以由诸如相变ram(pram)、磁性ram(mram)、电阻式ram(reram)、nand闪存、nor闪存和3dnand闪存的非易失性半导体存储器装置来实现,并且被提供作为用户系统6900的可移除存储介质(诸如存储器卡或外部驱动器)。存储模块6950可以对应于参考图2描述的存储器系统110。此外,存储模块6950可以被实现为以上参考图13至图21描述的ssd、emmc和ufs。

用户接口6910可以包括用于向应用处理器6930输入数据或命令或向外部装置输出数据的接口。例如,用户接口6910可以包括用户输入接口(诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件)以及用户输出接口(诸如液晶显示器(lcd)、有机发光二极管(oled)显示装置、有源矩阵oled(amoled)显示装置、led、扬声器和电机)。

此外,当图1和图5的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可以控制移动电子装置的整体操作。网络模块6940可以用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可以在移动电子装置的显示/触摸模块上显示由处理器6930处理的数据。此外,用户接口6910可以支持从触摸面板接收数据的功能。

根据本公开的实施例,存储器系统、数据处理系统及其操作方法以及检查操作的方法可以执行至少一些单位擦除操作,以用于擦除在至少一个特定存储器块中不再使用的数据,而不管是否对至少一个特定存储器块执行利用新数据的编程操作。用于在编程操作之前预先部分地执行擦除操作以删除无效数据的装置和方法可以具有即使在利用大量数据对多个存储器块执行编程操作时也可以避免或减少编程操作的延迟的优点。

另外,本公开的实施例可以减少直接在执行对大量数据进行编程所需的编程操作之前进行擦除操作以擦除多个存储器块所花费的时间,从而减少对大量数据进行编程所需的时间,并降低存储器系统中i/o操作的触觉速度。这些优点可以提高存储器系统的适销性。

虽然已关于特定实施例图示和描述了本公开,但是根据本公开,对于本领域技术人员而言显而易见的是,在不脱离如所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和修改。

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