CN107209720B - 用于页面高速缓存的***及方法以及存储介质 - Google Patents

用于页面高速缓存的***及方法以及存储介质 Download PDF

Info

Publication number
CN107209720B
CN107209720B CN201580074818.0A CN201580074818A CN107209720B CN 107209720 B CN107209720 B CN 107209720B CN 201580074818 A CN201580074818 A CN 201580074818A CN 107209720 B CN107209720 B CN 107209720B
Authority
CN
China
Prior art keywords
page
memory
persistent memory
persistent
file
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.)
Active
Application number
CN201580074818.0A
Other languages
English (en)
Other versions
CN107209720A (zh
Inventor
D.L.沃伊格特
邹萌
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN107209720A publication Critical patent/CN107209720A/zh
Application granted granted Critical
Publication of CN107209720B publication Critical patent/CN107209720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0893Caches characterised by their organisation or structure
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本文所描述的各种示例提供用于在持久存储器上高速缓存页面,以用于来自非持久存储器文件***或具有非持久存储器页面高速缓存的远程文件***的文件的存储器映射访问。特别地,一些示例检测来自非持久存储器文件***或具有非持久存储器页面高速缓存的远程文件***的文件的存储器映射访问,并且基于持久存储器的可用性,在持久存储器上高速缓存与存储器映射访问相关联的页面。

Description

用于页面高速缓存的***及方法以及存储介质
技术领域
本公开总体涉及页面高速缓存。
背景技术
利用各种基于存储器的技术来改善可以从文件***访问文件的速度。例如,使用存储器映射来提供对文件的访问允许一个应用访问文件的映射部分,就像它们是在主存储器中一样,这可以在访问文件时——特别是当该文件大小很大时——改善输入/输出(I/O)性能。
发明内容
根据本公开的一个方面,本公开涉及一种页面高速缓存***,包括:处理器;以及非暂时存储介质,所述非暂时存储介质存储能够在所述处理器上执行的指令,所述指令用于:检测从具有非持久存储器页面高速缓存的非持久存储器文件***对文件的存储器映射访问,对所述文件的所述存储器映射访问包括用于访问页面的请求;确定持久存储器用于高速缓存由对所述文件的所述存储器映射访问所访问的所述页面的可用性;基于所述持久存储器的可用性来将由所述请求所访问的所述页面高速缓存在所述持久存储器中;以及基于一组准则将所述页面从所述持久存储器清空到所述非持久存储器文件***,所述一组准则包括与所述持久存储器的条件相关的准则,其中将所述页面从所述持久存储器清空到所述非持久存储器文件***是响应于由能够在所述处理器上执行的所述指令确定所述持久存储器中由所述页面所占据的数据存储空间被用于除数据高速缓存以外的目的的。
根据本公开的又一方面,本公开涉及一种非暂时计算机可读介质,所述非暂时计算机可读介质包括指令,所述指令在执行时使得计算机***:在所述计算机***中检测从具有非持久存储器页面高速缓存的非持久存储器文件***对文件的存储器映射访问,对所述文件的所述存储器映射访问包括用于访问页面的请求;基于持久存储器用于高速缓存所述页面的可用性来将由所述请求所访问的所述页面高速缓存在所述持久存储器中;以及基于一组准则将所述页面从所述持久存储器清空到所述非持久存储器文件***,所述一组准则包括与所述持久存储器的条件相关的准则,其中将所述页面从所述持久存储器清空到所述非持久存储器文件***是响应于由所述指令确定所述持久存储器中由所述页面所占据的数据存储空间被用于除数据高速缓存以外的目的的。
根据本公开的另一方面,本公开还涉及一种页面高速缓存方法,包括:由计算机***检测通过网络从具有非持久存储器页面高速缓存的远程文件***对文件的存储器映射访问,对所述文件的所述存储器映射访问包括用于访问页面的请求;由所述计算机***基于持久存储器用于高速缓存所述页面的可用性来将由所述请求所访问的所述页面高速缓存在所述持久存储器中;以及由所述计算机***基于一组准则通过所述网络将所述页面从所述持久存储器清空到所述远程文件***,所述一组准则包括与条件相关的准则且所述条件与所述文件的解映射相关,并且通过所述网络将所述页面从所述持久存储器清空到所述远程文件***是响应于用于使所述文件解映射的解映射***调用的。
附图说明
在以下参考附图的详细描述中描述了某些示例。
图1和图2图示出了用于在文件的存储器映射访问期间使用持久存储器进行页面高速缓存的示例页面高速缓存***。
图3图示出了包括示例页面高速缓存***的示例计算机***。
图4图示出了包括示例页面高速缓存***的示例计算环境中的示例数据流。
图5图示出了用于在文件的存储器映射访问期间使用持久存储器进行页面高速缓存的示例计算机***。
图6和图7图示出了由示例计算机***执行的示例方法,以在文件的存储器映射访问期间使用持久存储器来促进页面高速缓存。
具体实施方式
虽然传统的基于存储器的技术的使用可以改善对文件***上的文件的访问,但它们也有其缺点。例如,利用非易失性存储器(NVM)来改善文件的存储器映射访问的应用通常需要修改应用以同步或清空(flush)对NVM的写入,或者需要应用使用库来这样做。关于使用存储器映射来访问文件,各种数据储存设备不允许直接存储器映射,并且通过分配易失性存储器(例如,动态随机存取存储器[DRAM])并将数据同步到非易失性数据存储器(例如,硬盘驱动器或固态驱动器)来实现存储器映射。使用易失性存储器进行页面高速缓存通常导致页面数据从易失性存储器重复写入到非易失性数据存储器,这部分地是由于在易失性存储器上缺少持久的数据(例如,当不再对易失性存储器供电时,在其上页面数据丢失)。
本文所描述的各种示例提供了在存储在非持久存储器文件***或远程文件***上并从其访问的文件的存储器映射访问期间使用持久存储器用于进行页面高速缓存。根据一些示例,当确定在从非持久存储器文件***或远程文件***访问文件时文件已被存储器映射时,利用持久存储器用于高速缓存在文件的存储器映射访问中所涉及的页面。以这种方式,各种示例使用文件的存储器映射作为触发器,用于当文件存储在诸如基于硬盘驱动器的文件***之类的非持久存储器文件***或诸如通过通信网络访问的文件***(例如,持久或非持久存储器文件***)之类的远程文件***上并且从其访问时选择持久存储器来对文件的一部分进行页面高速缓存。
在一些示例中,检测来自非持久存储器文件***或具有非持久存储器页面高速缓存的远程文件***的文件的存储器映射访问,确定用于对与存储器映射访问相关联的页面进行高速缓存的持久存储器的可用性,并且基于该可用性,将页面高速缓存在该持久存储器上。取决于示例,在其中页面是新页面,并且存储器映射访问包括高速缓存与存储器映射访问相关联的新页面的请求的情况下,可以响应于该请求将该页面高速缓存在持久存储器上。因此,可以响应于用于高速缓存与文件的存储器映射访问相关联的新页面的请求来确定持久存储器的可用性。在页面可以是高速缓存在非持久存储器页面高速缓存上的现有页面并且存储器映射访问包括访问与存储器映射访问相关联的现有页面的请求的情况下,可以响应于页面的访问(例如,由应用读取或写入)而将该页面高速缓存在持久存储器上。在页面是现有页面的情况下,对页面进行高速缓存可以涉及将页面从非持久存储器页面高速缓存迁移到持久存储器。因此,可以响应于非持久性页面高速缓存上的现有页面被访问(例如,由应用读取或写入)来确定持久存储器的可用性。
对于一些示例,高速缓存在持久存储器上的页面从持久存储器清空到非持久存储器文件***或从其访问文件的远程文件***。另外,对于一些示例,当持久存储器经历资源压力(例如,缺少数据储存空间)时,当文件的存储器映射访问被解除(例如,未映射)时,当文件关闭时,或者当(例如,由包括持久存储器的计算机***)确定持久存储器的其他使用将提供优于将其用于页面高速缓存的操作优势时,可以清空持久存储器上高速缓存的与文件的存储器映射访问相关联的页面。另外,对于一些示例,替代可基于易失性存储器(例如,DRAM)的非持久存储器页面高速缓存或者除了其之外,可以利用持久存储器用于页面高速缓存。
与由传统存储器映射使用的基于易失性存储器(例如,动态随机存取存储器[DRAM])的页面高速缓存不同,持久存储器是非易失性的,并且因此,高速缓存在持久存储器上的页面固有地获得持久性,而避免、减少或至少延迟将高速缓存的页面(例如,通过msync***调用)写入(例如,清空)回到非持久存储器储存设备(例如,硬盘驱动器或固态驱动器)或远程文件***的需要。通过避免、减少或延迟将高速缓存的页面写入非持久存储器储存设备的需要,可以加速对文件的存储器映射访问并可以减少非持久存储器设备或远程文件***底层的储存设备(例如,固态驱动器[SSD]))上的磨损。
如本文所使用的,持久存储器可以包括持久存储器设备,诸如相变存储器(PCM)设备。如本文所使用的,非持久存储器文件***可以包括这样的文件***:其使用诸如硬盘驱动器(HDD)、固态驱动器(SSD)或一些其他非易失性存储器设备之类的非持久存储器设备来实现并且能够使用非持久存储器页面高速缓存来提供对存储在其上的文件的存储器映射访问。如本文所使用的,文件的访问可以包括从文件的一部分读取数据或向文件的一部分写入数据。
还如本文所使用的,远程文件***可以是在通信网络上并且通过维护远程文件***的第二计算机***而可由第一计算机***访问的文件***。远程文件***可以与可以是第二计算机***本地的持久存储器设备或非持久存储器设备相关联(例如,使用其来实现)。对于各种示例,当使用存储器映射来访问存储在远程文件***上的文件时,第一计算机***利用本文所描述的页面高速缓存技术。
以下描述了在特定文件的示例生命周期的上下文中的示例页面高速缓存***。示例生命周期可以从存储在非持久存储器文件***或远程文件***上的特定文件开始,并且(例如,由应用)从非持久存储器文件***或远程文件***访问(例如,打开)特定文件。非持久存储器文件***或远程文件***可以包括能够使用非持久存储器页面高速缓存来提供对文件的存储器映射访问的文件***。对于示例页面高速缓存***,当检测到特定文件的存储器映射访问时,页面高速缓存***确定用于对与存储器映射访问相关联的页面进行高速缓存的持久存储器的可用性(例如,在持久存储器上用于页面高速缓存的数据储存空间的可用性),并且基于可用性,将页面高速缓存在持久存储器上。确定持久存储器的可用性和页面的高速缓存可以响应于高速缓存与存储器映射访问相关联地生成的新页面的请求,或者响应于在非持久存储器页面高速缓存上的现有页面被访问。
因此,在打开特定文件并且在与特定文件的存储器映射访问(例如,使用mmap***调用)相关联的新页面需要高速缓存的时候,持久存储器可用,则示例页面高速缓存***可以将新页面高速缓存在持久存储器上。在持久存储器在那时不可用的情况下,示例页面高速缓存***可以将新页面高速缓存在非持久存储器页面高速缓存上。在已经将与特定文件的存储器映射访问相关联的现有页面高速缓存在非持久存储器页面高速缓存上之后持久存储器变得可用的情况下,示例页面高速缓存***可以将现有页面从非持久存储器页面高速缓存迁移到持久存储器。可以在现有页面的后续访问(例如,由涉及非持久存储器页面高速缓存的先前的mmap请求所要求的访问虚拟存储区域)之后或之时将该现有页面迁移到持久存储器。将现有页面从非持久存储器页面高速缓存迁移到持久存储器可以涉及将页面从非持久存储器页面高速缓存复制到持久存储器,并且然后从非持久存储器页面高速缓存中移除该页面。
在已经将页面高速缓存在持久存储器上之后,可以通过与持久存储器的直接存储器映射来从持久存储器访问该页面,其中存储器地址可以直接映射到持久存储器设备上的其中存储该页面的位置。这样的直接映射可以允许(例如,应用)使用处理器(例如,中央处理单元[CPU])的负载(例如,ld)和存储(例如,st)机器码指令来访问页面,并且也可以允许在不需要非持久存储器页面高速缓存(从而避免与其相关的缺点)的情况下访问页面。
以下提供由图1-图7所图示的示例的详细描述。
图1图示出了用于在文件的存储器映射访问期间使用持久存储器进行页面高速缓存的示例页面高速缓存***100。如所示,页面高速缓存***100包括存储器映射访问检测模块102、持久存储器可用性模块104和持久存储器页面高速缓存模块106。取决于示例,页面高速缓存***100可以是诸如台式机、笔记本电脑、手持计算设备(例如,个人数字助理、智能手机、平板电脑等)、工作站、服务器或包括处理器的其他设备之类的计算机***的一部分。在各种示例中,页面高速缓存***100中的组件或组件的布置可以不同于图1中所描绘的。
如本文所使用的,各种示例的模块和其他组件可以全部或部分地包括机器可读指令或电子电路。例如,模块可以包括可由处理器执行以根据本文所描述的各种示例执行一个或多个功能的计算机可读指令。类似地,在另一种实例中,模块可以包括根据本文所描述的各种示例执行一个或多个功能的电子电路。模块的元件可以组合在单个封装中、保持在多个封装中、或分开保持。
存储器映射访问检测模块102可以促进由计算机***检测来自具有非持久存储器页面高速缓存的非持久存储器文件***或远程文件***的文件的存储器映射访问。对于各种示例,非持久存储器页面高速缓存有助于非持久存储器文件***提供对存储在其上的文件的存储器映射访问。计算机***可以通过打开文件并建立该文件的存储器映射访问来启动文件的存储器映射访问,这可以导致与存储器映射访问相关联地分配新页面。由存储器映射访问检测模块102检测到的存储器映射访问可以包括:计算机***建立文件的新的存储器映射,或者计算机***请求访问存储在非持久存储器页面高速缓存上并与现有(例如,先前建立的)存储器映射相关联的页面的存储器地址(例如,虚拟存储器地址)。
持久存储器可用性模块104可以促进确定在计算机***上用于页面高速缓存的持久存储器的可用性。对于一些示例,在将与文件的存储器映射访问相关联的页面高速缓存在持久存储器上之前,持久存储器可用性模块104确定持久存储器的可用性。取决于该示例,持久存储器可用性模块104可以响应于高速缓存与存储器映射访问相关联的新页面的请求或者响应于访问非持久存储器页面高速缓存上的与存储器映射访问相关联的现有页面来确定持久存储器的可用性。
取决于该示例,用于高速缓存与存储器映射访问相关联的页面的持久存储器的可用性可以基于计算机***上是否存在持久存储器。用于高速缓存与存储器映射访问相关联的页面的持久存储器的可用性可以基于持久存储器是否被启用用于页面高速缓存(例如,持久存储器对于页面高速缓存而言可以被禁用,但是对于长期文件储存而言可以被启用)。此外,用于高速缓存与存储器映射访问相关联的页面的持久存储器的可用性可以基于持久存储器是否具有可用数据储存空间来高速缓存与文件的存储器映射访问相关联的页面。
持久存储器页面高速缓存模块106可以促进将与文件的存储器映射访问相关联的页面高速缓存在计算机***的持久存储器上。在页面是新页面并且存储器映射访问包括高速缓存与存储器映射访问相关联的新页面的请求的情况下,持久存储器页面高速缓存模块106可以响应于该请求而将页面高速缓存在持久存储器上。在页面是现有页面并且存储器映射访问包括访问与存储器映射访问相关联的现有页面的情况下,持久存储器页面高速缓存模块106可以响应于现有页面被(例如,被应用)访问而将页面高速缓存在持久存储器上。
对于一些示例,页面可以构成经由存储器映射访问进行访问的文件的至少一部分——如果不是全部。在由计算机***打开该文件的情况下,文件由计算机***进行存储器映射,并且当需要(例如,作为使用mmap***调用的结果)与存储器映射关联地高速缓存新页面时,(例如,由持久存储器可用性模块104)确定持久存储器为可用,持久存储器页面高速缓存模块106可以使新页面被高速缓存在持久存储器上。在当需要高速缓存新页面时确定持久存储器为不可用的情况下,持久存储器页面高速缓存模块106可以使新页面被高速缓存在计算机***的非持久存储器页面高速缓存上。在已经将现有页面高速缓存在计算机***的非持久存储器页面高速缓存上之后确定持久存储器为可用的情况下,持久存储器页面高速缓存模块106可以使现有页面从非持久存储器页面高速缓存迁移到持久存储器。持久存储器页面高速缓存模块106可以在现有页面(例如,由涉及非持久存储器页面高速缓存的先前的mmap请求所要求的访问虚拟存储器区域)的后续访问之后或之时引起该迁移。如本文所描述的,将现有页面从非持久存储器页面高速缓存迁移到持久存储器可以涉及将页面从非持久存储器页面高速缓存复制到持久存储器,并且然后从非持久存储器页面高速缓存移除页面。
图2图示出了用于在文件的存储器映射访问期间使用持久存储器进行页面高速缓存的示例页面高速缓存***200。如所示,页面高速缓存***200包括存储器映射访问检测模块202、持久存储器可用性模块204、持久存储器页面高速缓存模块206和持久存储器页面清空模块208。取决于示例,页面高速缓存***200可以是诸如台式机、笔记本电脑、手持计算设备(例如,个人数字助理、智能手机、平板电脑等)、工作站、服务器或包括处理器的其他设备之类的计算机***的一部分。在各种示例中,页面高速缓存***200中的组件或组件的布置可以不同于图2中所描绘的。
存储器映射访问检测模块202、持久存储器可用性模块204和持久存储器页面高速缓存模块206可以分别类似于上面关于图1的页面高速缓存***100所描述的存储器映射访问检测模块102、持久存储器可用性模块104和持久存储器页面高速缓存模块106。
持久存储器页面清空模块208可以促进将页面从持久存储器清空到非持久存储器文件***,其中清空可以基于一组准则。页面可以是由持久性存储器页面高速缓存模块206先前高速缓存在持久存储器上的页面。如本文所描述的,持久存储器页面高速缓存模块206可以响应于存储器映射访问检测模块202检测到文件的存储器映射访问而已将页面高速缓存在持久存储器上,其中页面与存储器映射访问相关联。还如本文所描述的,持久存储器页面高速缓存模块206可以基于由持久存储器可用性模块204确定的持久存储器的可用性而已将页面高速缓存在持久存储器上。
取决于示例,用于清空页面的该组准则可以包括与存储器映射访问的条件有关的准则,诸如存储器映射访问是否已经被解除(例如,解映射)、存储器映射访问的使用频率、或用于存储器映射访问的持久存储器的数据储存空间。例如,当文件的存储器映射访问被解除时,持久存储器页面清空模块208可以使页面从持久存储器清空到非持久存储器文件***,这可能在计算机***显式地执行解映射***调用时发生。该组准则可以包括与计算机***是否关闭与存储器映射访问相关联的文件相关的准则。例如,持久存储器页面清空模块208可以在计算机***关闭文件之时使页面从持久存储器清空到非持久存储器文件***,其中可以由持久存储器页面清空模块208来检测此类关闭。另外,该组准则可以包括与持久存储器的条件相关的准则。例如,当(例如由持久存储器可用性模块204)确定持久存储器的可用性受限或用尽时,持久存储器页面清空模块208可以使页面从持久存储器清空到非持久存储器文件***。在另一实例中,当(例如由持久存储器页面清空模块208)确定被页面在持久存储器上占用的数据储存空间可以更好地用于计算机***上的另一个用途时,持久存储器页面清空模块208可以使页面从持久存储器清空到非持久存储器文件***。持久存储器的更好的利用可以包括持久存储器的任何替代使用,其将提供超过使用它来专门高速缓存被清空的页面——或者通常超过将其用于页面高速缓存——的操作优势。替代利用的示例可以包括:文件(例如,与存储器映射访问相关联的文件)的长期储存、(例如,与存储器映射访问相关联的)新页面的高速缓存、当前在非持久存储器页面高速缓存上的现有页面的高速缓存、或与较高优先级存储器映射访问相关联的页面的高速缓存。
图3图示出了包括页面高速缓存***100的示例计算机***300。计算机***300可以是具有处理器和存储器的任何计算设备,诸如台式机、笔记本电脑、手持计算设备(例如,个人数字助理、智能手机、平板电脑等)、工作站、服务器或包括处理器的其他设备。如所示,计算机***300包括应用模块302、持久存储器模块304、页面高速缓存***200、文件***模块306和通信模块308。在各种示例中,在计算机***300中的组件或组件的布置可以不同于图3中所描绘的。
应用模块302表示在计算机***300上可操作并且能够访问(例如,读取、写入或修改)存储在文件***上的文件的任何固件或软件(例如,软件应用或操作***)。对于一些示例,当应用模块302希望访问文件时,应用模块302打开来自文件***的文件,并且一旦应用模块302已经完成其对该文件的访问,则最终可以关闭该文件。当应用模块302访问来自非持久存储器文件***或远程文件***的文件时,可以使用由计算机***300(未示出)所包括的非持久存储器页面高速缓存(例如,基于易失性存储器)来对文件进行存储器映射。
持久存储器模块304可以包括用于存储页面的持久存储器。页面可以是由页面高速缓存***200高速缓存在持久存储器上的新页面,或者可以是由页面高速缓存***200从由计算机***300所包括的非持久存储器页面高速缓存迁移到持久存储器的新页面。
文件***模块306可以向应用模块302提供对计算机***300的本地非持久存储器文件***的访问,或者提供对相对于计算机***300远离的远程文件***的访问。计算机***300的本地非持久存储器文件***可以包括这样的文件***:其使用计算机***300本地的非持久存储器设备(例如,硬盘驱动器[HDD]或固态驱动器[SSD])来实现,并且能够使用计算机***300的非持久存储器页面高速缓存来提供对存储在其上的文件的存储器映射访问。远程文件***可以是这样的文件***:其由计算机***300可以(例如,通过通信网络)与之通信的另一个计算机***维护,并且能够使用计算机***300的非持久存储器页面高速缓存来提供对存储在其上的文件的存储器映射访问。远程文件***的文件***可以与由另一个计算机***可访问的非持久存储器设备或持久存储器设备相关联。
页面高速缓存***200促进了在计算机***300上在本文所描述的各种操作。例如,页面高速缓存***200可以由应用模块302通过文件***模块306检测来自计算机***300的本地非持久存储器文件***或远程文件***的文件的存储器映射访问。作为响应,页面高速缓存***200可以确定可通过持久存储器模块304访问的计算机***300的持久存储器的可用性。基于该确定,页面高速缓存***200可以将与存储器映射访问相关联的页面高速缓存在计算机***300的持久存储器上。如本文所描述的,对页面进行高速缓存可以涉及在计算机***300的持久存储器上高速缓存与存储器映射访问相关联的新页面,或将存在于计算机***300的非持久存储器页面高速缓存上的页面迁移到持久存储器。最终,基于一组准则,页面高速缓存***200可以将页面从计算机***300的持久存储器清空到非持久存储器文件***或远程文件***,从其中可由计算机***300访问该文件。
对于一些示例,文件***模块306可以包括促进页面高速缓存***200将页面高速缓存在计算机***300的持久存储器上的虚拟文件***模块。虚拟文件***可以向应用模块302提供具有单个文件命名空间但是(例如,基于)与相似类型(例如,两个或多个非持久存储器文件***)或不同类型(例如,非持久存储器文件***和持久存储器文件***)的多个单独文件***相关联的虚拟文件***。
通信模块308可以促进计算机***300通过允许数据通信的通信网络与另一计算机***的通信。通信网络可以包括一个或多个本地或广域通信网络,诸如互联网、WiFi网络、蜂窝网络、专用网络、公共网络等。如本文所描述的,计算机***300可以访问由另一计算机***维护的远程文件***,并且通信模块308可以促进计算机***300与促进访问的另一计算机***之间的网络数据分组的交换。
图4图示出了包括页面高速缓存***200的示例计算环境400中的示例数据流。如所示,计算环境400包括应用402、虚拟文件***模块404、页面高速缓存***200、非持久存储器页面高速缓存406、文件***408、非易失性存储器设备410和持久存储器412。根据一些示例,虚拟文件***模块404至少基于与非易失性存储器设备410相关联的文件***408而向应用402提供具有单个文件命名空间的虚拟文件***。非持久存储器页面高速缓存406可以支持应用402对存储在文件***408上的文件的存储器映射访问。
在计算环境400中的操作期间,应用402可以打开并访问作为单个命名空间的一部分由虚拟文件***模块404提供并存储在文件***408上的给定文件。当由应用402通过虚拟文件***模块404访问给定文件时,给定文件可以是存储器映射的。页面高速缓存***200可以检测给定文件的存储器映射访问,并且作为响应,确定用于高速缓存与给定文件的存储器映射访问相关联的页面的持久存储器412的可用性。在页面高速缓存***200确定持久存储器412可用的情况下,页面高速缓存***200可以将页面高速缓存在持久存储器412上。在页面高速缓存***200确定持久存储器412可用的情况下,页面高速缓存***200可以将页面高速缓存在非持久存储器页面高速缓存406上。
如本文所描述的,在由页面高速缓存***200检测到的存储器映射访问包括高速缓存与存储器映射访问相关联的新页面的请求的情况下,可以将新页面高速缓存到持久存储器412并且应用402可以经由到持久存储器412的直接存储器映射(如图4中所图示)从持久存储器412访问新页面。在由页面高速缓存***200检测到的存储器映射访问包括(例如,由应用402)访问非持久存储器页面高速缓存406上的现有页面的请求的情况下,页面高速缓存***200可以将现有页面高速缓存在持久存储器412上,并且可以通过将现有页面从非持久存储器页面高速缓存406迁移到持久存储器412来这样做(如图4中所图示)。在将现有页面迁移到持久存储器412之后,可以(例如,由应用402)经由到持久存储器412的直接存储器映射来访问现有页面。最终,基于本文所描述的一组准则,页面高速缓存***200可以将持久存储器412上高速缓存的页面从持久存储器412清空到文件***408,从而使页面被存储在非易失性存储器设备410上。
关于计算机***,非持久存储器页面高速缓存406和持久存储器412可以是计算机***本地的。对于一些示例,文件***408是计算机***的本地非持久存储器文件***,并且与文件***408相关联的非易失性存储器设备410也是计算机***本地的。对于各种示例,文件***408是由另一计算机***维护的远程文件***,并且与文件***408相关联的非易失性存储器设备410相对于计算机***是远程的。
图5图示出了用于在文件的存储器映射访问期间使用持久存储器进行页面高速缓存的示例计算机***500。如所示,计算机***500包括计算机可读介质502、处理器504、持久存储器506和非持久存储器508。在各种示例中,计算机***500的组件或组件的布置可以不同于图5中所描绘的。例如,计算机***500可以包括与图5中所描绘的那些相比更多或更少的组件。
计算机可读介质502可以是存储可执行指令的任何电、磁、光或其他物理储存设备。例如,计算机可读介质502可以是随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、储存驱动器、光盘等。计算机可读介质502可以被编码以存储使处理器504根据本文所描述的各种示例执行操作的可执行指令。在各种示例中,计算机可读介质502是非暂时的。如图5中所示,计算机可读介质502包括存储器映射访问检测指令510和持久存储器页面高速缓存指令512。
处理器504可以是一个或多个中央处理单元(CPU)、微处理器或适于检索和执行存储在计算机可读介质502中的一个或多个指令的其他硬件设备。处理器504可以取得、解码并且执行指令510和512以使得计算机***500能够根据本文所描述的各种示例来执行操作。对于一些示例,处理器504包括一个或多个电子电路,其包括用于执行一个或多个指令510和512的功能性的多个电子组件。
持久存储器506可以包括诸如相变存储器(PCM)设备之类的持久存储器设备。在一些示例中,持久存储器506可以支持计算机***500处的本地持久存储器文件***,可以将其作为虚拟文件***的一部分提供给计算机***500上的应用。
非持久存储器508可以包括诸如动态随机存取存储器(DRAM)之类的随机存取存储器设备,其可以用作计算机***500上的非持久存储器页面高速缓存的基础。如本文所描述的,基于非持久存储器508,非持久存储器页面高速缓存可以支持来自由计算机***500可访问的文件***(例如,非持久存储器文件***或远程文件***)的文件的存储器映射访问。
存储器映射访问检测指令510可以使处理器504检测来自具有非持久存储器页面高速缓存的远程文件***的文件的存储器映射访问。如本文所描述的,远程文件***可以是由与计算机***500远离的计算机***来维护的文件***,并且远程文件***上的文件的存储器映射访问可以由非持久存储器页面高速缓存基于非持久存储器508来支持。持久存储器页面高速缓存指令512可以使处理器504基于用于高速缓存与文件的存储器映射访问相关联的页面的持久存储器506的可用性来将页面高速缓存在持久存储器506上。
图6图示出了由示例计算机***执行的示例方法600,以在文件的存储器映射访问期间使用持久存储器来促进页面高速缓存。尽管下面参照图1的页面高速缓存***100和计算机***来描述方法600的执行,但是由其他合适的***或设备执行方法600可以是可能的。方法600可以以电子电路形式和/或以存储在机器可读存储介质上的可执行指令的形式来实现。
在图6中,方法600开始于框602,存储器映射访问检测模块102由计算机***检测来自具有非持久存储器页面高速缓存的远程文件***的文件的存储器映射访问。在框604处,方法600继续,持久存储器页面高速缓存模块106基于用于页面高速缓存的持久存储器的可用性,在计算机***的持久存储器上高速缓存与文件的存储器映射访问相关联的页面。如本文所描述的,对于一些示例,计算机***上的持久存储器的可用性由持久存储器可用性模块104确定。
图7图示出了由示例计算机***执行的示例方法700,以在文件的存储器映射访问期间使用持久存储器来促进页面高速缓存。尽管下面参照图2的页面高速缓存***200和计算机***来描述方法700的执行,但是由其他合适的***或设备执行方法700可以是可能的。方法700可以以电子电路形式和/或以存储在机器可读存储介质上的可执行指令的形式来实现。
在图7中,方法700开始于框702,存储器映射访问检测模块202由计算机***检测来自具有非持久存储器页面高速缓存的远程文件***的文件的存储器映射访问。在框704处,方法700继续,持久存储器可用性模块204确定用于页面高速缓存的计算机***的持久存储器的可用性。在框706处,方法700继续,基于在框704处确定的可用性,持久存储器页面高速缓存模块206在持久存储器上高速缓存与文件的存储器映射访问相关联的页面。在框708处,方法700继续,持久存储器页面清空模块208将与文件的存储器映射访问相关联的页面从持久存储器清空到远程文件***。
在前面的描述中,阐述了许多细节以提供对本文所公开的主题的理解。然而,可以在没有这些细节中的一些或全部的情况下实践各种示例。一些示例可以包括从上面讨论的细节的修改和变型。旨在所附权利要求覆盖这些修改和变型。

