动态自适应缓存系统的制作方法

文档序号:13429695阅读:145来源:国知局
动态自适应缓存系统的制作方法
本发明一般地涉及缓存领域,更具体地,涉及动态自适应缓存系统和动态自适应缓存的管理方法。

背景技术:
已知缓存通过透明存储数据用于帮助提高存储系统的性能,使得能够更快满足所述数据的未来需求。可用缓存大小越大,缓存能够交付给整个系统的性能越好。存储系统缓存包括两个部分:数据部分,存储由如服务器的主机所读出或写入的数据,和标记部分,用于识别和/或寻找被存储在缓存中的、主机可访问的更大数量数据的子集。一般地,数据部分越大,主机的片断访问在缓存中的“命中”越高,存储系统的性能越高。可使用数据压缩以减少给定大小数据所需的整个存储空间或传输时间。然而,数据的压缩性是可变的并基于数据熵的等级。数据压缩性的可变性导致对可变大小的数据存储空间的需求。在存储系统缓存中,经常必需的是,将固定和稳定缓存大小展现给系统的上层。因此,因为数据压缩性的可变本质和其相应大小,缓存可能未利用通过对存储装置的数据压缩可获得的空间。因此,存在对当数据因为数据压缩而在大小上可变化时,存储系统缓存的改善方法和系统的需求。

