按照使用来管理基于闪存的存储上的数据放置的制作方法

文档序号:6495517阅读:143来源:国知局
按照使用来管理基于闪存的存储上的数据放置的制作方法
【专利摘要】在此描述了存储放置系统,该存储放置系统使用操作系统的关于数据正在计算设备上被如何使用的知识来更有效地与基于闪存的存储设备进行通信并管理该基于闪存的存储设备。不被频繁使用的冷数据可以同热数据簇相区分并被放置已损耗区域中,而被频繁使用的热数据可以被保持为可容易地访问的。通过将热数据聚簇在一起而将冷数据聚簇在单独的区段中,系统能够更好地执行损耗均衡并延长闪存介质的有用性。数据在云或其他存储中的储存可以在将数据合并以写入块以前智能地将数据短时间地保持在某位置。因此,该系统充分利用操作系统对数据已被及将被如何使用的知识来将数据以有效的方式放置在基于闪存的存储设备中。
【专利说明】按照使用来管理基于闪存的存储上的数据放置
【背景技术】
[0001]近年来数据存储硬件发生改变,使得基于闪存的存储常见得多。诸如硬盘驱动器和光盘驱动器之类的旋转介质日益被不具有移动部件的基于闪存的存储替代,比如固态盘(SSD)驱动器。固态盘是稳健得多的,并且更加不易受对以前的介质有害的许多类型的环境条件的影响。例如,旋转介质特别易受震动的影响,其中震动例如发生在包含旋转介质的移动计算设备掉落时。基于闪存的存储通常还具有快得多的访问时间并且该存储的每个区域都可以以标准的等待时间来访问。旋转介质基于数据被存储在与中央心轴(在那里盘旋转得更快)多么接近而展示出不同的速度特性。另一方面,SSD具有固定的时间量来访问给定的存储器位置,并且不具有传统的查找时间(其是指移动旋转介质的读取头的时间)。
[0002]遗憾的是,SSD在它们被读取、写入以及尤其是擦除的程度方面引入了限制。典型的基于闪存的存储仅能一次擦除一个块,尽管块内的非重叠的位可以在任何时候被设置。在典型的计算系统中,操作系统将第一组数据写入到SSD页,并且如果用户或系统修改该数据,则操作系统要么将完整的页或一些数据重写到新位置、要么擦除整个块并重写该页的完整内容。SSD寿命是由块在驱动器的该区域不再能够维持数据完整性(或者至少不能被有效地擦除和重写)以前可被擦除的平均次数确定的。操作系统分别对块的重复擦除和重写仅仅加速了 SSD的终结。
[0003]已经引入若干技术来帮助SSD持续更长时间。例如,许多驱动器现在在内部执行损耗均衡(wear leveling),其中驱动器的固件以保持每个块被擦除大约相同次数的方式来选择存储数据的位置。这意味着,驱动器将不会因为驱动器的一个区域被过度使用而其他区域未被使用(这可能导致驱动器表现为随时间变得更小或者完全故障)而发生故障。另夕卜,TR頂命令曾被引入到高级技术附连(ATA)标准中,以允许操作系统向SSD通知哪个数据块不再处于使用中,使得SSD可以决定何时擦除。讽刺的是,所有类型的盘驱动器都不知道哪些块处于使用中。这是因为操作系统写入数据并且然后常常仅仅标上标记以指示其在文件系统级上被删除。由于驱动器通常不理解文件系统,因此驱动器不能将正被文件系统使用的块与不再处于使用中的块区分开,其中不再处于使用中的块区因数据已被标记为被文件系统删除。TRIM命令将该信息提供给驱动器。
[0004]尽管这些技术是有益的,但是它们仍然依靠驱动器在大多数情况下管理自己,而不提供驱动器与操作系统之间的充分通信以允许在驱动器之外作出的延长驱动器寿命的智能判定。

【发明内容】

