CN111095204A - 针对高速缓存存储器进行文件预取调度以减少等待时间 - Google Patents

针对高速缓存存储器进行文件预取调度以减少等待时间 Download PDF

Info

Publication number
CN111095204A
CN111095204A CN201780094914.0A CN201780094914A CN111095204A CN 111095204 A CN111095204 A CN 111095204A CN 201780094914 A CN201780094914 A CN 201780094914A CN 111095204 A CN111095204 A CN 111095204A
Authority
CN
China
Prior art keywords
file
cache memory
accesses
priority
fufl
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201780094914.0A
Other languages
English (en)
Inventor
方亮
周振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN111095204A publication Critical patent/CN111095204A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/442Shutdown
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

提供了用于调度从文件系统到高速缓存存储器(104)的预取以减少与对那些文件的未来访问相关联的后续等待时间的技术。一种实现这些技术的方法包括:监视对文件系统的访问(610)(例如,文件打开和文件读取操作)以及维护针对所访问的文件中的每一者的记录。记录包括文件的标识符、对文件的访问的数量、以及与那些访问相关联的高速缓存存储器(104)未命中的数量。方法还包括将记录存储到文件访问历史数据库(FAHD)中(630)。方法进一步包括响应于操作系统(OS)(820)关闭而基于FAHD(218)生成频繁使用文件列表(FUFL)(208)。方法进一步包括:在OS(820)引导期间,将由FUFL(208)的所选择的子集标识的文件预取至高速缓存存储器(104)。

Description

