在混合驱动器中的虚拟NAND容量扩展转让专利

申请号 : CN201480036908.6

文献号 : CN105339910B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·C·小史密斯

申请人 : 西部数据技术公司

摘要 :

本文公开了一种用于在数据储存设备中进行虚拟高速缓存存储器扩展的方法和系统。储存设备可包括充当主存储器的高速缓存的存储器。用于储存设备的方法可包括维持与存储在高速缓存存储器中的数据相关联的一个或更多个逻辑块地址的映射信息,以及维持与未存储在高速缓存存储器中的数据相关联的一个或更多个逻辑块地址的映射信息。当高速缓存存储器的可用容量改变,例如,由于在休眠操作中存储恢复(resume)数据时,可以选择用于逐出(eviction)的存储在高速缓存存储器中的数据。选择的用于逐出的数据可以被传输到主存储器,但仍然跟踪作为虚拟扩展高速缓存的一部分,并且因此当不再需要恢复数据时,可以迅速复原(restore)到高速缓存存储器中。

权利要求 :

1.在具有被配置成充当主存储器的高速缓存的高速缓存存储器的数据储存设备中,一种管理在所述高速缓存存储器中的数据的方法,所述方法包括:维持与存储在所述高速缓存存储器中的数据相关联的第一组逻辑块地址即第一组LBA,所述第一组LBA对应于在所述高速缓存存储器的可用容量内的数据的量;

维持与未存储在所述高速缓存存储器的所述可用容量内的数据相关联的第二组LBA;

比较第一优先级信息和第二优先级信息,所述第一优先级信息与第一数据相关联,所述第二优先级信息与第二数据相关联,所述第一数据与所述第一组LBA内的LBA相关联,所述第二数据与所述第二组LBA内的LBA相关联;

基于所述第一优先级信息和所述第二优先级信息的比较,从所述高速缓存存储器的所述可用容量中逐出所述第一数据;以及使与所逐出的第一数据相关联的所述LBA和与所述第二数据相关联的所述LBA相关联。

2.根据权利要求1所述的方法,其中基于改变所述高速缓存存储器的所述可用容量的条件,触发从所述高速缓存存储器的所述可用容量中逐出所述第一数据。

3.根据权利要求2所述的方法,其中所述条件与容纳来自主机系统的要存储在所述高速缓存存储器的所述可用容量中的系统数据有关。

4.根据权利要求3所述的方法,其中所述系统数据包括在所述主机系统退出睡眠模式后用于复原所述主机系统的恢复数据。

5.根据权利要求4所述的方法,还包括:

基于所述主机系统退出所述睡眠模式,将所述第一数据复原到所述高速缓存存储器的所述可用容量中;以及使与所述第一数据相关联的所述LBA与所述第一组LBA相关联。

6.根据权利要求1所述的方法,其中所述第一组LBA和所述第二组LBA维持在单个数据结构内。

7.根据权利要求1所述的方法,其中所述第一组LBA和所述第二组LBA维持在不同的数据结构内。

8.根据权利要求1所述的方法,其中所述数据储存设备是混合驱动器。

9.根据权利要求1所述的方法,其中所述高速缓存存储器的所述可用容量包括非易失性固态存储器。

10.根据权利要求1所述的方法,其中比较所述第一优先级信息和所述第二优先级信息包括确定所述第二数据是否比所述第一数据更近使用。

11.根据权利要求1所述的方法,其中比较所述第一优先级信息和所述第二优先级信息包括确定所述第二数据是否比所述第一数据更频繁使用。

12.根据权利要求1所述的方法,其中所述第一优先级信息从主机系统接收。

13.一种数据储存设备,所述数据储存设备包括:

被配置成在其中存储数据的非易失性磁存储器;

被配置成在其中存储数据的非易失性固态存储器,所述非易失性固态存储器被配置成作为所述非易失性磁存储器的高速缓存;以及与所述非易失性磁存储器和所述非易失性固态存储器相连接的控制器,所述控制器被配置成:维持与存储在所述非易失性固态存储器中的数据相关联的第一组逻辑块地址即第一组LBA;

维持与未存储在所述非易失性固态存储器中的数据相关联的第二组LBA;

接收与所述第一组LBA内的LBA相关联的第一数据的优先级信息;

基于所述优先级信息,使与所述第一数据相关联的所述LBA与所述第二组LBA相关联;

以及

基于所述优先级信息,使与所述第一数据相关联的所述LBA与所述第一组LBA重新关联。

14.根据权利要求13所述的数据储存设备,其中所述非易失性固态存储器包括NAND型闪存存储器。

