基于可用存储器空间选择冗余存储配置的制作方法

文档序号:13660708阅读:169来源:国知局
基于可用存储器空间选择冗余存储配置的制作方法

本申请是国际申请日为2014年3月5日的、名称为“基于可用存储器空间选择冗余存储配置”的发明专利申请no.201480015235.6(pct/us2014/020586)的分案申请。

本发明整体涉及存储器系统,并且具体涉及冗余存储配置。



背景技术:

非易失性存储器系统,诸如固态驱动器(ssd),有时使用冗余存储方案存储数据以确保在存储器出现故障的情况下可成功恢复写入ssd的数据。针对非易失性存储器的各种冗余存储方案在本领域中是已知的。

例如,美国专利申请公布2010/0017650描述了一种非易失性存储器数据存储系统,其包括用于与外部主机通信的主机接口以及包括第一多个闪存存储器设备的主存储装置,该公开以引用方式并入本文。每个存储器设备包括第二多个存储块。第三多个第一级控制器耦接至第一多个闪存存储器设备。第二级控制器通过内部接口耦接至主机接口和第三多个第一级控制器。第二级控制器被配置为根据至少一个奇偶校验执行独立磁盘冗余阵列(raid)操作以便数据恢复。

又如,美国专利申请公布2009/0204872描述了一种闪存模块,该闪存模块具有由控制器通过物理块地址(pba)总线访问的未加工nand闪存存储器芯片,该公开以引用方式并入本文。控制器将逻辑块地址转换为物理块地址。在一些实施例中,数据可被布置成提供类似于raid系统的冗余存储装置,以便提高系统可靠性。



技术实现要素:

本文所述的本发明的实施例提供了一种方法,该方法包括在控制存储器的存储器控制器中,评估存储器中剩余的可用存储器空间以写入数据。在存储器控制器中,根据可用存储器空间选择冗余存储配置。使用所选择的冗余存储配置对数据计算冗余信息。将数据和冗余信息写入存储器中的可用存储器空间。

在一些实施例中,选择冗余存储配置包括基于可用存储器空间选择对其计算冗余信息的多个存储块。在其他实施例中,选择冗余存储配置包括选择具有编码速率的纠错码(ecc),该编码速率取决于可用存储器空间,并且计算冗余信息包括使用所选择的ecc来计算冗余信息。在其他实施例中,选择冗余存储配置包括将一个或多个存储块从存储冗余信息的一部分重新分配为存储数据的一部分。

在一些实施例中,选择冗余存储配置包括从针对一个或多个整个存储块的故障进行保护的第一存储配置切换至针对存储块的仅部分的故障进行保护的第二存储配置。在其他实施例中,从第一存储配置切换至第二存储配置是在循环利用由该第一存储配置所产生的冗余块时执行的。在其他实施例中,选择冗余存储配置包括在检测到可用存储器空间小于预定义阈值时修改冗余存储配置。

根据本发明的实施例,还提供了一种装置,该装置包括存储器和存储器控制器。存储器控制器被配置为评估存储器中剩余的可用存储器空间以写入数据,根据可用存储器空间选择冗余存储配置,使用所选择的冗余存储配置对数据计算冗余信息,以及将数据和冗余信息写入存储器中的可用存储器空间。

根据本发明的实施例,还提供了一种存储器控制器,该存储器控制器包括接口和处理器。接口被配置为与存储器进行通信。处理器被配置为评估存储器中剩余的可用存储器空间以写入数据,根据可用存储器空间选择冗余存储配置,使用所选择的冗余存储配置对数据计算冗余信息,以及将数据和冗余信息写入存储器中的可用存储器空间。

本发明将结合如下附图通过其实施例的以下详细描述更全面理解。

附图说明

图1为根据本发明的实施例示意性地示出存储器系统的框图;并且

图2为根据本发明的实施例示意性地示出用于选择冗余存储配置的方法的流程图。

具体实施方式

概述

本文所述的本发明的实施例提供了用于针对存储器故障来保护存储系统诸如固态驱动器(ssd)的改进的冗余存储方案。本发明所公开的技术允许存储器控制器基于可用存储器空间自由选择冗余存储配置以便改善存储器系统的整体性能。

例如,在控制器评估出可能没有足够存储器空间来写入新数据的情况下,存储器控制器可从存储冗余信息到存储数据重新分配存储器空间。又如,在可用存储器空间很小的情况下,存储器控制器可选择产生较少冗余信息并进而减少开销的冗余存储方案。

在典型的具体实施中,存储器控制器首先评估当前可用存储器空间。存储器控制器继而可基于当前可用存储器空间灵活选择用于计算新的冗余信息以及存储器空间的方法,其中新的冗余信息和新的数据将同时占据该存储器空间。

使用本文所述的公开技术,可按需以存储装置可靠性来换取存储器空间:在可用存储器空间允许的情况下,以很高的可靠性来存储数据。在存储器变满的情况下,可以对故障的恢复能力上的一些下降为代价来获得附加存储器空间。

系统描述

图1为根据本发明实施例的示意性说明存储器系统20的框图。主机10发送用于存储的数据并相反地接收从存储器系统20的存储装置中恢复的数据。系统20可用于各种主机系统和设备中,诸如用于计算设备、蜂窝电话或其他通信终端、可移除的存储器模块(有时称为“usb闪存驱动器”)、固态驱动器(ssd)、数字相机、音乐播放器和其他媒体播放器和/或数据在其中存储和恢复的任何其他系统或设备。

存储器系统20包括读取并写入数据到非易失性存储器的存储器控制器25,以及在本实例中一个或多个闪存存储器设备30。控制器25包括用于与主机10通信的主机接口35、实施本文所述方法的处理器40、随机存取存储器(ram)45,以及用于与闪存设备30通信的存储器接口50。

在另选的实施例中,存储器系统20中的非易失性存储器可包括任何其他合适类型的非易失性存储器,诸如例如nor闪存、电荷撷取闪存(ctf)、相位变化ram(pram)、磁阻ram(mram)或铁电体ram(feram)。

每个闪存设备包括多个模拟存储器单元。每个模拟存储器单元存储模拟电压,也称为存储值,诸如电荷或电压,其表示存储于单元中的信息。在闪存存储器中,可能模拟值的范围被分成多个区域,每个区域对应于一个或多个数据位值。通过写入对应于一个或多个期望位的标称模拟值来将数据写入模拟存储器单元中。

通常,每个设备30中的存储器单元布置在存储块中。每个存储块包括存储器单元阵列,这些存储器单元阵列的行与字线相关联并且它们的列与位线相关联。每条字线通常存储一页或多页数据。数据通常以页单元进行写入和读取,并且以块单元进行擦除。系统20的性能可能受到各种存储器故障的影响,例如块故障或字线故障。在本文所述的一些实施例中,存储器控制器25应用冗余存储配置,该冗余存储配置保护所存储数据免受此类故障的影响。

控制器25,并且具体地处理器40,可在硬件中实现。另选地,控制器可包括微处理器,所述微处理器运行合适的软件或硬件和软件元件的组合。

图1的配置为示例性系统配置,其纯粹为了概念上的清楚而示出。也可使用任何其他合适的存储器系统配置。为了清楚起见,已从附图中省略了对于理解本发明的原理非必需的元件,诸如各种接口、寻址电路、计时和排序电路及调试电路。

尽管图1的实例示出了三个存储器设备30,但系统20还可包括由存储器控制器25控制的任何期望数量的存储器设备。在图1所示的示例性系统配置下,存储器设备30和存储器控制器25实现为两个单独的集成电路(ic)。然而,在另选的实施例中,存储器设备和存储器控制器可集成于单个多芯片封装(mcp)或片上系统(soc)的单独的半导体模片上,并且可由内部总线互连。此外作为另外一种选择,存储器控制器电路的一些或全部可位于存储器设备所设置在的同一模片上。此外作为另外一种选择,存储器控制器25的一些功能或全部功能能够在软件中实施并通过处理器或主机系统的其他元件执行。在一些实施例中,主机10和存储器控制器25可在同一模片上制造,或在同一设备封装中的单独模片上制造。

在一些实施例中,存储器控制器25包括通用处理器,其在软件中编程以执行本文所述的功能。软件可例如通过网络以电子形式下载至处理器,或者另选地或除此之外,其可设置和/或存储在非临时性有形介质上,诸如磁存储器、光学存储器或电子存储器。

基于可用存储器空间选择冗余存储配置

如上所述,各种类型的存储器故障可能在设备30中出现。可能的存储器故障包括例如设备30中的一个设备中的存储块或字线的故障。为了保护数据免受此类故障的影响,存储器控制器25使用冗余存储配置存储数据。

在一些实际情况下,大部分块故障在编程期间出现,并因此在此阶段通常需要较高程度的保护。用于保护数据免受编程故障影响的示例性技术在提交于2012年8月23日的美国专利申请13/592,561中有所描述,其转让给本专利申请的受让人并且其公开通过引用的方式并入本文中。

通常,存储器控制器计算针对某些数据的冗余信息,并且将数据和冗余信息存储在设备30中。冗余存储配置被设计成使得在存储器故障的情况下,出现故障的存储器单元中的数据可使用剩余数据和冗余信息进行重建。例如,存储器控制器可使用raid方案来达成此目的。

然而,在实施过程中,冗余存储装置的故障恢复力以牺牲存储器空间为代价而实现。更多冗余通常提高了对故障的恢复力,但另一方面,降低了可用存储器空间。在一些实施例中,存储器控制器25调整冗余信息的相对大小,即由冗余存储装置所引发的存储器开销量,以匹配设备30中的可用存储器空间。

图2为根据本发明的实施例示意性地示出用于选择冗余存储配置的方法的流程图。在评估步骤100中,存储器控制器25评估存储器设备30中的可用存储器空间以写入数据。在选择步骤110中,存储器控制器25根据可用存储器空间选择冗余存储配置。在计算步骤120中,存储器控制器25使用所选择的冗余存储配置计算冗余信息。在写入步骤130中,存储器控制器25将数据和冗余信息写入存储器中的可用存储器空间。

在一个冗余存储配置下,可在步骤120中通过对多个数据存储块执行逐位逻辑异或操作来计算冗余信息,以产生在步骤130中存储于存储器中的异或奇偶校验块。使用此类raid异或技术,raid条带包括n个块:n-1个数据块和通过在n-1个数据块上逐位异或操作来计算的奇偶校验(冗余)块,其中n为整数。在条带中发生单个块故障的情况下,存储器控制器可从奇偶校验块和其余块中重建数据。

对于较小n,针对给定数据量计算更多奇偶校验块,并且减小ssd中可用的存储器空间量。相反地,通过增大n,从较大数量的数据块创建每个奇偶校验块,从而增大可用存储器空间。

在一个实施例中,如果在步骤100中存储器控制器检测到对新数据可用的存储器空间小于预定义阈值,则控制器可在步骤110中增大n以便在步骤120中通过对更多数据块计算异或来创建冗余数据。增大n减小了奇偶校验块的数量,或有效地减小了由所有冗余信息所占据的存储器空间。剩余的可用存储器空间例如可用于存储新的数据或用于提供更多预留空间。

在另选的冗余存储配置下,存储器控制器25可在步骤120中使用纠错码(ecc)方案来计算冗余信息。换句话讲,这些实施例中的冗余信息包括ecc的冗余位。对所存储的ecc编码数据进行解码可用于恢复丢失数据。在非易失性存储器系统中常用的一种特殊类别的代码为低密度奇偶校验(ldpc)码。也可使用其他类别的代码,诸如bose-chaudhuri-hocquenghem(bch)码。编码方案中所使用的冗余位可与数据块一起或独立于数据块存储在存储块中。

