基于文件级启发式规则来执行缓存的方法和系统的制作方法

文档序号:6601426阅读:246来源:国知局
专利名称:基于文件级启发式规则来执行缓存的方法和系统的制作方法
技术领域
本发明涉及高速缓存的领域,并且更具体地说涉及基于文件级启发式规则来执行 缓存,但并不排除涉及其它内容。
背景技术
硬盘驱动器的性能已经显著地落后于中央处理单元的性能。同样地,到驱动器的 输入/输出(I/O)数据传输仍然是计算机系统的最大的瓶颈之一。即使更快的驱动器(例 如,固态驱动器)的出现减轻了该瓶颈,但是更快的驱动器的相对较高的成本还是阻碍了 大规模采用更快的驱动器作为主存储设备。为了减轻瓶颈的问题,非易失性存储器在系统中被用作硬盘驱动器的高速缓存。 例如,硬盘驱动器的一些磁盘扇区或逻辑块地址(LBA)可以被缓存到非易失性存储器中, 以使得中央处理器单元能够以比硬盘驱动器更快的访问速率来访问非易失性存储器中缓 存的数据。用于加速I/O数据传输的缓存方案主要基于LBA级访问模式或来自操作系统或用 户的、用于锁定(Pin)或解锁非易失性存储器中的LBA的具体指令。


