首页> 中国专利> 混合SLC/MLC存储器中的块管理方案

混合SLC/MLC存储器中的块管理方案

摘要

一种用于数据存储的方法,该方法包括以下步骤:在包括按块布置的多个模拟存储器单元的存储器中存储数据。该块的第一子集被限定用于以第一存储密度存储第一数据,而块的第二子集被限定用于以比第一存储密度大的第二存储密度存储第二数据。在第一子集和第二子集中的每一个子集中分配一个或多个块以用作备用块,并且利用备用块替换变得有故障的块。在检测到第二子集中的备用块的数量已经减少到预定阈值以下时,将数据从第二子集中的至少一个块复制至第一子集,并且将所述至少一个块添加至第二子集的备用块。

著录项

  • 公开/公告号CN103688247A

    专利类型发明专利

  • 公开/公告日2014-03-26

    原文格式PDF

  • 申请/专利权人 苹果公司;

    申请/专利号CN201280035426.X

  • 发明设计人 A·梅厄;A·佩利;A·萨德;

    申请日2012-06-14

  • 分类号G06F12/02(20060101);G06F11/20(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人曹瑾

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-17 02:34:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-10-12

    授权

    授权

  • 2014-04-23

    实质审查的生效 IPC(主分类):G06F12/02 申请日:20120614

    实质审查的生效

  • 2014-03-26

    公开

    公开

说明书

技术领域

本发明总体上涉及数据存储,并且具体地说,涉及用于存储器装 置中的存储器块管理的方法和系统。

背景技术

诸如闪存装置的某些存储器装置包括多个存储器块。用于存储器 块管理的各种技术是本领域已知的。例如,美国专利8040744(其公 开通过引用并入于此)描述了用于管理可重新编程非易失性存储器系 统(如闪存EEPROM系统)中的备用块的技术。在一组技术中,对 于分区成其中一个部分的块更倾向于出错的两个部分(如双态部分和 多态部分)的存储器,可以将备用块从更易出错分区转移至较不易出 错分区。在另一组技术中,在更易出错分区中故障的块被转移以用作 另一分区中的备用块。

作为另一示例,美国专利申请公报2010/0174847(其公开通过引 用并入于此)描述了这样的技术,即,将非易失性存储器的一部分从 主多阶存储器阵列隔开,以操作为高速缓存。该高速缓冲存储器被设 置成,与主存储器相比,按每存储器单元更少容量和更细粒度的写入 单元来存储。该高速缓冲存储器通过响应于增加容量的需求从主存储 器分配块而具有动态增加的容量。优选的是,分配具有比平均值更高 的耐受度计数(endurance count)的块。数据的逻辑地址被分区成多 个区域,以限制针对该高速缓存的索引的大小。

发明内容

在此描述的本发明的一实施例提供了一种用于数据存储的方法。 该方法包括以下步骤:在包括按块布置的多个模拟存储器单元的存储 器中存储数据。该块的第一子集被限定用于以第一存储密度存储第一 数据,而块的第二子集被限定用于以比第一存储密度大的第二存储密 度存储第二数据。在第一子集和第二子集中的每一个子集中,分配一 个或多个块以用作备用块,并且利用备用块替换变得有故障的块。在 检测到第二子集中的备用块的数量已经减少到预定阈值以下时,将数 据从第二子集中的至少一个块复制至第一子集,并且将所述至少一个 块添加至第二子集的备用块。

在一些实施例中,存储数据的步骤包括:利用每存储器单元第一 数量的编程阶次来编程第一子集中的存储器单元,并且利用每存储器 单元比第一数量大的第二数量的编程阶次来编程第二子集中的存储器 单元。在一实施例中,第一存储密度包括每存储器单元一比特。在一 公开实施例中,复制数据并且添加所述至少一个块的步骤包括以下步 骤:将第二子集中的备用块的数量保持在不大于一预定上限。在一实 施例中,该上限包括单个备用块。

在一些实施例中,存储数据的步骤包括以下步骤:在第一子集中 执行将第一子集中的备用块用作预留空间开销的块压缩处理。在一实 施例中,所述方法包括以下步骤:根据一预定选择标准选择第二子集 中的所述至少一个块。在一示例实施例中,该选择标准取决于所述至 少一个块中的有效数据的量。在另一实施例中,该选择标准取决于所 述至少一个块中的有效数据被弄碎成的碎片的数量。在又一实施例中, 该选择标准取决于使所述至少一个块中的数据无效的最近的时间。

根据本发明的一实施例,另外提供了一种数据存储装置,该数据 存储装置包括:接口和处理器。该接口被设置成,与包括按块设置的 多个模拟存储器单元的存储器通信,其中,块的第一子集被限定用于 存储具有第一存储密度的第一数据,而块的第二子集被限定用于存储 具有比第一存储密度大的第二存储密度的第二数据。该处理器被配置 成,在第一子集和第二子集中的每一个子集中分配一个或多个块以用 作备用块,从而利用备用块替换变得有故障的块;并且,在检测到第 二子集中的备用块的数量已经减少到一预定阈值以下时,将来自第二 子集中的至少一个块的数据复制至第一子集,并且将所述至少一个块 添加至第二子集的备用块。

根据本发明的一实施例,还提供了一种用于在包括多个块的存储 器中进行数据存储的方法。该方法包括以下步骤:运行压缩处理,该 压缩处理选择所述多个块中的、包含有效数据和无效数据两者的一个 或多个块,将来自所选择块的有效数据复制至其它存储位置,并接着 擦除该选择块。在该存储器的指定区域内,识别包含存储在该指定区 域中的有效数据当中的、最少最近编程有效数据的块。将所识别块选 择为用于该压缩处理的候选。在一实施例中,与块中的有效数据的量 无关地执行该块的识别和选择。

根据本发明的一实施例,还提供了一种数据存储装置,该数据存 储装置包括:接口和处理器。该接口被配置成与包括多个块的存储器 通信。该处理器被配置成运行压缩处理,该压缩处理选择所述多个块 中的、包含有效数据和无效数据两者的一个或多个块,将来自所选择 块的有效数据复制至其它存储位置,并接着擦除该选择块,并且还被 配置成在该存储器的指定区域内识别包含存储在该指定区域中的有效 数据当中的、最早编程的有效数据的块,并且选择所识别的块作为用 于该压缩处理的候选。

而且,根据本发明一实施例,提供了这样一种方法,即,该方法 用于在包括多个块并且被划分成用于数据高速缓存的第一区域和用于 长期数据存储的第二区域的存储器中进行数据存储。该方法包括以下 步骤:运行压缩处理,该压缩处理在第一区域中选择所述多个块中的、 包含有效数据和无效数据两者的一个或多个块,将来自所选择块的有 效数据复制至该存储器中的其它存储位置,并接着擦除该选择块。基 于第二区域中的、因压缩候选块而引发的写入操作的数量,在第一区 域中选择一块作为用于该压缩处理的候选。

在一些实施例中,该数据根据将物理存储位置指配给相应逻辑映 射单元的逻辑至物理地址映射而存储在第二区域中,每一个逻辑映射 单元都包括至少一个块,并且选择组件的步骤包括以下步骤:基于块 中的有效数据所属于的逻辑映射单元的数量来选择块。在一实施例中, 选择块的步骤包括以下步骤:向第一区域中的多个块中的至少一些块 指配相应得分,该得分与第二区域中的、因压缩块而引发的写入操作 的相应数量逆相关,并且在选择用于该压缩处理的块时向具有高得分 的块赋予高优先级。

根据本发明的一实施例,另外提供了一种数据存储装置,该数据 存储装置包括:接口和处理器。该接口被配置成与包括多个块并且被 划分成用于数据高速缓存的第一区域和用于长期数据存储的第二区域 的存储器通信。该处理器被配置成运行压缩处理,该压缩处理在第一 区域中选择所述多个块中的、包含有效数据和无效数据两者的一个或 多个块,将来自所选择块的有效数据复制至该存储器中的其它存储位 置,并接着擦除该选择块,并且还被配置成基于第二区域中的、因压 缩候选块而引发的写入操作的数量,在第一区域中选择一块作为用于 该压缩处理的候选。

附图说明

根据下面结合附图对本发明实施例的详细描述,将更全面理解本 发明,其中:

图1是示意性地例示根据本发明一实施例的存储器系统的框图; 和

图2-4是示意性地例示根据本发明实施例的、用于管理存储器块 的方法的流程图。

具体实施方式

概述

在一些存储器系统中,例如,在某些基于闪存的固态驱动器 (SSD)中,将特定存储器区域配置成按相对于该存储器的其余部分 更小的存储密度来保持数据。例如,该低密度区域可以被配置成保持 每存储器单元单个比特(被称为单阶单元(SLC)配置),而该高密度 区域可以被配置成保持每存储器单元多个比特(被称为多阶单元 (MLC)配置)。尽管存储密度的差异可以按不同方式来实现,但低 密度和高密度区域在此分别被统称为SLC和MLC区域。

作为低存储密度的回报,与MLC区域相比,SLC区域通常有以 下特征:快速编程和读出以及改进的耐受度、保持以及存储可靠性。 SLC区域可以被用于各种目的,如用于在将数据转移至MLC区域之 前高速缓存进入的数据,或者用于存储敏感或频繁更新(“热点”)的 数据。典型地讲,SLC区域显著小于MLC区域。

在此描述的本发明的实施例提供了用于在被分区成SLC和MLC 区域的存储器中进行存储器管理的改进方法和系统。典型地讲,该存 储器包括多个存储器块,每一个存储器块都包括多个模拟存储器单元。 在一些实施例中,存储器控制器分配一个或多个存储器块以用作SLC 和MLC区域中的每一个区域中的备用块。该备用块例如被用于替换 变得有故障的块(“坏块”),或者用于增加存储器的预留空间开销,如 下详细描述的。

在一些公开实施例中,存储器控制器仅在MLC区域中分配最小 数量的备用块,并且在SLC区域中尽可能多地分配备用块。因为SLC 区域显著小于MLC区域,所以每一个备用块在SLC区域中比在MLC 区域中增加了大得多的百分比的备用存储器。因此,在SLC区域中分 配附加备用块而实现的性能增益通常比在MLC区域中分配较少数量 的这些备用块而造成的性能降级大得多。

在MLC区域中保持较少数量的备用块可能是冒风险的:MLC 存储器块可以在使用期间出现故障,并且MLC区域可能用光替换它 们的备用块。由此,在一些公开实施例中,存储器控制器检验MLC 区域中的备用块的数量未下降到某最小值以下。当检测到MLC区域 中的备用块的数量太低时,存储器控制器将数据从MLC区域中的一 个或多个块复制至SLC区域,并且将MLC区域中释放的块通用作备 用块。

上述技术使得存储器控制器能够向SLC区域分配大量备用块, 并从而因较高预留空间比率而按高吞吐量和耐受度操作SLC区域。同 时,向MLC区域连续提供足够数量的备用块。这种权衡帮助提高存 储器系统的总体性能。例如,当SLC区域被用于高速缓存数据或者用 于存储与MLC区域有关的管理信息时,存储这种信息同样更有效地 改进了MLC性能。

其它公开实施例需要通过存储器控制器在SLC区域中执行的块 压缩处理(还称为“无用单元回收(garbage collection)”)。这些实施 例提供了用于选择供压缩用的候选块的改进标准。在一些实施例中, 存储器控制器将最老的块(即,包含最早写入数据的块)选择为用于 压缩的候选。该标准使能实现快速且简单的管理,例如,因为其不需 要存储器控制器评估每一个块中的有效数据的量。

在另选实施例中,存储器控制器通过考虑压缩将要在MLC区域 中引发的写入操作的数量来选择用于压缩的候选SLC块。其压缩将引 发MLC区域中的少量写入操作的SLC块通常是优选的。在一示例实 施例中,存储器控制器利用在具有特定尺寸(例如,多个块或多个块 的组)的映射单元上限定的逻辑至物理地址映射,在存储器中存储数 据。在这些实施例中,存储器控制器可以通过不仅考虑块中的有效数 据的量,而且考虑有效数据所属于的映射单元的数量,来选择用于压 缩的候选块。典型优选的是,在其数据属于少量映射单元的块上执行 压缩,因为该压缩将涉及将少量数据复制至MLC区域。

系统描述

图1是示意性地例示根据本发明一实施例的存储器系统20的框 图。系统20可以在不同主机系统和装置中使用,如在计算装置、蜂窝 电话或其它通信终端、可去除存储器模块(有时称为“USB闪存驱动 器”)、固态盘(SSD)、数字摄像机、音乐和其它媒体播放器和/或其 中存储并检索数据的任何其它系统或装置。

系统20包括在存储器单元阵列28中存储数据的存储器装置24。 该存储器阵列包括多个存储器块30。每一个存储器块30包括多个模 拟存储器单元。在本专利申请的上下文中并且在权利要求书中,术语 “模拟存储器单元”被用于描述保持物理参数(如电压或电荷)的连续 模拟值的任何存储器单元。阵列28可以包括任何种类的模拟存储器单 元,举例来说,如NAND、NOR和电荷俘获闪存(CTF)闪存单元、 相变RAM(PARM,还被称为相变存储器PCM)、氮化物只读存储器 (NROM)、铁电体RAM(FRAM)、磁性RAM(MRAM)和/或动 态RAM(DRAM)单元。

存储在单元中的电荷电平和/或写入和读取单元的模拟电压或电 流在此被统称为模拟值、模拟存储值或存储值。该存储值例如可以包 括阈值电压或任何其它合适种类的存储值。系统20通过编程模拟存储 器单元以假定相应编程状态(其还被称为编程阶次)将数据存储在该 单元中。编程状态从可能状态的有限集中选择,并且每一个编程状态 对应于某标称存储值。例如,可以编程3比特/单元MLC,以通过将 八个可能标称存储值中的一个写入到该单元中来假定八个可能编程状 态中的一个。

存储器装置24包括读取/写入(R/W)单元36,其将用于存储在 存储器装置中的数据转换成模拟存储值,并将它们写入到存储器单元 中。在另选实施例中,R/W单元不执行转换,而是被提供电压采样, 即,具有用于存储在单元中的存储值。当将数据从阵列28读出时, R/W单元36将存储器单元的存储值转换成具有一个或多个比特的分 辨率的数字采样。数据通常按被称为页面的组写入存储器单元和从其 读取。在一些实施例中,R/W单元可以通过向一组存储器单元施加一 个或多个负擦除脉冲而擦除该组存储器单元。擦除通常在整个存储器 块中执行。

将数据存储在存储器装置24中和从其检索出通过存储器控制器 40来执行。存储器控制器包括:用于与存储器装置24通信的接口44、 和执行各种存储器管理功能的处理器48。具体来说,处理器48执行 在此描述的存储器块管理方案。

存储器控制器40与主机52通信,以接受用于存储在存储器装置 中的数据,并且输出从存储器装置检索的数据。存储器控制器40(并 且具体来说,处理器48)可以按硬件实现。另选的是,存储器控制器 可以包括运行合适软件的微处理器,或者硬件和软件部件的组合。

图1的配置是一示例性系统配置,其完全为概念澄清起见而示出。 还可以使用任何其它合适的存储器系统配置。对于理解本发明原理的 不是必需的部件(如各种接口、寻址电路、时序电路以及调试电路) 为清楚起见已经从图中省略。

尽管图1的示例示出了单个存储器装置24,但系统20可以包括 通过存储器控制器40控制的多个存储器装置。在图1所示的示例性系 统配置中,存储器装置24和存储器控制器40被实现为两个分离的集 成电路(IC)。然而,在另选实施例中,存储器装置和存储器控制器 可以集成在单个多芯片封装(MCP)或芯片上系统(SoC)中的分离 的半导体芯片(die)上,并且可以通过内部总线互连。另选的是,一 些或全部存储器控制器电路可以驻留在其上设置有存储器阵列的同一 芯片上。再另选的是,存储器控制器40的一些或全部功能可以按软件 实现,并且通过处理器或主机系统的其它部件来执行。在一些实施例 中,主机44和存储器控制器40可以在同一芯片上制造,或者在同一 装置封装中的分离芯片上制造。

在一些实施例中,存储器控制器40包括通用处理器,其按软件 编程以执行在此描述的功能。该软件可以按电子形式例如通过网络下 载至处理器,或者另选地或另外,其可以被提供和/或存储在非暂时有 形介质上,如磁性、光学或电子存储器。

在阵列28的示例配置中,每一个块30中的存储器单元按多个行 和列来布置,并且每一个存储器单元都包括浮栅晶体管。每一行中的 晶体管的栅极通过字线连接,而每一列中的晶体管的源极都通过位线 连接。该存储器阵列通常被划分成多个页面,即,同时编程和读取的 多组存储器单元。页面有时被再分成扇区。在一些实施例中,每一页 面包括该阵列的一整行。在另选实施例中,每一行(字线)可以划分 成两个或更多个页面。例如,在一些装置中,每一行划分成两个页面, 一个包括奇数次序单元而另一个包括偶数次序单元。

典型地讲,存储器控制器40按页面单元编程数据,但擦除整个 存储器块30。典型地讲,尽管不必要,但一存储器块在106个存储器 单元的数量级,而一页面在103-104个存储器单元的数量级。

分区成具有备用块的SLC和MLC区域的存储器

在一些实施例中,存储器块30被分区成单层(SLC)区域34和 多层单元(MLC)区域36。区域34和36在存储密度上彼此不同(即, 在用于存储数据的每存储器单元的比特数方面),MLC区域36中的存 储密度高于SLC区域34中的存储密度。在一些实施例中,SLC区域 34中的存储器单元保持每存储器单元单个比特(例如,通过编程成两 种可能编程电平),而MLC区域36中的存储器单元保持每存储器单 元多个比特(例如,通过编程成两种以上可能的编程阶次)。另选的是, 区域34中的存储器单元可以具有比区域36中的存储器单元的存储密 度低的任何其它合适的存储密度。

尽管在此描述的实施例指按1比特/单元存储数据的SLC区域和 按一个以上的比特/单元存储数据的MLC区域,但所公开的技术可以 与用于按比在另一存储器区域中更高的密度在一个存储器区域中存储 数据的任何其它合适技术一起使用。对于使用不同数量的编程阶次来 说,另选的是,可以利用任何其它合适的技术在区域34和36中实现 不同存储密度。

因为存储密度更小,SLC区域34典型地具有以下特征:更快速 编程、更长耐久性(endurance)和保持性(retention),而且有时具 有更高的存储可靠性。在不同实施例中,SLC区域可以服务系统20 中的不同功能。例如,SLC区域34可以被用于临时高速缓存从主机 接收的数据,直到该数据被复制至MLC区域36中的其长期目的地地 址为止。该功能有时被称为“双态高速缓存”或“SLC高速缓存”。另外 或另选的是,SLC区域34可以被用于存储诸如映射表的高敏感信息。 作为又一示例,SLC区域34可以被用于存储频繁更新的数据(“热点” 数据)。

典型地讲,SLC区域34的尺寸显著小于MLC区域36的尺寸。 在一个示例实施例中,SLC区域包括五十个块34,而MLC区域36 包括两千个块。另选的是,SLC与MLC区域的尺寸之间的任何其它 合适比例都可以使用。在一些实施例中,SLC区域中的存储器单元和 存储器块在结构上不同于MLC区域中的存储器单元和存储器块。在 其它实施例中,SLC区域中的存储器单元和存储器块与MLC区域中 的存储器单元和存储器块相似或相同。

在一些实施例中,SLC和MLC区域中的每一个都包括用作备用 块的一定数量的块34。备用块可以被用于各种目的,如用于替换出现 故障的块(“坏块”),和用于在压缩或“无用存储单元回收”处理中使用 的预留空间,如下所述。

在诸如装置24的模拟存储器中,将数据按页面单元写入存储器, 但向整个存储器块应用擦除。将数据仅写入被擦除页面,并由此无法 就地更新数据。更新数据涉及将所更新数据写入另一物理存储位置, 将数据的先前版本标记为无效,并且将逻辑地址动态映射至物理存储 位置。

因为上述特征,存储器的存储器块逐渐累积其更新版本已经存储 在其它物理存储位置中的无效数据页面。为了缩减无效页面的数量, 存储器控制器执行压缩,或“无用存储单元回收”处理。该处理选择用 于压缩的一个或多个存储器块,将来自所选择存储器块的有效数据复 制至其它存储位置,并接着擦除该选择存储器块。接着,已擦除块准 备用于随后编程。

压缩处理的效率(其例如可以根据每块压缩所执行的复制操作的 平均数来量化)作为存储器的预留空间比率(该存储器的真实物理容 量与提供给用于存储数据的外部实体的指定容量的比率)的函数而提 高。

典型地讲,块30内的不保持有效数据的存储器区域(“内存孔”) 的聚合尺寸被称为预留空间开销。该预留空间开销可以被指定为预留 空间比率,其被限定为指定存储器容量的一部分。例如,当存储器使 用5%的预留空间比率,并且存储器逻辑上充满时,每个存储器块平 均起来仅95%被编程。

当存储器被预留空间时,可以更有效地执行无用存储单元回收。 换句话说,可以缩减每块压缩的复制操作数。无用存储单元回收处理 的效率作为该存储器中使用的预留空间比率的函数而增加。增加预留 空间比率缩减了存储器单元的耗损,并且还增加了编程吞吐量。预留 空间开销对单元耗损和存储吞吐量的影响在存储器充满或几乎充满时 特别强。

典型地讲,处理器48分配一个或多个块30以用作SLC区域34 中的备用块,并且分配一个或多个块30以用作MLC区域36中的备 用块。每一个备用块在其相应区域(SLC或MLC)内使用,例如, 作为用于替换在使用期间出现故障的块的候选,或者用于增加预留空 间比率,并由此提高压缩处理的效率。

SLC和MLC区域中的备用块的有效分配

存储器控制器40可以分配任何希望数量的块30以用作SLC区 域34或者MLC区域36中的备用块。而且,存储器控制器可以将从 数据从一个区域复制至另一区域,以便在以另一区域为代价的情况下 增加一个区域中的备用块的数量。

在本发明的一些实施例中,存储器控制器40以在MLC区域中 仅保持最小数量的备用块为代价,在SLC区域中分配大量的备用块。 这类分配显著改进了SLC区域的性能。如上所述,SLC区域通常显 著小于MLC区域。因此,通过在SLC区域中分配附加备用块而实现 的性能增益通常比通过从MLC区域中去除这些备用块而造成的性能 降级更大。

例如,考虑这样的存储器,其分区成具有2000个块和二十个附 加备用块的指定尺寸的2比特/单元MLC区域,和具有五十个块的1 比特/单元SLC区域。作为比较,考虑其中该二十个备用块中的十九 个被重新分配给SLC区域的情况,意指MLC区域仅具有单个备用块, 而SLC区域代替五十个块具有六十九个备用块。该重新分配意指SLC 区域中的备用块数增长大约40%,该增长提供显著性能提高。MLC 区域中的单个备用块仍使得存储器控制器能够执行块压缩,尽管可能 按减小的效率。

在实践中,MLC区域36中的一些存储器块随着时间可能出现故 障(“坏块”)。当存储器控制器40检测到一存储器块有故障时,其用 备用块替换该块。当MLC区域仅被分配最小数量的备用存储器块(举 例来说,如在上述示例中的单个备用块)时,MLC区域中的备用块可 以全部同时使用。在这种情况下,可用于存储用户数据的存储器空间 可以下降到指定尺寸以下。

由此,在一些实施例中,当检测到MLC区域中的备用块的数量 下降到某最小值以下时,存储器控制器中的处理器48将数据从MLC 区域36复制至SLC区域34,以便释放MLC区域中的附加备用块。 在一些实施例中,按不大于某上限来保持MLC区域中的备用块的数 量。这些机制在MLC区域中适应性地保持足够数量的备用块,而同 时向SLC区域分配最高可能数量的备用块。

处理器48可以利用任何合适的技术来检测MLC区域中的有故 障块,例如,通过检测无法擦除的块或无法正确编程数据的块。

图2是示意性地例示根据本发明一实施例的、用于管理存储器块 的方法的流程图。在初始分配步骤60,该方法利用存储器控制器40 中的处理器48开始向SLC和MLC区域中分配备用存储器块。处理 器48分配一个或多个块以用作SLC区域34中的备用块,并且分配一 个或多个块以用作MLC区域36中的备用块。如上说明的,处理器48 通常在SLC区域中分配尽可能多的备用块,而仅在MLC区域中分配 某最小数量的备用块。

在存储步骤64,处理器48在SLC和MLC区域中存储数据。特 定存储处理对于不同实施例可以不同,例如,取决于SLC区域的功能 (例如,双态高速缓存、或用于敏感或频繁更新数据的存储空间)。典 型地讲,处理器48利用分配给每一个区域的备用块,在SLC和MLC 区域中的每一个区域内分离地执行无用存储单元回收和坏块的替换。

在操作期间,在坏块检查步骤68,处理器48检查MLC区域36 中是否存在新的故障块。如果未检测到新的坏块,则该方法向上循环 回至步骤64,其中,系统20继续存储数据。

如果在MLC区域中检测到新的有故障块,则在备用块检查步骤 72,处理器48检查备用块在MLC区域中是否可用。如果备用块在 MLC区域中可用,则在替换步骤76,处理器48利用备用块替换有故 障组件。接着,该方法向上循环回至步骤64。

另一方面,如果MLC区域中不再有可用备用块,则在备用生成 步骤80,处理器48释放MLC区域36中的一个或多个块以用作附加 备用块。在一实施例中,处理器48将数据从MLC区域36中的一个 或多个块复制至SLC区域34,接着擦除该MLC块,并指配它们以用 作备用块。先前驻留在这些MLC块中的数据现在存储在SLC区域中, 并且在请求时可以从该另选位置检索。因为SLC区域中的存储密度更 小,所以将来自指定MLC块的数据典型地复制至两个或更多个SLC 块。接着,在步骤76,处理器48可以利用新指配的备用块替换有故 障块,并且该方法向上循环回步骤64。

图2的方法是一示例性方法,其完全为概念澄清起见而选择。在 另选实施例中,还可以使用其它合适方法。例如,在图2的方法中, 当MLC区域中的可用备用块的数量下降至零(即,再没有备用块可 用)时,在MLC区域中生成新的备用块。在另选实施例中,当MLC 区域中的备用块的数量下降到任何其它合适阈值以下时可以开始该处 理。可以将上面的处理用于在MLC区域中生成任何合适数量的新备 用块。

作为另一示例,在图2的方法中,响应于检测到MLC区域中的 坏块,生成新的备用MLC块。在另选实施例中,在需要时,可以响 应于其它事件或者周期性地生成新的备用块。例如,处理器48可以运 行后台任务,其检查MLC区域中的备用块的数量是否低于所允许的 最小数量。如果MLC区域中的备用块的数量太低,则处理器48可以 通过将数据复制至SLC区域而生成一个或多个新的备用MLC块。

处理器48可以使用各种方法和标准来选择将哪个MLC块要释 放并转换成备用块。在一示例实施例中,处理器48选择具有最少量有 效数据的块(典型地减少用于释放块所需的复制操作的数量的标准)。 在另一实施例中,处理器48选择其有效数据被分成最小数量的碎片的 块(典型地减少SLC区域的虚拟至物理地址映射的尺寸的标准)。在 又一实施例中,处理器48选择其中数据最新无效的块(例如,作为在 MLC区域中的压缩期间复制数据的结果)。而且,另选的是,处理器 48可以选择用于利用任何其它合适标准转换成备用块的MLC块。

用于选择用于在SLC区域中压缩的块的标准

在一些实施例中,存储器控制器40中的处理器48在SLC区域 34中运行压缩(“无用存储单元回收”)处理。该压缩处理在区域34 中选择包含有效和无效数据两者的一个或多个块30,将有效数据复制 至其它存储位置(SLC区域34中和/或MLC区域36中)并接着擦除 该块。

任何块压缩操作涉及将一定量的数据从一个位置复制至另一位 置。当选择用于压缩的候选块时,通常优选的是,选择其压缩将涉及 仅复制较小量数据的块。这类选择帮助增加存储器吞吐量和耐久性。 另一种考虑是在候选选择过程中涉及的管理开销。

在本发明的一些实施例中,处理48选择SLC区域中的(一个或 多个)最老块作为用于压缩的候选。换句话说,处理器48选择SLC 区域中的包括最早编程数据的一个或多个块。术语“最早编程数据”指 写入数据的时间,而不管该写入操作是从主机接收到新数据的结果还 是内部复制(例如,压缩)操作的结果。

选择最老块用于压缩使得存储器控制器能够以高可能性压缩近 期不会被更新的块。而且,该选择标准可以按快速且简单的方式实现, 因为其不取决于块中的有效数据的量。为了使用该标准,存储器控制 器不需要评估或跟踪每块的有效或无效数据的量。

图3是示意性地例示根据本发明一实施例的、用于管理存储器块 的方法的流程图。该图的左手侧示出了存储处理,而该图的右手侧示 出了块选择和压缩处理。这两个处理通常通过存储器控制器并行执行。

在输入步骤90,该存储处理始于存储器控制器40中的处理器48 从主机52接受用于存储的数据。在高速缓存步骤94中,处理器48 在SLC区域中高速缓存数据。在稍后的时间点,在转移步骤98,存 储器控制器从SLC区域转移数据,以供在MLC区域中长期存储。

选择和压缩处理始于处理器48在最老块识别步骤100识别SLC 区域中的最老的一个或多个块。该最老块被定义为在SLC区域中包含 最早写入数据的块。接着,在压缩步骤104,处理器48压缩所识别的 一个或多个块。压缩可以包括将有效数据从所识别最老的一个或多个 块复制至SLC区域中或者MLC区域中的新位置。接着,该最老块被 擦除并且准备用于新编程。

在另选实施例中,存储器控制器40利用逻辑至物理地址映射方 案在存储器装置24中存储数据。在这些实施例中,该数据通过主机 52利用逻辑地址来寻址,并且存储器控制器将该逻辑地址转换成装置 24中的物理存储位置。当数据从一个物理存储位置移动至另一个时 (例如,在压缩期间),存储器控制器更新映射至移动数据的逻辑地址 的物理存储位置。

存储器控制器的逻辑至物理地址映射方案通常在特定大小的映 射单元上限定。换句话说,映射单元是限定并执行映射的基本粒度。 映射单元尺寸例如可以包括单个块或者一个以上的块。

在一示例实施例中,SLC区域用于数据高速缓存,MLC区域用 于长期数据存储,而处理器48执行基于块的闪存转换层(FTL),其 根据下列策略在SLC区域中执行压缩:

■选择用于压缩的SLC块。

■将该数据中的至少一些从所选择的SLC块复制至MLC区域 中的、该数据的目标逻辑地址。该操作可涉及从SLC区域中的其它 块向MLC区域复制附加数据,因为所选择的MLC块中的数据可属 于应当被复制到MLC区域en-bloc的映射单元(该示例中的逻辑MLC 块)。

■将所选择的块中的剩余数据复制至SLC区域中的另选位置 (例如,开放式块)。

在一些实施例中,存储器控制器40中的处理器48通过考虑MLC 区域中的、压缩将引发的写入操作的数量,来选择SLC区域34中的 用于压缩的候选块。这种写入操作例如将在从所选择块向MLC区域 复制数据时发生,并且在从与从所选择的SLC块复制的数据属于同一 映射单元的其它SLC块向MLC区域复制数据时发生。处理器48通 常选择其压缩将导致MLC区域中的较小数量(例如,最小可能数量) 的写入操作的SLC块。因为MLC写入操作在延时方面显著,所以该 类选择标准增加了SLC压缩处理的效率。

在一些实施例中,处理器48向SLC区域中的每一个块指配一相 应得分,其与压缩SLC块引发的MLC写入操作的数量逆相关。在这 些实施例中,处理器48在选择用于压缩的SLC组件时向具有高得分 的块赋予优先权。

处理器48可以使用任何合适方法来估算因压缩给定SLC块而造 成的MLC区域中的写入操作的数量。在一些实施例中,该估算将考 虑SLC块中的数据所属于的映射单元的数量。由此,在一些实施例中, 处理器48通过不仅考虑块中的有效数据的量,还考虑有效数据所属于 的映射单元的数量,来选择SLC区域34中的、用于压缩的候选块。 例如,考虑包括相同量的有效数据的两个块。然而,在一个块中,所 有有效数据都属于单个映射单元,而在另一块中,该有效数据属于多 个映射单元。

当执行压缩时,有效数据按映射单元粒度从被压缩块复制至另一 存储位置。因此,如果有效数据属于大量映射单元,则必须复制大量 数据。为此,典型优选的是,压缩其有效数据属于少量映射单元的块。

在一些实施例中,处理器48利用考虑块中的有效数据所属于的 映射单元的数量的标准来选择SLC区域34中用于压缩的候选块。其 有效数据属于较小数量的映射单元的块通常优选用于压缩,而反之亦 然。具有少量的有效数据的块通常被优选用于压缩,而反之亦然。在 一些实施例中,处理器48向SLC区域中的每一个块指配一相应得分, 其与该块中的有效数据的量逆相关,并且还与该块中的有效数据所属 于的映射单元的数量逆相关。在这些实施例中,处理器48在选择用于 压缩的块时向具有高得分的块赋予优先权。

图4是示意性地例示根据本发明一实施例的、用于管理存储器块 的方法的流程图。该图的左手侧示出了存储处理,而该图的右手侧示 出了块选择和压缩处理。这两个处理通常通过存储器控制器40并行执 行。

存储处理始于存储器控制器40中的处理器48在数据输入步骤 110从主机52接受用于存储的数据。该数据通过主机寻址,以存储在 某逻辑地址中。在数据高速缓存步骤114,处理器48在SLC区域中 高速缓存数据。在地址变换步骤118,处理器48根据逻辑至物理地址 映射,确定MLC区域36中的该数据的物理存储位置。接着,在数据 转移步骤122,处理器48将数据从SLC区域转移至MLC区域中的恰 当物理存储位置。

选择和压缩处理始于处理器48在选择步骤126选择用于压缩的 一个或多个候选块。处理器48基于压缩该候选块将引发的MLC写入 操作(例如,从SLC复制至MLC)的数量来选择每个候选块。典型 地讲,向其压缩引发MLC区域中的少量写入操作的SLC块赋予优先 权。在一些实施例中,处理器48为每一个块计算量化其对于压缩的吸 引力的度量。接着,在块压缩步骤130,处理器48压缩所选择的一个 或多个候选块。

尽管在此描述的实施例主要寻求包括SLC和MLC存储器的存储 器系统,但在此描述的方法和系统还可以在其它应用中使用,如在包 括具有不同层级或存储密度的存储器的其它类型存储器系统中。

由此,应当清楚,上述实施例通过示例的方式进行陈述,而且本 发明不限于上面具体示出并描述的内容。相反地,本发明的范围包括 上述各个特征以及本领域技术人员通过阅读前述描述而想到的和现有 技术中未公开的其变型例和修改例的组合和子组合两者。通过在本专 利申请中引用而并入的文献要被视为该申请的组成部分,除了在任何 术语按与本说明书中明确地或隐含地进行的定义相冲突的方式定义的 情况,仅应考虑本说明书中的定义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号