对于这些类别的ecc码中的每种代码,编码数据大小与最初的原始数据大小的比被称为编码速率。一些ecc编码器和解码器可被配置为修改编码速率使得在步骤100中所评估的可用存储器空间小于预定义阈值的情况下,存储器控制器能够在步骤110中减小存储器中编码数据的大小。另选地,存储器控制器可在步骤110中改变编码方案以在编码速率上作出有效变化以便响应于步骤100中的可用存储器空间而在步骤130中改变写入存储器的冗余信息的大小。

在基于前述的异或方案或ecc方案的任一冗余存储配置下,存储器控制器可响应于在步骤100中对存储器中剩余的当前可用存储器空间的初步评估来改变存储于存储器中的冗余信息的大小以写入新数据。如果可用存储器小于预定义阈值,则可在步骤120中使得冗余信息的大小变小。在几乎未剩下内存能够用于新数据的情况下,存储器控制器甚至可在步骤110中决定不创建任何冗余信息。存储器控制器可在步骤110中决定改变整体冗余存储配置,例如从ecc变为xor,或者变为任何合适的冗余方案。

前述ecc和xor的冗余方案和图2所示的流程图以举例的方式示出而并非限于本发明的实施例。根据本发明的实施例,可使用任何合适的冗余存储配置,其中存储器控制器具有响应于在步骤100中评估出可用存储器空间已被降至小于预定义阈值而在步骤110和步骤120中有效改变存储于存储器中的冗余信息的大小的灵活性。

在一些实施例中,存储器控制器通过将之前用作奇偶校验块的存储块重新分配为用作数据块来修改冗余存储配置。该重新分配例如可发生在raid条带被成功写入之后。这种重新分配有效地将奇偶校验块变为数据块。因此,当用于新数据的存储器空间小于预定义阈值时,专用于冗余的存储器空间的比例动态地变化。

在其他实施例中,存储器控制器将冗余信息存储在专用冗余条带中,例如专用块组中。在存储器变满时,存储器控制器可重新分配冗余条带或其部分以供存储新数据。

一般来讲,冗余存储配置可包括将步骤120中所计算的冗余信息存储在奇偶校验块或条带中,在存储器控制器检测到在步骤100中所评估的用于新数据的可用空间过小(例如,小于预定义阈值)时,该奇偶校验块或条带被重复使用。冗余信息可在步骤130中存储在第一单独闪存存储器设备中的可重复使用的奇偶校验块或条带中,并且可将数据写入到不同用于冗余信息的第一闪存设备的一个或多个闪存存储器设备的数据块中,以便增加重复用于冗余信息的数据块的耐力。

在其他实施例中,存储器控制器25可在编程期间针对块故障施加充分保护,并且之后在读出期间回复到仅针对字线故障进行保护。在这些实施例中,存储器控制器最初使用产生针对块故障进行保护的冗余块的冗余存储配置来存储数据。在循环利用冗余块(例如,作为“垃圾收集”过程的压缩的部分)时,存储器控制器可用针对单个字线故障进行保护的单个冗余页来代替整个冗余块。例如,后一种方案引发更少开销,因为其仅保护有效页面而不是整个块。

尽管本文所述的实施例主要解决固态驱动器中的冗余配置,但本文所述的方法也可用于任何其他合适的数据存储系统。

因此,应理解,上述实施例以举例的方式进行引用,并且本发明并不限于上文具体示出并描述的内容。相反,本发明的范围包括本领域的技术人员在阅读前述描述时认识到的并且在现有技术中未公开的上文所述各种特征的组合和子组合及其变型形式和修改形式。在本专利申请中以引用方式并入的文献被认为是本申请不可分割的一部分,但如果任何术语在这些并入的文献中被定义成与本说明书中明确地或隐含地作出的定义相冲突,应仅考虑本说明书中的定义。

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