技术实现要素:
本发明提供了一种动态自适应缓存的管理方法。该方法包括接收来自主机的数据和将接收数据压缩到压缩数据大小的步骤。随后存储压缩数据并确定剩余可用空间的数量。所述方法的进一步步骤包括,当可用空间的数量大于一配置阈值时,将展现给所述主机的逻辑容量增加一定数量,所增加的数量决定因素之一为所述接收数据大小与压缩数据大小之差。本发明也涉及动态自适应缓存的系统。该系统包括具有存储从主机所接收数据的物理容量的存储装置。系统也可包括控制模块,通信耦合到存储装置并被配置用以接收来自主机的数据。控制模块被配置用以将从主机所接收数据压缩到压缩数据大小。在替换实施方案中,可在存储装置上压缩数据。控制模块也可被配置用以确定在存储装置上的可用空间的数量。控制模块也可被配置用以确定回收空间,回收空间取决于在从主机所接收数据大小和压缩数据大小之间的差。该系统也可包括接口模块,被配置用以将逻辑容量展现给主机。逻辑容量具有可变大小,并可选地,和/或选择性包括回收空间的至少一部分。本发明也涉及管理缓存的方法。该方法包括接收来自主机的数据和将数据压缩到压缩数据大小的步骤。随后存储压缩数据并确定剩余可用空间的数量。下一步,如当可用空间的数量大于配置阈值时,在接收数据大小和压缩数据大小之间的差的至少一部分是可选地和/或被选择性展现给主机。本发明也涉及一种包括由存储接口上的存储装置接收多个数据部分的步骤的方法。该方法的下一步步骤约简这些数据部分的每一个以形成各个简化数据部分,这些数据部分的至少一些具有比各个简化数据部分更大的大小。该方法也包括将这些数据部分存储为存储装置的数据存储器中的简化数据部分的步骤。数据存储器可以是非易失性数据存储器。该方法的最后步骤是根据数据存储器的利用情况确定数据存储器的逻辑容量。在该方法中,数据存储器的逻辑容量根据这些数据部分的所述约简而变化。应当理解,以上一般说明和后续具体说明都仅仅是示例性和解释性且不是对本发明的必需限制。被并入和构成说明书一部分的附图,描述了本发明的主题。这些说明和附图一起用于解释本发明的原理。附图说明本领域技术人员通过参考附图可更好理解本发明的众多优点,其中:图1A是依照本发明的动态自适应缓存的管理方法的流程图;图1B是依照本发明的缓存的管理方法的流程图;图2A到2F示出了依照本发明的数个不同时间间隔处的动态自适应缓存;图3示出了依照本发明的动态自适应缓存;图4A和4B每一个示出了提供依照本发明的动态自适应缓存的各个系统;和图5是依照本发明的另一方法的流程图。具体实施方式现在,将针对公开主题具体做出在附图中所述的参考。在一些实施方案中,将动态自适应存储系统缓存的数据部分存储在存储装置中,如图3中的存储装置302。存储装置将具有已定义最大逻辑容量的逻辑地址空间映射到物理存储装置,如NAND闪存芯片,具有已定义的物理大小。最大逻辑容量的一部分被展现和/或变成可为更高层获得,如管理存储系统缓存的更高层,所述部分至少部分基于物理存储装置的利用情况变化。物理存储装置的利用情况轮流至少部分基于可约性而变化,如通过存储在物理存储装置中的数据的压缩。使能存储在动态自适应存储系统缓存中的数据量轮流变化,至少部分地,根据被展现和/或变成可为管理存储系统缓存的更高层获得的最大逻辑容量的部分。因而,当存储了更可约(如,更可压缩)的数据时,有利地使得动态自适应存储系统缓存能够展现和/或变成可为最大逻辑容量的更大部分获得,并因而能够存储更多数据和传递更高性能。根据各个实施方案,较高层包括下列的一个或多个:存储装置;控制模块,如图3的控制模块304;和主机,如图3的主机306。例如,在一些实施方案中,控制模块管理动态自适应存储系统缓存的标记(并因而数据内容),而在其他实施方案中,主机管理动态自适应存储系统缓存的标记。一般地,参照图1A,示出了一种动态自适应缓存的管理方法100。动态自适应缓存向主机展现了可变的缓存大小,并是可选地和/或选择性地使得能够向主机展现比被包括在动态自适应缓存中存储装置物理大小更大的逻辑大小。方法100包括接收从主机到动态自适应缓存的数据102和将从主机接收到的数据压缩(或相反约简大小)为压缩数据104的步骤。将压缩数据存储在存储装置上106。下一步,方法100包括确定在存储装置上可用空间数量的步骤108。方法100的进一步步骤需要,当在存储装置上的可用空间数量大于配置阈值,为主机展现了根据从主机接收数据大小和压缩后数据大小之间差的至少一部分的数量时,增加动态自适应缓存的逻辑容量110。根据各个实施方案,展现给主机的逻辑容量是下列的一个或多个:增加了等于所述差一部分的数量;增加了与所述差一部分成比例的数量;增加了所述差至少一部分的数量;通过所述差和其他因子的函数计算;和通过可用空间数量,物理大小和其他因子的函数计算。可在从主机处接收数据的每次和/或定期地实施方法100,导致基于数据压缩性改变大小的动态自适应缓存。例如,可以有规律的间隔,为每一个或更多主机命令,为每一个或更多如写入命令的指定类型的主机命令,和/或当可用空间的数量改变指定数量时,实施方法100。将从主机接收到数据压缩为压缩数据的步骤104可发生在使用合适模块或硬件用于执行压缩(或用于约简大小的其他技术)的存储装置上。同样可能的是,在将压缩数据存储到存储装置上之前在控制模块上完成将从主机接收到数据压缩为压缩数据的步骤104。可以各种方式执行图1A中方法100的存储装置上确定可用空间数量的步骤108。在其中在控制模块上执行压缩数据步骤104的情况中,可简化在存储装置上确定可用空间数量的步骤108,当控制模块可自动确定接收数据大小和压缩后数据大小,并基于这个信息轻易确定剩余在存储装置上的可用空间数量时。如果将从主机接收到数据压缩为压缩数据的步骤104发生在存储装置上,则可使用同步模块执行确定在存储装置上可用空间数量的步骤108。在同步模块下,当在存储装置上可用空间数量超过配置阈值时,存储装置发送如中断的信号给动态自适应缓存的控制模块。随后控制模块将查询存储装置以通过如读出缓冲区或其他命令的已定义命令读出可用空间的数量。在替换实施方案中,使用异步模块确定可用空间。在异步模块下,控制模块将动态查询存储装置以确定给定时间处的可用空间,并持续定期地查询存储装置以确定可用空间是否超出配置阈值。方法100也可包括当可用空间数量小于保留数量时释放在存储装置上空间的步骤。这可通过报废缓存入口中的一些如清洁入口,发出TRIM请求给存储装置,无效缓存的标记存储器的一个或多个入口,和其他方式中的一个或多个来完成。这个步骤的目的是确保动态自适应缓存能够为主机保证指定最小固定大小,通过保留在存储装置上的空间数量。当数据压缩性可能是可变的时,将空间的保留数量保存在存储装置上使得当动态自适应缓存接近最大容量时,动态自适应缓存仍能够存储所述数据和/或仍能够提供指定等级的性能。因为对为主机保证指定最小固定大小的需求和数据压缩的可变本质,可期望的是,适当地设置保留数量以避免填满存储装置和/或将性能降低到指定等级之下的风险。同样重要的是,适当地设置保留数量,因为由于系统限制(例如,因为存储装置无法同时执行TRIM命令和读/写命令,或基于存储装置是否使用原生指令排序),动态自适应缓存可能不总是能够立即实施释放存储装置上空间的步骤。动态自适应缓存的管理方法100的进一步步骤可包括,当在存储装置上可用空间数量接近和/或小于保留数量时,将来自存储装置的信号发送到控制模块。这个步骤的目的是确保控制模块在存储装置耗尽可用空间时能够及时响应(例如,通过释放存储装置上的空间)。一般地,参照图1B,示出了动态自适应缓存的管理方法114。方法114包括接收来自主机的数据116和将接收到的数据压缩(或不然约简大小)为压缩数据118的步骤。方法的下一步骤是,存储压缩数据120。方法100的进一步步骤是确定可用空间的数量122。随后方法包括为主机展现了接收数据大小和压缩数据大小之间差的至少一部分的步骤。根据各个实施方案,将所述为主机展现实施为下列的一个或多个:当可用空间的数量大于配置阈值124时;时间上定期;在从主机接收到多个命令中定期;和基于来自主机的请求。图1B中的方法也可包括当可用空间小于保留数量时是否存储装置上空间的步骤。方法也可包括当可用空间数量接近和/或小于保留数量时发送信号的步骤,并可能发送查询以确定可用空间的数量。每次从主机接收数据时可实施方法114。一般地,参照图2A到2F,示出了动态自适应缓存200的实施例。图2A示出了动态自适应缓存200,包括在初始时间间隔t0处的逻辑空间202和物理存储空间204。逻辑空间202是展现给主机的存储空间,逻辑空间202的大小随时间变化。如图2A所示,在初始时间间隔(t0)处,尚未从主机处接收到任何数据,动态自适应缓存200的逻辑空间202和物理存储空间204都是空的。当将逻辑空间202描述为临近于图2A到2F的物理存储空间204时,不存在逻辑空间202和物理存储空间204相应大小是相关的任何暗示。根据各个实施方案,逻辑空间202是下列的一个或多个:能够存储小于物理存储空间204的数据;能够存储与物理存储空间204的相同数量不可压缩数据;如果数据不可压缩能够存储比物理存储空间204能够存储的更多数据;总是小于指定最大大小;和总是大于指定最小大小。图2B示出了在第一时间间隔t1处的动态自适应缓存200,在已经接收到从主机到动态自适应缓存200的数据之后。数据是未压缩的并需求在逻辑空间202上的未压缩数据空间206。将数据压缩到压缩数据空间208并存储到物理存储空间204上。在压缩后的数据大小(压缩数据空间208)一般小于压缩之前的数据大小(未压缩数据空间206),尽管这基于数据的压缩性。图2C示出了在时间t2处的动态自适应缓存200,在时间t2处,展现给主机的动态自适应缓存的逻辑空间202将增加了根据作为在时间t1处数据压缩结果的回收的空间的至少一部分的数量。通过压缩获得的空间是回收空间210并等于未压缩数据空间206大小和压缩数据空间208大小之间的差。图2C示出了被加到逻辑空间202的回收空间210。将回收空间210增加到被展现给主机的逻辑空间202,因而使得动态自适应缓存200能够将较大逻辑空间202展现给主机。在一实施方案中,将回收空间210的整个大小展现给主机,然而,同样可能的是,仅仅展现回收空间210的一部分给主机并将回收空间210的一部分保留在物理存储空间204上。图2D示出了在时间t3处的动态自适应缓存200,在从主机到逻辑空间202接收到附加数据之后。数据是未压缩的并占据了在逻辑空间202上的第二未压缩数据空间212。数据被压缩并存储在物理存储空间204上作为第二压缩数据空间214。当数据至少部分可压缩时,第二压缩数据空间214的大小小于第二未压缩数据空间212的大小。将通过压缩获得的空间称作为第二回收空间216,并等于第二未压缩数据空间212和第二压缩数据空间214之间的差。逻辑空间202的有效大小增加了根据如图2D所示的第二回收空间216大小的数量。将第二回收空间216增加到逻辑空间202,据此促进将较大动态自适应缓存200展现给主机。图2E示出了在时间t4处的动态自适应缓存200。在时间t4处,将附加数据接收到动态自适应缓存200。数据是未压缩的并占据了在逻辑空间202上的第三未压缩数据空间200,被压缩并存储到在物理存储空间204上的第三压缩空间222。此时,物理存储空间204完全满了并几乎已经达到其最大容量。将空间数据一直保留在物理存储空间204上以阻止物理存储空间204变满。如果物理存储空间204开始变得这样满使得达到保留空间的阈值,则动态自适应缓存200必须释放空间。图2F示出了在时间t5处的动态自适应缓存200。在时间t5处,已经将空间释放到物理存储空间204使得物理存储空间204不再处于完全满的危险中。已经将释放的空间224返回到物理存储空间204,因此其不再接近其最大容量。释放的空间224可能具有释放数据,如通过从压缩数据空间208,第二压缩数据空间214,和第三压缩空间222的一个或多个处整理出的释放数据。数据也可能经历了进一步的压缩,例如形成了较小的第三压缩空间222。图2F也示出了被展现给主机的在逻辑空间202中的增加的合计,反映出动态自适应缓存200能够展现能够改变的逻辑空间202,并其在一些实施方案中大于物理存储空间204。每次从主机接收数据,可实施图2A到2F中的过程,形成了动态改变大小的动态自适应缓存。展现给主机的逻辑空间大小基于可约性波动,如从主机接收到的数据的压缩性和可用空间的数量。可通过无损压缩算法或适于动态自适应缓存的其他数据减少方法来简化数据。当数据熵是100%时,数据是不可压缩的(或不然是可约的),动态自适应缓存不能够回收任何空间并通过增加逻辑空间大小将其展现给主机。当数据熵小于100%时,数据是可压缩的,动态自适应缓存可回收由压缩节省的空间并增大逻辑空间达这个数量的至少一部分。当从主机接收的数据的压缩性可能从不可压缩数据到高度可压缩数据范围变化时,动态自适应缓存的大小根据接收到的数据动态改变。一般地,参照图3,示出了依照本发明的动态自适应缓存的示例性系统300。系统300可以是计算系统或装置。系统300包括存储装置302、控制模块304、和接口模块306。系统300用于发送和接收来自主机308的数据。控制模块304被配置用以接收来自主机308的数据,其可用于压缩数据。或者,数据压缩可发生在存储装置302上。任何一种情况中,将压缩数据存储到存储装置302。根据各个实施方案,存储装置302包括存储接收数据的储存存储器,储存存储器是下列的一个或多个:静态随机访问存储器、动态随机访问存储器、嵌入式存储器,如NAND闪存的非易失性存储器,半导体存储器,和任意其他类型的存储器装置。控制模块304也可用于确定通过压缩已经获得的空间数量,其可被称作为回收空间。回收空间等于压缩前从主机308接收数据大小和压缩数据大小之间的差,是对从主机接收和存储装置当前存储的数据的总计。回收空间的至少一部分可以被展现和/或变为使用接口模块306的主机308可获得。在一些实施方案中,接口模块306被配置用以将逻辑容量展现给主机308。展现给主机的逻辑容量的大小将变化,但是可包括回收空间至少一部分以及在给定时间处存储装置302的可获得逻辑容量。图3中的系统300的控制模块304也可被配置用以确定在存储装置302上的可获得逻辑空间。控制模块304通信耦合存储装置302并能够接收来自存储装置302的信号。控制模块304也被配置用以查询存储装置302,或基于存储装置处信号的接收,或以给定时间间隔,或定期在多个发送到存储装置的命令和/或接收自存储装置的响应中。图3中系统300的存储装置302可以是具有非易失性半导体存储器的固态磁盘,如基于NAND闪存的存储。当在存储装置302上的可用空间数量接近和/或已经达到配置阈值时,存储装置302可被配置用以将信号发送到控制模块304。存储装置302也被配置用以保持保留数量空间以确保存储装置302能够存储来自主机308的数据并能够一直提供指定最小等级的性能。例如,在一些实施方案中,将保留数量空间保持以确保写入放大率小于指定等级。根据各个实施方案,图3中系统300的控制模块304是下列的一个或多个:I/O控制器;磁碟阵列控制晶片(ROC)控制器;主机总线适配器;用于将存储装置接口道主机的任意芯片;和上述合并的缓存管理和/或缓存控制的任意一个。参照本发明的图4A,提供了动态自适应缓存的系统300。系统300包括接口模块306,控制模块304,和存储装置302。控制模块304管理缓存,缓存标记402位于控制模块304中。系统300的存储装置302也包括缓存数据414。系统300通过接口410通信耦合到主机308。主机308包括处理器406和存储器412。在本发明的图4B中,提供了动态自适应缓存的系统300,示出了当主机308管理缓存时的配置。在图4B中,系统300包括在系统300的存储装置302中的缓存数据414。主机308包括在主机308的存储器412中的缓存标记402。主机308的存储器412可以是能够存储数据的任意系统和/或装置。在一实施方案中,存储器412存储了计算机代码,其在由处理器406执行时导致处理器406实施动态自适应缓存的管理方法。图4A和4B中的系统300被可选和/或选择性配置(如,运行存储在存储器412和/或在存储装置302和/或在其他未描述存储器中的软件和/或固件,利用应用程序指定电路,等)以提供从主机308处发送和接收的数据的动态自适应缓存。系统300可将逻辑或有效缓存大小展现给超出物理缓存大小的主机308。本发明也涉及图5中的方法500。方法500包括存储装置在存储接口上接收多个数据部分的步骤502。存储接口可包括SATA接口、SAS接口、PCIe接口或其他合适存储接口。方法的下一步需要约简每一个数据部分以形成各个简化数据部分,所述数据部分的至少一些具有比各个简化数据部分较大的大小504。根据各个实施方案,使用了一个或多个数据约简技术,如重复数据删除和压缩。方法也包括将这些数据部分存储作为在存储装置的数据存储器中的简化数据部分的步骤506。数据存储器可以是非易失性数据存储器。方法的最后一个步骤是根据数据存储器的利用情况确定数据存储器的逻辑容量508。在方法500中,数据存储器的逻辑容量根据数据存储器的利用情况变化,如与利用情况成比例,或如通过利用情况的函数。轮流地,根据多少数据部分存储在数据存储器中,并根据存储数据部分的所述约简,数据存储器的利用情况变化。在第一实施例中,当更多数据部分存入数据存储器的先前未使用的逻辑块时,数据存储器的利用情况增加。在第二实施例中,当先前存储的数据部分被约简到更大程度的数据部分重写时,数据存储器的利用情况降低。在第三实施例中,当移除存储的数据部分时,如通过整理他们,数据存储器的利用情况降低。在方法500的一些实施方案中,逻辑容量具有确定的最大值,如供应的逻辑容量。根据各个实施方案,供应的逻辑容量能够存储小于、等于或大于数据存储器物理大小的数据部分的数量,假设这些数据部分是不可约的。在进一步实施方案中,假定这些数据部分是不可约的,供应的逻辑容量能够存储小于数据存储器物理大小的数据部分的数量以提供物理大小的预留空间的数量。预留空间提高了一些存储装置的性能,如通过减少写入放大率。至少部分基于数据存储器的利用情况,确定小于或等于供应逻辑容量的可用逻辑容量。根据各个实施方案,可用逻辑容量是下列的一个或多个:当利用情况降低时增加;当利用情况增加时降低;利用情况的线性函数;利用情况的非线性函数;时间上定期改变;在存储装置接收的多个命令中定期改变;和当利用情况改变超过预定数量时改变。可用逻辑容量的变化使得在存储装置中存储数据的动态自适应缓存能够根据可用逻辑容量有利地存储数据量,并因而根据存储其中的数据可约性提高性能。图5中的方法500也可包括响应于超过指定阈值的利用情况从数据存储器处移除一个或多个简化数据部分的步骤。在这个步骤中,指定阈值可保持存储装置的吸入放大率在指定值之下。在一实施方案中,通过无效存储装置标记存储器的一个或多个入口,可至少部分地完成从数据存储器处移除一个或多个简化数据部分的步骤。图5中的方法500也可包括附加步骤。如果存储装置请求这些数据部分中的指定一个。方法可包括从数据存储器处读出各个简化数据部分,逆转各个简化数据部分的约简以恢复具体数据部分,并响应于请求将具体数据部分返回给主机的步骤。在本发明中,可将公开的方法实施为装置可读的指令集或软件。而且,应当理解,公开的方法中步骤的指定顺序或等级是示例性方式的实施例。基于设计偏好,应当理解,在方法中步骤的指定顺序或等级能够被重新安排而保留在公开主题内。附属方法权利要求以样本顺序展现了各个步骤的元件,但是不必打算的是被限制为展现的指定顺序或等级。应当相信,通过以上说明将理解到本发明和许多其伴随的优点,明显的是,可在组件的形式,结构和安排中做出各种改变而不背离公开主题或不牺牲其所有实质性优点。说明的形式仅仅是解释性的,计划的是,后续权利要求包含并包括这些改变。通过方框图,流程图,和/或实施例的使用,以上具体说明可包括提出的装置和/或过程的各个实施方案。在这些方框图,流程图,和/或实施例范围内包含了一个或多个功能和/或操作,本领域技术人员应当理解,这些方框图,流程图,或实施例内的每一个功能和/或操作可被单独和/或一起实施,通过宽范围的硬件,软件,固件,或虚拟的其任意组合。在一实施方案中,此处所述主题的数个部分可通过专用集成电路(ASIC),现场可编程门阵列(FPGA),数字信号处理器(DSP),或其他集成格式来实施。然而,本领域技术人员应当认识到,此处公开的实施方案的一些方面,整体或部分地,可等同地被实施在集成电路中,作为运行在一个或多个计算机上的一个或多个计算机程序(如,作为运行在一个或多个计算机系统上的一个或多个程序),作为运行在一个或多个处理器上的一个或多个程序(如,作为运行在一个或多个微处理器上的一个或多个程序),作为固件,或虚拟地作为其任意组合,这样的电路设计和/或软件和或固件的代码写入将正好在根据本发明的一个本领域技术人员的技术范围内。另外,本领域技术人员应当理解,此处所述的主题的机制可能能够被分布为多种形式的程序产品,此处所述的主题的描述性实施方案不考虑用于实际执行所述分布的指定类型信号承载介质而应用。信号承载介质的实施例包括但不限于以下:可记录类型介质,如软盘,硬盘驱动器,固态磁盘,光盘(CD),数字视频光盘(DVD),数字磁带,计算机存储器等;和传输类型介质,如数字和/或模拟通信介质(如,光纤电缆,波导,有线通信链路,无线通信链路(如,发射器,接收器,传输逻辑,接收逻辑等),等)。本领域技术人员应当认识到,本技术领域的状态可包括进步到其中在系统各个方面的硬件,软件,和/或固件实施方式之间可能存在留下的较小区别的点;硬件,软件,和/或固件的使用一般可能是(但不总是,在其中在硬件和软件之间的选择可能变得重要的某些情况中)表示成本对比效率权衡的设计选择。本领域技术人员应当理解,可能存在通过其可影响这里所述的过程和/或系统和/或其他技术的各种载体(如,硬件,软件,和/或固件),其优选载体将随着其中可部署过程和/或系统和/或其他技术的情况而变化。例如,如果实施者确定了速度和精度可能是最重要的,实施者可选择主要硬件和/或固件载体;或者,如果灵活度可能是最重要的,实施者可选择主要软件的实施方式;或,再或者,实施者可选择硬件,软件,和/或固件的一些组合。因此,可能存在数个可能的载体,通过这些载体,可影响到这里所述的过程和/或装置和/或其他技术,其中任何一个不会天生优于其他,其中即将利用的任意载体可能是基于其中将部署载体的情况和实施者的指定关注(如,速度,灵活度,或可预测性)的选择,其中任意一个可能变化。本领域技术人员应当认识到,实施方式的光学方面将典型地利用光学导向的硬件,软件,和或固件。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1