管理逻辑到物理转换信息的备份以控制引导时间和写入放大的制作方法

文档序号:11199087阅读:209来源:国知局
管理逻辑到物理转换信息的备份以控制引导时间和写入放大的制造方法与工艺

相关申请的交叉引用

本专利申请要求于2016年3月21日提交的美国临时专利申请62/310,832的权益,该专利申请以引用方式并入本文。

本文所述实施方案整体涉及数据存储,并且具体涉及用于管理逻辑到物理映射信息的存储以控制引导时间和写入放大的方法和系统。



背景技术:

在各种存储系统中,根据逻辑地址空间操作的存储器控制器将数据存储在根据物理地址空间操作的一个或多个非易失性存储器设备中。存储器控制器通常在易失性存储器中保持逻辑到物理映射表用于在逻辑地址和物理地址之间转换。为了保护转换信息免于丢失,例如在电源关闭的情况下,存储器控制器通常在非易失性存储器设备中备份转换表。

用于保存和恢复逻辑到物理转换信息的方法在本领域中是已知的。例如,美国专利申请公布2009/0327589,其公开内容以引用方式并入本文,该专利申请描述了一种包括易失性存储器和多个非易失性数据块的闪存存储设备中的表日志的方法。所述方法包括以下步骤:在存储于易失性存储器中的寻址表的多个非易失性数据块中的一个或多个第一非易失性数据块中创建第一副本,将事务日志数据写入到多个非易失性数据块中的一个或多个第二非易失性数据块中,以及在多个非易失性数据块中的一个或多个第二非易失性数据块已被事务日志数据填充之后基于存储于易失性存储器中的寻址表的变化来更新寻址表的第一副本。

美国专利8,909,851的公开内容以引用方式并入本文,其描述了一种操作存储控制系统的方法,该方法包括提供存储器控制器;由存储器控制器访问易失性存储器表;将易失性存储器表中的持续变化写入非易失性半导体存储器;以及在电源循环之后,通过从最近使用列表中利用逻辑到物理分区还原随机存取存储器来还原易失性存储器表中的逻辑到物理表。



技术实现要素:

本文所述的一种实施方案提供一种包括接口和处理器的装置。接口被配置为与非易失性存储器进行通信。处理器被配置为保持在逻辑地址和非易失性存储器中相应的物理地址之间映射的转换表,将转换表的基线版本以一个或多个体块备份到非易失性存储器,再将一个或多个增量更新备份到非易失性存储器,该一个或多个增量更新指定由后续存储操作所导致的相对于转换表的基线版本的变化,确定在与基线版本一起从非易失性存储器恢复并在处理器中重播的情况下满足转换表的目标恢复时间的增量更新的最大数量,以及将所备份增量更新的数量设定为不超过最大数量。

在一些实施方案中,处理器被配置为在连续体块的保存之间备份增量更新。在其它实施方案中,处理器被配置为假设整个基线版本已被加载的情况下,通过评估目标恢复时间的用于加载和重播增量更新的剩余时间来确定最大数量。在另外的实施方案中,处理器被配置为基于体块大小选择在连续体块之间允许的增量更新的差别数量,以便满足目标恢复时间并维持与处理器进行通信的主机的工作负荷性能。

在一个实施方案中,处理器被配置为基于转换表的分片程度来选择差别数量。在另一个实施方案中,处理器被配置为通过计算由体块所覆盖逻辑地址的范围和体块大小之间的比率来估计分片程度。在另一个实施方案中,处理器被配置为从主机接收数据用以存储,所述主机的写入活动概况包括随机活动和顺序活动的混合,并且处理器被进一步配置为基于写入活动概况选择在体块的连续存储之间的增量更新的允许数量。

在一些实施方案中,处理器被配置为针对具有主要随机活动的第一混合来选择第一允许数量并且针对具有主要顺序活动的第二混合来选择第二允许数量,所述第一允许数量小于所述第二允许数量。在其它实施方案中,处理器被配置为基于对在引导期间重建转换表是否需要转换表的重组的预测来选择在正常操作期间保存在体块之间的增量更新的数量。在另外的实施方案中,处理器被配置为在引导操作期间或在正常操作期间,估计增量更新的重播时间,如果所估计的重播时间比预定义的期限短,则通过在正常操作期间仅保存增量更新来重新使用转换表的新近基线版本。