15.根据权利要求13所述的数据储存设备,其中所述控制器还被配置成与主机系统相连接,并且其中响应于所述主机系统进入休眠模式,与所述第一数据相关联的所述LBA与所述第二组LBA相关联。

16.根据权利要求15所述的数据储存设备,其中响应于所述主机系统从所述休眠模式恢复,与所述第一数据相关联的所述LBA与所述第一组LBA重新关联。

17.一种管理在混合数据储存设备中的数据的方法,所述混合数据储存设备具有非易失性磁储存器、被配置成作为所述非易失性磁储存器的高速缓存的非易失性闪存储存器,以及与所述非易失性磁储存器和所述非易失性闪存储存器通信的控制器,所述方法包括:由所述控制器维持包括第一组逻辑块地址即第一组LBA和第二组LBA的数据结构,所述第一组LBA用于存储在所述非易失性闪存储存器中的数据,所述第二组LBA用于未存储在所述非易失性闪存储存器中的数据;

在所述控制器处接收来自主机系统的第一数据;

使LBA与所述第一数据相关联;

在所述控制器处接收来自所述主机系统的优先级信息,所述优先级信息对应于所述第一数据;以及基于所述优先级信息,使与所述第一数据相关联的所述LBA与所述第一组逻辑块地址相关联。

18.根据权利要求17所述的方法,其中所述主机系统被配置成进入或退出休眠模式,所述方法还包括:基于所述主机系统进入所述休眠模式,从所述非易失性闪存储存器中逐出所述第一数据;以及基于所述主机系统退出所述休眠模式,将所逐出的第一数据自动传输到所述非易失性闪存储存器。

说明书 :

在混合驱动器中的虚拟NAND容量扩展

背景技术

[0001] 数据储存设备通常用于在其上记录或存储数据或用于从记录介质中复制数据。数据储存设备能够包括用于提供这些用途的不同类型的非易失性存储器。一种类型的非易失性存储器包括旋转磁盘。除了磁盘之外,数据储存设备还能够包括第二类型的非易失性存储器,诸如固态存储器。利用磁盘和固态非易失性存储器两者的数据储存设备常常称为混合驱动器。
[0002] 当与仅包括一种类型的非易失性存储器的传统储存驱动器相比较时,混合驱动器能够提供改善的性能特性。例如,由于包括磁盘,当在仍维持可负担性和其它益处的情况下,访问存储在固态存储器上的某些数据时,混合驱动器能够改善响应时间。不幸地,固态存储器通常比其它形式的非易失性存储器成本更多。因此,具有完全由固态存储器组成的储存驱动器的费用对于一些消费者或应用来说可能是过高的。混合驱动器利用传统非易失性存储器和固态存储器两者的混合,以维持更负担得起的产品,从而利用传统非易失性存储器的其它益处,诸如改善的耐久性。
[0003] 由混合驱动提供的益处的具体示例能够在计算机系统的休眠过程期间示出。在关闭或降低功率之前,计算机系统可执行休眠过程,以在非易失性存储器中保存计算机系统的状态。当功率稍后复原到计算机系统时,计算机系统的操作系统执行恢复过程,以将计算机系统复原到与休眠之前相同的状态。固态存储器,诸如闪存存储器,由于其高读取传输速率,所以一般应该能够在休眠后相对迅速的恢复。

附图说明

[0004] 实施本发明的各种特征的系统和方法现在将参考以下附图进行描述,其中:
[0005] 图1示出根据本发明的一个实施例的主机系统和实现虚拟高速缓存容量扩展的数据储存设备的组合的框图;
[0006] 图2示出根据本发明的一个实施例的虚拟扩展高速缓存和映射表的框图;
[0007] 图3A示出根据本发明的一个实施例的在由连接的主机系统进入休眠模式期间虚拟扩展高速缓存和映射表的框图;
[0008] 图3B示出根据本发明的一个实施例的在由连接的主机系统从休眠模式退出期间图3A的虚拟扩展高速缓存和映射表的框图;
[0009] 图4示出根据本发明的一个实施例的使用优先级信息的虚拟扩展高速缓存的数据储存操作的流程图;以及
[0010] 图5示出根据本发明的一个实施例的被配置成与能够进入和离开休眠模式的主机系统连接的虚拟扩展高速缓存的操作的流程图。

具体实施方式