Claims (13)

1.一种页面高速缓存***,包括:
处理器;以及
非暂时存储介质,所述非暂时存储介质存储能够在所述处理器上执行的指令,所述指令用于:
检测从具有非持久存储器页面高速缓存的非持久存储器文件***对文件的存储器映射访问,对所述文件的所述存储器映射访问包括用于访问页面的请求;
确定持久存储器用于高速缓存由对所述文件的所述存储器映射访问所访问的所述页面的可用性;
基于所述持久存储器的可用性来将由所述请求所访问的所述页面高速缓存在所述持久存储器中;以及
基于一组准则将所述页面从所述持久存储器清空到所述非持久存储器文件***,所述一组准则包括与所述持久存储器的条件相关的准则,其中将所述页面从所述持久存储器清空到所述非持久存储器文件***是响应于由能够在所述处理器上执行的所述指令确定所述持久存储器中由所述页面所占据的数据存储空间被用于除数据高速缓存以外的目的。
2.根据权利要求1所述的页面高速缓存***,其中,所述页面是新页面,并且所述存储器映射访问的用于访问所述页面的所述请求包括用于高速缓存所述新页面的请求。
3.根据权利要求1所述的页面高速缓存***,其中,所述页面是高速缓存在所述非持久存储器页面高速缓存中的现有页面,并且所述存储器映射访问的用于访问所述页面的所述请求包括用于访问所述现有页面的请求。
4.根据权利要求3所述的页面高速缓存***,其中,将所述现有页面高速缓存在所述持久存储器中包括将所述现有页面从所述非持久存储器页面高速缓存迁移到所述持久存储器。
5.根据权利要求1所述的页面高速缓存***,其中,所述指令能够在所述处理器上执行以用于基于所述一组准则将所述页面从所述持久存储器清空到所述非持久存储器文件***,所述一组准则还包括与所述存储器映射访问的条件相关的准则。
6.根据权利要求1所述的页面高速缓存***,其中,所述指令能够在所述处理器上执行以用于基于所述一组准则将所述页面从所述持久存储器清空到所述非持久存储器文件***,所述一组准则还包括与所述文件是否被关闭相关的准则。
7.一种非暂时计算机可读介质,所述非暂时计算机可读介质包括指令,所述指令在执行时使得计算机***:
在所述计算机***中检测从具有非持久存储器页面高速缓存的非持久存储器文件***对文件的存储器映射访问,对所述文件的所述存储器映射访问包括用于访问页面的请求;
基于持久存储器用于高速缓存所述页面的可用性来将由所述请求所访问的所述页面高速缓存在所述持久存储器中;以及
基于一组准则将所述页面从所述持久存储器清空到所述非持久存储器文件***,所述一组准则包括与所述持久存储器的条件相关的准则,其中将所述页面从所述持久存储器清空到所述非持久存储器文件***是响应于由所述指令确定所述持久存储器中由所述页面所占据的数据存储空间被用于除数据高速缓存以外的目的。
8.根据权利要求7所述的非暂时计算机可读介质,其中,所述页面是新页面,并且所述存储器映射访问的用于访问所述页面的所述请求包括用于高速缓存所述新页面的请求。
9.根据权利要求7所述的非暂时计算机可读介质,其中,所述页面是高速缓存在所述非持久存储器页面高速缓存中的现有页面,并且所述存储器映射访问的用于访问所述页面的所述请求包括用于访问所述现有页面的请求。
10.一种页面高速缓存方法,包括:
由计算机***检测通过网络从具有非持久存储器页面高速缓存的远程文件***对文件的存储器映射访问,对所述文件的所述存储器映射访问包括用于访问页面的请求;
由所述计算机***基于持久存储器用于高速缓存所述页面的可用性来将由所述请求所访问的所述页面高速缓存在所述持久存储器中;以及
由所述计算机***基于一组准则通过所述网络将所述页面从所述持久存储器清空到所述远程文件***,所述一组准则包括与条件相关的准则且所述条件与所述文件的解映射相关,并且通过所述网络将所述页面从所述持久存储器清空到所述远程文件***是响应于用于使所述文件解映射的解映射***调用。
11.根据权利要求10所述的方法,包括由所述计算机***基于确定所述持久存储器已被启用用于页面高速缓存而确定所述持久存储器的可用性。
12.根据权利要求10所述的方法,包括由所述计算机***基于所述一组准则通过所述网络将所述页面从所述持久存储器清空到所述远程文件***,所述一组准则包括与所述文件是否被关闭相关的准则。
13.根据权利要求10所述的方法,包括由所述计算机***基于所述一组准则通过所述网络将所述页面从所述持久存储器清空到所述远程文件***,所述一组准则还包括与所述持久存储器的条件相关的准则。
CN201580074818.0A 2015-04-02 2015-04-02 用于页面高速缓存的***及方法以及存储介质 Active CN107209720B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/024159 WO2016160027A1 (en) 2015-04-02 2015-04-02 Page cache on persistent memory