根据本文所述实施方案,另外还提供了一种方法,该方法包括在将数据保存于非易失性存储器中的存储器控制器中,保持在逻辑地址和非易失性存储器中相应的物理地址之间映射的转换表。将转换表的基线版本以一个或多个体块备份到非易失性存储器中。还将一个或多个增量更新备份到非易失性存储器,所述一个或多个增量更新指定由后续存储操作所导致的相对于转换表的基线版本的变化。确定所述增量更新的最大数量,使得在与所述基线版本一起从所述非易失性存储器恢复并在所述存储器控制器中重播时满足所述转换表的目标恢复时间。将所备份增量更新的数量设定为不超过最大数量。

结合附图,从下文中对本发明的实施方案的详细描述将更完全地理解这些实施方案和其他实施方案,在附图中:

附图说明

图1是示意性地示出了根据本文所述实施方案的存储器系统的框图;

图2是示意性地示出了根据本文所述实施方案的物理到逻辑转换信息的周期性备份的图示;

图3是示意性地示出了根据本文所述实施方案的根据先前备份的转换信息重建转换表的图示;

图4是示意性地示出了根据本文所述实施方案的用于自适应地控制增量更新数量的方法的流程图;以及

图5是示出了根据本文所述实施方案在引导时间期间增量更新的重播时间的图。

具体实施方式

概述

在诸如固态驱动器(ssd)之类的各种存储系统中,控制器将针对主机的数据存储在一个或多个非易失性存储器设备中。通常,来自主机的命令指定逻辑地址空间中的逻辑地址,而存储器设备根据物理地址空间中的物理地址进行操作。控制器利用转换表在逻辑地址和物理地址之间进行转换,控制器通常将该转换表保持在本地易失性存储器中。在本公开的语境中以及在权利要求中,将非易失性存储器设备统称为“非易失性存储器”。

由于易失性存储器中所存储的信息受到保护而免受供电中断的影响,因此控制器通常将转换信息保存在非易失性存储器中。原则上,控制器可针对每个表更新将整个转换表写入到非易失性存储器。然而,转换表大小通常为大约数百兆字节,因此这种备份策略将消耗无法接受的可用系统带宽量并使非易失性存储器中的写入放大(wa)效应增大。

本文所述的实施方案提供了用于管理转换信息备份和恢复的经改善的方法和系统。在本发明所公开的技术中,控制器将转换表的基线版本并可能将一个或多个增量更新保存在非易失性存储器中,该一个或多个增量更新指定由于后续存储操作使表相对于基线版本造成的变化。

在本发明所公开的实施方案中,控制器将转换表以块(本文中称为“基线体块”,或为简明起见简称为“体块”)的形式保存到非易失性存储器中。典型的体块大小可为约1兆字节,但也可使用任何其他适当体块大小。

在连续体块的存储之间,控制器可施用相对于基线版本改变转换表的存储操作。此类操作包括写入用户数据以及对非易失性存储器施用诸如垃圾收集之类的维护操作。在一些实施方案中,在相邻体块的存储之间,控制器将对应于对转换表造成的变化的增量更新保存到非易失性存储器。增量更新的大小通常远小于体块大小,因此控制增量更新数量的备份方案是有利的,如下文将描述的。

在一些实施方案中,控制器通过首先从非易失性存储器将基线体块加载回本地易失性存储器来在引导期间重建转换表。然后,控制器“重播”增量更新并将它们应用于基线版本之上。在基线体块和增量更新的数量较大的情况下,引导时间通常将较长,反之亦然。

保存基线体块越频繁就使得增量更新越少,即重建时间越短,但还不期望地导致对于存储和维护操作的增大的wa和减小的带宽。在一些实施方案中,在正常操作期间,通过自适应地调整在保存后续基线体块之前所允许的增量更新的数量,控制器控制转换表在引导期间的预期重建时间。在一些实施方案中,预先指定最大引导时间,并且控制器使增量更新的数量在引导重建时间的约束下最大化。