针对高速缓存存储器进行文件预取调度以减少等待时间
背景技术
计算平台通常包括某种形式的高速缓存存储器,该高速缓存存储器充当靠近于处理器的相对快速的存储器与较大/较慢的存储系统之间的接口,这些较大/较慢的存储系统诸如从处理器进一步远离的硬盘驱动器。虽然这些高速缓存存储器系统相较于平台上的其他存储器系统通常是小型的,但它们可以存储某个量的频繁使用的数据,以使得该频繁使用的数据以例如相较于从盘驱动器取出数据将花费的时间减少的等待时间对处理器可用。然而,一般而言,可能难以确定应当将哪些数据存储在高速缓存存储器中,并且一些现有技术依赖于用户和/或软件供应商来提供该信息。
附图说明
随着以下具体实施方式进行并且在参照附图时,所要求保护的主题的实施例的特征和优势将变得显而易见,其中,相同数字指代相同的部分。
图1是根据本公开的某些实施例的计算平台上的文件预取调度系统的实现方式的顶层框图。
图2是根据本公开的某些实施例的文件预取调度系统的更详细的框图。
图3图示出根据本公开的某些实施例的文件访问历史数据库(FAHD)的示例格式。
图4是图示出根据本公开的某些实施例的用于高速缓存存储器预取的过程的流程图。
图5是图示出根据本公开的某些实施例的用于基于频繁使用文件列表(FUFL)进行文件预取的过程的流程图。
图6是图示出根据本公开的某些实施例的用于文件预取调度的过程的流程图。
图7是图示出根据本公开的某些实施例的文件固定优先级排定的表。
图8是示意性地图示出根据本公开的某些实施例的用于采用文件预取调度的计算系统的框图。
虽然以下具体实施方式将参照说明性实施例进行,但是其许多替代方案、修改和变型鉴于本公开将是显而易见的。
具体实施方式
总体而言,本公开描述了用于调度从文件系统到高速缓存存储器的文件预取以减少与由处理器对那些文件的未来访问相关联的后续等待时间的技术。高速缓存存储器充当靠近于处理器的相对快速的存储器(例如,随机存取存储器或RAM)与进一步从处理器远离的较大但较慢的文件存储系统(例如,硬盘驱动器)之间的接口或缓冲器。根据实施例,对要从文件系统预取到高速缓存的文件的标识基于频繁使用文件列表,该频繁使用文件列表以自动化的方式从所选择的时间段内的文件访问历史和高速缓存未命中被生成。在操作系统(OS)的引导期间,将这些所标识的文件从文件系统传输至高速缓存存储器。所公开的技术在本文中也被称为“智能文件固定”,相对于其中用户指定要被存储在存储器高速缓存中的文件的“硬性文件固定”以及其中软件供应商指定要被存储在存储器高速缓存中的文件(与其应用相关联)的“软性文件固定”。
所公开的技术可以被实现在例如计算系统或可由此类系统执行或者以其他方式可由此类系统控制的软件产品中,但其他实施例也将是显而易见的。在一些实施例中,系统或产品被配置成用于执行对从文件系统到高速缓存存储器的文件预取的调度。根据实施例,用于实现这些技术的过程或方法包括监视对文件系统的文件的访问(例如,文件打开和文件读取操作)以及维护针对所访问的文件中的每一者的记录。在一些实施例中,记录包括文件的标识符、所选择的时间段(诸如,用户登录/注销周期)内对文件的访问的数量、以及与那些访问相关联的高速缓存存储器未命中的数量。方法还包括将记录存储到文件访问历史数据库(FAHD)中。方法进一步包括响应于OS关闭而基于FAHD生成频繁使用文件列表(FUFL)。基于访问和高速缓存未命中的组合对FUFL进行排序。方法进一步包括:在OS引导期间,将由经排序的FUFL的所选择的子集标识的文件预取至高速缓存存储器。
如将会领会,本文中所描述的技术可允许相较于依赖于由用户和/或软件应用供应商来标识要从文件系统预取至高速缓存存储器的文件的现有方法改进的对此类文件的标识,现有方法可能是繁重的、容易出错的、且不可靠的。例如,用户可能不知道这些现有方法或者可能作出不利地影响存储器高速缓存性能的不好的文件选择决策。另外,软件供应商可能不情愿(例如,通过所提供的应用编程接口)修改和更新它们的用于向系统指定频繁使用的文件的代码。
所公开的技术可以被实现在宽泛范围的平台上,这些平台包括服务器系统、工作站、个人计算机、膝上型计算机、平板、以及其他此类设备。这些技术可进一步以硬件或软件或者其组合来实现。
图1是根据本公开的某些实施例的计算平台上的文件预取调度系统的实现方式的顶层框图100。系统被示出为包括处理器110、智能文件固定系统114、任选的硬性/软性文件固定应用编程接口(API)112、硬盘驱动器(HDD)102、以及高速缓存存储器104。
在高层级处,智能文件固定系统被配置成用于提供对频繁使用的文件的自动标识,这可以受益于高速缓存存储器中的存储,以提供用户请求文件之前减少的等待时间。如将在下文更详细地解释,这使用从在最近的OS引导之前执行的文件使用监视收集的数据来完成,实现对文件使用中相对长期的趋势的跟踪。本文中所公开的智能文件固定技术可以与传统硬性文件固定和软性文件固定技术组合使用。由此,可提供任选的文件固定API 112以使得用户能够指定应当被存储在存储器高速缓存中的文件(例如,硬性文件固定)并且使得独立的软件供应商(ISV)能够指定应当被存储在存储器高速缓存中的文件(例如,软性文件固定)。
图2是根据本公开的某些实施例的文件预取调度系统的更详细的框图200。系统被示出为包括任何数量的软件应用202,这些软件应用202通过文件系统API 204与文件系统212交互。在该示例中,文件系统212被存储在通过盘驱动器216被访问的硬盘驱动器(HDD)102上。因此,例如,随着软件应用执行,它们将典型地从被存储在HDD上的文件系统访问文件。
如将在下文解释,系统还被示出为包括高速缓存存储器预取程序206,该高速缓存存储器预取程序206被配置成用于生成FUFL 208并且用于执行从文件系统212到高速缓存存储器104的文件预取。如同样将在下文解释,系统进一步被示出为包括用于生成并维护FAHD 218的FAHD更新程序214。
如图1中所示,智能文件固定模块114包括高速缓存存储器预取程序206、FAHD更新程序214、FUFL 208、以及FAHD 218。在一些实施例中,系统被分成用户空间230和内核空间240,内核空间允许相比于用户空间总体上更高的特权等级。
FAHD更新程序214被配置成用于监视对文件系统的文件的访问并且用于创建并维护针对所访问的文件中的每一者的记录。出于FAHD更新程序的目的,文件访问包括文件打开和文件读取。记录包括文件的标识符、对文件的访问的数量、以及与那些文件访问相关联的高速缓存存储器未命中的数量。记录可捕捉数个“轮次”内的文件访问和高速缓存存储器未命中,每个轮次与所选择的时间段相关联,所选择的时间段诸如例如,给定数量的用户登录/注销周期或其他所选择的事件序列或持续时间。FAHD更新程序214进一步被配置成用于将记录存储到FAHD中。如果稍后从文件系统删除文件,则FAHD中该文件的相关联的记录也可被删除。下文结合图3更详细地描述FAHD 218的内容和格式。
高速缓存存储器预取程序206被配置成用于检测OS关闭,并且响应于该关闭,基于FAHD中所存储的记录来生成FUFL。在一些实施例中,以经排序的次序将来自FAHD的文件ID存储到FUFL中。可将对文件的访问的数量用作主要的排序关键字并将高速缓存存储器未命中的数量作为次要的排序关键字来执行排序。能以例如升序或降序之类的最方便的任何次序来执行排序。在一些实施例中,可将经排序的列表的所选择的子集(例如,前1000个所访问的文件)保留在FUFL中。也就是说,如果以降序对FUFL进行排序,则FUFL的前1000个条目可被保留,或者如果以升序对FUFL进行排序,则后1000个条目将被保留。因此,FUFL可被配置成包括与最大数量的访问和最大数量的高速缓存存储器未命中相关联的那些文件。在一些实施例中,对FUFL的排序能以任何期望的方式在访问和高速缓存存储器未命中之间加权。在一些实施例中,对FUFL的排序还能以文件的大小来加权。例如,预取可能消耗高速缓存存储器的相对的大部分的特别大的文件可能是不符合期望的。
在一些实施例中,高速缓存存储器预取程序206进一步被配置成用于在OS引导期间或在OS引导之后不久将由FUFL标识的文件或其某个部分从文件系统预取至高速缓存存储器。可在完成预取之后删除FUFL。所预取的文件随后可由处理器以相较于仅驻留在HDD文件系统上的文件减少的等待时间来访问。
图3图示出根据本公开的某些实施例的文件访问历史数据库(FAHD)218的示例格式。表中的每个行条目300与文件相关联。对于每个文件,记录唯一地标识该文件的文件ID302。在列R1 304、R2 306和R3 308中同样为该文件记录的是文件系统访问的数量和高速缓存存储器未命中的数量。列R1表示与所选择的持续时间相关联的文件访问的第一轮次,所选择的持续时间诸如例如,用户登录与注销之间的时间段。列R2和R3表示文件访问的第二轮次和文件访问的第三轮次,例如,来自两个先前的用户登录/注销周期。在一些实施例中,可收集并存储多于3个轮次或少于3个轮次的数据。在一些实施例中,每个轮次的持续时间可与其他合适的事件相关联或者可被设置为任何期望的持续时间。
在一些实施例中,轮次可被存储为循环缓冲器。例如,在列R3被写入之后,系统循环返回至列R1,并且利用新数据来覆写该列中的旧数据。在一些实施例中,可对来自这3个轮次的数据求和,以提供访问数量的总和以及高速缓存未命中数量的总和,以供进行排序时使用。将会领会,其他文件格式是可能的,并且可使用提供上文所描述的信息的任何合适的格式。
方法
图4-图6是图示出根据本公开的某些实施例的与调度从文件系统到高速缓存存储器中的文件预取的各方面相关联的示例过程的流程图。如可以看出,示例方法包括数个阶段和子过程,这些阶段和子过程的顺序可从一个实施例到另一实施例而有所变化。然而,当综合考虑时,这些阶段和子过程形成用于根据本文中所公开的实施例中的某些实施例的文件预取调度的过程。这些实施例可以例如使用如上文所描述的图1和图2中所示出的系统架构来实现。然而,如鉴于本公开将是显而易见的,可以在其他实施例中使用其他系统架构。为此,图4-图6中所示出的各种功能与其他附图中所图示的具体组件的相关性不旨在暗示任何结构和/或使用限制。然而,其他实施例可包括例如不同程度的集成,其中,多个功能由一个系统有效地执行。例如,在替代实施例中,具有解耦合的子模块的单个模块可用于执行这些方法的功能中的全部功能。因此,取决于实现方式的粒度,其他实施例可具有更少的或更多的模块和/或子模块。在另外的其他实施例中,所描绘的过程可以被实现为计算机程序制品,该计算机程序制品包括在由一个或多个处理器执行时使得过程被执行的一种或多种非瞬态机器可读介质。鉴于本公开,众多变型和替代配置将是显而易见的。
图4是图示出根据本公开的某些实施例的用于高速缓存存储器预取206的示例过程的流程图。在操作400处,检测到事件,并且该事件被标识为OS关闭、OS引导、或用户注销中的一者。在操作402处,响应于标识出OS关闭,对FAHD进行查询,并且在操作404处,基于该FAHD的内容生成FUFL。因此,FAHD可被配置成用于捕捉一时间段期间的文件访问信息,该时间段扩展达到对用户模式应用的执行的完成并且包括对用户模式应用的执行的完成。在一些实施例中,来自FAHD的文件标识被排序到FUFL中,并且所选择的子集(例如,N个最多访问的文件和/或最多高速缓存未命中的文件)被保留。
如下文结合图5更详细地描述,在操作406处,响应于标识出OS引导,将由FUFL标识的文件从文件系统预取至高速缓存存储器。在操作408处,FUFL被删除,并且在操作410处,FAHD被初始化到第一轮次。因此,FAHD可被配置成用于捕捉一时间段期间的文件访问信息,该时间段在执行用户模式应用之前开始。在操作412处,响应于标识出用户注销,对FAHD轮次进行更新,以使得新轮次的文件访问统计信息将被收集。
图5是图示出根据本公开的某些实施例的用于基于FUFL的文件预取的示例过程406的流程图。在操作502处,作出关于高速缓存存储器104中可用的空闲空间的量的确定。空闲空间阈值也被选择或确定。阈值指定关于高速缓存存储器空闲空间的期望下限。在操作504处,FUFL被打开,并且FUFL指针被初始化为零。接下来,在操作506处,使用来自FUFL的当前指针处的文件ID(例如,FUFL[FUFL pointer].FileID)从文件系统检取文件信息。在操作508处,将从所检取的文件信息获得的文件的大小与高速缓存存储器空闲空间进行比较。如果文件在高速缓存中适配,则在操作512处,例如通过将与文件ID相关联的文件内容从HDD复制到高速缓存存储器中而将文件固定至高速缓存。在操作514处,将高速缓存空闲空间减少被固定的文件的大小。在操作510处,FUFL指针被递增。在操作516处,如果已经达到FUFL的末尾,或者如果高速缓存空闲空间已落至低于阈值,则过程完成。否则,过程利用对FUFL中所列出的下一文件的检取在操作506处继续。
图6是图示出根据本公开的某些实施例的用于调度从文件系统到高速缓存存储器中的文件预取的示例过程600的流程图。用于文件预取调度的过程600通过监视对文件系统的文件的访问而开始于操作610.文件访问包括文件打开操作和文件读取操作。在一些实施例中,文件系统被存储在硬盘驱动器上。
接下来,在操作620处,维护针对所访问的文件中的每一者的记录。记录包括文件的标识符、对文件的访问的数量、以及与这些对文件的访问相关联的高速缓存存储器未命中的数量。在一些实施例中,记录可捕捉所选择的时间段内的文件访问和高速缓存存储器未命中,所选择的时间段诸如例如,给定数量的用户登录/注销周期或其他所选择的事件序列或持续时间。在一些实施例中,高速缓存存储器是诸如例如固态驱动器之类的非易失性存储器。
在操作630处,将记录存储到文件访问历史数据库(FAHD)中。在从文件系统删除文件时,FAHD中该文件的相关联的记录也可被删除。
在操作640处,响应于OS关闭而生成频繁使用文件列表(FUFL)。FUFL基于FAHD。在一些实施例中,通过将对文件的访问的数量用作主要排序关键字并将高速缓存存储器未命中的数量用作次要排序关键字,将来自FAHD的文件排序到FUFL中。经排序的文件的子集(例如,全部、或所选择的部分)随后可被保留在FUFL中。因此,FUFL可被配置成包括具有最多高速缓存存储器未命中的最多访问的文件。
在操作650处,在OS引导期间将在FUFL中列出的文件从文件系统预取至高速缓存存储器,以减少对那些文件的后续访问等待时间。在文件预取被执行之后,随后可删除FUFL。
当然,如先前结合系统所描述,在一些实施例中,可执行附加操作。例如,所公开的技术(被称为智能文件固定)可与硬性文件固定同软性文件技术的组合进行组合。在此类情况下,针对预取,给予经硬性固定的文件最高优先级,而给予经软性固定的文件中等优先级,并且给予经智能固定的文件最低优先级。
与硬性和软性文件固定过程集成
图7是图示出根据本公开的某些实施例的文件固定优先级排定的表700。如先前所讨论,所公开的用于智能文件固定的技术可与硬性文件固定和软性文件固定组合地采用。在此类情况下,在表7中阐述了确定哪些文件将被预取至高速缓存存储器中的优先级排定,表700列出文件固定方法704相对于高速缓存中的文件702的优先级的关系。具体而言,给予通过硬性文件固定指定的文件最高优先级,给予通过软性文件固定指定的文件中等优先级,并且给予通过智能文件固定指定的文件最低优先级。在一些实施例中,这可通过首先执行硬性文件固定、随后执行软性文件固定、随后执行智能文件固定来实现。因此,如果在文件被预取时高速缓存存储器中的空间不足,则通过智能文件固定标识的文件可能不会被存储在高速缓存存储器中。这确保由用户和/或软件供应商为最低等待时间访问起见特定地标识的文件具有最大的可能性被存储在高速缓存存储器中。另外,在一些实施例中,可根据表700中所阐述的优先级将文件换入或换出存储器高速缓存。因此,如表中的“是”条目706所指示,为了经硬性固定的文件,可将经智能固定的文件换出。
示例系统
图8图示出根据本公开的某些实施例配置的、采用文件预取调度的示例计算系统800。在一些实施例中,系统800包括计算平台100,该系统800可主控或以其他方式被并入个人计算机、工作站、服务器系统、膝上型计算机、超级膝上型计算机、便携式计算机等等。可在某些实施例中使用不同设备的任何组合。
在一些实施例中,平台100可包括以下各项的任何组合:处理器110、存储器830、智能文件固定系统114、文件固定API 112(任选的)、网络接口840、输入/输出(I/O)系统850、用户接口860、存储系统870、硬盘驱动器(HDD)870、以及高速缓存存储器104。如可以进一步看出,还提供总线和/或互连892,以允许上文所列出的各组件和/或未示出的其他组件之间的通信。平台100可以通过网络接口840耦合至网络894,以允许平台100与其他计算设备、平台或资源进行通信。未在图8的框图中反映的其他组件和功能鉴于本公开而将是显而易见的,并且将会领会,其他实施例不限于任何特定硬件配置。
处理器110可以是任何合适的处理器,并且可包括一个或多个协处理器或控制器,诸如图形处理单元、音频处理器、或硬件加速器,以辅助控制和处理与系统800相关联的操作。在一些实施例中,处理器110可被实现为任何数量的处理器核。处理器(或处理器核)可以是任何类型的处理器,诸如例如微处理器、嵌入式处理器、数字信号处理器(DSP)、图形处理器(GPU)、网络处理器、现场可编程门阵列或者被配置成用于执行代码的其他设备。处理器可以是多线程核,因为它们每个核可包括多于一个的硬件线程上下文(或“逻辑处理器”)。处理器110可被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器。在一些实施例中,处理器110可被配置为兼容x86指令集的处理器。
存储器830可以使用任何合适类型的数字存储(包括例如,闪存和/或随机存取存储器(RAM))来实现。在一些实施例中,存储器830可包括本领域技术人员已知的存储器层级结构的各层和/或存储器高速缓存。存储器830可被实现为易失性存储器设备,诸如但不限于RAM、动态RAM(DRAM)、或静态RAM(SRAM)设备。存储系统870可被实现为非易失性存储设备,诸如但不限于以下各项中的一项或多项:硬盘驱动器(HDD)102、固态驱动器(SSD)、通用串行总线(USB)驱动器、光盘驱动器、磁带驱动器、内部存储设备、附连存储设备、闪存、电池备份的同步DRAM(SDRAM)和/或网络可访问存储设备。在一些实施例中,存储870可包括用于在包括多个硬盘驱动器时提高对有价值数字媒体的存储性能增强保护的技术。如先前所描述,高速缓存存储器104可被配置为存储器830与HDD 102之间用于存储频繁访问的文件并提供对那些文件的减少的访问等待时间的中间存储器系统。在一些实施例中,高速缓存存储器104可以是诸如例如固态驱动器之类的非易失性存储器。
处理器110可被配置成用于执行操作系统(OS)820,该操作系统(OS)820可包括任何合适的操作系统,诸如Google Android(加利福尼亚州山景城谷歌公司)、MicrosoftWindows(华盛顿州雷德蒙德的微软公司)、Apple OS X(加利福尼亚州库比蒂诺城苹果公司)、Linux、实时操作系统(RTOS)、或其任何变型。如鉴于本公开而将会领会,本文中所提供的技术可以在无需考虑结合系统800提供的特定操作系统的情况下实现,并且因此还可使用任何合适的现有或随后开发的平台来实现。
网络接口电路840可以是任何适当的网络芯片或芯片组,该网络芯片或芯片组允许计算机系统800的其他组件和/或网络894之间的有线和/或无线连接,由此使系统800能够与其他本地和/或远程计算系统、服务器、基于云的服务器和/或资源进行通信。有线通信可符合现有(或尚未开发的)标准,诸如例如以太网。无线通信可符合现有(或尚未开发的)标准,诸如例如包括LTE(长期演进)的蜂窝通信、无线保真(Wi-Fi)、蓝牙和/或近场通信(NFC)。示例性无线网络包括但不限于无线局域网、无线个域网、无线城域网、蜂窝网络和卫星网络。
I/O系统850可被配置成在各种I/O设备与计算机系统800的其他组件之间进行对接。I/O设备可包括但不限于用户接口860。用户接口860可包括诸如显示元件、触摸板、键盘、鼠标、话筒、和扬声器等之类的设备(未示出)。I/O系统850可包括图形子系统,该图形子系统被配置成用于执行对图像的处理以供渲染在显示元件上。图形子系统可以是例如图形处理单元或视觉处理单元(VPU)。模拟或数字接口可用于通信地耦合图形子系统和显示元件。例如,接口可以是以下各项中的任一项:高清多媒体接口(HDMI)、显示端口、无线HDMI和/或使用无线高清晰度兼容技术的任何其他合适接口。在一些实施例中,图形子系统可以被集成到平台100的处理器110或任何芯片组中。
将会领会,在一些实施例中,可将系统800的各组件组合或集成在片上系统(SoC)架构中。在一些实施例中,组件可以是硬件组件、固件组件、软件组件、或者硬件、固件或软件的任何合适的组合。
如先前所描述,智能文件固定模块114被配置成用于调度从被存储在HDD 102或其他存储系统870上的文件系统到高速缓存存储器中的文件预取,以减少与对那些文件的未来访问相关联的后续等待时间。如上文所描述,智能文件固定模块114可包括图2中所图示的电路/程序/组件中的任一者或全部,包括高速缓存存储器预取程序206、频繁使用文件列表208、文件访问历史数据库更新程序214、以及文件访问历史数据库218。这些组件可以与耦合至平台100或以其他方式形成平台100的部分的各种合适的软件和/或硬件结合实现或以其他方式使用。这些组件可以附加地或替代地与能够向用户提供信息并从用户接收信息和命令的用户I/O设备结合实现或以其他方式使用。在一些情况下,对给定网络或计算系统上的资源的访问可能要求证书,诸如用户名、密码和/或与任何其他合适的安全机制兼容的证书。
在各实施例中,系统800可被实现为无线系统、有线系统或两者的组合。当被实现为无线系统时,系统800可包括适合于通过无线共享介质进行通信的组件和接口,诸如,一根或多根天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等等。无线共享介质的示例可包括无线频谱的部分,诸如,射频频谱等等。当被实现为有线系统时,系统800可包括适合于通过有线通信介质进行通信的组件和接口,诸如输入/输出适配器、将输入/输出适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括线、电缆、金属引线、印刷电路板(PCB)、底板、交换结构、半导体材料、双绞线、同轴电缆、光纤等等。
可使用硬件元件、软件元件、或两者的组合来实现各实施例。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、ASIC、可编程逻辑器件、数字信号处理器、FPGA、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号,或其任何组合。判定是否使用硬件元件和/或软件元件来实现实施例可根据任何数量的因素而变化,这些因素诸如所期望的计算速率、功率电平、热容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
可使用表述“耦合的”和“连接的”及其派生词对一些实施例进行描述。这些术语不旨在作为彼此的同义词。例如,一些实施例可使用术语“连接的”和/或“耦合的”来描述,以指示两个或更多个元件彼此直接的物理接触或电接触。然而,术语“耦合的”还可意味着两个或更多个元件彼此不直接接触,但仍然彼此协作或相互作用。
本文中所公开的各实施例能以各种形式的硬件、软件、固件和/或专用处理器来实现。例如,在一个实施例中,至少一种非瞬态计算机可读存储介质具有被编码在其上的指令,这些指令在由一个或多个处理器执行时使得本文中所公开的文件预取方法中的一种或多种被实现。可使用合适的编程语言或者替代地使用自定义或专有指令集来对指令进行编码,编程语言诸如,C、C++、面向对象的C、Java、JavaScript、Visual Basic、.NET、初学者通用符号指令代码(BASIC)。指令能以一种或多种计算机软件应用和/或小程序的形式提供,这些计算机软件应用和/或小程序在存储器设备上被有形地具体化,并且可以由具有任何合适架构的计算机来执行。在一个实施例中,系统可以被托管在给定网站上并且例如通过使用JavaScript或其他合适的基于浏览器的技术来实现。例如,在某些实施例中,系统可利用由可经由网络894访问的远程计算机系统提供的处理资源。本文中所公开的计算机软件应用可包括任何数量的不同模块、子模块或不同功能的其他组件,并且可向另外的其他组件提供信息或从另外的其他组件接收信息。这些模块可用于例如与输入和/或输出设备(诸如显示屏、触敏表面、打印机和/或任何其他合适的设备)通信。没有在图示中反映的其他组件和功能鉴于本公开将是显而易见的,并且将会领会,其他实施例不限于任何特定的硬件或软件配置。因此,在其他实施例中,系统800可包括相较于图8的示例实施例中所包括的子组件附加的、更少的或替代的子组件。
前述非瞬态计算机可读介质可以是用于存储数字信息的任何合适的介质,诸如硬驱动器、服务器、闪存和/或随机存取存储器(RAM)、或者存储器的组合。在替代实施例中,本文中所公开的组件和/或模块可以利用硬件来实现,硬件包括诸如现场可编程门阵列(FPGA)的门级逻辑,或者替代地包括诸如专用集成电路(ASIC)之类的专用半导体。另外的其他实施例可利用具有用于接收和输出数据的数个输入/输出端口的微控制器以及用于执行本文中所公开的各种功能的多个嵌入式例程来实现。显而易见的是,可以使用硬件、软件和固件的任何合适的组合,并且其他实施例不限于任何特定系统架构。
例如,一些实施例可使用机器可读介质或者制品来实现,该介质或者制品可存储指令或者指令集,这些指令或指令集如果由机器执行则可使该机器执行根据实施例所述的方法和/或操作。此类机器可包括例如任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理等等,并且可使用硬件和/或软件的任何合适的组合来实现。机器可读介质或制品可包括例如任何合适类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储制品、存储介质和/或存储单元,诸如存储器、可移除或不可移除介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、紧凑盘只读存储器(CD-ROM)、紧凑盘可记录(CD-R)存储器、紧凑盘可重写(CD-RW)存储器、光盘、磁性介质、磁光介质、可移除存储器卡或盘、各种类型的数字多功能盘(DVD)、磁带、盒式磁带等等。指令可包括任何合适类型的代码,例如源代码、经编译的代码、经解释的代码、可执行代码、静态代码、动态代码、经加密的代码等,这些代码使用任何合适的高级、低级、面向对象的、可视的、编译的和/或解释的编程语言来实现。
除非特别声明,否则可领会,诸如“处理”、“计算”、“运算”、“确定”之类的术语是指计算机或计算系统或者类似的电子计算设备的动作和/或过程,该动作和/或过程将计算系统的寄存器和/或存储器内被表示为(例如,电子学的)物理量的数据操纵和/或转换为在计算系统的寄存器、存储器单元或其他此类信息传输或显示装置内被类似表示为物理量的其他数据。实施例不限于此上下文。
如本文中在任何实施例中所使用,术语“电路(circuit)”或“电路系统(circuitry)”是功能性的,并且可例如单独或以任何组合方式包括硬连线电路系统;可编程电路系统,诸如包括一个或多个单独指令处理核的计算机处理器;状态机电路系统;和/或存储由可编程电路系统执行的指令的固件。电路系统可包括被配置成用于执行一条或多条指令以执行本文中所描述的一个或多个操作的处理器和/或控制器。指令可被具体化为例如被配置成用于使电路系统执行前述操作中的任何操作的应用、软件、固件等。软件可被具体化为被记录在计算机可读存储设备上的软件包、代码、指令、指令集和/或数据。软件可被具体化或实现为包括任何数量的进程,并且进程进而可被具体化或实现为以分层方式包括任何数量的线程等。固件可被具体化为硬编码(例如,非易失性的)在存储器设备中的代码、指令或指令集、和/或数据。电路系统可以共同地或单独地被具体化为形成更大的系统的部分的电路系统,该更大的系统例如,集成电路(IC)、专用集成电路(ASIC)、芯片上系统(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能电话等。其他实施例可被实现为由可编程控制设备执行的软件。在此类情况下,术语“电路”或“电路系统”旨在包括软件和硬件的组合,诸如,能够执行软件的可编程控制设备或处理器。如本文中所描述,各实施例可使用硬件元件、软件元件或其任何组合来实现。硬件元件的示例可包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。
本文中已经阐述了众多具体的细节,以提供对实施例的透彻理解。然而,本领域技术人员将理解,可在没有这些具体细节的情况下实施这些实施例。在其他实例中,未详细描述公知的操作、组件和电路,以免使本发明模糊。可以领会,本文中所公开的特定结构和功能细节可以是代表性的,并且不必限制实施例的范围。另外,虽然采用特定于结构特征和/或方法动作的语言描述了本主题,但应理解,所附权利要求书中限定的主题不必限于本文中所描述的具体特征或动作。相反,本文中所描述的具体特征和动作是作为实现权利要求的示例形式公开的。
进一步的示例实施例
下列示例涉及进一步的实施例,根据这些实施例,众多置换和配置将是显而易见的。
示例1是一种用于文件预取调度的计算机实现的方法,该方法包括:由基于处理器的系统监视对文件系统的文件的访问;由基于处理器的系统维护针对所访问的文件中的每一者的记录,该记录包括文件的标识符、对文件的访问的数量、以及与对文件的访问相关联的高速缓存存储器未命中的数量;由基于处理器的系统将记录存储到文件访问历史数据库(FAHD)中;由基于处理器的系统响应于操作系统(OS)关闭而基于FAHD生成频繁使用文件列表(FUFL);以及由基于处理器的系统响应于OS引导而将由FUFL标识的文件预取至高速缓存存储器。
示例2包括如示例1所述的主题,其中,生成FUFL进一步包括:将对文件的访问的数量用作主要排序关键字并将高速缓存存储器未命中的数量用作次要排序关键字而对FUFL进行排序,以及保留经排序的FUFL的所选择的子集。
示例3包括如示例1或2所述的主题,进一步包括:在执行预取之后删除FUFL。
示例4包括如示例1-3中任一项所述的主题,其中,对文件的访问的数量以及与对文件的访问相关联的高速缓存存储器未命中的数量在与所选择的数量的用户登录/注销周期相关联的时间段内在记录中被维护。
示例5包括如示例1-4中任一项所述的主题,其中,文件系统被存储在硬盘驱动器上,并且高速缓存存储器是非易失性存储器。
示例6包括如示例1-5中任一项所述的主题,其中,预取进一步包括:预取通过处于第一优先级的硬性文件固定过程和处于第二优先级的软性文件固定过程中的至少一者所选择的文件,其中,第一优先级高于第二优先级,并且第二优先级高于与根据FUFL预取的文件相关联的第三优先级。
示例7包括如示例1-6中任一项所述的主题,其中,对文件系统的文件的访问包括文件打开操作和文件读取操作中的至少一者。
示例8包括如示例1-7中任一项所述的主题,进一步包括:响应于检测到从文件系统对所访问的文件的删除而从FAFD移除与所删除的文件相关联的所存储的记录。
示例9包括如示例1-8中任一项所述的主题,进一步包括:由软件应用从高速缓存存储器访问所预取的文件。
示例10是一种用于文件预取调度的系统,该系统包括:文件系统;高速缓存存储器;文件访问历史数据库(FAHD)更新程序,该FAHD更新程序用于:监视对文件系统的文件的访问;维护针对所访问的文件中的每一者的记录,该记录包括文件的标识符、对文件的访问的数量、以及与对文件的访问相关联的高速缓存存储器未命中的数量;以及将记录存储到FAHD中;以及高速缓存存储器预取程序,该高速缓存存储器预取程序用于:响应于操作系统(OS)关闭而基于FAHD生成频繁使用文件列表(FUFL);以及响应于OS引导而将由FUFL标识的文件预取至高速缓存存储器。
示例11包括如示例10所述的主题,其中,高速缓存存储器预取程序进一步用于:将对文件的访问的数量用作主要排序关键字并将高速缓存存储器未命中的数量用作次要排序关键字来对FUFL进行排序,以及保留经排序的FUFL的所选择的子集。
示例12包括如示例10或11所述的主题,其中,高速缓存存储器预取程序进一步用于:在执行所述预取之后删除FUFL。
示例13包括如示例10-12中任一项所述的主题,其中,FAHD更新程序进一步用于:在与所选择的数量的用户登录/注销周期相关联的时间段内,在记录中维护对文件的访问的数量以及与对文件的访问相关联的高速缓存存储器未命中的数量。
示例14包括如示例10-13中任一项所述的主题,进一步包括硬盘驱动器,其中,文件系统被存储在该硬盘驱动器上,并且高速缓存存储器是非易失性存储器。
示例15包括如示例10-14中任一项所述的系统,其中,高速缓存存储器预取程序进一步用于:预取通过处于第一优先级的硬性文件固定过程和处于第二优先级的软性文件固定中的至少一者所选择的文件,其中,第一优先级高于第二优先级,并且第二优先级高于与根据FUFL预取的文件相关联的第三优先级。
示例16包括如示例10-15中任一项所述的主题,其中,对文件系统的文件的访问包括文件打开操作和文件读取操作中的至少一者。
示例17包括如示例10-16中任一项所述的主题,其中,FAHD更新程序进一步用于:响应于检测到从文件系统对所访问的文件的删除而从FAHD移除与所删除的文件相关联的所存储的记录。
示例18是至少一种非瞬态计算机可读存储介质,具有被编码于其上的指令,这些指令在由一个或多个处理器执行时引起用于文件预取调度的下列操作,这些操作包括:监视对文件系统的文件的访问;维护针对所访问的文件中的每一者的记录,该记录包括文件的标识符、对文件的访问的数量、以及与对文件的访问相关联的高速缓存存储器未命中的数量;将记录存储到文件访问历史数据库(FAHD)中;响应于操作系统(OS)关闭而基于FAHD生成频繁使用文件列表(FUFL);以及响应于OS引导而将由FUFL标识的文件预取至高速缓存存储器。
示例19包括如示例18所述的主题,其中,生成FUFL进一步包括:将对文件的访问的数量用作主要排序关键字并将高速缓存存储器未命中的数量用作次要排序关键字来对FUFL进行排序以及保留经排序的FUFL的所选择的子集的操作。
示例20包括如示例18或19所述的主题,进一步包括:在执行预取之后删除FUFL的操作。
示例21包括如示例18-20中任一项所述的主题,其中,对文件的访问的数量以及与对文件的访问相关联的高速缓存存储器未命中的数量在与所选择的数量的用户登录/注销周期相关联的时间段内在记录中被维护。
示例22包括如示例18-21中任一项所述的主题,其中,文件系统被存储在硬盘驱动器上,并且高速缓存存储器是非易失性存储器。
示例23包括如示例18-22中任一项所述的主题,其中,预取进一步包括:预取通过处于第一优先级的硬性文件固定过程和处于第二优先级的软性文件固定过程中的至少一者所选择的文件的操作,其中,第一优先级高于第二优先级,并且第二优先级高于与根据FUFL预取的文件相关联的第三优先级。
示例24包括如示例18-23中任一项所述的主题,其中,对文件系统的文件的访问包括文件打开操作和文件读取操作中的至少一者。
示例25包括如示例18-24中任一项所述的主题,进一步包括:响应于检测到从文件系统对所访问的文件的删除而从FAFD移除与所删除的文件相关联的所存储的记录的操作。
示例26是一种用于文件预取调度的系统,该系统包括:用于监视对文件系统的文件的访问的装置;用于维护针对所访问的文件中的每一者的记录的装置,该记录包括文件的标识符、对文件的访问的数量、以及与对文件的访问相关联的高速缓存存储器未命中的数量;用于将记录存储到文件访问历史数据库(FAHD)中的装置;用于响应于操作系统(OS)关闭而基于FAHD生成频繁使用文件列表(FUFL)的装置;以及用于响应于OS引导而将由FUFL标识的文件预取至高速缓存存储器的装置。
示例27包括如示例26所述的主题,其中,生成FUFL进一步包括:用于将对文件的访问的数量用作主要排序关键字并将高速缓存存储器未命中的数量用作次要排序关键字而对FUFL进行排序以及保留经排序的FUFL的所选择的子集的装置。
示例28包括如示例26或27所述的主题,进一步包括:用于在执行预取之后删除FUFL的装置。
示例29包括如示例26-28中任一项所述的主题,其中,对文件的访问的数量以及与对文件的访问相关联的高速缓存存储器未命中的数量在与所选择的数量的用户登录/注销周期相关联的时间段内在记录中被维护。
示例30包括如示例26-29中任一项所述的主题,其中,文件系统被存储在硬盘驱动器上,并且高速缓存存储器是非易失性存储器。
示例31包括如示例26-30中任一项所述的主题,其中,预取进一步包括:用于预取通过处于第一优先级的硬性文件固定和处于第二优先级的软性文件固定过程中的至少一者所选择的文件的装置,其中,第一优先级高于第二优先级,并且第二优先级高于与根据FUFL预取的文件相关联的第三优先级。
示例32包括如示例26-31中任一项所述的主题,其中,对文件系统的文件的访问包括文件打开操作和文件读取操作中的至少一者。
示例33包括如示例26-32中任一项所述的主题,进一步包括:用于响应于检测到从文件系统对所访问的文件的删除而从FAFD移除与所删除的文件相关联的所存储的记录的装置。
示例34包括如示例26-33中任一项所述的主题,进一步包括:用于由软件应用从高速缓存存储器访问所预取的文件的装置。
本文中已采用的术语和表达被用作描述性而非限制性的术语,并且在使用此类术语和表达时,不旨在排除所示出的和所描述的特征(或其部分)的任何等效内容,而且应当认识到,在权利要求书的范围之内各种修改都是可能的。相应地,权利要求书旨在涵盖所有此类等效内容。本文中已描述了各种特征、方面和实施例。如本领域技术人员将理解,这些特征、方面和实施例易于彼此组合以及进行变化和修改。本公开应当因此被认为包含此类组合、变型和修改。本公开的范围不是由该详细说明书限制而是由所附权利要求限定。未来提出的要求本申请优先权的申请可以以不同的方式要求所公开的主题,并且通常可包括如在本文中以各种方式公开或以其他方式展示的一个或多个要素的任何集合。

Claims (25)

1.一种用于文件预取调度的计算机实现的方法,所述方法包括:
由计算机处理器监视对文件系统的文件的访问;
由所述计算机处理器维护针对所访问的文件中的每一者的记录,所述记录包括所述文件的标识符、对所述文件的访问的数量、以及与对所述文件的所述访问相关联的高速缓存存储器未命中的数量;
由所述计算机处理器将所访问的文件中的每一者的所述记录存储到文件访问历史数据库(FAHD)中;
由所述计算机处理器响应于操作系统(OS)关闭而基于所述FAHD生成频繁使用文件列表(FUFL);以及
由所述计算机处理器系统响应于OS引导而将由所述FUFL标识的文件预取至所述高速缓存存储器。
2.如权利要求1所述的方法,其中,生成所述FUFL进一步包括:将所述对所述文件的访问的数量用作主要排序关键字并将所述高速缓存存储器未命中的数量用作次要排序关键字来对所述FUFL进行排序,以及保留经排序的FUFL的所选择的子集。
3.如权利要求1所述的方法,进一步包括:在执行所述预取之后删除所述FUFL。
4.如权利要求1所述的方法,其中,所述对所述文件的访问的数量以及所述与对所述文件的所述访问相关联的高速缓存存储器未命中的数量在与所选择的数量的用户登录/注销周期相关联的时间段内在所述记录中被维护。
5.如权利要求1-4中任一项所述的方法,其中,所述文件系统被存储在硬盘驱动器上,并且所述高速缓存存储器是非易失性存储器。
6.如权利要求1-4中任一项所述的方法,其中,所述预取进一步包括:预取通过处于第一优先级的硬性文件固定过程和处于第二优先级的软性文件固定过程中的至少一者所选择的文件,其中,所述第一优先级高于所述第二优先级,并且所述第二优先级高于与根据所述FUFL预取的文件相关联的第三优先级。
7.如权利要求1-4中任一项所述的方法,其中,对所述文件系统的所述文件的所述访问包括文件打开操作和文件读取操作中的至少一者。
8.如权利要求1-4中任一项所述的方法,进一步包括:响应于检测到从所述文件系统对所访问的文件的删除而从所述FAFD移除与所删除的文件相关联的所存储的记录。
9.如权利要求1-4中任一项所述的方法,进一步包括:由软件应用从所述高速缓存存储器访问所预取的文件。
10.一种用于文件预取调度的系统,所述系统包括:
文件系统,所述文件系统包括多个文件;
高速缓存存储器;
文件访问历史数据库(FAHD)更新程序,所述FAHD更新程序用于:
监视对所述文件系统的所述多个文件的访问;
维护针对所访问的文件中的每一者的记录,所述记录包括所述文件的标识符、对所述文件的访问的数量、以及与对所述文件的所述访问相关联的高速缓存存储器未命中的数量;以及
将所述记录存储到所述FAHD中;以及
高速缓存存储器预取程序,所述高速缓存存储器预取程序用于:
响应于操作系统(OS)关闭而基于所述FAHD生成频繁使用文件列表(FUFL);以及
响应于OS引导而将由所述FUFL标识的文件预取至所述高速缓存存储器。
11.如权利要求10所述的系统,其中,所述高速缓存存储器预取程序进一步用于:将所述对所述文件的访问的数量用作主要排序关键字并将所述高速缓存存储器未命中的数量用作次要排序关键字来对所述FUFL进行排序,以及保留经排序的FUFL的所选择的子集。
12.如权利要求10所述的系统,其中,所述高速缓存存储器预取程序进一步用于:在执行所述预取之后删除所述FUFL。
13.如权利要求10所述的系统,其中,所述FAHD更新程序进一步用于:在与所选择的数量的用户登录/注销周期相关联的时间段内在所述记录中维护所述对所述文件的访问的数量以及所述与对所述文件的所述访问相关联的高速缓存存储器未命中的数量。
14.如权利要求10-13中任一项所述的系统,进一步包括硬盘驱动器,其中,所述文件系统被存储在所述硬盘驱动器上,并且所述高速缓存存储器是非易失性存储器。
15.如权利要求10-13中任一项所述的系统,其中,所述高速缓存存储器预取程序进一步用于:预取通过处于第一优先级的硬性文件固定过程和处于第二优先级的软性文件固定过程中的至少一者所选择的文件,其中,所述第一优先级高于所述第二优先级,并且所述第二优先级高于与根据所述FUFL预取的文件相关联的第三优先级。
16.如权利要求10-13中任一项所述的系统,其中,对所述文件系统的所述文件的所述访问包括文件打开操作和文件读取操作中的至少一者。
17.如权利要求10-13中任一项所述的系统,其中,所述FAHD更新程序进一步用于:响应于检测到从所述文件系统对所访问的文件的删除而从所述FAHD移除与所删除的文件相关联的所存储的记录。
18.至少一种非瞬态计算机可读存储介质,具有被编码于其上的指令,所述指令在由一个或多个处理器执行时引起用于文件预取调度的下列操作,所述操作包括:
监视对文件系统的文件的访问;
维护针对所访问的文件中的每一者的记录,所述记录包括所述文件的标识符、对所述文件的访问的数量、以及与对所述文件的所述访问相关联的高速缓存存储器未命中的数量;
将所访问的文件中的每一者的所述记录存储到文件访问历史数据库(FAHD)中;
响应于操作系统(OS)关闭而基于所述FAHD生成频繁使用文件列表(FUFL);以及
响应于OS引导而将由所述FUFL标识的文件预取至所述高速缓存存储器。
19.如权利要求18所述的计算机可读存储介质,其中,生成所述FUFL进一步包括:将所述对所述文件的访问的数量用作主要排序关键字并将所述高速缓存存储器未命中的数量用作次要排序关键字来对所述FUFL进行排序以及保留经排序的FUFL的所选择的子集的操作。
20.如权利要求18所述的计算机可读存储介质,进一步包括:在执行所述预取之后删除所述FUFL的操作。
21.如权利要求18所述的计算机可读存储介质,其中,所述对所述文件的访问的数量以及所述与对所述文件的所述访问相关联的高速缓存存储器未命中的数量在与所选择的数量的用户登录/注销周期相关联的时间段内在所述记录中被维护。
22.如权利要求18-21中任一项所述的计算机可读存储介质,其中,所述文件系统被存储在硬盘驱动器上,并且所述高速缓存存储器是非易失性存储器。
23.如权利要求18-21中任一项所述的计算机可读存储介质,其中,所述预取进一步包括:预取通过处于第一优先级的硬性文件固定过程和处于第二优先级的软性文件固定过程中的至少一者所选择的文件的操作,其中,所述第一优先级高于所述第二优先级,并且所述第二优先级高于与根据所述FUFL预取的文件相关联的第三优先级。
24.如权利要求18-21中任一项所述的计算机可读存储介质,其中,对所述文件系统的所述文件的所述访问包括文件打开操作和文件读取操作中的至少一者。
25.如权利要求18-21中任一项所述的计算机可读存储介质,进一步包括:响应于检测到从所述文件系统对所访问的文件的删除而从所述FAFD移除与所删除的文件相关联的所存储的记录的操作。
CN201780094914.0A 2017-11-22 2017-11-22 针对高速缓存存储器进行文件预取调度以减少等待时间 Pending CN111095204A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/112360 WO2019100263A1 (en) 2017-11-22 2017-11-22 File pre-fetch scheduling for cache memory to reduce latency

Publications (1)

Publication Number Publication Date
CN111095204A true CN111095204A (zh) 2020-05-01

Family

ID=66631274

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780094914.0A Pending CN111095204A (zh) 2017-11-22 2017-11-22 针对高速缓存存储器进行文件预取调度以减少等待时间

Country Status (4)

Country Link
US (1) US11366757B2 (zh)
CN (1) CN111095204A (zh)
DE (1) DE112017008158T5 (zh)
WO (1) WO2019100263A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022179032A1 (zh) * 2021-02-25 2022-09-01 华为技术有限公司 用于存储管理的方法、设备、介质和程序产品

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112017008158T5 (de) 2017-11-22 2020-09-10 Intel Corporation Dateienvorababrufeinplanung für cachespeicher zur verringerung von latenzen
US11403211B2 (en) * 2020-01-31 2022-08-02 Enmotus, Inc. Storage system with file priority mechanism and method of operation thereof
CN113535658B (zh) * 2020-04-20 2024-08-09 华为技术有限公司 一种文件预取方法、存储设备以及预取装置
US20220329664A1 (en) * 2021-04-09 2022-10-13 Apple Inc. Secure data caching for edge networks
CN113177031B (zh) * 2021-04-21 2023-08-01 北京人大金仓信息技术股份有限公司 数据库共享缓存的处理方法、装置、电子设备和介质
CN113268201A (zh) 2021-05-13 2021-08-17 三星(中国)半导体有限公司 基于文件属性的缓存管理方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827214B1 (en) * 2003-02-14 2010-11-02 Google Inc. Maintaining data in a file system
US8230208B2 (en) * 2009-04-20 2012-07-24 Intel Corporation Booting an operating system of a system using a read ahead technique
US8938582B2 (en) * 2010-07-01 2015-01-20 Infinidat Ltd. Storage systems with reduced energy consumption
US8433694B1 (en) * 2011-01-31 2013-04-30 Symantec Corporation File cache optimization using element de-prioritization
US8990159B2 (en) * 2011-11-01 2015-03-24 Mongodb, Inc. Systems and methods for durable database operations in a memory-mapped environment
CN102707966B (zh) 2012-04-12 2014-09-03 腾讯科技(深圳)有限公司 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端
CN104133691B (zh) * 2014-05-05 2016-08-31 腾讯科技(深圳)有限公司 加速启动的方法及装置
US9804965B2 (en) * 2014-12-03 2017-10-31 Electronics And Telecommunications Research Institute Virtual machine host server apparatus and method for operating the same
CN109070331A (zh) 2016-04-05 2018-12-21 株式会社日立制作所 仿人机器人
US10409728B2 (en) * 2017-05-09 2019-09-10 Futurewei Technologies, Inc. File access predication using counter based eviction policies at the file and page level
DE112017008158T5 (de) 2017-11-22 2020-09-10 Intel Corporation Dateienvorababrufeinplanung für cachespeicher zur verringerung von latenzen

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022179032A1 (zh) * 2021-02-25 2022-09-01 华为技术有限公司 用于存储管理的方法、设备、介质和程序产品

Also Published As

Publication number Publication date
US20200257628A1 (en) 2020-08-13
US11366757B2 (en) 2022-06-21
DE112017008158T5 (de) 2020-09-10
WO2019100263A1 (en) 2019-05-31

Similar Documents

Publication Publication Date Title
US11366757B2 (en) File pre-fetch scheduling for cache memory to reduce latency
US11726931B2 (en) Artificial intelligence-enabled management of storage media access
US10826980B2 (en) Command process load balancing system
US9032165B1 (en) Systems and methods for scheduling write requests for a solid state storage device
KR101691117B1 (ko) 웹 애플리케이션을 위한 보안 데이터 컨테이너
US8793427B2 (en) Remote memory for virtual machines
US10089014B2 (en) Memory-sampling based migrating page cache
US9223705B2 (en) Cache access arbitration for prefetch requests
US8417892B1 (en) Differential storage and eviction for information resources from a browser cache
JP2004133934A (ja) プロアクティブなメモリ管理の方法および機構
JP2021517697A (ja) リソーススケジューリング方法および端末デバイス
US8732355B1 (en) Dynamic data prefetching
RU2643499C2 (ru) Управление памятью
US9569364B1 (en) Multiple history based micro partition prefetch optimization
CN110287152B (zh) 一种数据管理的方法以及相关装置
US8688942B2 (en) Method and system controlling page open time for memory device
CN112286461A (zh) 一种数据迁移方法、装置及电子设备和存储介质
WO2019206260A1 (zh) 文件缓存的读取方法和装置
JP7038656B2 (ja) キャッシュへのアクセス
US9436669B1 (en) Systems and methods for interfacing with dynamic web forms
CN107077424A (zh) 用于检测在第一阶指令高速缓冲存储器中的恶意代码的集成电路和方法
CN112818219A (zh) 解释推荐效果的方法、系统、电子设备及可读存储介质
US8892693B2 (en) Enabling fragment-based mobile device application streaming
TWI779338B (zh) 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法
US9542318B2 (en) Temporary cache memory eviction

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination