混合驱动器的脏数据管理的制作方法

文档序号:9872409阅读:432来源:国知局
混合驱动器的脏数据管理的制作方法
【专利说明】
【背景技术】
[0001]计算机传统上具有存储设备,其上可存储数据例如程序指令和用户数据。当技术进步时,这些存储设备包括磁性软盘、磁性硬盘、固态驱动器(例如闪存驱动器)等。也发展了包括更大容量(但更不昂贵)的硬盘驱动器和更小容量(但更昂贵的)闪存驱动器的一些混合驱动器。虽然这样的混合驱动器可能是有益的,它们并不是没有它们的问题。一个这样的问题是,更小容量驱动器可累积以后被复制到更大容量驱动器的数据,且混合驱动器确定何时复制这样的数据依然很难。关于何时将数据复制到更大容量驱动器的差的确定可干扰由用户对设备的使用,导致用户受挫和设备的差性能。

【发明内容】

[0002]这个
【发明内容】
被提供来以简化的形式介绍一系列概念,其在下面在【具体实施方式】中被进一步描述。这个
【发明内容】
并不打算识别所主张的主题的关键特征或必要特征,也不打算用于限制所主张的主题的范围。
[0003]根据一个或多个方面,在计算设备处,得到在混合驱动器的一部分中的一个或多个优先级水平处的脏数据的量的指示。混合驱动器具有包括性能部分和基础部分的其中可存储数据的两个部分,且脏数据指存储在这两个部分的一个中但不在这两个部分的另一个中的数据。何时使在这两个部分的一个中的脏数据与这两个部分的另一个同步的指示被提供到混合驱动器,所述指示被确定以致减小对由用户对计算设备的使用的干扰和/或以致减小对计算设备的功率节省模式的干扰。
【附图说明】
[0004]相同的数字在全部附图中用于参考相似的特征。
[0005]图1图示根据一个或多个实施例的实施混合驱动器的脏数据管理的示例系统。
[0006]图2图示根据一个或多个实施例的示例驱动器访问系统。
[0007]图3图示根据一个或多个实施例的脏数据阈值的例子。
[0008]图4是图示根据一个或多个实施例的用于实施混合驱动器的脏数据管理的示例过程的流程图。
[0009]图5是图示根据一个或多个实施例的用于实施混合驱动器的脏数据管理的另一示例过程的流程图。
[0010]图6图示通常包括示例计算设备的示例系统,示例计算设备代表可实施本文所述的各种技术的一个或多个系统和/或设备。
【具体实施方式】
[0011]在本文公开了混合驱动器的脏数据管理。混合驱动器包括多个部分:性能部分(例如闪存设备)和基础部分(例如硬盘驱动器)。一般是计算设备的操作系统的部分的驱动器访问系统向混合驱动器发出输入/输出(I/o)命令以将数据存储到混合驱动器并从混合驱动器取回数据。一些数据存储在性能部分中,且这个数据可在不同的时间与基础部分同步(例如复制到基础部分)。驱动器访问系统向混合驱动器提供何时使性能部分中的数据与基础部分同步的指示。做出这些指示,使得由于同步而引起的对由用户对设备的使用和/或设备的功率节省模式的潜在干扰减小,如下面更详细讨论的那样。类似地,存储在基础部分中的一些数据可在不同的时间与性能部分同步(例如复制到性能部分)。驱动器访问系统向混合驱动器提供何时使基础部分中的数据与性能部分同步的指示。做出这些指示,使得由于同步而引起的对由用户对设备的使用和/或设备的功率节省模式的潜在干扰减小,如下面更详细讨论的那样。
[0012]图1图示根据一个或多个实施例的实施混合驱动器的脏数据管理的示例系统100。系统100包括混合驱动器102、操作系统104和一个或多个应用106。混合驱动器102可以用不同的方式实施,例如在计算设备中的固定驱动器、耦合到计算设备的可移除设备(例如经由通用串行总线(USB)连接)等。
[0013]在一个或多个实施例中,系统100在单个计算设备上实施。系统100可在各种不同类型的设备例如桌上型计算机、服务器计算机、膝上型或上网本计算机、平板或笔记本计算机、移动台、娱乐器具、通信地耦合到显示设备、电视机或其它显示设备的机顶盒、蜂窝或其它无线电话、游戏控制台、汽车计算机等上实施。因此,系统100可在范围从具有大量存储器和处理资源的全资源设备(例如个人计算机、游戏控制台等)到具有有限的存储器和/或处理资源的低资源设备(例如传统机顶盒、手持游戏控制台等)的计算设备上实施。
[0014]替代地,系统100可在多个不同的设备上实施。例如,操作系统104和应用106可在一个设备(例如如上讨论的各种不同类型的计算设备中的任一个)上实施,且混合驱动器102可被实施为单独的设备。当被单独地实施时,实施操作系统104的设备可以用不同的方式例如经由有线和/或无线连接(例如经由USB连接、无线USB连接等)、经由网络(例如经由局域网(LAN)、个人区域网络(PAN)等)等与混合驱动器102通信。
[0015]混合驱动器102包括两个部分:性能部分112和基础部分114。性能部分112是比基础部分114高的性能部分。部分112和114的性能可以指部分112和114的各种不同的特性,例如该部分的速度(例如信息可从部分被读取和/或写到部分的速率)和/或该部分的功率消耗(例如由当是活动的且能够被读取和/或写入时的部分消耗的功率的量)。性能部分112比基础部分114更快和/或具有更小的功率消耗,且因此被称为比基础部分114更高的性能部分。然而,性能部分112—般比基础部分114每存储单元(例如每千兆字节)花费更多。因此,基础部分114 一般具有比性能部分112更多的存储容量,也被称为基础部分114比性能部分112大或基础部分114的大小大于性能部分112的大小。
[0016]可以用不同的方式实施性能部分112和基础部分114。在一个或多个实施例中,性能部分112是固态设备(例如闪存设备),而基础部分114是旋转存储设备(例如磁性硬盘驱动器)。替代地,可以用其它方式实施部分112和114。例如,性能部分112可以是一种类型的固态设备(例如单层单元(SLC)闪存),而基础部分114可以是另一种类型的固态设备(例如多层单元(SLC)闪存)。作为另一例子,可使用各种其它类型的存储设备和技术(例如忆阻器存储器技术、相变存储器技术等)来实施部分112和114中的一个或两个。
[0017]虽然混合驱动器102包括多个部分,从操作系统104的观点看,混合驱动器102作为单个存储驱动器操作。混合驱动器102的大小(存储容量)是性能部分112和基础部分114中的较大者的大小,由于基础部分114的每存储单元的更低成本,较大者一般是基础部分114。混合驱动器102作为单个存储设备被呈现到操作系统104,操作系统104从混合驱动器102读取数据并将数据写到混合驱动器102,好像驱动器102是单个存储设备一样。然而,操作系统104知道混合驱动器102包括多个部分,且因此操作系统104向混合驱动器102提供关于各种数据的重要性的指示或暗示以帮助混合驱动器102确定哪个部分存储数据,如下面更详细讨论的那样。混合驱动器102可以用各种方式被呈现到操作系统104作为单个存储设备。例如,混合驱动器102可将自己呈现到操作系统104作为单个存储设备,混合驱动器102可以是硬件控制器呈现到操作系统104作为单个存储设备的不同设备,混合驱动器102可以是在操作系统104上运行的软件驱动器呈现到操作系统104作为单个存储设备的多个设备,等等。
[0018]操作系统104包括发出访问混合驱动器102的I/O命令一一包括从混合驱动器102读取数据的命令和将数据写到混合驱动器102的命令一一的I/O模块116。读和写数据的命令可来自操作系统104的其它模块以及应用106。如在本文使用的,从混合驱动器102读取和写到混合驱动器102的数据包括从混合驱动器102读取和/或写到混合驱动器102的任何位,该数据可包括用户数据或程序数据、程序指令、二进制代码等。
[0019]操作系统104将优先级水平分配到逻辑块地址(LBA)的组。LBA是存储有数据的在混合驱动器102上的位置的地址,且存储在那个位置处的数据也被称为LBA数据。存储在特定LBA处的数据的量可基于混合驱动器102被实施的方式而改变。被分配到特定LBA的优先级水平也被称为被分配到存储在那个特定LBA处的数据。因为优先级水平被分配到LBA的组,优先级水平也可被称为被分配到数据的组(其由LBA识别)。
[0020]操作系统104在多个LAB的组的粒度下将优先级分配到LBA(虽然操作系统104可以替代地在LBA的粒度下分配优先级)。使用多个LBA的组的粒度,LBA的组的大小可改变,例如是16千字节的数据被存储于的LBA的集合或64千字节的数据被存储于的LBA的集合。在一个或多个实施例中,每组LBA是地址的连续范围。替代地,一组可以用其它方式包括LBA,在这种情况下,在一组中的LBA可以不是地址的连续范围。基于操作系统104可得到的各种信息例如关于在这组中的LBA被访问的频率的信息、关于在对LBA的访问期间或之前出现的事件的信息等,来分配LBA的组的优先级水平。给LBA分配被分配到包括该LBA的组的优先级,且在该组中的所有LBA被分配相同的优先级。
[0021]对于发出到混合驱动器102的每个I/O命令,I/O模块116可包括与I/O命令一起的,被分配到由该I/O命令访问的LBA的优先级水平的指示。虽然I/O模块116可包括被分配到由I/O命令访问的LBA的优先级水平的指示,I/O模块116并不被强制包括优先级水平且在一些情况下可以不包括优先级水平。
[0022]被分配到LBA的优先级水平可由混合驱动器102维持以便于在混合驱动器102中的LBA的管理。优先级水平是存储在LBA处的数据的对于操作系统104的感知重要性的指示(也被称为LBA的感知重要性)。通常,数据的感知重要性指对数据的访问被期望的速度和/或数据被期望的频率。期望快速访问的数据(例如以提高计算设备启动或发起应用的速度)可被认为比不如此期望快速访问的数据具有更大的重要性。此外,被频繁访问的数据可被认为比不被频繁访问的数据具有更大的重要性。操作系统104预期混合驱动器102基于它们的优先级水平将LBA的数据存储在部分112和114中(也被称为存储LBA),使得在具有较高优先级水平的LBA处的数据存储在性能部分112中(除了或不是在基础部分114中)。然而,混合驱动器102并不是一定或被强制将在任何特定的优先级水平的LBA处的数据存储在性能部分112中,且操作系统104不需要且一般不知道在特定LBA处的数据被存储在部分112和114的哪个中。在特定LBA处的数据被存储在哪个部分中由混合驱动器102本身而不是操作系统104确定,虽然这个确定一般由混合驱动器102基于由I/O模块116指示的优先级水平来做出。
[0023]应注意,虽然混合驱动器102基于来自操作系统104的指示确定特定LBA数据被存储在部分112和114的哪个中,混合驱动器102可包括额外的一个或多个模块以确定特定LBA数据被存储在部分112和114的哪个中。例如,混合驱动器102本身可监控I/O访问并至少部分地基于这个监控来确定特定LBA数据被存储在部分112和114的哪个中。操作系统104不需要且一般不知道这样的额外模块或通过混合驱动器102进行监控,并继续如在本文讨论的那样向混合驱动器102提供优先级水平的指示,而不考虑任何这样的额外模块或混合驱动器102的监控。
[0024]也应注意,虽然混合驱动器102被示为具有两个部分112和114,这些部分中的每个可由多个组件构成。例如,性能部分112可由多个闪存芯片或单个闪存芯片构成。作为另一例子,基础部分114可由单个
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1