存储系统中另一重要因素为转换表的总体大小,其取决于主机的写入活动概况(随机存取vs.顺序存取概况)。如果活动大部分为随机的,则转换表趋于片段的,从而较大。如果活动大部分为顺序的,则表将为紧凑的并且较小。

在一些实施方案中,为了遵从最大引导时间规格,控制器根据转换表的当前大小(在正常操作期间)调整在基线体块的连续存储之间所允许的增量更新的数量,如上所述,该转换表的当前大小取决于主机写入活动概况。因此,在主机活动大部分为随机的,从而导致较大表的情况下,基线体块的加载时间增大,从而用于加载和重播增量更新的剩余时间变得更短。因此,控制器允许较小数量的增量更新被保存在体块文件片之间。在这种情况下,控制器更频繁地存储基线体块并允许其间更少的增量更新。在主机活动大部分为顺序的,从而导致较小表的情况下,可在指定引导时间内加载并重播较大数量的增量更新。在这种情况下,控制器不那么频繁地保存基线体块并允许更多增量更新。

在本发明所公开的技术中,自适应地调整基线体块和增量更新之间的比率、以及体块大小,以便满足恢复转换表的引导时间约束,并同时减小wa并增大存储吞吐量。

系统描述

图1是示意性地示出了根据本文所述实施方案的多设备存储器系统20的框图。系统20从主机24接受用于存储的数据并将其存储在存储器中,并且从存储器中检索数据并将其提供给主机。在本实施例中,系统20包括存储用于主机计算机的数据的固态盘(ssd)。然而,在另选的实施方案中,系统20可用于任何其他适当应用中并可用于任何其他适当主机,诸如用于计算设备、蜂窝电话或其他通信终端、可移除的存储器模块、安全数据(sd)卡、多媒体卡(mmc)和嵌入式mmc(emmc)、数字相机、音乐和其他媒体播放器和/或数据存储于其中并从其中检索的任何其他系统或设备。

系统20包括多个存储器设备28,每个存储器设备包括多个存储器单元。在本实施例中,尽管设备28包括非易失性nand闪存设备,但也可使用即使在未被供电的情况下也保持其存储信息的任何其他适当类型的非易失性存储器。非易失性存储器包括例如铁电式、电阻式和磁阻式ram。

在一些实施方案中,设备28的存储器单元包括保持物理参数(诸如电压或电荷)的连续模拟值的模拟存储器单元。可使用任何适当类型的模拟存储器单元,诸如上文列出的类型。在本实施例中,每个存储器设备28包括非易失性存储器nand闪存单元。存储在单元中的电荷水平和/或写入到单元中和从单元中读出的模拟电压或电流在本文中统称为模拟值或存储值。

系统20通过对单元编程以采用相应的存储器状态(也称为编程级)来在存储器单元中存储数据。编程级从可能级的有限集合中选择,并且每个级对应于某一标称存储值。例如,能够通过将四个可能的标称存储值中的一个可能的标称存储值写入到单元中来对2位/单元mlc进行编程以采用四种可能的编程级中的一种可能的编程级。

存储器单元通常以行和列来布置。通常,给定存储器设备包括多个擦除块(也称为存储块),即一起被擦除的存储器单元的群组。通常无法就地对数据重新编程,因此在被编程以其他数据之前对存储块进行擦除。通常将数据编程到存储器单元的群组,并以被称为数据页(或者为简明起见,简称为页)的数据单位从该存储器单元的群组中检索。

每个存储器设备28可包括封装器件或未封装半导体芯片或模片。典型的ssd可包括多个存储器设备,每个存储器设备具有例如32gb或128gb的存储容量。然而,一般来讲,系统20可包括任何期望类型和大小的任何适当数量的存储器设备。尽管图1的系统配置包括多个存储器设备,但本文所述的一些方法和系统也可用于仅具有单个存储器设备的系统。

系统20包括存储器控制器32,该存储器控制器接受来自主机24的数据并将其存储在存储器设备28中,并且从存储器设备中检索数据并将其提供给主机。存储器控制器32包括用于与主机24通信的主机接口36;用于与存储器设备28通信的存储器接口40;以及处理所存储数据和所检索数据的处理器44。在一些实施方案中,控制器32利用纠错码(ecc)对存储数据进行编码。在这些实施方案中,控制器32包括ecc单元48,该ecc单元在数据被存储于设备28中之前对数据进行编码并且对从设备28中所检索数据的ecc进行解码。处理器44例如可利用运行在适当的中央处理单元(cpu)上的软件、利用硬件(例如,状态机或其他逻辑部件)、或利用软件元件和硬件元件的组合来实现。

控制器32经由总线46与存储器设备28进行通信。总线46可包括任何适当链路或总线,诸如并行总线或串行总线或基于分组的总线(如pcie)。总线46可根据任何适当标准或协议并以任何适当速率来操作。

为了将存储命令施加于给定存储器设备,控制器经由总线46将存储命令发送给存储器设备。存储命令的类型包括例如页写入命令、页读取命令和块擦除命令。在一些实施方案中,系统20支持并行地施加于多个存储器设备的存储命令。

在一些实施方案中,主机24运行文件系统(fs–附图中未示出),该文件系统将一个或多个文件存储于ssd20中。fs利用逻辑地址方案将文件存储于ssd中。在此类方案中,fs向每个文件分配一组一个或多个逻辑地址(也称为逻辑块地址–lba),并根据lba将文件数据发送给ssd20以供存储。

存储器控制器32的处理器44通常维持逻辑到物理地址转换,该转换使主机所指定的逻辑地址与闪存设备28中的相应物理存储位置(也称为物理地址)相关联,并将数据存储于适当的物理存储位置。逻辑到物理地址转换(也称为虚拟到物理映射–v2p)可存储于存储器控制器的本地易失性存储器(诸如dram50)中,存储于闪存设备28中,或存储于两者中。

在本发明所公开的一些实施方案中,存储器控制器32使逻辑到物理转换保持在dram50中的转换表中。转换表的大小通常为约数百兆字节。存储器控制器32将转换表保存于存储器设备28中,使得在系统引导期间,例如在电源关闭之后,转换表可被恢复。

存储器控制器32,具体地处理器44,可以在硬件中实现。另选地,存储器控制器可包括运行合适软件的微处理器,或硬件元件和软件元件的组合。在一些实施例中,处理器44包括通用处理器,通用处理器在软件中被编程以执行本文所述的功能。软件可以例如通过网络以电子形式下载到处理器,或者另选地或除此之外,其可以在有形介质诸如磁性、光学、或电子存储器上被提供和/或存储。

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

在图1中示出的示例性系统配置中,存储器设备28和存储器控制器32作为单独的集成电路(ic)来实现。然而,在另选的实施例中,存储器设备和存储器控制器可集成于单个多芯片封装(mcp)或片上系统(soc)中的单独的半导体模片上,并且可由内部总线互连。此外作为另外一种选择,存储器控制器电路的一些或全部可位于一个或多个存储器设备所在的同一模片上。此外另选地,存储器控制器32的一些或全部功能可在软件中实施并由处理器或主机系统的其他元件或由任何其他类型的存储器控制器执行。在一些实施方案中,主机24和存储器控制器32可在同一模片上制造,或在同一设备封装中的单独模片上制造。

转换表备份和重建

考虑dram50中由存储器控制器32管理的逻辑到物理转换表。在典型的具体实施中,转换表中的条目将逻辑地址范围映射到相应的物理地址范围。在支持转换表的重建中,例如在于电源关闭之后的启动期间,存储器控制器将经更新转换信息保存在非易失性存储设备28中。

控制器可进行优雅或非优雅备份。在优雅备份中,控制器将存储于dram中的转换表的相同版本保存到非易失性存储器。在这种情况下,控制器通过从非易失性存储器中加载所保存的表来重建转换表。

在非优雅备份中,控制器将转换表的基线版本连同一个或多个增量更新保存在非易失性存储器中,该一个或多个增量更新指定由于后续存储操作使转换表相对于基线版本造成的变化。为了重建转换表,控制器将基线版本从非易失性存储器加载到dram,进一步加载所保存的增量更新,并且将增量更新应用于基线版本之上。