Publications (2)

Publication Number Publication Date
CN107209720A CN107209720A (zh) 2017-09-26
CN107209720B true CN107209720B (zh) 2020-10-13

Family

ID=57007393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580074818.0A Active CN107209720B (zh) 2015-04-02 2015-04-02 用于页面高速缓存的***及方法以及存储介质

Country Status (3)

Country Link
US (1) US10684954B2 (zh)
CN (1) CN107209720B (zh)
WO (1) WO2016160027A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015130314A1 (en) 2014-02-28 2015-09-03 Hewlett-Packard Development Company, L.P. Mapping mode shift
US10824362B2 (en) 2015-03-27 2020-11-03 Hewlett Packard Enterprise Development Lp File migration to persistent memory
CN113655949B (zh) * 2020-06-15 2023-12-01 中兴通讯股份有限公司 一种基于pm的数据库页缓存方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101490651A (zh) * 2006-07-01 2009-07-22 国际商业机器公司 管理持久性的方法、装置和计算机程序
CN102483714A (zh) * 2009-07-24 2012-05-30 苹果公司 恢复索引页
CN102804152A (zh) * 2009-05-15 2012-11-28 甲骨文美国公司 对存储器层次结构中的闪存的高速缓存一致性支持
WO2014100546A1 (en) * 2012-12-22 2014-06-26 Qualcomm Incorporated Reducing power consumption of volatile memory via use of non-volatile memory

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06188937A (ja) 1992-12-16 1994-07-08 Canon Inc データ処理装置
US6202124B1 (en) 1998-05-05 2001-03-13 International Business Machines Corporation Data storage system with outboard physical data transfer operation utilizing data path distinct from host
US6321233B1 (en) 1998-12-15 2001-11-20 Micron Technology, Inc. Apparatus for controlling pipelined memory access requests
US6901481B2 (en) 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
US6473845B1 (en) 2000-09-28 2002-10-29 Hewlett-Packard Company System and method for dynamically updating memory address mappings
US6691245B1 (en) 2000-10-10 2004-02-10 Lsi Logic Corporation Data storage with host-initiated synchronization and fail-over of remote mirror
US7032228B1 (en) 2001-03-01 2006-04-18 Emc Corporation Common device interface
US20020194558A1 (en) 2001-04-10 2002-12-19 Laung-Terng Wang Method and system to optimize test cost and disable defects for scan and BIST memories
US7222348B1 (en) 2002-12-16 2007-05-22 Unisys Corporation Universal multi-path driver for storage systems
JP2005018193A (ja) 2003-06-24 2005-01-20 Hitachi Ltd ディスク装置のインタフェースコマンド制御方法ならびに計算機システム
US20050125456A1 (en) 2003-12-09 2005-06-09 Junichi Hara File migration method based on access history
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7330938B2 (en) 2004-05-18 2008-02-12 Sap Ag Hybrid-cache having static and dynamic portions
US8407396B2 (en) 2004-07-30 2013-03-26 Hewlett-Packard Development Company, L.P. Providing block data access for an operating system using solid-state memory
US7281104B1 (en) 2005-03-21 2007-10-09 Acronis Inc. System and method for online data migration
US7574621B2 (en) 2006-03-14 2009-08-11 Lenovo (Singapore) Pte Ltd. Method and system for identifying and recovering a file damaged by a hard drive failure
US8135936B2 (en) 2009-12-23 2012-03-13 Intel Corporation Adaptive address mapping with dynamic runtime memory mapping selection
WO2008055269A2 (en) 2006-11-04 2008-05-08 Virident Systems, Inc. Asymmetric memory migration in hybrid main memory
US8260841B1 (en) 2007-12-18 2012-09-04 American Megatrends, Inc. Executing an out-of-band agent in an in-band process of a host system
US7953919B2 (en) 2007-12-21 2011-05-31 Spansion Llc Physical block addressing of electronic memory devices
US8352671B2 (en) * 2008-02-05 2013-01-08 Spansion Llc Partial allocate paging mechanism using a controller and a buffer
US8275945B2 (en) * 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
EP2246786A1 (en) 2009-04-27 2010-11-03 Sim-Industries B.V. Managing a shared memory region
US8219758B2 (en) 2009-07-10 2012-07-10 Apple Inc. Block-based non-transparent cache
US8174520B2 (en) 2009-08-28 2012-05-08 Himax Technologies Limited Driving circuit of an LCD panel and data transmission method thereof
US8898417B1 (en) 2009-10-20 2014-11-25 Micron Technology, Inc. Block-based storage device with a memory-mapped interface
US9158788B2 (en) * 2009-12-16 2015-10-13 International Business Machines Corporation Scalable caching of remote file data in a cluster file system
US9411517B2 (en) 2010-08-30 2016-08-09 Vmware, Inc. System software interfaces for space-optimized block devices
TWI434175B (zh) 2010-09-27 2014-04-11 Silicon Motion Inc 用來進行區塊管理之方法以及記憶裝置及控制器
CN103262054B (zh) 2010-12-13 2015-11-25 桑迪士克科技股份有限公司 用于自动提交存储器的装置、***和方法
US20120297147A1 (en) * 2011-05-20 2012-11-22 Nokia Corporation Caching Operations for a Non-Volatile Memory Array
US9021226B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Moving blocks of data between main memory and storage class memory
US8856191B2 (en) 2011-08-01 2014-10-07 Infinidat Ltd. Method of migrating stored data and system thereof
EP2761468B1 (en) 2011-09-30 2019-12-11 Intel Corporation Platform storage hierarchy with non-volatile random access memory having configurable partitions
EP2761481A4 (en) 2011-09-30 2015-06-17 Intel Corp PRESENTATION OF DIRECT ACCESS STORAGE DEVICE IN LOGIC READER MODEL
EP3346386B1 (en) 2011-09-30 2020-01-22 Intel Corporation Non-volatile random access memory (nvram) as a replacement for traditional mass storage
US9244848B2 (en) * 2011-10-10 2016-01-26 Intel Corporation Host controlled hybrid storage device
US20130111103A1 (en) 2011-10-28 2013-05-02 International Business Corporation High-speed synchronous writes to persistent storage
US8756458B2 (en) 2011-12-12 2014-06-17 Apple Inc. Mount-time reconciliation of data availability
US20130185503A1 (en) 2012-01-12 2013-07-18 Vigneshwara Bhatta Method for metadata persistence
US9223686B1 (en) * 2012-02-01 2015-12-29 Amazon Technologies, Inc. Cache memory data storage control system and method
US9430386B2 (en) * 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
WO2015050620A2 (en) 2013-07-16 2015-04-09 Openpeak Inc. Method and system for backing up and restoring a virtual file system
US10002077B2 (en) * 2014-01-31 2018-06-19 Hewlett Packard Enterprise Development Lp Persistent memory controller based atomicity assurance
WO2015130314A1 (en) 2014-02-28 2015-09-03 Hewlett-Packard Development Company, L.P. Mapping mode shift
JP2015170160A (ja) 2014-03-07 2015-09-28 富士通株式会社 情報処理システム,情報処理装置,情報処理プログラム及び情報処理方法
JP6265041B2 (ja) 2014-05-15 2018-01-24 富士通株式会社 コンパイルプログラム、コンパイル方法およびコンパイル装置
US9383926B2 (en) * 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
US9652391B2 (en) * 2014-12-30 2017-05-16 Arteris, Inc. Compression of hardware cache coherent addresses
US9690716B2 (en) * 2015-02-13 2017-06-27 Intel Corporation High performance persistent memory for region-centric consistent and atomic updates
US10824362B2 (en) * 2015-03-27 2020-11-03 Hewlett Packard Enterprise Development Lp File migration to persistent memory
US9886210B2 (en) * 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US9836232B1 (en) * 2015-09-30 2017-12-05 Western Digital Technologies, Inc. Data storage device and method for using secondary non-volatile memory for temporary metadata storage
US9977758B1 (en) * 2015-10-19 2018-05-22 Xilinx, Inc. Device profiling for tuning OpenCL applications on programmable integrated circuits
US10705972B2 (en) 2016-09-13 2020-07-07 Advanced Micro Devices, Inc. Dynamic adaptation of memory page management policy

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101490651A (zh) * 2006-07-01 2009-07-22 国际商业机器公司 管理持久性的方法、装置和计算机程序
CN102804152A (zh) * 2009-05-15 2012-11-28 甲骨文美国公司 对存储器层次结构中的闪存的高速缓存一致性支持
CN102483714A (zh) * 2009-07-24 2012-05-30 苹果公司 恢复索引页
WO2014100546A1 (en) * 2012-12-22 2014-06-26 Qualcomm Incorporated Reducing power consumption of volatile memory via use of non-volatile memory