根据以下对所述主题的详细描述,本发明的实施例的特征和有点将变得显而易 见,其中图1说明了根据本发明的一个实施例的、用于实现本文公开的方法的系统;图2说明了根据本发明的一个实施例的、用于实现本文公开的方法的系统结构;图3说明了根据本发明的一个实施例的操作系统中的模块的框图;图4说明了根据本发明的一个实施例的操作系统(OS)中的模块的框图;图5说明了根据本发明的一个实施例的将LBA映射到文件级信息的表;以及图6说明了根据本发明的一个实施例的用于执行高速缓存策略的步骤的流程图。
具体实施例方式在说明书中提及的本发明的“一个实施例”或“实施例”意味着结合实施例描述的 特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿说明书各处出现的短 语“在一个实施例中”并不必然都是指同一实施例。本发明的实施例提供了 一种用于至少基于一个或多个文件级启发式规则 (file-level heuristics)来执行高速缓存的方法和系统。在本发明的一个实施例中,高速 缓存策略引擎将来自持久性存储介质的数据缓存到高速缓存设备中。高速缓存策略引擎接 收存储介质的数据的I/O访问的文件级信息,并且至少基于所接收的文件级信息来将存储 介质的数据缓存到高速缓存设备中或将其逐出高速缓存设备。在本发明的一个实施例中, 通过使用关于与存储介质的数据相关联的文件和文件操作的信息,高速缓存策略引擎能够做出关于将从存储介质选择的数据缓存到高速缓存设备中还是将其逐出高速缓存设备的 更好的决定。可以达到更高的高速缓存命中率,并且提高了使用高速缓存策略引擎的系统 的性能。存储介质可以包括但并不限于固态驱动器、硬盘驱动器、磁带驱动器、光盘(⑶)、 软盘、通用串行总线闪速存储器驱动器或任何其它形式的非易失性计算机数据存储介质。 高速缓存设备包括,但并不限于非易失性介质、固态驱动器、NAND闪存、相变存储器或任何 其它形式的非易失性计算机数据存储介质。图1说明了根据本发明的一个实施例的用于实现本文公开的方法的系统100。系 统100包括但并不限于台式计算机、膝上型计算机、笔记本电脑、上网本计算机、个人数字 助(PDA)、服务器、工作站、蜂窝电话、移动计算设备、互联网装置或任何其它类型的计算设 备。在另一个实施例中,用于实现本文公开的方法的系统100可以是片上系统(S0C)。系统100包括存储器/图形控制器120和I/O控制器150。存储器/图形控制 器120通常提供存储器和I/O管理功能以及可以由处理器110访问或使用的多个通用和/ 或专用寄存器、计时器等。可以使用一个或多个处理器或者使用多核处理器来实现处理器 110。I/O控制器150具有根据本发明的实施例的高速缓存策略引擎152。高速缓存策略引 擎(CPE) 152便于在I/O控制器150、存储介质160和高速缓存设备170之间的I/O数据的 访问°存储器/图形控制器120执行允许处理器110访问主存储器140并与其进行通信 的功能,所述主存储器140包括易失性存储器142和/或非易失性存储器144。在本发明的 另一个实施例中,高速缓存策略引擎152可以被集成在存储器/图形控制器120而不是1/ 0控制器152中。易失性存储器142包括但并不限于同步动态随机存取存储器(SDRAM)、动 态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或其它类型的随机存 取存储器设备。非易失性存储器144包括但是并不限于NAND闪存存储器、R0M、EEPR0M和/ 或任何其它期望类型的存储器设备。主存储器140存储信息和由处理器110执行的指令。 主存储器140还可以在处理器110执行指令时存储临时变量或其它中间信息。在本发明的 另一个实施例中,存储器/图形控制器120是处理器110的一部分。存储器/图形控制器120连接到显示设备130,其包括但是并不限于液晶显示器 (LCD)、阴极射线管(CRT)显示器或任何其它形式的可视显示设备。I/O控制器150耦合到 存储介质160、高速缓存设备170、网络接口 180和键盘/鼠标190,但并不限于此。特别地, I/O控制器150执行允许处理器110与存储介质160、高速缓存设备170、网络接口 180和键 盘/鼠标190进行通信的功能。使用任何类型的公知的网络接口标准来实现网络接口 180,所述标准包括但并不 限于以太网接口、通用串行总线(USB)、快速外围部件互连(PCI)接口、无线接口和/或任何 其它合适类型的接口。无线接口根据电气和电子工程师协会(IEEE)无线标准族802. 11、家 庭插电AV(HPAV)、超宽带(UWB)、蓝牙、WiMax或任何形式的无线通信协议来操作,但并不限 于此。图2说明了根据本发明的一个实施例的用于实现本文公开的方法的系统结构 200。系统结构200示出了本发明的一个实施例,其中,一个或多个高速缓存设备和存储介 质可以连接到系统100。在系统结构200中,存储介质220经由通信链路连接到系统100。通信链路包括但并不限于高级技术附件(ATA)接口、串行ATA(SATA)接口和串行连接小型 计算机系统接口(SCSI) (SAS)和任何其它有线或无线通信链路。类似地,高速缓存设备230 经由通信链路连接到系统100,所述通信链路包括但并不限于SATA接口、SAS接口、PCI-E 接口和0NFI。在本发明的一个实施例中,在高速缓存设备230和系统100之间的通信链路 可以比在存储介质220和系统100之间的通信链路快。系统100还经由网络/桥210连接到存储介质240和高速缓存设备250。系统结 构200示出了存在将存储介质220、240和高速缓存设备230、250连接到系统100的多种方 法。在图1和2中示出的高速缓存设备和存储介质的结构并不意味着限制性的,相关领域 中的普通技术人员将意识到,可以在没有影响本发明的工作的情况下,使用其它结构。高速 缓存设备可以经由通信链路从内部连接到系统100或从外部连接到系统100。例如,在本 发明的一个实施例中,高速缓存设备170可以经由通信链路从平台100的内部连接到CPE 152,所述通信链路包括但并不限于PCI-E接口、SATA接口和0NFI。在另一个示例中,在本 发明的一个实施例中,高速缓存设备170可以经由USB通信链路从平台100的外部连接。图3说明了根据本发明的一个实施例的操作系统(OS)中的模块的框图300。OS 具有应用程序层310和文件系统320。应用程序层310能够访问由文件系统320组织的文 件。文件系统320具有文件系统过滤驱动器(FFD) 322,用于监视存储介质160的数据的1/ 0访问。FFD 322监视文件级信息,其包括但并不限于访问的数据的LBA、访问的文件的文件 类型、访问的文件的文件名称、访问的文件的文件大小、在访问的文件上执行的文件操作、 来自文件创建操作的属性的用户或应用程序意图以及可用作高速缓存启发式规则的任何 其它文件级信息。OS还具有存储驱动器堆栈330和块驱动器340。块驱动器具有高速缓存策略引擎 344,其便于存储介质160和高速缓存设备170的访问。CPE 344从FFD 322接收存储介质 160的数据的I/O访问的文件级信息,并且至少基于一个或多个文件级启发式规则来将存 储介质160的数据缓存在高速缓存设备170中,或将其逐出高速缓存设备170。利用文件级 信息的知识,CPE 344可以针对是将存储介质160的数据缓存到高速缓存设备170还是将 其逐出高速缓存设备170做出更好的决定。在本发明的一个实施例中,CPE 344将高速缓存设备170划分成多个高速缓存行。 每个高速缓存行存储存储介质160的一个或多个LBA。在本发明的另一个实施例中,没有以 LBA来安排存储介质160的数据,并且可以使用替代的寻址方案。CPE 344的每个高速缓存 行存储替代寻址方案的一个或多个单元。在本发明的另一个实施例中,CPE 344使用插入或 逐出决定来确定是将文件移动到高速缓存设备170还是将文件移出高速缓存设备170。相 关领域中的普通技术人员将容易地理解,可以由CPE 344使用除了 LBA方案之外的替代寻 址方案,以将来自高速缓存设备170的数据缓存或逐出,并且可以在不影响本发明的工作 的情况下使用替代的寻址方案。在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括 当与数据相关联的文件被删除时,从高速缓存设备170中逐出存储介质160的数据。例如, 在本发明的一个实施例中,如果在存储介质160中存储的文件被缓存在高速缓存设备170 的一个或多个高速缓存行中,当FFD 332检测到文件被OS删除时,FFD 332向CPE 344通 知 事件。CPE 344基于高速缓存策略来就是否将与该文件相关联的数据逐出高速缓存设备170做出决定。文件删除发生在以下情况中,其包括但并不限于将文件移动到微软 Windows OS的回收站、永久删除文件或使得文件被临时或永久删除的任何其它事件。在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括 当与数据相关联的文件被从一个LBA位置移动到另一个LBA位置时,在高速缓存设备170 中更新存储介质160的缓存数据的LBA信息。例如,在本发明的一个实施例中,高速缓存设 备170的每一个高速缓存行包含其缓存的数据的LBA信息。当在存储介质160的整理碎片 操作期间,由OS将文件从存储介质160中的一个LBA位置移动到另一个LBA位置时,FFD 332通知CPE 344更新高速缓存设备170中的、存储与文件相关联的数据的相应的高速缓存 行中的LBA信息。在另一个示例中,当对文件执行微小的更新时,也可以由OS将文件从存 储介质160中的一个LBA位置移动到另一个LBA位置。FFD 332也通知CPE 344更新高速 缓存设备170中的、存储与文件相关联的数据的相应的高速缓存行中的LBA信息。通过更 新LBA信息,避免了需要将存储介质160的无效或旧的LBA保持在高速缓存设备170中或 逐出高速缓存设备170。当将文件从存储介质160中的一个LBA位置移动到另一个LBA位 置时,也不需要将新的LBA再次插入到高速缓存设备170中。在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括 当在移动文件之后,与数据相关联的文件的元数据被更新时,更新存储介质160的缓存数 据的数据锁定信息(data pinning information)。例如,在本发明的一个实施例中,可以由 系统的用户或OS来直接地或间接地指定一个或多个文件放置在高速缓存设备170中。所 述一个或多个文件被称为锁定的文件(Pinned files),并且当由OS移动锁定的文件时仅 导致更新锁定的文件的元数据时,CPE 344更新数据锁定信息以确保与锁定的文件对应的 数据仍然在高速缓存设备170中锁定。此外,CPE 344还可以更新高速缓存设备170中的、 存储与锁定的文件相关联的数据的各个高速缓存行中的LBA信息。在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括 在高速缓存设备170中标记与一文件相关联的缓存数据,以当访问信息指示了文件被复制 时,允许其它文件引用或指向所述缓存数据。例如,在本发明的一个实施例中,当一文件被 缓存在高速缓存设备170中时,CPE 344标记与该文件相关联的缓存数据,以使得多个文件 或LBA可以指向或引用所述缓存数据。通过这样做,可以加速关于文件的所有副本的数据 1/0,而无需在高速缓存设备170中多次存储相同数据。在本发明的一个实施例中,可以通 过设置与缓存数据相关联的寄存器位或通过指示缓存数据可以由多个文件或LBA来引用 的任何其它方法,来标记缓存数据。在本发明的一个实施例中,FFD 322向CPE 344提供0S的虚拟存储器页文件的扇 区映射,以允许页文件的高速缓存插入。在本发明的一个实施例中,CPE 344的高速缓存策 略或文件级启发式规则包括缓存映射0S的虚拟存储器页文件的一个或多个LBA。FFD 322 还可以向CPE 344发送数据1/0访问的进程识别信息。在本发明的一个实施例中,CPE 344 的高速缓存策略或文件级启发式规则包括当进程识别信息指示启动数据1/0访问的应用 程序是挖掘应用程序时,不对与文件相关联的数据进行缓存。挖掘应用程序包括但并不限 于病毒扫描应用程序、数据备份应用程序、数据搜索应用程序或访问数据而不重用该数据 的任何应用程序。例如,在本发明的一个实施例中,当由0S来访问文件时,FFD 320可以检 查文件是否在被挖掘应用程序访问。如果是的话,那么不在高速缓存设备170中缓存与文件相关联的数据。在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括 当与数据相关联的文件被具有相同文件名的另一个文件替换时,逐出存储介质160的数 据。例如,在一个实施例中,当文件被复制到包含具有同一名称的文件的目的地目录时,目 的地目录中的文件被替换并且从高速缓存设备170逐出与隐式删除的文件相关联的数据。 与被复制的文件相关联的数据不被插入到高速缓存设备170中。在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括 当与数据相关联的文件被从缓存存储设备移动到非缓存存储设备时,将存储介质160中的 数据逐出高速缓存设备170。例如,在一个实施例中,系统100具有两个存储介质,并且高速 缓存设备170仅缓存所述存储介质中的一个。由高速缓存设备170缓存的存储介质被称为 缓存存储设备,不由高速缓存设备170缓存的存储介质被称为非缓存存储设备。当缓存存 储设备中存储的文件被缓存在高速缓存设备170中时,如果文件被从缓存存储设备移动到 非缓存存储设备,那么CPE 344逐出与该文件相关联的数据。在另一个示例中,在本发明的 一个实施例中,除了用作高速缓存设备以外,高速缓存设备还可以被用作存储介质。当高速 缓存设备170中的文件被从高速缓存设备170移动到存储介质160时,CPE 344逐出与该 文件相关联的数据。在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括 当文件被从缓存存储设备复制到非缓存存储设备时,降低与文件相关联的数据的优先级。 例如,在一个实施例中,当在缓存存储设备中存储的文件被缓存到高速缓存设备170中时, 如果文件被从缓存存储设备复制到非缓存存储设备,那么CPE 344在高速缓存设备170中 降低与文件相关联的数据的优先级。在另一个示例中,在一个实施例中,如果缓存存储设备 中存储的文件不在高速缓存设备170中,当文件被从缓存存储设备移动到非缓存存储设备 时,CPE 344不在高速缓存设备170中插入或缓存数据。图4说明了根据本发明的一个实施例的OS中的模块的框图400。框图400示出了 CPE 422可以是文件系统420的一部分。例如,在本发明的一个实施例中,CPE是FFD的一 部分,并且CPE 422能够获得存储介质160的数据的I/O访问的文件级信息,并且能够至少 基于一个或多个文件级启发式规则来将存储介质160的数据缓存在高速缓存设备170中或 将其逐出高速缓存设备170。在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括 当为了读取访问而打开文件时,缓存与文件相关联的数据。例如,在本发明的一个实施例 中,当仅具有读取访问许可的文件被打开时,如果在高速缓存设备170中存在可用的存储 空间,那么从存储介质160中预取与文件相关联的数据,并且将其缓存在高速缓存设备170 中。在本发明的另一个实施例中,可以标记预取的数据以指示预取的数据近期没有被访问。在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括 当为了重写而打开文件时,逐出与该文件相关联的数据。在本发明的另一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括当为了读取访问而打开文件并且文件的快 速I/O标志被设置时,逐出与所述文件相关联的数据。例如,在本发明的一个实施例中,OS 可以为缓存在系统高速缓存中的数据设置快速I/O标志,并且在用户缓冲器和系统高速缓 存之间直接传输所述数据,从而绕过文件系统420和存储驱动器堆栈430。当为了由在系统
9上执行的OS来进行读取访问而打开文件并且该文件的快速I/O标志被设置时,CPE 422逐 出与该文件相关联的数据。当文件的快速I/O标志被设置时,与该文件相关联的数据被OS 缓存到系统高速缓存中,并且提高了文件的访问速率。因此,在本发明的一个实施例中,由 于文件的访问速率已经提高,所以CPE 422不对与该文件相关联的数据进行缓存。OS可以结合提前读取操作来执行快速I/O读取操作。例如,当OS执行快速I/O读 取操作时,OS检查是否需要执行提前读取操作。如果需要提前读取操作,那么OS在快速1/ 0读取操作期间发出提前读取命令。在本发明的一个实施例中,CPE 422的高速缓存策略或 文件级启发式规则包括当OS在快速I/O读取操作期间发出提前读取命令时,缓存与提前 读取命令相关联的数据。通过缓存与提前读取命令相关联的数据,能够进一步改进快速1/ 0操作。在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括 当文件被关闭时,逐出与文件相关联的数据。在本发明的另一个实施例中,与文件相关联 的数据可以被降低优先级而保留在高速缓存设备170中,因为在没有中间文件操作以打开 文件的情况下,不太可能再次使用所述数据。在本发明的一个实施例中,CPE 422的高速 缓存策略或文件级启发式规则包括如果文件是媒体流文件,那么不缓存与该文件相关联 的数据。例如,在本发明的一个实施例中,当0S对流媒体文件执行顺序读取操作时,CPE 422不在高速缓存设备170中缓存流媒体文件。流媒体文件是以如下所述的格式工作的文 件,所述格式包括但并不限于音频视频交错(AVI)格式、运动图像专家组(MPEG) 1音频层 3 (MP3)格式、MP4格式、QuickTime格式和任何其它流媒体格式。在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括 当文件的大小比阈值大时,逐出与文件相关联的数据。例如,在本发明的一个实施例中,当 CPE 422接收到关于文件的大小的信息时,它基于阈值来决定将与文件相关联的数据缓存 在高速缓存设备170中。在一个实施例中,CPE 422设置阈值为小的或中等的值,以使得大 文件可以留在存储介质160中,并且允许更多的小文件留在高速缓存设备170中。可以在 后台或对文件读取访问操作来进行该操作。0S可以根据优先级方案来标记与文件相关联的数据。在本发明的一个实施例中, CPE 422的高速缓存策略或文件级启发式规则包括当文件被标记为低优先级时,不缓存 与该文件相关联的数据。在其它实施例中,如果标记为低优先级的文件已经被缓存在高速 缓存设备170中,那么CPE 422降低与该文件相关联的数据的优先级。在本发明的一个实 施例中,CPE 422的高速缓存策略或文件级启发式规则包括当将由标记为高优先级的应 用程序来访问文件时,缓存与该文件相关联的数据。例如,在本发明的一个实施例中,当应 用程序被标记为高优先级时,CPE 422检查要执行的任何应用程序的进程标识是否匹配所 述应用程序。如果匹配,那么由该应用程序访问的数据被缓存在高速缓存设备170中。可以由CPE 422来使用关于所访问的文件的文件类型或文件扩展名的信息,以定 义包括列表和排除列表。包括列表包括将包括在高速缓存设备170中的一个或多个文件 类型或扩展名的文件,排除列表包括在高速缓存设备170中排除的一个或多个文件类型 或扩展名的文件。在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则 包括当文件的文件类型或文件扩展名属于包括列表时,缓存与该文件相关联的数据,当文 件的文件类型或文件扩展名属于排除列表时,避免缓存或逐出与该文件相关联的数据。例如,在一个实施例中,包括列表可以包括具有文件扩展名“DOC”的所有文件。此外,在本发 明的另一个实施例中,可以结合包括或排除列表增加额外的规则。例如,规则可以指定可 执行的文件类型的文件将被包括在包括列表中并且文件大小不应大于256千字节。可以由FFD 322、CPE 344和422或由系统中的另一个部件来执行本文描述的高速 缓存策略或文件级启发式规则。尽管在图1中CPE被显示为I/O控制器的一部分、在图3中 被显示为块驱动器340的一部分,并且在图4中显示为文件系统420的一部分,但这不意味 着是限制性的。高速缓存策略引擎可以是系统的另一个部件的一部分,或者是应用程序的 一部分,或者是另一个过滤驱动器,或者可以被包括作为系统上的硬件/固件的一部分。本 文描述的高速缓存策略或文件级启发式规则并不意味着是限制性的,相关领域中的普通技 术人员将容易理解,还可以在不影响本发明的工作的情况下,使用其它文件级启发式规则。 在本发明的其它实施例中,CPE可以结合文件级启发式规则来使用其它启发式规则,以便更 好地决定将缓存在高速缓存设备中或从高速缓存设备逐出的存储介质的数据选择。其它启 发式规则包括但并不限于最近最少触碰的数据、最先插入的数据和最后插入的数据。图5说明了根据本发明的一个实施例的将LBA映射到文件级信息的表500。在本 发明的一个实施例中,FFD 322接收每个I/O数据访问的文件级信息。表500示出了 LBA 510与文件名称520、文件大小530、文件类型540和文件操作550之间的映射。在本发明 的一个实施例中,CPE 344使用表500来确定要执行的适当的高速缓存策略动作。FFD 322 维护表500,并且CPE 344从表500中查询或提取文件级信息,以基于文件级信息中的一项 或多项来进行其缓存操作。在本发明的另一个实施例中,CPE 422在没有FFD 322帮助的情况下维护表500, 即,CPE是FFD 322的一部分。例如,在本发明的一个实施例中,根据一个文件级启发式规 则,CPE 422的高速缓存策略确定文件music. mp3是流媒体文件,因此不在高速缓存设备 170中缓存文件music. mp3。可以在平台的主存储器140、高速缓存设备170或CPE能够访 问的任何其它位置中维护表500。表500中所示的文件级信息并不意味着是限制性的,表 500可以维护或多或少的文件级信息,以允许CPE做出更好的决定。图6说明了根据本发明的一个实施例的用于执行高速缓存策略的步骤的流程图 600。在步骤610中,存储介质160的数据的I/O访问的文件级信息被接收。在步骤620,基 于接收的文件级信息来确定适当的高速缓存策略动作。在步骤630,执行适当的动作。本文 描述的高速缓存策略启发式规则并不意味着是限制性的,相关领域中的普通技术人员可以 在不影响本发明的工作的情况下,至少基于文件级信息来应用其它高速缓存策略启发式规 则。尽管描述了所公开的主题的实施例的例子,但是相关领域中的普通技术人员将容 易地理解,可以替代地使用实现所公开的主题的多种其它方法。在前述描述中,已经描述了 所公开的主题的各个方面。为了解释的目的,阐明了具体的数量、系统和配置,以便于透彻 理解所述主题。但是,对于受益于该公开的相关领域中的技术人员来说,可以在没有这些具 体的细节的情况下实现本主题是显而易见的。在其它实例中,公知的特征、部件或模块被省 略、简化、组合或分离,以便不模糊所公开的主题。本文使用的术语“可操作的”意味着当设备或系统处于断电的状态时,设备、系 统、协议等能够操作或适合操作以用于期望的功能。可以用硬件、固件、软件或其组合来实现所公开的主题的各个实施例,并且可以参考或结合程序代码来描述其,所述程序代码例 如指令、函数、过程、数据结构、逻辑、应用程序、用于设计的仿真、模拟和制造的设计表示或 格式,当由机器访问它们时,导致机器执行任务、定义抽象数据类型或低级硬件环境、或产 生结果。可以使用在一个或多个计算设备(例如,通用计算机或计算设备)上存储并执行 的代码和数据来实现图中所示的技术。这种计算设备使用机器可读介质(例如机器可读存 储介质,例如磁盘,光盘,随机存取存储器,只读存储器,闪速存储器设备,相变存储器)和 机器可读通信介质(例如,电子的、光的、声的或其它形式的传播信号-例如载波、红外信 号、数字信号等)来对代码和数据进行存储和传送(在内部以及通过网络与其它计算设备 传送)。虽然参考示例性实施例描述了所公开的主题,但是该描述并非旨在以限制性的含 义来解释。对于公开主题所属领域中的技术人员来说显而易见的示例性的实施例的各种变 型以及本主题的其它实施例被认为在所公开的主题的范围内。
1权利要求
一种系统,包括存储介质,用于存储数据;NAND闪存,用于对所述存储介质的数据进行缓存;以及高速缓存策略引擎,用于至少基于与所述数据相关联的一个或多个文件级启发式规则,将所述存储介质的数据缓存在所述NAND闪存中或逐出所述存储介质的数据。
2.根据权利要求1所述的系统,其中,所述NAND闪存具有比所述存储介质更快的访问 速度。
3.根据权利要求1所述的系统,其中,所述高速缓存策略引擎是块驱动器的一部分,并 且其中,所述块驱动器便于由所述系统来访问所述NAND闪存和所述存储介质。
4.根据权利要求1所述的系统,其中,所述一个或多个文件级启发式规则包括当与所 述数据相关联的文件被在所述系统上执行的操作系统(OS)删除时,逐出所述数据。
5.根据权利要求1所述的系统,其中,所述高速缓存策略引擎还用于当由在所述系统 上执行的操作系统(OS)将与所述存储介质的缓存数据相关联的文件从一个LBA位置移动 到另一个LBA位置时,更新所述存储介质的缓存数据的逻辑块地址(LBA)信息,而不将所述 数据再次写入所述存储介质。
6.根据权利要求1所述的系统,其中,所述一个或多个文件级启发式规则包括当与所 述数据相关联的文件被在所述系统上执行的操作系统(OS)打开时,缓存所述数据的至少 一部分。
7.根据权利要求1所述的系统,其中,所述一个或多个文件级启发式规则包括当与所 述数据相关联的文件是流媒体文件时,不缓存所述数据。
8.根据权利要求1所述的系统,其中,所述一个或多个文件级启发式规则包括当与所 述数据相关联的文件的大小比阈值大时,不缓存所述数据、逐出所述数据、降低所述数据的 优先级或者增加所述数据的寿命。
9.一种方法,包括接收在存储介质中存储的数据的输入/输出(I/O)访问的文件级信息;以及至少基于所述接收的文件级信息来将所述存储介质中存储的数据缓存到高速缓存设 备中或从所述高速缓存设备中逐出。
10.根据权利要求9所述的方法,其中,将所述存储介质中存储的数据缓存到所述高 速缓存设备或从所述高速缓存设备逐出包括将所述存储介质的一个或多个逻辑块地址 (LBA)中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出。
11.根据权利要求9所述的方法,其中,所述文件级信息包括文件删除、文件复制、文 件打开、文件读取、文件大小、文件类型和文件移动信息中的至少一个。
12.根据权利要求9所述的方法,其中,将所述存储介质中存储的数据缓存到所述高速 缓存设备中或从所述高速缓存设备中逐出包括当所述数据的文件类型或文件扩展名属于 包括列表时,缓存所述数据,并且当所述数据的文件类型属于排除列表时,不缓存所述数据 或逐出所述数据。
13.根据权利要求9所述的方法,其中,所述文件级信息包括操作系统(OS)对所述数据 的访问优先级,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从 所述高速缓存设备中逐出包括当所述数据的访问优先级较低时,不缓存所述数据或逐出所述数据,并且当所述数据的访问优先级较高时,缓存所述数据。
14.根据权利要求9所述的方法,其中,所述文件级信息包括执行所述数据的I/O访问 的应用程序的信息,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中 或从所述高速缓存设备中逐出包括当所述应用程序是挖掘应用程序时,不缓存所述数据。
15.根据权利要求10所述的方法,其中,所述存储介质的一个或多个LBA被映射到虚拟 存储器页文件,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从 所述高速缓存设备中逐出包括将映射到所述虚拟存储器页文件的一个或多个LBA缓存到 所述高速缓存设备。
16.一种计算机可读存储介质,其上存储有指令,当所述指令被执行时,使得处理器执 行以下方法接收存储介质中存储的数据的输入/输出(I/O)访问的文件级信息;以及至少基于所述接收的文件级信息来将所述存储介质中存储的数据缓存到高速缓存设 备中或从所述高速缓存设备中逐出。
17.根据权利要求16所述的介质,其中,将所述存储介质中存储的数据缓存到所述高 速缓存设备中或从所述高速缓存设备中逐出的所述处理器将所述存储介质的一个或多个 逻辑块地址(LBA)中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐 出ο
18.根据权利要求16所述的介质,其中,所述文件级信息包括文件删除、文件复制、文 件打开、文件读取、文件大小、文件类型和文件移动信息中的至少一个。
19.根据权利要求17所述的介质,其中,所述处理器还用于当与所述存储介质的缓存 数据相关联的文件被在所述处理器上执行的操作系统(OS)移动时,更新所述存储介质的 缓存数据的LBA信息。
20.根据权利要求17所述的介质,其中,所述处理器还用于当与所述存储介质的缓存 数据相关联的文件被在所述处理器上执行的操作系统(OS)从一个LBA移动到另一个LBA 时,更新所述存储介质的缓存数据的LBA信息。
21.根据权利要求16所述的介质,其中,所述文件级信息包括所述数据的访问信息,并 且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备 中逐出的处理器用于预取所述存储介质中存储的所述数据;以及当所述访问信息指示为了读取操作而打开与所述数据相关联的文件时,将所述存储介 质中存储的数据缓存到所述高速缓存设备中。
22.根据权利要求16所述的介质,其中,所述文件级信息包括所述数据的访问信息,并 且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备 中逐出的处理器用于当所述访问信息指示为了重写操作而打开与所述数据相关联的文件 时,逐出所述数据。
23.一种装置,包括高速缓存策略引擎,用于至少基于与存储介质中存储的数据相关联的一个或多个文件 级启发式规则来将所述数据缓存到NAND闪存中或从NAND闪存中逐出。
24.根据权利要求23所述的装置,其中,所述高速缓存策略引擎是文件系统过滤驱动器的一部分,并且其中,所述高速缓存策略引擎便于由所述系统来访问所述NAND闪存和所 述存储介质。
25.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述 数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述NAND闪存中或从所 述NAND闪存中逐出的所述高速缓存策略引擎用于当所述访问信息指示与所述数据相关 联的文件被关闭时,逐出所述数据。
26.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述 数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述NAND闪存或从所述 NAND闪存中逐出的所述高速缓存策略引擎用于当所述访问信息指示为了读取操作而打 开与所述数据相关联的文件并且所述文件的快速I/O标志被设置时,逐出所述数据。
27.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述 数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述NAND闪存或从所述 NAND闪存中逐出的所述高速缓存策略引擎用于当所述访问信息指示在数据的快速I/O读 取操作期间发出了提前读取命令时,对与所述提前读取命令相关联的数据进行缓存。
28.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述 数据的访问信息,并且其中,所述高速缓存策略引擎还用于当所述访问信息指示文件被复 制时,标记所述文件的缓存数据以允许由其它文件来引用所述缓存数据。
29.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述 数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或 从所述高速缓存设备中逐出的所述高速缓存策略引擎用于当所述访问信息指示与所述数 据相关联的文件被具有相同文件名的另一个文件替换时,逐出所述数据。
30.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述 数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或 从所述高速缓存设备中逐出的所述高速缓存策略引擎用于当所述访问信息指示与所述数 据相关联的文件被从缓存存储设备移动到非缓存存储设备时,逐出所述数据。
31.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述 数据的访问信息,并且其中,所述高速缓存策略引擎还用于当所述访问信息指示与所述数 据相关联的文件被从缓存存储设备复制到非缓存存储设备时,降低与所述高速缓存设备中 的所述文件相关联的数据的优先级。
32.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述 数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述NAND闪存或从所述 NAND闪存中逐出的所述高速缓存策略引擎用于当所述访问信息指示访问文件的应用程 序被标记为高优先级时,对与所述文件相关联的数据进行缓存。
全文摘要
一种用于至少基于一个或多个文件级启发式规则来执行缓存的方法和系统。由高速缓存策略引擎来执行在高速缓存设备中的存储介质的缓存。高速缓存策略引擎接收存储介质的数据的输入/输出访问的文件级信息,并且基于接收的文件级信息来将存储介质的数据缓存在高速缓存设备中或从高速缓存设备中逐出。在本发明的一个实施例中,通过使用关于与存储介质的磁盘扇区或逻辑块地址相关联的文件和文件操作的信息,高速缓存策略引擎可以更好的决定是将存储介质的数据缓存在高速缓存设备中还是将其逐出高速缓存设备。可以达到更高的高速缓存命中率,并且提高了使用高速缓存策略引擎的系统的性能。
文档编号G06F12/02GK101853208SQ201010158578
公开日2010年10月6日 申请日期2010年3月31日 优先权日2009年3月31日
发明者A·D·赫夫曼, D·J·于内曼, F·T·哈迪, G·J·欣顿, J·A·博伊德, O·P·平托, S·E·伯里奇, S·N·特丽卡, S·R·蒂特里克, T·J·巴恩斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1