在本发明所公开的实施方案中,控制器通过将表划分成本文中称为“体块”的多个块来保存转换表的基线版本。控制器发送包括基线版本的体块用以以所选择速率存储于非易失性存储器中。后续存储操作可导致dram中转换表相对于基线版本变化。此类存储操作包括用户操作,诸如写入或删除用户数据。还影响转换表内容的存储操作包括对存储器设备28的维护操作,诸如垃圾收集。

控制器可将给定转换表保存在体块和增量更新的各种组合中。例如,以较高速率来保存体块就使增量更新的数量减小,反之亦然。然而,频繁体块写入使存储器设备28中的写入放大(wa)效应增大,并且使ssd吞吐量减小,这是因为保存体块消耗原本将保持对用户和维护存储操作可用的带宽。

图2是示意性地示出了根据本文所述实施方案的物理到逻辑转换信息的周期性备份的图示。在图2中,白色框表示基线体块,彩色框表示增量更新。标记有“x”的白色框表示可用于用户存储操作和维护操作的周期。

在图2中,转换表的备份循环包括存储表的基线版本,并可能存储与基线版本一起可用于恢复转换表的相关增量更新。基线版本存储在表示为bi的多个体块中。在连续的体块之间,控制器可能应用用户存储操作和维护操作,并保存由这些操作对转换表造成的增量更新。如上所述,在给定基线版本的情况下,保存基线体块的速率确定恢复所需的增量更新的数量。

考虑保存包括nb基线体块和nu增量更新的转换信息。令tb表示单个体块从非易失性存储器到dram的加载时间,并且tu表示增量更新的加载和重播时间。总体重建时间trec由以下公式给出:

公式1:

trec=tb·nb+tu·nu

在典型的具体实施中,tb和tu分别为约几毫秒和几微秒,例如tb=5毫秒,tu=3微秒。在具有512千兆字节的存储容量和512兆字节的dram的一示例性ssd中,转换表的基线版本可需要dram中的400兆字节,即400个1兆字节的体块。如果在本实施例中,非优雅重建的时间限制在10秒,则增量更新的总数量nu限制在约260万。

如公式1中可见,在给定基线体块的数量nb的情况下,增量更新的总数量nu确定总的恢复时间。因此,降低存储基线体块的速率使增量更新的数量nu增大,从而在正常ssd操作期间改善存储器设备中的wa并使吞吐量增大。然而,大的nu可使得trec大于表示为ttarget的预先确定的最大允许值。因此,希望在不超过ttarget的情况下,使nu最大化。增量更新的最大允许数量nmax满足:

公式2:

tb·nb+tu·nmax≤ttarget

图3是示意性地示出了根据本文所述实施方案的根据先前备份的转换信息重建转换表的图示。在图3的实施例中,控制器加载体块和与该体块相关的增量更新。然后控制器在基线体块之上重播增量更新,以重建体块的经更新版本。

在另选的实施方案中,也可使用其他适当重建方法。例如,在一个实施方案中,控制器首先加载所有基线体块,然后加载并重播增量更新。在另一个实施方案中,控制器加载属于已加载基线体块中任一基线体块的增量更新,并相应地重播这些增量更新。在另外的实施方案中,也可使用加载和重播的任何其他适当次序。

自适应地控制增量更新的数量

图4是示意性地示出了根据本文所述实施方案的用于自适应地控制增量更新数量的方法的流程图。在正常操作期间,该方法可例如由控制器32(例如,利用处理器44)来执行。

该方法始于在备份循环起始步骤100,控制器32将本地存储于dram50中的转换表的第一体块写入到非易失性存储器。在预测步骤104,控制器通过计算以下公式来评估可用增量更新的数量:

公式3:

navailable=(ttarget-nb·tb)/tu

在公式3中,ttarget表示可用于非优雅恢复的总体时间,nb·tb为nb个基线体块的加载时间,(ttarget-nb·tb)为用于加载和重播增量更新的剩余时间,并且tu为单个增量更新的(预期或平均)加载和重播时间。需注意,基线体块的数量nb取决于转换表的大小,其可在备份循环期间变化。