[0011] 虽然描述了某些实施例,但这些实施例仅以示例的方式提出,而并非旨在限制保护的范围。当然,本文所述的新型方法和系统可以以各种其它形式来实施。此外,可以对本文所述的方法和系统的形式进行各种省略、替换和改变,而不脱离保护的范围。
[0012] 综述
[0013] 利用多于一种类型的存储器用于电子数据的储存和访问的储存系统,诸如混合储存设备,不仅应该为电子数据的储存确定可用存储器的块,还应该确定哪种类型的存储器用于储存或访问操作。在一些情况下,连接的主机系统可经由信号将该确定提供给储存系统。在其它情况下,所述确定可以经由逻辑评估由储存系统本身与来自连接的主机系统的信号相结合或者完全通过内部确定来进行。
[0014] 储存目的地的确定可以基于与数据相关联的优先级。具有较高优先等级的数据可以在存储器类型或在储存系统内的储存位置方面给予优先权。利用提供改善的操作性能的更昂贵的存储器类型(例如,固态存储器,诸如NAND闪存存储器)与成本较低的存储器类型(例如,磁储存器)的组合的混合储存设备,可设法将优先数据置于更昂贵的存储器中。然而,因为在储存系统中的数据可随着用户执行不同任务在优先级上频繁改变,所以数据管理系统应起作用以适当传输储存系统内的数据,从而增加或优化性能。
[0015] 在一个实施例中,混合驱动器可包括高速存储器,其中的一些或全部能够充当主要的较慢的存储器的高速缓存。对充当高速缓存可用的高速存储器的容量成为高速缓存的物理容量。混合驱动器可以被配置成通过跟踪存储在主存储器中的一些数据虚拟地扩展高速缓存的物理容量。在一个示例中,在混合驱动器中的高速的固态存储器(高速缓存存储器)可具有8GB的物理容量。数据结构,诸如高速缓存映射表可以用于跟踪存储在低速的磁存储器(主存储器)中的另外的8GB数据,使得跟踪的数据可以被认为是高速缓存的物理容量的虚拟扩展。由于较高优先级的数据具有优先权,或由于在系统状态上的改变(例如,容纳来自主机的恢复数据)造成对固态存储器容量的改变,所以跟踪的数据可包括先前从高速存储器(例如,固态存储器)中逐出的数据。
[0016] 对于数据的该优先级信息可以以许多不同的方式,诸如下列项中的一个或更多个的组合来确定:由主机系统提供的优先级(例如,作为写入数据命令的一部分)、数据的访问频率、从数据的上次访问以来的持续时间、读取与写入数据的频率(例如,读写比)、在优先等级内数据的相对重要性、数据是否已与其它储存同步等。例如,频繁访问的数据可以被分配较高优先级,因为在高速缓存中保持频繁访问的数据可以改善数据储存设备的性能。又如,已经比其它数据被更近访问的数据可以被分配较高优先级,因为更近访问的数据可能有可能在未来被再次访问。又如,比写入更频繁地读取的数据可以被分配较高优先级,因为在高速缓存中保持此类频繁读取的数据可改善性能,同时降低非易失性固态存储器的磨损。在一些实施例中,优先级可以基于以上因素中的一个或更多个的加权组合来分配。
[0017] 为了简化和说明起见,下面的描述集中于示例实施例,其中固态非易失性存储器充当主存储器(诸如,磁储存存储器)的高速缓存存储器。然而,本公开的范围并不限于此类实施例。例如,在其它实施例中,代替磁储存存储器的,数据储存设备可包括另一种类型的数据储存。代替或除了固态非易失性存储器之外,可以使用不同类型的存储器,例如,在储存系统或设备中使用的比不同类型的存储器提供了更快的读取或写入性能的任何存储器。在其它实施例中,充当主存储器的高速缓存的非易失性存储器可以位于距主存储器的远程位置中,并且数据的同步可以发生在一个或更多个网络连接上。
[0018] 系统综述
[0019] 首先转到图1,其示出了主机系统110和实现虚拟扩展高速缓存的数据储存设备120的组合100的框图。如图所示,数据储存设备120(例如,混合磁盘驱动器)包括控制器
130、固态储存器150,以及磁储存器160。在一个实施例中,固态储存器150可包括闪存储存器,和/或磁储存器可以包括磁介质。除了或替代固态储存器150和/或磁储存器160,数据储存设备120可包括各种非易失性存储器,诸如闪存集成电路、硫属化合物RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元的RAM(PMC-RAM或PMCm)、双向通用存储器(OUM)、电阻式RAM(RRAM)、NAND存储器(例如,单级单元(SLC)存储器、多级单元(MLC)存储器,或它们的任何组合)、NOR存储器、EEPROM、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其它离散型NVM(非易失性存储器)芯片,或它们的任何组合。固态储存器150能够包括一个或更多个存储器区域、诸如块、页等。在一个实施例中,固态储存器150能够作为用于磁储存器160的高速缓存。数据储存设备120还能够包括其它类型的储存器。
[0020] 数据储存设备120的控制器130能够被配置成从主机系统110的储存接口模块112接收数据和/或与数据相关联的优先级信息。数据和/或优先级信息可以在储存接口模块112和控制器130之间以命令140的形式(例如,储存或访问命令)传送,所述命令将优先级信息与在数据储存设备120中被储存或访问的适当数据相关联。控制器130也能够被配置成将命令140传送到储存接口模块112。通过储存接口模块112通信的命令140能够包括由主机系统110发出的写入数据和读取数据命令连同相关联的优先级信息,例如作为写入数据和/或读取数据命令的元数据。读取和写入命令能够指定用于访问数据储存设备120上的信息的逻辑地址(例如,逻辑块地址或“LBA”)。控制器130能够执行在固态储存器150和/或磁储存器160中的接收命令140。
[0021] 数据储存设备120能够存储通过主机系统110通信的数据。换句话说,数据储存设备120能够作为用于主机系统110的存储装置。为了便于该功能,控制器130能够实现逻辑接口。逻辑接口能够向主机系统110呈现数据储存设备120的固态储存器150和/或磁储存器160作为其中能够储存主机系统110的数据的一组逻辑地址(例如,连续的地址)。在内部,控制器130能够将逻辑地址映射到在固态储存器150、磁储存器160和/或其它储存模块中的各种物理位置或地址。物理位置能够被配置成存储数据。如本文更详细地讨论,控制器130可基于与此类数据相关联的优先级信息确定在固态储存器150和/或磁储存器160中将数据存储到哪里。例如,扩展的虚拟储存容量可以被配置用于利用磁储存器160的全部或一部分的固态储存器150,如以下更详细地讨论。
[0022] 虚拟扩展存储器容量
[0023] 接着转向图2,示出了其中示出虚拟扩展高速缓存210的框图200,虚拟扩展高速缓存210展示扩展存储器容量的配置或使用。虚拟扩展高速缓存210可包括与先前讨论的那些相同或类似的特征。在一个实施例中,虚拟扩展高速缓存210可对应于一种或更多种类型的非易失性存储器,诸如固态存储器(例如,NAND闪存存储器),或被配置成充当主存储器的高速缓存的其它高速缓存存储器,诸如混合驱动器。虚拟扩展高速缓存210具有多个映射容量,使得虚拟扩展高速缓存210能够将数据映射在扩展到其实际的物理存储器容量之外的存储器位置处。
[0024] 如图所示,数据可被映射到虚拟扩展高速缓存210的实际物理容量230。例如,数据可以被映射到对应于物理上包含或连接为数据储存设备的一部分的固态存储器诸如NAND闪存存储器的物理容量的实际物理容量230。虚拟扩展高速缓存210还允许数据被映射到虚拟或扩展容量240。例如,数据可被映射到对应于包含或连接为数据储存设备的一部分的另一个非易失性存储器(例如,磁存储器)的虚拟或扩展容量240。在一些实施例中,该其它非易失性存储器可以是主存储器的一部分。因此,期望被存储在虚拟扩展高速缓存210中的数据可以被选择性地映射到实际物理容量230或映射到虚拟或扩展容量240,如本文更详细地讨论。
[0025] 逻辑块地址映射表220与对应于虚拟扩展高速缓存210的实际物理容量230和虚拟或扩展容量240存储器位置的存储器位置相关联。逻辑块地址映射表220维持对应于在虚拟扩展高速缓存210的实际的物理容量内的数据的量(例如,固态存储器的可用容量)的第一组逻辑块地址(“LBA”)222或第一段逻辑块地址(“LBA”)222。此外,如图所示,第二组LBA 224或第二段LBA 224与未存储在虚拟扩展高速缓存210的实际的物理容量内(例如,没有在固态存储器的可用容量内)的数据相关联。此类数据可以存储在主存储器诸如磁存储器中。
数据可以存储在磁储存器内的常规映射方案的典型位置中,或另选地,存储在磁储存器内的专用位置中。因此,数据能够在较高速度高速缓存存储器的可用容量中或者低速主存储器中被存储或访问。
[0026] 接着转向图3A,示出了在存储恢复数据到虚拟扩展高速缓存310的物理存储容量的操作或过程期间虚拟扩展高速缓存310的框图300。虚拟扩展高速缓存310可包括与先前讨论的那些相同或类似的特征。逻辑块地址映射表320与对应于虚拟扩展高速缓存310的实际物理容量330和虚拟或扩展容量340存储器位置的存储器位置相关联。如图所示,虚拟扩展高速缓存310具有多个映射容量,使得虚拟扩展高速缓存310能够将数据映射在扩展到其实际的物理容量之外的存储器位置处。如图所示,映射到实际物理容量330对应于固态储存器350(例如,闪存存储器,诸如NAND闪存)的可用容量。映射到虚拟或扩展容量340可对应于其它的低速存储器(例如,磁储存器)。
[0027] 固态储存器350可以用于各种数据储存目的,诸如更频繁使用数据、更近使用数据的高速缓存等。对于连接的主机系统,固态储存器350也可以被用于恢复数据370的储存。例如,主计算机系统可以被配置成在低的或不频繁使用的时期或时间进入休眠模式。主计算机系统可在减少系统功率之前在非易失性存储器中保存主计算机系统的当前状态(例如,通过产生或使用恢复数据370)。随后,在功率复原时,可以访问恢复数据370以便将主计算机系统复原到所保存的状态。由于恢复数据370的高读取传输速率,所以固态非易失性存储器诸如固态储存器350允许计算机系统迅速复原到所保存的状态。
[0028] 代替分离出一部分专门用于恢复数据的固态储存器,在图3A所示的实施例示出允许恢复数据在固态储存器350中被存储和/或访问,而不与可能期望存储在固态储存器350中的其它高速缓存数据永久性干扰的实施例。因此,在一个优选实施例中,能够在不使用恢复数据的时候避免昂贵的固态储存器位置的传统浪费。
[0029] 例如并且如图所示,在主计算机系统进入休眠过程时,恢复数据370可以由主计算机系统生成以便保存主计算机系统的状态。为了改善性能,可能期望将恢复数据370存储在固态储存器350中。然而,在将恢复数据370储存在固态储存器350中之前,先前被映射到实际物理容量330的用于逐出的其它数据332(例如,存储在固态储存器350中的在其它高速缓存数据360旁边)必须被去除或传输384并映射到虚拟或扩展容量340。逐出可以,例如,包括(1)当相同副本已经存储在磁介质中时从固态储存器中去除数据,或(2)将数据从固态储存器传输到磁介质,其可覆盖磁介质上过时的副本。在这两种情况下,数据在逐出之后将驻留在主储存器(例如,磁储存器)中,并且映射表被更新以反映物理储存位置的改变(注意,例如,特定LBA现在在磁储存器上)和数据在虚拟或扩展容量340内的新的指定。
[0030] 在一个实施例中,在主计算机系统开始休眠过程时,恢复数据370的优先级被确定(例如,通过主机系统和/或通过数据储存设备或结合虚拟扩展高速缓存310的设备)具有比用于逐出的数据332的优先级的更高的优先级,从而触发数据332的逐出。当与用于逐出的数据332的优先级相比时,各种逻辑评估或步骤中的任一项可以用于确定恢复数据370的相对优先级。在一个实施例中,在启动休眠时,没有进行优先级比较,因为恢复数据被原子地接受到固态存储器中,降低了其被用作高速缓存的物理容量的可用容量,并且因此潜在地触发对于逐出数据的需要。
[0031] 在用于逐出的数据332已被去除或传输384并映射到虚拟或扩展容量340之后,储存空间被释放或使得在固态储存器350中可用,以便容纳恢复数据370。恢复数据370可能没有用完固态储存器350的所有空间,使得其它高速缓存数据360连同恢复数据370一起存在于固态储存器350中。
[0032] 接着转向图3B,框图350示出在图3A中所讨论的虚拟扩展高速缓存310,但在主计算机系统从休眠模式中退出之后的复原数据到虚拟扩展高速缓存310的物理存储容量的操作或过程期间。在开始从休眠模式中退出的过程时,恢复数据370(参考图3A)被访问并用于复原主计算机系统的状态。在此类使用之后,恢复数据370不再需要,并且因此能够从固态储存器350中去除。结果,增加用于高速缓存的可用容量。此时,先前逐出的数据(图3A用于逐出的数据332)被再一次复原或传输386并映射到实际物理容量330,成为复原数据334再次驻留在固态储存器350中。当主计算机系统从休眠或睡眠模式中退出时,数据的复原或传输386可自动发生(例如,没有来自外部设备或者主机的进一步的命令或信号)。通过跟踪在虚拟扩展高速缓存中的逐出数据332,在恢复时,数据储存设备能够迅速填充高速缓存的扩展物理容量。在其中不跟踪逐出数据的常规数据储存设备中,新增加的容量通常是随着时间的推移而填充,直到高速缓存算法重新认识到什么数据应该放在这里为止。与此相反,在本发明的某些实施例中,通过利用上述虚拟扩展高速缓存方案,数据的完整高速缓存能够因此在恢复时被立即重建,从而提供改善的数据访问性能。
[0033] 图4示出使用在虚拟扩展高速缓存中被分配的数据的优先级信息的虚拟扩展高速缓存和映射系统的操作的示例性流程图400。在一个实施例中,通过修改映射表可以在高速缓存中分配数据,但不需要在不同存储器位置之间物理移动数据。虚拟扩展高速缓存可包括与先前讨论的那些相同或类似的特征。在框405处,数据管理操作开始。这可发生在提供功率给包括虚拟扩展高速缓存的数据储存设备、提供功率给连接到数据储存设备的主机系统、初始化数据储存设备和/或主机系统、或以其它方式开始其中请求数据被读取或写入虚拟扩展高速缓存中的任何过程时。在框410处,数据储存设备的控制器接收命令(例如,来自主机系统的主机数据命令或内部数据命令,诸如专用命令或涉及由数据储存设备本身所生成的数据储存设备的背景活动的命令),所述命令指示期望在数据储存设备中读取或写入数据。该命令可以是经由有线或其它导电连接或经由无线传送接收的电信号。
[0034] 在框415处,确定与在框410处接收的命令相关联的数据的优先级。该优先级可以是对应于期望在高速缓存存储器中被分配的候选数据的优先级信息。优先级信息可以仅由数据储存设备来确定。在另一个实施例中,优先级信息可以通过控制器来接收(例如,优先级信息可以通过主机系统被传送)。在框420处,数据储存设备基于相关联的优先级确定候选数据是否属于整个虚拟扩展高速缓存(要么在物理容量中要么在虚拟容量中)。例如,如果与在框410处接收的命令的候选数据相关联的优先级比已经存在于虚拟扩展高速缓存中的所有其它数据的优先级低,那么数据储存设备可确定候选数据不应该在虚拟扩展高速缓存中分配。
[0035] 如果候选数据不属于虚拟扩展高速缓存,操作继续进行到框425,在该框中候选数据未在虚拟扩展高速缓存中分配。在混合驱动器示例中,候选数据可以经由磁介质简单地写入或访问,而不在指示其为高速缓存的数据的高速缓存映射表中添加任何跟踪元数据。接着,操作转回到框410,在该框中在控制器处接收新命令并且过程再次开始。然而,如果数据储存设备确定候选数据属于虚拟扩展高速缓存,诸如当与在框410处的数据相关联的优先级比对应于已经存在于虚拟扩展高速缓存中的数据的至少一个优先级高时,那么操作继续进行到框430。
[0036] 在框430处,数据储存设备基于相关联的优先权确定在虚拟扩展高速缓存中要被分配的候选数据是否属于虚拟扩展高速缓存的物理容量。类似于上面的讨论,如果与在框410处的数据相关联的优先级比已经存在于虚拟扩展高速缓存的物理容量中的所有其它数据的优先级低,那么数据储存设备可确定候选数据不应该在物理容量中分配,并且操作继续进行到框435。如果与在框410处的数据相关联的优先级比对应于已经存在于虚拟扩展高速缓存的物理容量中的数据的至少一个优先级高,那么数据储存设备可确定候选数据应该在物理容量中分配,并且操作进行到框460。
[0037] 在框435处,数据储存设备确定在用于候选数据的虚拟扩展高速缓存的扩展容量中是否存在任何可用的空间(room)或容量。例如,如果通过期望要被跟踪的数据的量确定虚拟扩展高速缓存的扩展容量为8千兆字节(GB),并且如果存储器的7.8GB目前正在由现有数据使用,但候选数据将占用超过该存储器的0.2GB,那么在虚拟扩展高速缓存的扩展容量中没有足够的空间或容量用于候选数据。在一个实施例中,虚拟扩展高速缓存的容量可对应于在高速缓存映射表中的LBA条目的最大数目,诸如,先前在图3A和图3B中所示。如果空间确实存在,那么操作继续进行到框440,并且候选数据在虚拟扩展高速缓存的扩展容量中被分配到可用存储器位置处,并且没有现有数据需要从扩展容量中移走。如以上先前所提到的,在一个实施例中,在扩展容量中存储数据包括在磁介质上存储数据并更新映射表以跟踪作为扩展虚拟高速缓存的一部分的数据(例如,LBA)。然后操作继续回到框410,在该框中在控制器处接收新命令并且再次开始过程。
[0038] 如果空间不存在,那么操作代替转到框445,并且数据储存设备确定在虚拟扩展高速缓存的扩展容量中的哪些现有高速缓存数据应该从虚拟扩展高速缓存中去除。该确定可以基于与候选数据相关联的优先级信息和与在扩展容量中的现有高速缓存数据相关联的一个或更多个优先级信息的比较。例如,如果高速缓存数据具有比一个或更多个现有高速缓存数据的优先级高的优先级,那么现有高速缓存数据可以被确定为从虚拟扩展高速缓存中去除。在框450处,在框445中被确定为去除的现有高速缓存数据从扩展容量中去除。在一个实施例中,映射表被更新为不再跟踪数据,有效地去除作为高速缓存的一部分的数据。并且然后在框455处,候选数据在扩展容量中被分配(例如,候选数据写入到磁储存器并且映射表被更新以跟踪作为高速缓存的一部分的候选数据)。然后操作继续回到框410,在该框中在控制器处接收新命令并且再次开始过程。
[0039] 返回到框430,如果基于相关联的优先级确定候选数据不属于虚拟扩展高速缓存的物理容量,那么在框460处,数据储存设备确定在虚拟扩展高速缓存的实际的物理容量中是否存在任何可用于候选数据的空间或容量。类似于针对框435的上述讨论,在一个示例中,如果虚拟扩展高速缓存的物理容量包括固态储存器的8千兆字节(GB),并且如果存储器的7.8GB目前正在由现有数据使用,但候选数据将占用超过该存储器的0.2GB,那么在虚拟扩展高速缓存的物理容量中没有足够的空间用于候选数据。如果空间确实存在,那么操作继续进行到框465,并且候选数据在虚拟扩展高速缓存的物理容量中被分配在可用的存储器位置处(例如,在固态储存器中),并且没有现有数据需要从物理容量中被移出。然后操作继续回到框410,在该框中在控制器处接收新命令并且再次开始过程。
[0040] 然而,如果空间不存在,那么操作代替转到框470并且数据储存设备确定在虚拟扩展高速缓存的物理容量中的哪些现有高速缓存数据应该从虚拟扩展高速缓存的物理容量中被逐出。该确定可以基于与候选数据相关联的优先级信息和与在物理容量中的现有高速缓存数据相关联的一个或更多个优先级信息的比较。例如,如果候选数据具有比一个或更多个现有高速缓存数据的优先级高的优先级,那么该现有高速缓存数据可以被确定为被逐出。
[0041] 在框470处确定用于逐出的现有高速缓存数据之后,操作继续进行到框475,并且类似于以上针对框435的讨论,数据储存设备确定在虚拟扩展高速缓存的扩展容量中是否存在任何可用于框470的逐出数据的空间或容量。例如,如果虚拟扩展高速缓存的扩展容量包括8千兆字节(GB),并且如果该存储器的7.8GB目前正在由现有数据使用,但逐出数据将占用超过该存储器的0.2GB,那么在虚拟扩展高速缓存的扩展容量中没有足够的空间用于逐出数据。如果空间确实存在,那么操作继续进行到框480,并且逐出数据在虚拟扩展高速缓存的扩展容量中被分配在可用的存储器位置处,并且没有现有数据需要从扩展容量中移走。在框485处,要在物理容量中被分配的候选数据(在框430处所确定)然后在虚拟扩展高速缓存存的物理容量中被分配在可用的存储器位置处(例如,在固态储存器中),例如,在通过逐出进入到扩展容量中的逐出数据被释放时的存储器位置处。然后操作继续回到框410,在该框中在控制器处接收新命令并且再次开始过程。
[0042] 如果在扩展容量中不存在用于框470的逐出数据的空间,如在框475中所确定,那么操作代替进行到框490,并且数据储存设备确定在虚拟扩展高速缓存的扩展容量中的哪些现有高速缓存数据应该从虚拟扩展高速缓存中去除。该确定可以基于与逐出数据相关联的优先级信息和与在扩展容量中的现有高速缓存数据相关联的一个或更多个优先级信息的比较。例如,如果逐出数据具有比一个或更多个现有高速缓存数据的优先级高的优先级,那么该现有高速缓存数据可以被确定为被去除。在框492处,在框490中被确定为被去除的现有高速缓存数据从扩展容量中被去除(遵循类似于先前在框455处描述的过程),并且在框494处,框470的逐出数据在扩展容量中被分配,例如在通过在每框492的现有高速缓存数据消除释放的存储器位置处。在物理容量(每框430)中被分配的候选数据然后在虚拟扩展高速缓存的物理容量中被分配在可用的存储器位置处(例如,在固态储存器中),例如,在通过去除进入到扩展容量中的逐出数据释放的存储器位置处。然后操作继续回到框410,在该框中在控制器处接收新命令并且再次开始过程。
[0043] 图5示出根据本发明的一个实施例的被配置成与进入和退出休眠模式的主机系统连接的虚拟扩展高速缓存和映射系统的操作的流程图500。虚拟扩展高速缓存和映射系统可包括与先前讨论的那些相同或类似的特征,并且包括固态存储器的物理容量和储存器的虚拟容量。在框505处,数据管理操作开始。这可发生在提供功率给包括虚拟扩展高速缓存的数据储存设备、提供功率给连接到数据储存设备的主机系统、初始化数据储存设备和/或主机系统或以其它方式开始主机系统的任何休眠过程时。在框510处,在主机系统进入休眠模式时,数据储存设备的控制器接收来自主机系统的恢复数据。
[0044] 在框515处,在固态储存器的物理容量中一些或全部原始或现有数据从固态储存器的物理容量中逐出,这可包括数据的去除和到主储存器诸如磁储存器的数据的传输。在一个实施例中,逐出数据凭借存储一些映射信息被存储在高速缓存存储器的虚拟容量中,以指示数据属于虚拟扩展高速缓存。在框520处,在框510处从主机系统接收的恢复数据存储在固态储存器的物理容量中,例如在由于在框515中原始或现有数据的逐出使得可用的存储器位置处。然后,主机系统可以断电或以其它方式进入睡眠或休眠模式,其中经由保存在固态储存器的物理容量中的恢复数据保存其先前的状态。
[0045] 在框525处,在主机系统从睡眠或休眠模式退出时,数据储存设备的控制器从主机系统接收指示主机系统从休眠或睡眠模式退出的信号。在框530处,在使用在固态储存器的物理容量中的恢复数据以将主机系统返回到其保存状态之后,恢复数据从固态储存器的物理容量中被逐出。在框535处,从固态储存器的物理容量中逐出原始数据(见框515)被再次存储在固态储存器的物理容量中。由于此类原始数据在虚拟扩展高速缓存中的跟踪,在框535中的原始数据的储存可自动地发生,而不需要来自主机系统的指示原始数据将被返回到固态储存器的物理容量的任何进一步的信号或命令。在框540处,过程结束,例如,直到主机系统再次开始进入休眠状态的过程,在该时间处,图5的过程将重新开始。
[0046] 结论
[0047] 公开的数据储存设备和过程利用了扩展到给定存储器的实际的物理存储器容量(诸如,固态存储器)之外的虚拟存储器容量。从连接的外部设备诸如主机系统提供的或者由数据储存装置内部确定的优先级信息用于为作为数据储存设备的一部分而存储的数据的存储、传输或去除确定存储器位置。这能够例如,允许数据储存设备有效地管理存储在内部的数据,从而改善优先数据的访问速度。例如,能够容纳主机系统的快速休眠和恢复功能,而不需要数据储存设备提供仅在此类情况下使用的另外的固态存储器。
[0048] 其它变型形式
[0049] 本领域技术人员将理解,在一些实施例中,公开的技术能够施加于由储存系统执行的其它数据管理操作。例如,在磨损均衡、坏块管理等期间能够考虑数据的优先级。此外,附加的或另选的因素能够用于确定存储数据的优先级或与使用此类优先级结合以确定数据储存位置的管理。存储数据的优先级能够使用任何合适的因素的组合和将任何合适的功能施加于组合,例如平均、加权平均、最小二乘判定,以及其它线性和/或非线性函数来确定。在公开的过程中,例如图4和图5中所示的过程,所采取的实际步骤可以不同于附图中所示的步骤。另外,在一些实施例中,代替固态存储器,高速存储器可以是磁介质的一部分(例如,在磁盘外径上的高速缓存存储器区域,其中数据速率较高)。能够利用另外的系统部件,并且能够组合或省略公开的系统部件。根据实施例,可以去除以上明确描述的步骤中的某些,可以添加其它步骤,和/或可以在顺序上重新布置步骤。因此,本公开的范围旨在仅通过参考所附权利要求来限定。
[0050] 虽然已经描述了某些实施例,但这些实施例已仅以示例的方式提出,而并非旨在限制保护的范围。当然,本文所述的新型方法和系统可以以各种其它形式来实施。此外,可以对本文所述的方法和系统的形式的进行各种省略、替换和改变,而不脱离保护的精神。所附权利要求及其等同物旨在覆盖如将落入保护的范围和精神内的此类形式或修改。例如,本文公开的系统和方法能够施加于硬盘驱动器、固态驱动器等。此外,除此之外或另选地可以使用其它形式的储存器(例如,DRAM或SRAM、电池备份的易失性DRAM或SRAM设备、EPROM、EEPROM存储器等)。又如,在附图中所示的各种部件可以被实现为在处理器上的软件和/或固件、ASIC/FPGA,或专用硬件。另外,以上公开的具体实施例的特征和属性可以以不同方式组合,以形成另外的实施例,所有这些都落入本公开的范围内。虽然本公开提供了某些优选实施例和应用,但对本领域的普通技术人员来说显而易见的其它实施例,包括其中未提供本文所阐述的所有特征和优点的实施例,也在本公开的范围内。因此,本公开的范围旨在仅通过参考所附权利要求来限定。