Also Published As

Publication number Publication date
CN107209720A (zh) 2017-09-26
WO2016160027A1 (en) 2016-10-06
US20170308479A1 (en) 2017-10-26
US10684954B2 (en) 2020-06-16

Similar Documents

Publication Publication Date Title
US10824362B2 (en) File migration to persistent memory
US9720717B2 (en) Virtualization support for storage devices
US10698829B2 (en) Direct host-to-host transfer for local cache in virtualized systems wherein hosting history stores previous hosts that serve as currently-designated host for said data object prior to migration of said data object, and said hosting history is checked during said migration
KR101729097B1 (ko) 복수의 가상 머신에서 수행되는 응용 프로그램들간 참조 데이터를 공유하는 방법 및 이를 위한 참조 데이터 관리 장치 및 시스템
KR102443600B1 (ko) 하이브리드 메모리 시스템
US20160299712A1 (en) Virtual Machines Backed by Host Virtual Memory
WO2018176911A1 (zh) 一种虚拟磁盘文件格式转换方法和装置
US11119942B2 (en) Facilitating access to memory locality domain information
US11074189B2 (en) FlatFlash system for byte granularity accessibility of memory in a unified memory-storage hierarchy
KR102434170B1 (ko) 하이브리드 메모리 시스템
US8954707B2 (en) Automatic use of large pages
US20150089102A1 (en) Solid state drives that cache boot data
CN107209720B (zh) 用于页面高速缓存的***及方法以及存储介质
US10691590B2 (en) Affinity domain-based garbage collection
KR102443593B1 (ko) 하이브리드 메모리 시스템
US11132128B2 (en) Systems and methods for data placement in container-based storage systems
US11835992B2 (en) Hybrid memory system interface
US10809937B2 (en) Increasing the speed of data migration
US11914527B2 (en) Providing a dynamic random-access memory cache as second type memory per application process
US11163475B2 (en) Block input/output (I/O) accesses in the presence of a storage class memory
No et al. MultiCache: Multilayered Cache Implementation for I/O Virtualization

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
GR01 Patent grant
GR01 Patent grant