在更新备份步骤108,控制器选择增量更新的数量m,其中m在0到navailable的范围内。控制器可利用任何适当方法来选择m。在一示例性实施方案中,控制器基于存储工作负荷来选择m,使得较高工作负荷水平意味着选择较小数量m,反之亦然。在一些实施方案中,控制器基于体块大小来选择m,而不违背所指定的最大引导时间,同时也维持主机工作负荷性能。例如,对于给定体块大小,例如1兆字节,体块中包含的转换信息所覆盖的逻辑地址(lba)的范围衡量针对该体块的分片程度。分片程度越高,所覆盖lba范围越低。在一个实施方案中,控制器基于由体块所覆盖的lba范围和体块大小之间的比率来选择m,该比率用作分片程度的度量。

当在步骤108所选择的数量m非零的情况下,控制器执行用户和/或维护存储操作并相应地更新dram50中的转换表。对于相对于基线版本改变转换表的每个操作,控制器将相应的增量更新写入到非易失性存储器。控制器继续该过程直到将m个增量更新发送到非易失性存储器。进一步地,在步骤108,控制器通过减去m值来更新可用增量更新的数量navailable。

在循环管理步骤116,控制器检查最后的基线体块是否已被写入到非易失性存储器,如果是,前进至循环终止步骤120,在该步骤中,在navailable>0的情况下,控制器将数量为navailable的剩余增量更新写入到非易失性存储器。

如果在步骤116,一个或多个基线体块还要被保存,则控制器从基线表中选择后续基线体块,并在体块写入步骤120,将所选择体块写入到非易失性存储器。然后控制器循环回步骤104以更新可用增量更新的数量。

在图4的方法中,控制器已知逻辑到物理映射表的总体大小,或者换句话讲,基线体块的数量nb。在另一个实施方案中,代替利用表大小或除此之外,控制器还基于主机的写入活动概况(随机vs.顺序地址访问)来调整连续体块之间增量更新的数量。

在主机活动大部分为随机的情况下,则转换表趋于片段化,从而较大。在主机活动大部分为顺序的情况下,则转换表趋于紧凑而较小。因此,在一些实施方案中,为了遵从最大引导时间规格,控制器根据主机写入活动概况来(在正常操作期间)调整在基线体块的连续存储之间所允许的增量更新的数量。

在活动大部分为随机的情况下,表很大,并且在指定引导时间内仅可加载并重播很小数量的增量更新。在这种情况下,控制器更频繁地存储基线体块并允许更少的增量更新。

在活动大部分为顺序的情况下,表较小,并且在指定引导时间内可加载并重播较大数量的增量更新。在这种情况下,控制器不那么频繁地存储基线体块并允许更多增量更新。

另外的变型形式和实施方案

图5是示出了根据本文所述实施方案在引导时间期间增量更新的重播时间的图。如图所示,增量更新的重播时间随dram中转换表的重建进行而增加。这例如可在转换表高度分片的情况下发生,并且为了减小dram中的表大小,控制器随着重建进行而执行一个或多个重组操作。

在变型形式的实施方案中,控制器预测在引导期间重建转换表是否需要重组,如果是,则减小在正常操作期间保存于体块之间的增量更新的数量。控制器预测在引导期间、在正常操作期间或在该两者期间对重组的需要。在需要强化重组的极端情况下,控制器在正常操作期间仅保存基线体块而不保存增量更新。

在另一个变型形式的实施方案中,控制器可决定重新利用转换表的新近基线版本并在正常操作期间仅保存增量更新。在示例性实施方案中,如果在新近引导操作期间,增量更新的重播时间比预定义期限(例如,100毫秒)短,则控制器保持基线版本,即不保存任何基线体块,并且仅将增量更新保存在非易失性存储器中。通过避免将经更新的基线体块保存到非易失性存储器设备中,非易失性存储器设备中的wa效应显著改善。

以举例的方式给出上文公开的实施方案,也可使用其他适当的实施方案。例如,尽管在所述实施方案中,我们主要假设固定的体块大小,但在另选的实施方案中,可将转换表的基线版本分成非固定大小的多个体块。

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

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