CN107480074A - 一种缓存方法、装置及电子设备 - Google Patents

一种缓存方法、装置及电子设备 Download PDF

Info

Publication number
CN107480074A
CN107480074A CN201710775153.7A CN201710775153A CN107480074A CN 107480074 A CN107480074 A CN 107480074A CN 201710775153 A CN201710775153 A CN 201710775153A CN 107480074 A CN107480074 A CN 107480074A
Authority
CN
China
Prior art keywords
data
page
table items
data page
destination address
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.)
Granted
Application number
CN201710775153.7A
Other languages
English (en)
Other versions
CN107480074B (zh
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710775153.7A priority Critical patent/CN107480074B/zh
Publication of CN107480074A publication Critical patent/CN107480074A/zh
Application granted granted Critical
Publication of CN107480074B publication Critical patent/CN107480074B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0877Cache access modes
    • G06F12/0882Page mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例提供一种缓存方法、装置及电子设备,通过当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址;在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中;根据所述指令类型和目标地址,确定所述数据页对应的数据表项;利用所述数据表项访问相应的数据页;其中,所述数据表项和所述数据页均存储在所述非易失性存储器上。通过数据表项的对非易失性存储空间进行控制,主存储器中的数据可以缓存在非易失性存储器上,由于非易失性存储器与系统内存相互独立,即使在计算机系统占用大量系统内存的情况下,也能够保证缓存性能,进而提高计算机系统性能。

Description

一种缓存方法、装置及电子设备
技术领域
本发明涉及数据缓存技术领域,特别是涉及一种缓存方法、装置及电子设备。
背景技术
在计算机系统中,磁盘的读写访问速度是系统性能的瓶颈,磁盘与内存相比两者之间的速度差异通常能够达到指数级。为了提高磁盘读写速度,目前通常会采用pagecache(中文:页缓存)的方式缓存磁盘数据,page cache即是采用系统的物理内存中的一段,在访问磁盘数据时,将磁盘数据缓存到物理内存中,达到提高访问速度的目的。
然而,发明人通过研究发现,page cache占用物理内存的大小通常是根据计算机系统的负载动态分配的,当计算机系统需要占用大量物理内存时,会缩小page cache空间,这样本来存储在page cache中的数据需要回写到磁盘中,从而可能会引起频繁的向磁盘回写数据的操作,进而影响计算机系统性能。
因此如何能够提高计算机系统性能,是本领域技术人员亟需解决的技术问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种缓存方法、装置及电子设备,用于解决现有技术中性能差的问题。
为实现上述目的及其他相关目的,根据本发明的第一方面,本发明实施例提供一种缓存方法,该方法包括以下步骤:
当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址;
在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中;
根据所述指令类型和目标地址,确定所述数据页对应的数据表项;
利用所述数据表项访问相应的数据页;
其中,所述数据表项和所述数据页均存储在所述非易失性存储器上。
可选地,所述缓存方法还包括:
在非易失性存储器中,当存在与所述目标地址相对应的数据表项时,访问所述数据表项对应的数据页。
可选地,在所述获取缺页中断的指令类型和待访问主存储器的目标地址之前,还包括:
确定缺页中断时的目标地址是否属于进程地址范围;
所述获取缺页中断的指令类型和待访问主存储器的目标地址包括:
当缺页中断时的目标地址属于进程地址范围时,获取缺页中断的指令类型和待访问主存储器的目标地址。
可选地,根据所述指令类型和目标地址,确定所述数据页对应的数据表项,包括:
当所述指令类型为读取时,读取主存储器中所述目标地址对应的目标数据,并将所述目标数据存储在非易失性存储器的数据页中;
根据所述指令类型和目标地址,确定所述数据页对应的数据表项,包括当所述数据页的数据表项包括标志位时,将所述标志位设置为读取,以指示所述目标数据为读取到的数据;
或者,
根据所述指令类型和目标地址,确定所述数据页对应的数据表项,包括当所述指令类型为写入时,将所述目标数据写入到非易失性存储器的数据页中;
根据所述指令类型和目标地址,确定所述数据页对应的数据表项,包括当所述数据页的数据表项包括标志位时,将所述标志位设置为写入,以指示所述目标数据为需要回写到主存储器的数据。
可选地,所述缓存方法还包括:
当断电重启时,将标志位为写入的数据表项所对应的数据页回写到相应的主存储器的地址。
可选地,当所述数据表项包括数据页热度时,所述数据页热度用于描述数据页的访问频率,所述缓存方法还包括:
统计所述非易失性存储器的占用量;
当所述占用量大于或等于阈值时,优先将数据页热度低的数据页回写到所述数据表项对应的主存储器的地址,并将回写的数据页清空。
根据本发明的第二方面,本发明实施例还提供一种缓存装置,该缓存装置包括:
获取模块,用于当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址;
数据页建立模块,用于在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中;
数据表项建立模块,用于根据所述指令类型和目标地址,确定所述数据页对应的数据表项;
访问模块,用于利用所述数据表项访问相应的数据页;
其中,所述数据表项和所述数据页均存储在所述非易失性存储器上。
可选地,所述数据页建立模块用于,当所述指令类型为读取时,读取主存储器中所述目标地址对应的目标数据,并将所述目标数据存储在非易失性存储器的数据页中;以及,所述数据表项建立模块用于,当所述数据页的数据表项包括标志位时,将所述标志位设置为读取,以指示所述目标数据为读取到的数据;
或者,
所述数据页建立模块用于,当所述指令类型为写入时,将所述目标数据写入到非易失性存储器的数据页中;以及,所述数据表项建立模块用于,当所述数据页的数据表项包括标志位时,将所述标志位设置为写入,以指示所述目标数据为需要回写到主存储器的数据。
可选地,所述缓存装置还包括回收模块用于,
当所述数据表项包括数据页热度时,所述数据页热度用于描述数据页的访问频率,统计所述非易失性存储器的占用量;
当所述占用量大于或等于阈值时,优先将数据页热度低的数据页回写到所述数据表项对应的主存储器的地址,并将回写的数据页清空。
根据本发明的第三方面,本发明实施例还提供一种电子设备,该电子设备包括至少一个处理器;以及,
与所述至少一个处理器通信连接的主存储器和非易失性存储器;其中,
所述主存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址;
在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中;
根据所述指令类型和目标地址,确定所述数据页对应的数据表项;
利用所述数据表项访问相应的数据页;
其中,所述数据表项和所述数据页均存储在所述非易失性存储器上。
如上所述,本发明实施例提供的一种缓存方法、装置及电子设备,具有以下有益效果:通过当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址;在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中;根据所述指令类型和目标地址,确定所述数据页对应的数据表项;利用所述数据表项访问相应的数据页;其中,所述数据表项和所述数据页均存储在所述非易失性存储器上。通过数据表项的对非易失性存储空间进行控制,主存储器中的数据可以缓存在非易失性存储器上,由于非易失性存储器与系统内存相互独立,即使在计算机系统占用大量系统内存的情况下,也能够保证缓存性能,进而提高计算机系统性能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种缓存方法的流程示意图;
图2是本发明实施例提供的一种非易失性存储器的结构示意图;
图3是本发明实施例提供的另一种缓存方法的流程示意图;
图4是本发明实施例提供的再一种缓存方法;
图5是本发明实施例提供的又一种缓存方法的流程示意图;
图6是本发明实施例提供的一种缓存装置的结构示意图;
图7是本发明实施例提供的执行缓存方法的电子设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
请参阅图1至图7。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
在本发明实施例中,执行该缓存方法的可以为任意的电子设备,例如服务器、个人电脑以及PAD等终端。所述电子设备可以配置有系统内存以及非易失性存储器;其中,系统内存能够支持电子设备操作系统本身运行需要的内存,例如内核数据段、代码段、堆栈以及内核数据结构占用的内存;所述非易失性存储器,可以为NVDIMM(英文:Non-volatile DualInline Memory Module,中文:非易失性双列插入式记忆模块),它拥有系统内存相当的高速数据吞吐能力,且由于其具有非易失性因此能够用来保存长期数据。另外,在电子设备上还配置有主存储器,该主存储器可以理解为硬盘等存储设备,用于长期存储用户程序或数据;在本发明实施例中,所述非易失性存储器提供读写硬盘数据的缓存。本发明实施例以服务器为例详细描述该缓存方法。
参见图1,是本发明实施例提供的一种缓存方法的流程示意图,如图1所示,该缓存包括以下步骤:
步骤S101:当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址。
在服务器中,当操作系统额进程在执行一条指令时,如果该指令要访问的数据页没有在系统内存中,则会停止该指令的执行,并产生一个数据页不存在异常,对应的故障处理程序可通过从外部存储器加载该数据页到内存的方法来排除故障,之后,原先引起的异常的指令就可以继续执行,而不再产生异常。在本发明实施例中,上述外部存储器为NVDIMM,进一步可以通过NVDIMM的缓存处理,从NVDIMM中提取缓存的数据页来排除故障。
当发生缺页中断时,获取缺页中断时相应指令的指令类型和待访问主存储器的目标地址;其中,所述指令类型可以包括读取或者写入,当所述指令类型为读取时,标识该指令需要读取所述目标地址对应的存储在主存储器中的数据页;当所述指令类型为写入时,标识该指令需要写入所述目标地址对应的存储在主存储器中的数据页。在具体实施时,可以通过从指令中提取上述指令类型和上述目标地址,或者通过解析所述指令,获取到所述指令类型和目标地址,在本发明实施例中不再赘述。
步骤S102:在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中。
参见图2,是本发明实施例提供的一种非易失性存储器的结构示意图,在本发明实施例中,所述非易失性存储器1可以为NVDIMM,如图2所示,所述非易失性存储器1内的存储空间可以被划分为Metadata区11和data区12;其中,Metadata区11可以用于存储数据表项,所述data区12可以用于存储数据页。所述数据表项111可以包括任意多个目标地址,而且每个目标地址与data区12内的相应的数据页121相对应。在一示例性实施例中,所述数据表项111可以包括第一目标地址、第二目标地址、第三目标地址和第四目标地址,而且,第一目标地址可以对应data区12内的第一数据页,第二目标地址可以对应data区12内的第二数据页,第三目标地址可以对应data区12内的第三数据页,第四目标地址可以对应data区12内的第四数据页。为了建立目标地址与数据页的对应关系,所述数据表项111还可以包括数据页编号,所述数据页编号用于标识所述数据页,通过所述数据页编号即能够确定以及访问相应的数据页。另外,所述数据表项111中还可以包括相应数据页所对应的目标数据的标志位,所述标志位根据所述指令类型确定,用于描述对目标数据的操作。这样,在一示例性实施例中,所述数据表项111的组织形式可以为:{“第一目标地址;第一数据页编号;第一标志位”,“第二目标地址;第二数据页编号;第二标志位”,“第三目标地址;第三数据页编号;第三标志位”,“第四目标地址;第四数据页编号;第四标志位”},具体地,所述数据表项111中的“第一目标地址;第一数据页编号;第一标志位”用于标识目标数据对应的主存储器中的第一目标地址,而且所述目标数据可以缓存在第一数据页编号对应的数据页中,所述目标数据执行第一标志位对应的操作。当然,需要说明的是,上述非易失性存储器1中存储空间的划分,以及数据表项111的组织形式仅是一示例性实施例中,在具体实施时,本领域技术人员可以使用其他任意架构的非易失性存储器以及数据表项。
通过步骤S101获取到的待访问主存储器的目标地址,可以遍历所述数据表项111,从而判断所述目标地址是否存在于所述数据表项111中;当待访问的目标地址不存在于所述数据表项111中时,进一步根据步骤S101获取到的指令类型,将目标数据存储在非易失性存储器1内的data区12中。
在第一种实施情况下,当所述指令类型为读取时,可以在非易失性存储器1内的data区12中新建第五数据页,并且访问主存储器2中的目标地址获得目标数据,将该目标数据存放在第五数据页中。
在第二种实施情况下,当所述指令类型为写入时,可以在非易失性存储器1内的data区12中新建第六数据页,并且将需要写入到主存储器2的目标地址的目标数据,存放到第六数据页中。
步骤S103:根据所述指令类型和目标地址,确定所述数据页对应的数据表项。
在第一种实施情况下,当所述指令类型为读取时,同样参见图2,读取主存储器2中所述目标地址对应的目标数据,并将所述目标数据存储在非易失性存储器的数据页中。在一示例性实施例中,所述数据表项111中包括第一目标地址、第二目标地址、第三目标地址和第四目标地址,当所述指令类型为读取,而且,待访问主存储器的目标地址不存在与数据表项111内时,可以在所述数据表项111内,增加第五目标地址,所述第五目标地址即为待访问主存储器2的目标地址;同时,当非易失性存储器1中的data区12中包括第一数据页、第二数据页、第三数据页以及第四数据页时,在非易失性存储器1中的data区12新建第五数据页,所述第五数据页用于存放目标数据,其中,所述目标数据为通过访问主存储器2的目标地址获取到的数据;所述数据表项111中还配置有第五数据页编号,所述第五数据页编号与目标数据一一对应,这样通过第五目标地址即可确定第五数据页编号,进而通过第五数据页编号就可以访问data区12内的第五数据页。
以及,当所述数据页的数据表项包括标志位时,将所述标志位设置为读取,以指示所述目标数据为读取到的数据。在一示例性实施例中,可以在数据表项111中增加第五标志位,所述第五标志位为读取;这样在数据表项111中产生了一个新的条目“第五目标地址;第五数据页编号;第五标志位”,表示从主存储器2中的第五目标地址读取到目标数据,该目标数据被存放到非易失性存储器1的data区第五数据页编号对应的数据页,该目标数据的操作是读取,这样服务器再次发出对主存储器2的第五目标地址的读取指令时,则可以直接从非易失性存储器中提取第五数据页进行访问,而无需再次访问主存储器2。
在第二种实施情况下,当所述指令类型为写入时,将所述目标数据写入到非易失性存储器的数据页中。在一示例性实施例中,基于上述数据表项111,所述数据表项111中包括第一目标地址、第二目标地址、第三目标地址、第四目标地址和第五目标地址,当所述指令类型为读取,而且,待访问主存储器的目标地址不存在与数据表项111内时,可以在所述数据表项111内,增加第六目标地址,所述第六目标地址即为待访问主存储器2的目标地址;同时,当非易失性存储器1中的data区12中包括第一数据页、第二数据页、第三数据页、第四数据页和第五数据页时,在非易失性存储器1中的data区12新建第六数据页,所述第六数据页用于存放目标数据,其中,所述目标数据为需要写入到主存储器2的目标地址的数据;所述数据表项111中还配置有第六数据页编号,所述第六数据页编号与目标数据一一对应,这样通过第六目标地址即可确定第六数据页编号,进而通过第六数据页编号就可以访问data区12内的第六数据页
以及,当所述数据页的数据表项包括标志位时,将所述标志位设置为写入,以指示所述目标数据为需要回写到主存储器的数据。在一示例性实施例中,可以在数据表项111中增加第六标志位,所述第六标志位为写入;这样在数据表项111中产生了一个新的条目“第六目标地址;第六数据页编号;第六标志位”,表示将目标数据存放到非易失性存储器1的data区第六数据页编号对应的数据页,该目标数据的操作是写入,该目标数据需要回写到主存储器2的第六目标地址,这样服务器将目标数据回写到主存储器2时,则可以直接从非易失性存储器中提取第六数据页。
步骤S104:利用所述数据表项访问相应的数据页;其中,所述数据表项和所述数据页均存储在所述非易失性存储器上。
通过上述步骤S101至S103,当数据表项中并没有记录相应的目标地址时,已将缺页中断指令对应的的目标地址、数据页编号以及标志位写入到了数据表项中,这样可以利用数据表项,提供相应的数据页进行访问,修复缺页中断故障。或者,当数据表项中存在相应的目标地址时,可以根据所述数据表项提供相应的数据页进行访问,从而修复缺页终端故障。
在一示例性实施例中,当缺页中断的指令对应的待访问主存储器的目标地址对应了第五目标地址时,则根据数据表项,第五目标地址对应这第五数据页编号,根据第五数据页编号能够确定第五数据页为待访问的数据页,则可以提供第五数据页进行访问。
由上述实施例的描述可见,本发明实施例提供的一种缓存方法,通过当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址;在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中;根据所述指令类型和目标地址,确定所述数据页对应的数据表项;利用所述数据表项访问相应的数据页;其中,所述数据表项和所述数据页均存储在所述非易失性存储器上。通过数据表项的对非易失性存储空间进行控制,主存储器中的数据可以缓存在非易失性存储器上,由于非易失性存储器与系统内存相互独立,即使在计算机系统占用大量系统内存的情况下,也能够保证缓存性能,进而提高计算机系统性能。
为了提高缓存效率,参见图3,是本发明实施例提供的另一种缓存方法的流程示意图。如图3所示,该方法包括:
步骤S201:确定缺页中断时的目标地址是否属于进程地址范围。
在一示例性实施例中,所述进程地址范围可以为0至3G范围,进一步判断缺页中断时的目标地址是否属于进程地址范围。当然,上述进程地址范围的设置仅是一示例性实施例中,在具体实施时,本领域技术人员可以设定为任意其他范围,在本发明实施例中不做限定。
步骤S202:当缺页中断时的目标地址属于进程地址范围时,获取缺页中断的指令类型和待访问存储器的目标地址。
根据步骤S301的判断,当缺页中断时的目标地址属于进程地址范围时,执行后续步骤的操作。
步骤S203:在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中。
步骤S204:根据所述指令类型和目标地址,确定所述数据页对应的数据表项。
步骤S205:利用所述数据表项访问相应的数据页。
本发明实施例与上述实施例的相同之处,可参见上述实施例的描述,在此不再赘述。
由上述实施例的描述可见,本发明实施例对缺页中断时的目标地址进行校验,只有当校验成功后才继续后续步骤,从而有效提高了缓存效率。
在计算机系统使用过程中,很可能发生断电故障,通常的缓存在系统内存中的数据在断电后会发生丢失,为了提高缓存的可靠性,进而提升计算机系统性能,参见图4,是本发明实施例提供的再一种缓存方法。如图4所示,该方法包括:
步骤S301:当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址。
步骤S302:在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中;
步骤S303:根据所述指令类型和目标地址,确定所述数据页对应的数据表项;
步骤S304:利用所述数据表项访问相应的数据页。
步骤S305:当断电重启时,将标志位为写入的数据表项所对应的数据页回写到相应的主存储器的地址。
在本发明实施例中,由于主存储器2的缓存数据存储在非易失性存储器1中,当计算机系统断电之后重新启动,可以根据数据表项中的标志位,将标志位为写入所对应的数据页回写到主存储器2中,从而保证数据的完整性。
在一示例性实施例中,在系统断电重启后,可以遍历所述数据表项,当所述数据表项中存在“第一目标地址;第一数据页编号;第一标志位”,以及“第六目标地址;第六数据页编号;第六标志位”,其中,第一标志位和第六标志位均为写入,则进一步,根据第一数据页编号,从非易失性存储器的data区12中提取相应的第一数据页,根据第六数据页编号,从非易失性存储器的data区12中提取相应的第六数据页,将第一数据页中的目标数据回写到主存储器2的第一目标地址,以及将第六数据页中的目标数据回写到主存储器2的第六目标地址。
本发明实施例与上述实施例的相同之处,可参见上述实施例的描述,在此不再赘述。
由上述实施例的描述可见,本发明实施例提供的再一种缓存方法,在计算机系统断电后,由于采用了非易失性存储器存储缓存数据,并且采用数据表项管理缓存数据,有效实现了将需要回写的缓存数据回写到主存储器中,保证了数据的完整性,进而提高了计算机系统的性能。
在实际使用过程中,由于非易失性存储器的存储空间有限,为了提高非易失性存储器的使用效率,参见图5,是本发明实施例提供的又一种缓存方法的流程示意图。如图5所示,本发明实施例示出了对非易失性存储器进行管理的过程:
步骤S501:当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址。
步骤S502:在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中。
步骤S503:根据所述指令类型和目标地址,确定所述数据页对应的数据表项。
在本发明实施例中,所述数据表项中还可以包括数据页热度,所述数据页热度用于标识相应数据页的访问频度。
在具体实施时,所述访问频度可以为在一时间段内,统计非易失性存储器的data区12中每个数据页的访问次数。在一示例性实施例中,在12小时的时间内,统计第一数据页的访问次数为10次,第二数据页的访问次数为15次,第三数据页的访问次数为3次,第四数据页的访问次数为30次,则相应的第一数据页热度为10,第二数据页热度为15,第三数据页热度为3,第四数据页热度为30。
这样,所述数据表项可以表示为:{“第一目标地址;第一数据页编号;第一标志位;第一数据页热度”,“第二目标地址;第二数据页编号;第二标志位;第二数据页热度”,“第三目标地址;第三数据页编号;第三标志位;第三数据页热度”,“第四目标地址;第四数据页编号;第四标志位;第一四数据页热度”}。
步骤S504:利用所述数据表项访问相应的数据页。
步骤S505:统计所述非易失性存储器的占用量。
步骤S506:当所述占用量大于或等于阈值时,优先将数据页热度低的数据页回写到所述数据表项对应的主存储器的地址,并将回写的数据页清空。
在一示例性实施例中,所述阈值可以为70%,当非易失性存储器的占用量大于或等于70%时,优先将数据页热度低的数据页回写到主存储器中。根据步骤S503确定的数据表项,由于第三数据页热度低,则根据数据页表项,确定第三数据页热度对应着第三数据页编号,从而根据所述第三数据页编号从非易失性存储器的data区12中获取到第三数据页,进一步,由于第三数据页热度对应着第三目标地址,则将第三数据页回写到主存储器的第三目标地址,以及将第三数据页清空,释放存储空间。
本发明实施例与上述实施例的相同之处,可参见上述实施例的描述,在此不再赘述。
由上述实施例的描述可见,本发明实施例提供的又一种缓存方法,监控非易失性存储的占用状态,当非易性存储器的占用较高时,可以将访问较少的数据页回写到主存储释放存储空间,保证非易失性存储器的有效利用率,进而提高计算机系统的性能。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
与本发明提供的缓存方法实施例相对应,本发明还提供了一种缓存装置。
参见图6,是本发明实施例提供的一种缓存装置的结构示意图,如图6所示,该缓存装置包括:
获取模块110,用于当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址;
数据页建立模块120,用于在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中;
数据表项建立模块130,用于根据所述指令类型和目标地址,确定所述数据页对应的数据表项;
访问模块140,用于在缺页中断或者目标地址存在于所述数据表项的情况下,利用所述数据表项访问相应的数据页;
其中,所述数据表项和所述数据页均存储在所述非易失性存储器上。
在第一种实施情况下,所述数据页建立模块120用于,当所述指令类型为读取时,读取主存储器中所述目标地址对应的目标数据,并将所述目标数据存储在非易失性存储器的数据页中;以及,所述数据表项建立模块130用于,当所述数据页的数据表项包括标志位时,将所述标志位设置为读取,以指示所述目标数据为读取到的数据。
在第二种实施情况下,所述数据页建立模块120用于,当所述指令类型为写入时,将所述目标数据写入到非易失性存储器的数据页中;以及,所述数据表项建立模块130用于,当所述数据页的数据表项包括标志位时,将所述标志位设置为写入,以指示所述目标数据为需要回写到主存储器的数据。
为了提高缓存效率,在第三种实施情况下,所述缓存装置还包括校验模块150,所述校验模块150用于,确定缺页中断时的目标地址是否属于进程地址范围;所述获取模块110用于,当缺页中断时的目标地址属于进程地址范围时,获取缺页中断的指令类型和待访问主存储器的目标地址。
为了保证数据的完整性,在第四种实施情况下,所述访问模块140,还用于当断电重启时,将标志位为写入的数据表项所对应的数据页回写到相应的主存储器的地址。
在实际使用过程中,由于非易失性存储器的存储空间有限,为了提高非易失性存储器的使用效率,在第五种实施情况下,所述缓存装置还包括回收模块160,所述回收模块160用于当所述数据表项包括数据页热度时,所述数据页热度用于描述数据页的访问频率,统计所述非易失性存储器的占用量;当所述占用量大于或等于阈值时,优先将数据页热度低的数据页回写到所述数据表项对应的主存储器的地址,并将回写的数据页清空。
本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的缓存方法。
参见图7,是本发明实施例提供的执行缓存方法的电子设备的硬件结构示意图,如图7所示,该设备包括:
一个或多个处理器710以及主存储器720和非易失性存储器730,图7中以一个处理器710为例。
执行缓存方法的设备还可以包括:输入装置740和输出装置750。
处理器710、主存储器720、非易失性存储器730、输入装置740和输出装置750可以通过总线或者其他方式连接,图7中以通过总线连接为例。
主存储器720可以为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的缓存方法对应的程序指令/模块(例如,附图6所示的)。处理器710通过运行存储在主存储器720中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即利用非易失性存储器730实现上述方法实施例缓存方法。
主存储器720可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据缓存装置的使用所创建的数据等。此外,主存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,主存储器720可选包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至缓存装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置740可接收输入的数字或字符信息,以及产生与缓存装置的用户设置以及功能控制有关的键信号输入。输出装置750可包括显示屏等显示设备。
所述一个或者多个模块存储在所述主存储器720中,当被所述一个或者多个处理器710执行时,执行上述任意方法实施例中的缓存方法。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种缓存方法,其特征在于,包括以下步骤:
当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址;
在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中;
根据所述指令类型和目标地址,确定所述数据页对应的数据表项;
利用所述数据表项访问相应的数据页;
其中,所述数据表项和所述数据页均存储在所述非易失性存储器上。
2.根据权利要求1所述的缓存方法,其特征在于,还包括:
在非易失性存储器中,当存在与所述目标地址相对应的数据表项时,访问所述数据表项对应的数据页。
3.根据权利要求1所述的缓存方法,其特征在于,在所述获取缺页中断的指令类型和待访问主存储器的目标地址之前,还包括:
确定缺页中断时的目标地址是否属于进程地址范围;
所述获取缺页中断的指令类型和待访问主存储器的目标地址包括:
当缺页中断时的目标地址属于进程地址范围时,获取缺页中断的指令类型和待访问主存储器的目标地址。
4.根据权利要求1所述的缓存方法,其特征在于,根据所述指令类型和目标地址,确定所述数据页对应的数据表项,包括:
当所述指令类型为读取时,读取主存储器中所述目标地址对应的目标数据,并将所述目标数据存储在非易失性存储器的数据页中;
根据所述指令类型和目标地址,确定所述数据页对应的数据表项,包括当所述数据页的数据表项包括标志位时,将所述标志位设置为读取,以指示所述目标数据为读取到的数据;
或者,
根据所述指令类型和目标地址,确定所述数据页对应的数据表项,包括当所述指令类型为写入时,将所述目标数据写入到非易失性存储器的数据页中;
根据所述指令类型和目标地址,确定所述数据页对应的数据表项,包括当所述数据页的数据表项包括标志位时,将所述标志位设置为写入,以指示所述目标数据为需要回写到主存储器的数据。
5.根据权利要求4所述的缓存方法,其特征在于,还包括:
当断电重启时,将标志位为写入的数据表项所对应的数据页回写到相应的主存储器的地址。
6.根据权利要求1所述的缓存方法,其特征在于,当所述数据表项包括数据页热度时,所述数据页热度用于描述数据页的访问频率,所述缓存方法还包括:
统计所述非易失性存储器的占用量;
当所述占用量大于或等于阈值时,优先将数据页热度低的数据页回写到所述数据表项对应的主存储器的地址,并将回写的数据页清空。
7.一种缓存装置,其特征在于,包括:
获取模块,用于当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址;
数据页建立模块,用于在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中;
数据表项建立模块,用于根据所述指令类型和目标地址,确定所述数据页对应的数据表项;
访问模块,用于利用所述数据表项访问相应的数据页;
其中,所述数据表项和所述数据页均存储在所述非易失性存储器上。
8.根据权利要求7所述的缓存装置,其特征在于,所述数据页建立模块用于,当所述指令类型为读取时,读取主存储器中所述目标地址对应的目标数据,并将所述目标数据存储在非易失性存储器的数据页中;以及,所述数据表项建立模块用于,当所述数据页的数据表项包括标志位时,将所述标志位设置为读取,以指示所述目标数据为读取到的数据;
或者,
所述数据页建立模块用于,当所述指令类型为写入时,将所述目标数据写入到非易失性存储器的数据页中;以及,所述数据表项建立模块用于,当所述数据页的数据表项包括标志位时,将所述标志位设置为写入,以指示所述目标数据为需要回写到主存储器的数据。
9.根据权利要求7所述的缓存装置,其特征在于,所述缓存装置还包括回收模块用于,
当所述数据表项包括数据页热度时,所述数据页热度用于描述数据页的访问频率,统计所述非易失性存储器的占用量;
当所述占用量大于或等于阈值时,优先将数据页热度低的数据页回写到所述数据表项对应的主存储器的地址,并将回写的数据页清空。
10.一种电子设备,其特征在于,包括至少一个处理器;以及,
与所述至少一个处理器通信连接的主存储器和非易失性存储器;其中,
所述主存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
当缺页中断时,获取缺页中断的指令类型和待访问主存储器的目标地址;
在非易失性存储器中,当不存在与所述目标地址相对应的数据表项时,根据所述指令类型将目标数据存储在非易失性存储器的数据页中;
根据所述指令类型和目标地址,确定所述数据页对应的数据表项;
利用所述数据表项访问相应的数据页;
其中,所述数据表项和所述数据页均存储在所述非易失性存储器上。
CN201710775153.7A 2017-08-31 2017-08-31 一种缓存方法、装置及电子设备 Active CN107480074B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710775153.7A CN107480074B (zh) 2017-08-31 2017-08-31 一种缓存方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710775153.7A CN107480074B (zh) 2017-08-31 2017-08-31 一种缓存方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN107480074A true CN107480074A (zh) 2017-12-15
CN107480074B CN107480074B (zh) 2020-02-07

Family

ID=60604464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710775153.7A Active CN107480074B (zh) 2017-08-31 2017-08-31 一种缓存方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN107480074B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984323A (zh) * 2018-07-13 2018-12-11 上海联影医疗科技有限公司 一种共享存储空间的调度方法及系统
CN109683959A (zh) * 2018-12-24 2019-04-26 安谋科技(中国)有限公司 处理器的指令执行方法及其处理器
CN110795279A (zh) * 2018-08-02 2020-02-14 阿里巴巴集团控股有限公司 用于促进dram数据缓存转储和机架级电池备份的系统和方法
CN110955495A (zh) * 2019-11-26 2020-04-03 网易(杭州)网络有限公司 虚拟化内存的管理方法、装置和存储介质
CN111143418A (zh) * 2019-12-28 2020-05-12 浪潮商用机器有限公司 一种数据库读取数据方法、装置、设备及存储介质
WO2022062524A1 (zh) * 2020-09-22 2022-03-31 华为技术有限公司 内存管理方法、装置、设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521147A (zh) * 2011-11-17 2012-06-27 曙光信息产业(北京)有限公司 一种使用高速非易失介质做缓存的管理方法
CN102981783A (zh) * 2012-11-29 2013-03-20 浪潮电子信息产业股份有限公司 一种基于Nand Flash的Cache加速方法
CN104317739A (zh) * 2014-10-28 2015-01-28 清华大学 一种混合内存页面调度方法及装置
CN104834606A (zh) * 2015-01-07 2015-08-12 浪潮(北京)电子信息产业有限公司 一种异构混融层次式内存设备
US20160170888A1 (en) * 2014-12-10 2016-06-16 Intel Corporation Interruption of a page miss handler
CN105786717A (zh) * 2016-03-22 2016-07-20 华中科技大学 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统
CN106997324A (zh) * 2015-12-14 2017-08-01 三星电子株式会社 非易失性存储器模块、具有其的计算系统及其操作方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521147A (zh) * 2011-11-17 2012-06-27 曙光信息产业(北京)有限公司 一种使用高速非易失介质做缓存的管理方法
CN102981783A (zh) * 2012-11-29 2013-03-20 浪潮电子信息产业股份有限公司 一种基于Nand Flash的Cache加速方法
CN104317739A (zh) * 2014-10-28 2015-01-28 清华大学 一种混合内存页面调度方法及装置
US20160170888A1 (en) * 2014-12-10 2016-06-16 Intel Corporation Interruption of a page miss handler
CN104834606A (zh) * 2015-01-07 2015-08-12 浪潮(北京)电子信息产业有限公司 一种异构混融层次式内存设备
CN106997324A (zh) * 2015-12-14 2017-08-01 三星电子株式会社 非易失性存储器模块、具有其的计算系统及其操作方法
CN105786717A (zh) * 2016-03-22 2016-07-20 华中科技大学 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984323A (zh) * 2018-07-13 2018-12-11 上海联影医疗科技有限公司 一种共享存储空间的调度方法及系统
CN110795279A (zh) * 2018-08-02 2020-02-14 阿里巴巴集团控股有限公司 用于促进dram数据缓存转储和机架级电池备份的系统和方法
CN110795279B (zh) * 2018-08-02 2024-03-22 阿里巴巴集团控股有限公司 用于促进dram数据缓存转储和机架级电池备份的系统和方法
CN109683959A (zh) * 2018-12-24 2019-04-26 安谋科技(中国)有限公司 处理器的指令执行方法及其处理器
CN110955495A (zh) * 2019-11-26 2020-04-03 网易(杭州)网络有限公司 虚拟化内存的管理方法、装置和存储介质
CN110955495B (zh) * 2019-11-26 2022-08-05 网易(杭州)网络有限公司 虚拟化内存的管理方法、装置和存储介质
CN111143418A (zh) * 2019-12-28 2020-05-12 浪潮商用机器有限公司 一种数据库读取数据方法、装置、设备及存储介质
CN111143418B (zh) * 2019-12-28 2023-09-08 浪潮商用机器有限公司 一种数据库读取数据方法、装置、设备及存储介质
WO2022062524A1 (zh) * 2020-09-22 2022-03-31 华为技术有限公司 内存管理方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN107480074B (zh) 2020-02-07

Similar Documents

Publication Publication Date Title
CN107480074A (zh) 一种缓存方法、装置及电子设备
CN102662690B (zh) 应用程序启动方法和装置
CN103136243B (zh) 基于云存储的文件系统去重方法及装置
CN106909317B (zh) 在存储节点上存储数据
CN102467408B (zh) 一种虚拟机数据的访问方法和设备
US9875192B1 (en) File system service for virtualized graphics processing units
US7657572B2 (en) Selectively utilizing a plurality of disparate solid state storage locations
US9031914B2 (en) Tier-based data management
CN104662583A (zh) 用于避免页面错误的gpu存储缓冲器预提取和预备份信令
CN110865888A (zh) 一种资源加载方法、装置、服务器及存储介质
CN109597640B (zh) 一种应用程序的账号管理方法、装置、设备和介质
CN108875046A (zh) 一种存储系统访问方法、装置及电子设备
CN109725823A (zh) 用于管理混合存储盘阵列的方法和设备
CN104375933A (zh) 一种单元测试方法和装置
CN110908707A (zh) 一种资源打包方法、装置、服务器及存储介质
US8683169B2 (en) Selecting an auxiliary storage medium for writing data of real storage pages
CN107728983A (zh) 双屏操作方法及设备
CN103488523A (zh) 一种页的访问方法和页的访问装置、服务器
US10788997B2 (en) Method and device for storage management with metadata stored in disk extents in an extent pool
US10713162B1 (en) System and method for computer data garbage collection acceleration using peer to peer data transfers
CN102439567A (zh) 分布式虚拟机访问异常的处理方法以及虚拟机监控器
CN107729504A (zh) 一种处理大数据对象的方法及系统
CN102542036B (zh) 使用优化的表
CN115657946A (zh) Raid顺序写场景下的片外ddr带宽卸载方法、终端及存储介质
CN103559048B (zh) 一种保存数据的方法及装置

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