[0005]在此描述了存储放置系统,该存储放置系统使用操作系统的关于数据正在计算设备上被如何使用的知识来更有效地与基于闪存的存储设备进行通信并管理该基于闪存的存储设备。损耗均衡是SSD中的一个问题,其专注于热和冷数据标识和放置技术以在延长SSD使用的闪存的寿命和改善性能方面扮演重要角色。不被频繁使用的冷数据可以同热数据簇相区分,并且随后被放置在闪存介质的已损耗区域中,而被频繁使用的热数据可以被保持为可容易地访问的。通过将热数据聚簇在一起而将冷数据聚簇在单独的区段中,系统能够更好地执行损耗均衡并延长闪存介质的有用性。数据在云或其他存储中的储存也可以被用于在将数据合并以写入块以前智能地将数据短时间地保持在某位置。热数据也可以存储得更近,而冷数据可以存储得更远。因此,存储放置系统充分利用操作系统对数据已被及将被如何使用的知识来将数据以有效的方式放置在基于闪存的存储设备中。
[0006]提供本概述是为了以简化的形式介绍将在以下【具体实施方式】中进一步描述的选择的概念。本
【发明内容】
并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
【专利附图】

【附图说明】
[0007]图1是示出一个实施例中的存储放置系统的各组件的框图。
[0008]图2是示出一个实施例中的存储放置系统将数据写入到基于闪存的存储设备上的所选位置的处理的流程图。
[0009]图3是示出一个实施例中的存储放置系统为要在基于闪存的存储设备上写入的数据选择放置位置的处理的流程图。
[0010]图4是示出一个实施例中的存储放置系统处理基于闪存的存储驱动器的潜在驱动或位置终结的处理的流程图。
【具体实施方式】
[0011]在此描述了存储放置系统,该存储放置系统使用操作系统的关于数据正在计算设备上被如何使用的知识来更有效地与基于闪存的存储设备进行通信并管理该基于闪存的存储设备。损耗均衡是SSD中的一个问题,其专注于热和冷数据标识和放置技术以在延长SSD使用的闪存的寿命和改善性能方面扮演重要角色。不被频繁使用的冷数据可以同热数据簇相区分,并且随后被放置在闪存介质的已损耗区域中,而被频繁使用的热数据可以被保持为可容易地访问的。通过将热数据聚簇在一起而将冷数据聚簇在单独的区段中,系统能够更好地执行损耗均衡并延长闪存介质的有用性。
[0012]固态驱动器(SSD)中的损耗均衡被用于重复利用存储器并延长基于闪存的存储设备的寿命。在没有损耗均衡的情况下,被高度写入的位置可能快速地用坏,而其他位置可能最后极少被使用。通过分析引用的位置,热和冷数据可以被标识出并按照策略被放置在存储器中以最小化损耗。一种方案是使用块聚簇,其利用位图来确定被使用和空闲的存储器。该系统还可以保留块已经被擦除的次数的计数。当擦除计数接近安全阈值时,越来越冷的数据可以被迁移到这些块。已被使用的簇可以被标记,并且如果该簇是可重复利用的,则该簇可以被用一个值标记,并且在其不可使用的情况下被用另一值标记。冷数据然后可以被停放在“温暖”区域。附加地,该系统提供了用于智能地到处移动数据的技术。将热数据聚簇在一起有助于使垃圾收集更容易并且帮助系统标识出存储器的簇以用于重新使用。数据在云或其他存储中的储存也可以被用于在将数据合并以写入块以前智能地将数据短时间地保持在某位置。热数据也可以存储在更短等待时间可访问的位置,而冷数据被存储在更长等待时间可访问的位置(例如不被频繁访问的冷数据可以存储在更远的数据中心中)。因此,存储放置系统充分利用操作系统对数据已被及将被如何使用的知识来将数据以有效的方式放置在基于闪存的存储设备中。
[0013]图1是示出一个实施例中的存储放置系统的各组件的框图。系统100包括基于闪存的存储设备110、数据鉴定组件120、数据监视组件130、数据放置组件140、存储通信组件150、辅助存储组件160以及故障管理组件170。这些组件中的每个都在此予以更详细讨论。
[0014]基于闪存的存储设备110是包括至少一些基于闪存的非易失性存储器的存储设备。基于闪存的存储器设备可以包括SSD、通用串行总线(USB)驱动器、构建到主板上的存储、构建到移动智能电话中的存储以及其他形式的存储。基于闪存的存储设备通常包括NAND或NOR闪存,但是可以包括其他形式的非易失性随机存取存储器(RAM)。基于闪存的存储设备的特征在于快速访问时间、基于分块的擦除、以及可被每页执行的有限的非重叠写入数量。不再能够被写入的闪存驱动被称为已经终结或发生故障。
[0015]数据鉴定组件120鉴定操作系统所接收的数据以表征该数据可能以何种程度被写入,其中被频繁写入的数据被称为热数据而被不频繁写入的数据被称为冷数据。数据还可以按照其被如何使用来鉴定,因为有时所期望的是,把被频繁读取的数据放置到与被不频繁读取的数据不同的位置。被非常不频繁读取的数据甚至可以是供移动到诸如光盘或基于云的存储设备之类的其他外部存储机构的良好候选者,以释放计算设备的本地驱动器上的空间。数据鉴定组件120可以访问由数据监视组件130采集的历史数据访问信息、以及由操作系统隐式或显式地提供的关于特定数据的目的的使用专用知识。例如,在文件分配表(FAT)文件系统中,文件分配表本身被非常频繁地写入(即每当其他数据被触及时),并且因此操作系统知道任何FAT格式的驱动器具有包含被非常频繁更新的数据的存储区域。对于其他文件/位置,数据鉴定组件120可以使用文件修改时间、文件类型、文件元数据、其他数据目的信息等等来确定数据可能是热写入数据还是冷写入数据(或热读取或冷读取),并且相应地通知数据放置组件140。
[0016]数据监视组件130监视操作系统的数据读取和写入并且存储数据的历史使用信息。数据监视组件130可以监视在不同条件下以及在不同时间哪些文件被使用、哪些文件常常被一起访问、特定数据文件有多么重要以及可如何恢复等等。数据监视组件130向数据鉴定组件120提供历史使用信息,使得数据鉴定组件120可以基于数据的写入和/或读取特性将数据鉴定为热的或冷的。数据监视组件130和系统100的其他组件可以在操作系统内、比如在文件系统层充当驱动程序或文件系统过滤器。
[0017]数据放置组件140从设备110可用的所有位置中确定要被写入到基于闪存的存储设备100的数据将被写入到的一个或多个位置。数据放置组件140使用由数据鉴定组件120确定的数据的鉴定来确定数据将被定位在何处。数据放置组件140还可以使用存储通信组件150来访问驱动器信息,比如损耗均衡或驱动器固件所跟踪的计数。数据放置组件140然后选择对于驱动器的寿命和对要被写入的数据合适的性能水平二者都有利的位置。例如,如果数据被鉴定为冷数据并且驱动器包括若干损耗非常大的块,则组件140可以选择将冷数据放置在损耗的块中,使得其他损耗更小的块可以被保留用于需要更频繁写入的数据。在一些情况下,当驱动器的块接近寿命结束时(即不能处理另外的写入),操作系统能够标识出恒定的只读数据,所述只读数据可以被最后一次写入到该位置并且不能再次移动(例如不频繁更新的操作系统文件)。对于较温暖的数据,组件140可以选择驱动器的损耗更小的区域或者甚至数据在频繁改变时可以驻留在的辅助存储位置,以在数据更加静态时被写入到基于闪存的设备110中。
[0018]存储通信组件150提供了系统100的其他组件与基于闪存的存储设备110之间的接口。存储通信组件150可以充分利用一个或多个操作系统应用编程接口(API)以用于访问存储设备,并且可以使用一个或多个协议,比如串行ATA (SATA)、并行ATA (PATA),USB等等。组件150还可以理解一个或多个由一个或多个设备支持的专有或特定协议或者固件,所述协议或固件允许系统100检索描述可用存储位置和基于闪存的存储设备110的布局的附加信息。
[0019]辅助存储组件160提供基于闪存的存储设备110外部的存储。辅助存储可以包括另一基于闪存的存储设备、硬盘驱动器、光盘驱动器、基于云的存储设备或其他用于存储数据的机构。在一些情况下,辅助存储可以具有与基于闪存的存储设备100不同、甚至互补的限制,使得辅助存储对于被低效地存储或者不必要地损耗基于闪存的存储设备110的某些数据而言是良好的选择。例如,操作系统可以选择将文件分配表或其他频繁改变的数据存储在辅助存储设备上,而不是频繁地写入到基于闪存的存储设备。作为另一示例,操作系统可以在不频繁使用的冷数据总是以较慢、但可接受的速率被请求的情况下选择使用基于云的存储设备来存储该冷数据,在那里,该数据可以被访问。
[0020]故障管理组件170在基于闪存的存储设备110接近其损耗极限时处理去往和来自该设备的数据的访问和/或移动。组件170可以帮助用户将数据移动到设备110的损耗更小的区域中或者使数据脱离设备110以避免数据丢失。例如,如果文件在七年内还未被访问过,则组件170可以建议用户允许系统100将该文件从损耗更小的位置中删除以允许其他更重要的数据被写入到高位置。类似地,组件170可以帮助用户定位容易被替换的文件(例如可能从光盘中重新安装的操作系统文件),所述文件可以被删除或移动以为处于设备100中的过度损耗的区域中的更难替换的数据文件让出空间。
[0021]在其上面实现了存储放置系统的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和指示设备)、输出设备(例如,显示设备),以及存储设备(例如,磁盘驱动器或其他非易失性存储介质)。存储器和存储设备是可以是编码有实现或启用该系统的计算机可执行指令(如软件)的计算机可读存储介质。此外,数据结构和消息结构可被存储或经由诸如通信链路上的信号等数据传输介质传送。可以使用各种通信链路,诸如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等。
[0022]该系统的实施例可以在各种操作环境中实现,这些操作环境包括个人计算机、月艮务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子产品、数码相机、网络PC、小型计算机、大型计算机、包括上述系统或设备等中任一种的分布式计算环境、机顶盒、片上系统(SOC)等。计算机系统可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子设备、数码相机等。
[0023]该系统可以在由一个或多个计算机或其他设备执行的诸如程序模块等计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。
[0024]图2是示出一个实施例中的存储放置系统将数据写入到基于闪存的存储设备上的所选位置的处理的流程图。[0025]在框210中开始,系统接收将数据写入到基于闪存的存储设备的请求。该请求可以源自如下的用户请求:该用户请求被软件应用接收到,并然后被操作系统接收到,其中存储放置系统被实现为文件系统驱动程序或其他组件以管理基于闪存的设备上的数据放置。所接收的请求可以包括关于数据的一些信息(比如在文件系统内的数据将被存储在的位置),并且可以提供关于数据所需要的目的、访问频率和访问类型(读取/写入)的一些信息。例如,如果数据正在被写入到文件系统内的保留用于临时文件的位置,则该系统可以预测该数据将在短时间内被频繁写入并然后被删除。类似地,如果文件是在“关闭时删除”标志被置位的情况下被打开的,则操作系统可以作出结论:该文件将被短暂使用并然后被删除。
[0026]在框220中继续,系统鉴定与要被写入到基于闪存的存储设备的数据相关联的访问频率。如果数据被频繁写入,则其被认为是热写入数据,如果数据被频繁读取,则其被认为是热读取数据;如果数据被不频繁地写入,则其被认为是冷写入数据;并且如果数据被不频繁地读取,则其被认为是冷读取数据。该系统将优选地将热数据写入到频繁写入不会导致问题(比如闪存块的终结)的位置、以及将冷数据写入到数据可以合适地驻留的位置(可能是对其他数据不合适的充分损耗的块)。该系统可以基于与数据相关联的文件系统位置的历史访问模式、基于与请求一起接收到的信息、基于公知操作系统实现信息等等来鉴定数据。
[0027]在框230中继续,该系统选择基于闪存的存储设备上的数据放置位置以用于要被写入的数据。该位置可以作为存储器地址或者该设备的地址空间内的位置的其他标识来提供。在一些情况下,系统可以向驱动器通知数据是热的、冷的还是中间的某个程度,并且允许驱动器为数据选择位置。无论如何,系统都向驱动器提供与选择数据放置相关的某个线索。数据放置组件可以将损耗的块标识为,如果有过的话,也将在长时间不再被写入的数据的合适位置,并且可以为要频繁写入的数据选择高度未使用的块。可替代或附加地,该系统可以选择单独的辅助存储设备上的位置以用于保持对于基于闪存的存储设备而言较不适合的数据。该系统可以同意将热数据存储在不一定会损耗设备的其他位置并且将冷数据存储在不一定会填充该设备的其他位置。再次将参考图3进一步描述此步骤。
[0028]在框240中继续,该系统将放置信息发送给基于闪存的存储设备,从而指示要被写入的数据的所选数据放置位置。该系统可以在数据被写入以前将信息作为用于将数据写入到驱动器的命令的参数、或者作为单独命令提供给设备,以向设备通知用于传入数据的所建议的位置。
[0029]在框250中继续,该系统将所请求的数据存储在基于闪存的存储设备上的所选数据放置位置处。另外,该系统还将关于该数据的元数据要么存储在基于闪存的存储设备上、要么存储在辅助存储设备上。随着时间,该系统可以选择移动数据或者在该数据附近写入其他数据。例如,该系统可以将频繁使用的其他数据与之前写入的数据一起写入到相邻位置,或者可以随着时间在初始所选位置由于频繁使用而变得损耗时将热数据移动到损耗较少的位置。在框250之后,这些步骤结束。
[0030]图3是示出一个实施例中的存储放置系统为要在基于闪存的存储设备上写入的数据选择放置位置的处理的流程图。
[0031]在框310中开始,系统接收如下信息:该信息鉴定要被写入到基于闪存的存储设备的数据的访问频率。例如,该信息可以指示数据是将被频繁还是不频繁地写入。该信息还可以指示数据的目的(例如临时文件、用户数据存储、可执行程序等等),从该目的中,系统可以导出或猜出数据的访问频率。
[0032]在判定框320中继续,如果系统确定数据将被频繁写入,则系统在框350处继续,否则系统在框330处继续。被频繁写入的数据被称为热数据并且将被放置在设备的损耗较少的位置,并且被不频繁写入的数据被称为冷数据并且可以放置在设备的损耗较多的位置。
[0033]在框330中继续,在确定数据将被不频繁写入以后,系统标识出基于闪存的存储设备的一个或多个损耗位置,其中不频繁写入的数据可以驻留在所述损耗位置以留出对其他数据可用的损耗较少的位置。驱动器和/或操作系统数据可以包括关于基于闪存的存储设备的每个位置已经被擦除多少次的信息,使得该系统可以选择如下位置:该位置接近终结或者以其他方式对其他类型的数据较不适合但对不频繁写入的数据足够适合。
[0034]在框340中继续,该系统选择所标识出的损耗更多的位置中的要写入该数据的位置。该系统可以通过将数据排序并且选择损耗最大的位置、或者通过提供要写入数据的位置的可接受的选择的其他试探法或算法来进行选择。在一些实施例中,该系统可以提供配置界面,通过该配置界面,管理员可以将系统在位置选择期间的行为改变为基于由管理员偏好的一些标准来进行选择。在框340之后,执行跳转到框370。
[0035]在框350中继续,在确定数据将被频繁写入以后,该系统定位与要被写入的数据相关的任何其他被频繁写入的数据。该系统可以提示一起放置频繁写入的数据,以产生更新数据的效率、允许整个块被一起擦除等等。该系统可以提示避免分割数据使得频繁和不频繁写入的数据被定位为给彼此接近或处于同一基于闪存的块上。这样做允许系统更清楚:当一个数据块准备好被擦除时,其他相邻数据也可将准备好被擦除或马上准备好被擦除,使得该系统可以恢复更多的设备空间。
[0036]在框360中继续,该系统选择其他被频繁写入的数据附近的损耗较小的位置来放置要被写入的数据。该驱动器和/或该操作系统数据可以包括关于基于闪存的存储设备的每个位置已经被写入多少次的信息,使得该系统可以选择新的、或者还未被过多地写入并适于频繁写入数据的位置。该系统可以对位置的损耗特性进行排序,并且选择磨损最少的位置或者可以优选地对接近其他被频繁写入的数据的那些位置更重地加权,以选择这些位置中的磨损较小的位置。在一些实施例中,管理员可以修改配置设定以指示系统如何作出选择。
[0037]在框370中继续,该系统报告所选择的放置,使得其他组件可以将数据写入到那里。例如,该系统可以输出选择数据放置的结果以作为对图2中概述的那些另外步骤的输入。在一些实施例中,该系统可以用作如下工具的一部分:该工具执行对数据放置的分析,并且在采取任何动作以前报告回用户。在这样的情况下,可以在用户界面中把输出提供给用户,使得用户可以评估数据如何被放置在设备上。在框370之后,这些步骤结束。
[0038]图4是示出一个实施例中的存储放置系统处理基于闪存的存储驱动器的潜在驱动或位置终结的处理的流程图。
[0039]在框410中开始,该系统检测到基于闪存的存储设备的一个或多个将发生故障的块。例如,该系统可以从驱动器或操作系统读取一个或多个擦除计数器,并且将每个位置的计数与设备的制造商建立的极限相比较。该系统将具有接近极限的计数的那些位置标识为将发生故障或将终结的块,并且可以试图重新定位与这些块相关联的数据。
[0040]在判定框420中继续,如果系统找到任何将发生故障的块,则系统在框430处继续,否则系统完成。该系统可以周期性地检查将发生故障的块(比如在操作系统的空闲处理中或者作为例程调度的维护任务)。
[0041]在框430中继续,该系统选择存储在基于闪存的存储设备上的一个或多个如下的数据项:所述数据项可以被移除以为存储在删除的将发生故障的块中的数据留出空间。要移除的数据可以包括长时间未被访问的数据、可容易恢复的数据(例如其存储在其他位置或者是不重要的)等等。在框440中继续,该系统任选地提示用户确定该用户是否批准系统删除所选数据项。在一些实施例中,该系统可以建议移除所述数据项并允许该用户将所述项烧录到光盘、将其复制到USB驱动器或基于云的存储设备等等。
[0042]在判定框450中继续,如果该系统从用户接收到删除所选数据项的批准,则该系统在框460继续,否则该系统完成。如果用户不批准删除所述项,则该系统仍然能够自动采取其他动作(未示出),比如将数据到处移动以使得更多的磨损更小的块可用。在框460中继续,该系统删除所选数据项,并且给将发生故障的块中的数据作标志以供迁移到由所删除的数据项腾出的一个或多个位置。该系统可以立即移动将发生故障的块中的数据或者可以等到数据下次被写入。对于一些类型的设备,存在已经被成功写入到某位置的数据将丢失的少量风险,并且该风险是在另一次尝试写入到该位置时引起的。在这样的情况下,该系统可以乐观地假定该数据将不被再次写入(并且因此不迁移该数据),但是如果该数据事实上被写入,则该系统在那时移动该数据。
[0043]在一些实施例中,存储放置系统为非基于闪存的存储设备选择数据的放置。尽管该系统有益于增加基于闪存的设备的寿命和效率,但是该系统还可用于改善其他介质上的数据存储。例如,光介质常常可以得益于合适的数据放置以及冷和热数据的管理。许多类型的光介质都是可重写固定次数的,并且合适的数据选择和放置可以允许光介质使用更长时期。例如,可以选择光盘驱动器存储不频繁改变的数据,并且需要重写的数据可以随时间在该驱动器上被循环使用以使扇区均匀损耗。
[0044]在一些实施例中,存储放置系统实现在基于闪存的存储设备的固件中。尽管在此所描述的技术涉及对数据使用的理解水平,尤其是涉及文件系统,但是设备的固件可以用常用文件系统的理解来编程,使得对于那些文件系统,该固件可以更有效地管理驱动器上的存储。在固件中放置该系统将允许改进:在较少地期望操作系统更新和修改的系统上的数据存储。在一些环境中,比如在一些智能电话中,固件作为操作系统的一部分实现在驱动程序中,因此可以对驱动程序作出改变以实现该系统,而无需更广泛的操作系统修改。
[0045]从前面的描述中可以看出,可以理解,此处描述的存储放置系统的特定实施例只是为了说明,但是,在不偏离本发明的精神和范围的情况下,可以进行各种修改。因此,本发明只受所附权利要求限制。
【权利要求】
1.一种用于将数据写入到基于闪存的存储设备上的所选位置的计算机实现的方法,该方法包括: 接收将数据写入到基于闪存的存储设备的请求; 鉴定与要被写入到所述基于闪存的存储设备的数据相关联的访问频率; 基于要被写入的数据的经鉴定的访问频率为所述数据选择所述基于闪存的存储设备上的数据放置位置; 将放置信息发送给所述基于闪存的存储设备,指示所述要被写入的数据的所选数据放置位置; 将所请求的数据存储在所述基于闪存的存储设备上的所选数据放置位置处; 其中前述步骤由至少一个处理器来执行。
2.如权利要求1所述的方法,其特征在于,接收所述请求包括由操作系统接收的请求,其中该方法被实现为文件系统驱动程序、由固件来实现、或者直接以硬件来实现以管理基于闪存的设备上的数据放置。
3.如权利要求1所述的方法,其特征在于,接收所述请求包括:接收关于所述要被写入的数据的描述所述数据的目的的附加信息。
4.如权利要求1所述的方法,其特征在于,接收所述请求包括:接收关于所述要被写入的数据的描述所述数据的目的的附加信息。
5.如权利要求1所述的方法,其特征在于,鉴定所述数据包括:确定所述数据将多频繁地被读取并且所述数据将多频繁地被写入。
6.如权利要求1所述的方法,其特征在于,鉴定所述数据包括:基于与所述数据相关联的文件系统位置的历史访问模式来鉴定所述数据。
7.如权利要求1所述的方法,其特征在于,鉴定所述数据包括:基于与所述请求一起接收的元信息来鉴定所述数据。
8.如权利要求1所述的方法,其特征在于,鉴定所述数据包括:基于公知操作系统实现信息来鉴定所述数据。
9.如权利要求1所述的方法,其特征在于,选择所述放置位置包括:向所述设备通知所述数据的所鉴定的访问频率并且允许所述设备为所述数据选择位置。
10.如权利要求1所述的方法,其特征在于,选择所述放置位置包括:将磨损的块标识为针对将不被再次频繁写入的数据的合适位置。
11.如权利要求1所述的方法,其特征在于,所选所述放置位置包括:选择单独的辅助存储设备上的位置以用于保持对于所述基于闪存的存储设备而言较不适合的数据。
12.如权利要求1所述的方法,其特征在于,发送放置信息包括:将所述信息作为用于将数据写入到所述驱动器的命令的参数提供给所述设备。
13.一种 用于按照使用来管理基于闪存的存储上的数据放置的计算机系统,该系统包括: 被配置成执行包含在以下组件内的软件指令的处理器和存储器; 基于闪存的存储设备,所述基于闪存的存储设备包括用于非易失性数据存储的至少一些基于闪存的存储器; 数据鉴定组件,所述数据鉴定组件按照数据可能被写入的频率来鉴定由操作系统接收的数据,其中被经常写入的数据被称为热数据而被不频繁写入的数据被称为冷数据; 数据监视组件,所述数据监视组件监视操作系统的数据读取和写入并且存储数据的历史使用信息; 数据放置组件,所述数据放置组件从所述设备可用的所有位置中确定要被写入到所述基于闪存的存储设备的数据将被写入到的一个或多个位置;以及 存储通信组件,所述存储通信组件提供所述系统的其他组件与所述基于闪存的存储设备之间的接口。
14.如权利要求13所述的系统,其特征在于,所述数据鉴定组件访问由所述数据监视组件采集的历史数据访问信息、以及由所述操作系统隐式或显式地提供的描述特定数据的目的的使用专用知识。
15.如权利要求13所述的系统,其特征在于,所述数据放置组件使用由所述数据鉴定组件确定的数据鉴定来确定数据应当被定位在何处,并且使用所述存储通信组件来访问由所述驱动器固件或硬件跟踪 的驱动器信息。
【文档编号】G06F9/06GK103597444SQ201280028028
【公开日】2014年2月19日 申请日期:2012年6月7日 优先权日:2011年6月9日
【发明者】A·卓哈, J·阿塞姆 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1