本发明专利技术描述了管理复合非易失性数据存数设备的方法。在一个实施例中,用于管理由快速非易失性存储装置诸如固态设备和慢速非易失性存储装置诸如传统磁性硬盘驱动器组成的复合存储设备的方法可包括:维护第一数据结构,该第一数据结构存储对快速非易失性存储设备诸如SSD设备中的一组单元中的每个单元进行的最近访问的实例;并且还维护第二数据结构,该第二数据结构指示慢速存储设备诸如HDD的单元是否已被访问至少预定的次数。在一个实施例中,第二数据结构可为布隆过滤器队列,其具有较低的所需存储器开销,但是相对于慢速存储设备中的单元或块最近是否已被引用不能保证总是提供正确的回答。
【技术实现步骤摘要】
【国外来华专利技术】用于复合非易失性存储设备的数据迁移的方法、系统和设备交叉引用本申请要求提交于2012年2月16日的临时申请序列号61/599,930的权益,并且该临时申请据此以引用方式并入。本申请还涉及同样提交于2012年2月16日的共同未决的申请序列号61/599,927,并且该申请据此以引用方式并入。
本专利技术涉及用于在复合非易失性存储器中管理数据存储的方法,该复合非易失性存储器是慢速存储器设备和快速存储器设备的复合体。
技术介绍
在复合磁盘系统中,可将大的、慢速且廉价的磁性硬盘驱动器与小的、快速但昂贵的存储设备诸如固态驱动器结合以形成逻辑卷。这可通过固态驱动器(SSD)来提供快速访问的优点,同时提供磁性硬盘驱动器(HDD)的大容量。用于管理此类复合磁盘的现有技术已使用了诸如最近最少使用的(LRU)算法或时钟算法或由SongJiang所描述的ClockPro算法。这些现有技术可改善在复合磁盘的快速部分与慢速部分之间的数据分配,但是它们往往不是空间高效的,因为它们需要大量的主存储器诸如大量的DRAM,以便实现这些技术中所使用的数据结构来用于在复合磁盘的两个部分之间分配数据。因此,需要改进的空间高效技术,其不需要同样多的存储器来对复合磁盘的两个或更多个组件之间分配或迁移数据中所使用的数据结构进行存储。
技术实现思路
在一个实施例中,用于管理对快速非易失性存储设备诸如固态设备和慢速非易失性存储设备诸如磁性硬盘驱动器进行访问的方法可包括:维护第一数据结构,该第一数据结构指示对快速非易失性存储设备诸如SSD设备中的一组单元中的每个单元进行的近期访问(recencyofaccess);并且还维护第二数据结构,该第二数据结构指示慢速存储设备诸如HDD设备中的单元或块最近是否已被引用(诸如最近已被引用过仅一次的单元或块)。在一个实施例中,第二数据结构可为具有低存储器开销的布隆过滤器队列。布隆过滤器队列相对于慢速存储设备中的单元或块最近是否已被引用而言大多数时候均是正确的,但是不能保证总是提供正确的回答。通过附图以及通过以下具体实施方式,本专利技术的其他特征将显而易见。以上概述不包括本专利技术所有方面的详尽列表。预期本专利技术包括可根据以上概述的各方面以及以下具体实施方式中所公开的那些的所有合适的组合来实践的所有系统和方法。附图说明本专利技术以举例的方式进行说明,并且不仅限于各个附图的图形,在附图中类似的标号指示类似的元件。图1示出了数据处理系统的例子,该数据处理系统可与本专利技术的实施例一起使用。图2示出了根据本专利技术的一个实施例的复合非易失性存储器的例子。图3示出了算法的数据结构的例子,该算法可称为时钟算法。图4示出了根据本专利技术的一个实施例的数据结构诸如虚影表(ghosttable)的例子,该数据结构可与本文所述的一种或多种方法一起使用。图5为流程图,其示出了根据本专利技术的至少一个实施例的方法。图6为流程图,其示出了根据本专利技术的至少一个实施例的方法。图7为流程图,其示出了根据本专利技术的一个实施例的方法。图8示出了布隆过滤器数据结构的例子,该数据结构可与本专利技术的至少一个实施例一起使用。图9为流程图,其示出了根据本专利技术的一个实施例的方法。图10为流程图,其示出了根据本专利技术的一个实施例的方法。具体实施方式本专利技术描述了改善复合非易失性数据存储设备的管理的方法。将参考以下讨论的细节来描述本专利技术的多个实施例和方面,并且附图将对所述多个实施例进行说明。以下说明书和附图对于本专利技术是示例性的,并且不应被理解为限制本专利技术。描述了众多的具体细节以提供对本专利技术的各种实施例的彻底理解。然而,在某些实例中,众所周知或常规的细节并未被描述,以便提供对本专利技术的实施例的简明论述。在本说明书中对“一个实施例”或“实施例”的引用是指结合该实施例描述的特定特征、结构或特性可以被包括在本专利技术的至少一个实施例中。在本说明书中的各个位置出现的短语“在一个实施例中”不一定都是指同一个实施例。在随后的附图中所描绘的过程由包括硬件(例如,电路系统、专用逻辑等等)、软件(如非暂态机器可读存储介质上的指令)、或两者的组合的处理逻辑来执行。虽然下文按照某些顺序操作来描述该过程,但应当理解,所描述的某些操作可以不同的顺序被执行。此外,某些操作可并行地执行而并非按顺序执行。图1示出了计算系统10的例子,其为数据处理系统的形式,其可与本文所述的一个或多个实施例一起使用。系统10可为台式计算机系统、或膝上型计算机系统、或智能电话、或一些其他电子设备或消费电子设备。如在本领域已知的,系统10可包括耦接到可选的高速缓存14的一个或多个微处理器或其他逻辑单元12。在一个实施例中,该高速缓存14可为SRAM。一个或多个微处理器12通过一条或多条总线18耦接到系统的其余部分,该一条或多条总线18将一个或多个微处理器12耦接到主存储器,该主存储器可为易失性RAM16。在一个实施例中,易失性RAM可为在计算机系统中所使用的常规的DRAM,其中该DRAM通过总线耦接到系统10中的其余组件。系统10还可包括一个或多个输入/输出控制器20,其通过一条或多条总线18将一个或多个输入/输出设备22耦接到系统的其余部分。系统10还包括非易失性存储器19,其可为复合磁盘,诸如固态驱动器形式的闪存存储器与常规的磁性硬盘驱动器的组合。图2示出了根据一个实施例的复合磁盘的例子。非易失性存储器19包括固态驱动器51和磁性硬盘驱动器52,其可被文件系统和操作系统当作单个逻辑卷或块设备,并且由一个或多个控制器控制,诸如包括固态驱动器控制器的控制器53和包括硬盘驱动器控制器的控制器54。一个或多个控制器通过总线18将图2中所示的复合驱动器耦接到系统10中的其余组件。应当理解,闪存存储器是快速非易失性存储设备的一种形式,并且其他快速存储设备可或者与慢速存储设备或其他非易失性存储设备一起使用,慢速存储设备可为常规的磁性硬盘驱动器,其他非易失性存储设备比该快速存储设备慢。应当理解,在本说明书中,对SSD或HDD的引用应被理解为是指快速非易失性存储设备和慢速非易失性存储设备,并且不应被理解为限于或特定于任何存储设备技术。图3示出了根据本专利技术的一个实施例的第一数据结构的例子,该第一数据结构与时钟算法一起使用。一个实施例中的时钟算法可类似于现有技术中使用的现有时钟算法。时钟算法可使用数据结构301,该数据结构301可为包括时钟指针304的循环队列,该指针304基于时钟算法指向队列中的特定位置。循环队列中的每个位置对应于快速非易失性存储器设备中的特定单元;诸如通过闪存存储器系统实现的固态驱动器。在某种意义上,第一数据结构类似于由文件系统维护的块分配位图,该块分配位图指示哪些块是空闲的以及哪些块是分配在硬盘驱动器上的(非空闲的)。例如,位置302对应于SSD上的单元0,并且在右边的下一个单元与SSD上的单元1对应,并且位置303与SSD上的另一个单元对应。每个位置存储指示SSD内的相应存储单元的状态的值。在一个实施例中,可使用两位值,使得值0可指示SSD上的特定单元中的一个或多个块或其他组件是空闲的,而位置中的值1可指示SSD上的特定单元最近还未被引用,并且值2可指示SSD中的该单元最近已被引用。值3可指示单元被固定到SSD,并且不能降级到HDD。作为另外一种选择,本文档来自技高网...
【技术保护点】
一种用于管理对多设备复合数据存储系统进行访问的方法,所述方法包括:管理第一数据结构,所述第一数据结构指示对第一数据存储设备上的一组单元中的每个单元进行的近期访问;以及管理第二数据结构,所述第二数据结构概率性地指示第二数据存储设备上的单元最近是否已被引用,其中所述第二数据结构为一个或多个布隆过滤器队列、或计数布隆过滤器、或空间高效的概率散列表。
【技术特征摘要】
【国外来华专利技术】2012.02.16 US 61/599,927;2012.02.16 US 61/599,930;1.一种用于管理对多设备复合数据存储系统进行访问的方法,所述方法包括:管理第一数据结构,所述第一数据结构存储第一非易失性数据存储设备上的第一组单元中的每个单元的数据,其中,对于所述第一组单元中的每个单元,所述第一数据结构包括指示对于该单元的最近访问的计数以及该单元的固定状态的值,其中所述固定状态指示每个单元是否要保持在第一非易失性数据存储设备上,并且其中,管理所述第一数据结构包括接收访问所述多设备复合数据存储系统上的第一逻辑块的请求,从第一非易失性数据存储设备上的第一组单元中的第一单元访问所述第一逻辑块,并且更新对于所述第一单元的最近访问的计数;以及管理第二数据结构,所述第二数据结构概率性地指示第二非易失性数据存储设备上的第二单元最近是否已被引用,其中所述第二数据结构为一个或多个布隆过滤器的队列,并且所述第二单元包括多个逻辑块,其中管理所述第二数据结构包括接收访问所述多设备复合数据存储系统上的第二逻辑块的请求,将表示所述第二非易失性数据存储设备上的第二单元的标识符的数据添加到所述第二数据结构,所述第二单元包含所述第二逻辑块,并且将所述第二单元迁移到所述第一非易失性数据存储设备,并且其中,将所述第二单元迁移到所述第一非易失性数据存储设备包括响应于访问所述第二逻辑块的请求将所述第二单元中包含的多个逻辑块作为单个单元移动。2.根据权利要求1所述的方法,其中将表示所述第二非易失性数据存储设备上的第二单元的标识符的数据添加到所述第二数据结构包括:计算所述第二单元的标识符的散列值;以及在由所述第二单元的标识符的所述散列值限定的索引处设置指示所述第二单元已被引用的值。3.根据权利要求2所述的方法,其中多个散列函数用于计算所述第二单元的标识符的多个散列值。4.根据权利要求3所述的方法,其中将所述第二单元从所述第二非易失性数据存储设备迁移到所述第一非易失性数据存储设备包括:在由每个散列值限定的索引处,在所述第二数据结构中搜索指示所述第二单元已被引用的所述值;以及如果所搜索的每个索引包含指示所述第二单元已被引用的所述值,则将所述第二单元从所述第二非易失性数据存储设备移动到所述第一非易失性数据存储设备。5.根据权利要求4所述的方法,其中,添加包含所请求的逻辑块的单元的标识符包括:计算包含所请求的逻辑块的单元的标识符的一组散列值;以及在由该组散列值中的散列值限定的每个索引处设置指示包含所请求的逻辑块的单元已被引用的值。6.一种用于管理对多设备复合数据存储设备进行访问的系统,所述系统包括:第一非易失性数据存储设备,其用于将数据存储在第一组单元中;第一数据结构,其用于指示对所述第一非易失性数据存储设备上的所述第一组单元中的每个单元进行的近期访问,其中,所述第一数据结构使用通过算法来进行维护的循环队列和指针,所述循环队列包括指示对于所述第一组单元中的每个单元的最近访问的计数以及固定状态的值,其中所述固定状态指示每个单元是否要保持在第一非易失性数据存储设备上;第二非易失性数据存储设备,其耦接到所述第一非易失性数据存储设备以将数据存储在第二组单元中;以及第二数据结构,其用于概率性地指示所述第二非易失性数据存储设备上的单...
【专利技术属性】
技术研发人员:P·马克,王文广,
申请(专利权)人:苹果公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。