CN117917649A - 数据处理方法、装置、芯片以及计算机可读存储介质 - Google Patents

数据处理方法、装置、芯片以及计算机可读存储介质 Download PDF

Info

Publication number
CN117917649A
CN117917649A CN202211289255.5A CN202211289255A CN117917649A CN 117917649 A CN117917649 A CN 117917649A CN 202211289255 A CN202211289255 A CN 202211289255A CN 117917649 A CN117917649 A CN 117917649A
Authority
CN
China
Prior art keywords
physical page
storage medium
memory
data
cache
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
CN202211289255.5A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211289255.5A priority Critical patent/CN117917649A/zh
Priority to PCT/CN2023/103852 priority patent/WO2024082702A1/zh
Publication of CN117917649A publication Critical patent/CN117917649A/zh
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

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

数据处理方法、装置、芯片以及计算机可读存储介质
技术领域
本申请涉及存储技术领域,特别涉及一种数据处理方法、装置、芯片以及计算机可读存储介质。
背景技术
随着存储技术的发展,出现了大量不同种类的存储介质,不同种类的存储介质具有不同的访问性能,将多个不同种类的存储介质配置到电子设备,在电子设备中组成混合内存系统。电子设备中的处理器可以将混合内存系统中某种存储介质中的数据迁移至另一种存储介质,以便发挥不同种类的存储介质的优势访问性能。
处理器通常先从混合内存系统中的一种存储介质读取待迁移数据,再将读取到的待迁移数据写入混合内存系统中的另一种存储介质。但是,上述数据迁移过程依赖于数据搬运的进度,需要先完成全部待迁移数据的读取处理,才能执行将待迁移数据写入另一种存储介质的操作,增加了数据迁移的时长,降低了数据迁移效率。
发明内容
本申请提供了一种数据处理方法、装置、芯片以及计算机可读存储介质,能够提高数据迁移效率。
第一方面,提供了一种数据处理方法,此方法应用于混合内存系统,混合内存系统包括第一存储介质和第二存储介质,其中,第一存储介质的访问性能优于第二存储介质的访问性能,此方法包括如下步骤:先获取第一存储介质中作为电子设备的内存使用的第一物理页的第一迁移检测结果;若第一迁移检测结果满足第一数据迁移条件,再从第二存储介质中选择第二物理页,其中,第二物理页为第二存储介质中作为内存使用的候选物理页;之后,将第二物理页作为内存使用,将第一物理页作为第二物理页的缓存。
此方法通过在第一物理页的第一迁移检测结果满足第一数据迁移条件的情况下,将第一物理页作为第二存储介质中的候选物理页的缓存,将该候选物理页作为第二存储介质中的内存物理页,使得待第一物理页中的数据变成第二存储介质中内存物理页的缓存数据,避免之后将第一物理页中的数据写回至第二存储介质,也能够避免写回的数据再次迁移至第一存储介质,从而简化了数据迁移流程,减少了数据迁移过程中来回读取和写入数据的开销,提高了数据迁移效率。
在一种可能的实现方式中,通过将第二物理页所处的候选状态转换为内存状态,来实现将第二物理页作为内存使用,其中,候选状态用于指示对应物理页作为候选物理页,内存状态用于指示对应物理页作为内存使用。
基于上述可能的实现方式,通过转换第二物理页的状态即可将第二物理页作为内存使用,实现方式简单方便。
在另一种可能的实现方式中,第一物理页的介质地址与混合内存系统中的第一内存地址之间具有第一映射关系,第一映射关系用于指示第一物理页处于内存状态,介质地址用于指示对应物理页在所属存储介质中的位置,第一内存地址用于指示第一物理页作为内存使用时在内存的位置,可以理解的是,第一映射关系还用于指示第一内存地址关联的物理页处于内存状态,另外,还通过候选列表记录第二存储介质中处于候选状态的物理页(即候选物理页)的介质地址,基于此,删除候选列表中第二物理页的介质地址,将第一映射关系中的介质地址修改为第二物理页的介质地址,来实现将第二物理页所处的候选状态转换为内存状态。
基于上述可能的实现方式,通过第一映射关系记录处于内存状态的第一物理页以及通过候选列表记录候选物理页,进而通过删除候选列表中关于第二物理页的记录以及第一映射关系,即可将第二物理页代替第一物理页作为内存使用,实现方式简单。
在另一种可能的实现方式中,通过将第一物理页所处的内存状态转换为缓存状态,将第二物理页与第一物理页关联,来实现将第一物理页作为第二物理页的缓存。其中,内存状态用于指示对应物理页作为内存使用,缓存状态用于指示对应物理页是关联的物理页的缓存。
基于上述可能的实现方式,通过转换第一物理页的状态并建立第一物理页和第二物理页之间的关联,即可将第一物理页作为第二物理页的缓存,实现方式简单。
在另一种可能的实现方式中,上述将第一物理页所处的内存状态转换为缓存状态,将第二物理页与第一物理页关联的实现方式包括:先无效第一物理页的介质地址与混合内存系统中的第一内存地址之间的第一映射关系;再建立第一物理页的介质地址与第二物理页的介质地址之间的第二映射关系,其中,第一映射关系用于指示第一物理页处于内存状态,介质地址用于指示对应物理页在所属存储介质中的位置,内存地址用于指示对应物理作为内存使用时在内存的位置,第二映射关系用于指示第一物理页为关联的第二物理页的缓存。
基于上述可能的实现方式,通过无效第一映射关系,使得第一物理页不处于内存状态,通过建立第二映射关系,使得第一物理页成为第二物理页的缓存,实现方式简单。
在另一种可能的实现方式中,此方法还包括如下步骤:获取第二存储介质中第三物理页的第二迁移检测结果,若第二迁移检测结果满足第二数据迁移条件,从第一存储介质中选择第四物理页,其中,第三物理页是第二存储介质中作为内存使用的物理页第四物理页是第一存储介质中第三物理页的缓存;之后,再将第四物理页作为内存使用,将第三物理页作为候选物理页。
基于上述可能的实现方式,通过将第四物理页作为内存使用,将第三物理页作为候选物理页,使得第四物理页代替第三物理页作为内存使用,之前第四物理页是第三物理页的缓存,第四物理页中可能缓存有第三物理页的数据,如果第四物理页缓存了第三物理页所有的数据,也就无需从第三物理页迁移数据,简化了数据迁移流程,提高了数据迁移效率。
在另一种可能的实现方式中,第一存储介质包括至少一个缓存物理页,每个缓存物理页与第二存储介质中作为内存使用的一个物理页关联,每个缓存物理页用于作为关联的物理页的缓存,基于此,通过将至少一个缓存物理页中与第三物理页关联的缓存物理页,确定为第四物理页,来实现从第一存储介质中选择第四物理页。
在另一种可能的实现方式中,通过解除第三物理页与第四物理页之间的关联;将第四物理页所处的缓存状态转换为内存状态,来实现将第四物理页作为内存使用。其中,缓存状态用于指示对应物理页是关联的物理页的缓存,内存状态用于指示对应物理页作为内存使用。
基于上述可能的实现方式,通过解除第三物理页与第四物理页之间的关联,使得第四物理页不再是第三物理页的缓存,通过转换第四物理页的状态,使得第四物理页能够作为内存使用,实现方式简单。
在另一种可能的实现方式中,第三物理页的介质地址与混合内存系统中的第二内存地址之间具有第三映射关系,第三映射关系用于指示第三物理页处于内存状态,介质地址用于指示对应物理页在所属存储介质中的位置,内存地址用于指示对应物理作为内存使用时在内存的位置,基于此,通过将第三映射关系中的介质地址修改为第四物理页的介质地址,来实现将第四物理页所处的缓存状态转换为内存状态包括:
基于上述可能的实现方式,通过修改第三映射关系,即可使得第四物理页处于内存状态,实现方式简单。
在另一种可能的实现方式中,将第四物理页作为内存使用之前,此方法还包括如下步骤:查询第三物理页中还未缓存到第四物理页的数据,将查询到的数据迁移至第四物理页。
基于上述可能的实现方式,如果第三物理页中存在还未缓存到第四物理页的数据,说明此时第四物理页并没有缓存第三物理页所有的数据,因此,仅将未缓存的数据从第三物理页迁移至第四物理页,而无须迁移第三物理页中的所有数据,从而降低了数据迁移过程中传输数据所带来的开销,提高了数据迁移效率。
在另一种可能的实现方式中,通过缓存行状态记录第四物理页的缓存行是否存储数据,基于此,上述查询第三物理页中还未缓存到第四物理页的数据,将查询到的数据迁移至第四物理页的实现过程包括:获取第四物理页的缓存行的缓存行状态,若缓存状态指示缓存行没有存储数据,将第三物理页中与缓存行对应的存储空间的数据迁移至缓存行。
基于上述可能的实现方式,通过获取第四物理页的缓存行状态,即可获悉第三物理页中是否存在还未缓存的数据,而无需从第三物理页中查询还未缓存的数据,提高了数据迁移效率。
在另一种可能的实现方式中,获取第二存储介质中第三物理页的第二迁移检测结果之后,此方法还包括如下步骤:若第二迁移检测结果满足第三数据迁移条件,将第四物理页所存储的数据写入第三物理页;解除第三物理页与第四物理页之间的关联。
基于上述可能的实现方式,能够释放第四物理页的存储空间,以便第四物理页之后可以缓存第二存储介质中其他物理页的数据,以提高其他物理页的访问效率。
在另一种可能的实现方式中,通过无效第三物理页的介质地址与第四物理页的介质地址之间的第四映射关系,来实现解除第三物理页与第四物理页之间的关联。其中,介质地址用于指示对应物理页在所属存储介质中的位置。
在另一种可能的实现方式中,此方法还包括:获取对混合内存系统中第一目标物理页的访问请求;若第一目标物理页属于第一存储介质,基于访问请求,对第一目标物理页进行访问;若第一目标物理页属于第二存储介质,基于访问请求,对第一存储介质中与第一目标物理页关联的第二目标物理页进行访问,第二目标物理页为第一目标物理页的缓存。
基于上述可能的实现方式,若待访问的第一目标物理页属于第一存储介质,则基于访问请求,对第一目标物理页进行访问,由于第一存储介质访问性能高于第二存储介质,从而在访问第一存储介质中的第一目标物理页时能够快速访问。若第一目标物理页属于第二存储介质,基于访问请求,对第一存储介质中与第一目标物理页关联的第二目标物理页进行访问,由于第一存储介质访问性能高于第二存储介质,从而在访问第一存储介质中的第二目标物理页时能够快速访问。
第二方面,提供了一种数据处理装置,该装置包括用于执行第一方面或第一方面任一种可能实现方式中的数据处理方法的各个模块。
第三方面,提供一种芯片,该芯片用于实现如第一方面或第一方面任一种可能实现方式中的数据处理方法的操作步骤。
第四方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该程序代码由处理器读取以使芯片执行如上述数据处理方法的操作步骤。
第五方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,芯片的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该芯片执行上述第一方面或者第一方面的各种可选实现方式中提供的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1是本申请提供的一种应用数据处理方法的混合内存系统示意图;
图2是本申请提供的一种应用混合内存系统1A的电子设备的结构图;
图3是本申请提供的一种应用混合内存系统1B的电子设备的结构图;
图4是本申请提供的一种数据处理方法的流程图;
图5是本申请提供的一种数据迁移检测的流程图;
图6是本申请提供的一种混合内存系统的访问方法的流程图;
图7是本申请提供的一种数据处理装置结构示意图;
图8是本申请提供的另一种数据处理装置的结构示意图;
图9是本申请提供的一种芯片的结构示意图。
具体实施方式
为了提高数据迁移的效率,本申请提供一种应用于混合内存系统的数据处理方法,混合内存系统包括具有不同访问性能的两种存储介质(如第一存储介质和第二存储介质),在第一存储介质中的某一内存物理页(即作为内存使用的物理页)满足数据迁移条件时,该内存物理页为待向第二存储介质迁移数据的物理页(即待迁移物理页),该方法通过将该待迁移物理页不再作为内存物理页,而是作为第二存储介质中某一候选物理页的缓存,将该候选物理页作为第二存储介质中的内存物理页,使得待迁移物理页中的数据变成第二存储介质中的内存物理页的缓存数据,跳过了将待迁移物理页中的数据迁移至第二存储介质的处理过程,简化了数据迁移流程,从而提高了数据迁移效率。
下面将结合附图对应用该数据处理方法的混合内存系统作进一步地详细描述。
图1是本申请提供的一种应用数据处理方法的混合内存系统示意图,如图1所示,混合内存系统100包括多种存储介质11和控制器12、以及管理器13。如图1所示,多种存储介质11包括高速带宽内存(high bandwidth memory,HBM)111、固态硬盘(solid state Disk,SSD)112和双倍速率同步动态随机存储器(double data Rate SDRAM,DDR)113,每种存储介质11对应一个控制器12,如图1所示,HBM111对应的控制器12为HBM控制器121、SSD112对应的控制器12为SSD控制器122,DDR对应的控制器12为DDR控制器123,控制器12用于控制其管理的存储介质11对外进行数据交换。
多种存储介质11用于存储数据(如计算机程序代码或者业务数据),且支持应用程序访问,多种存储介质11的访问性能不同,其中,访问性能是指影响存储介质处理访问请求的性能,例如存储介质的访问时延或者访问带宽,其中,访问请求用于指示访问存储介质,访问时延是存储介质处理访问请求的平均时间,访问带宽为存储介质接收访问请求或者返回访问请求的访问结果时所使用的带宽。
多个存储介质11的类型除了包括图1所示的HBM、SSD或者DDR以外,还可以包括其他能够作为内存使用的存储介质,例如,相变存储器(phase change memory,PCM)、磁性随机存储器(magnetic random access memory,MRAM)、静态随机存取存储器(staticrandom-access memory,SRAM)。
应当理解的是,本申请所涉及的混合内存系统100包括两种或两种以上类型的存储介质,但对于存储介质的类型和每种类型的存储介质的数量不做限定,例如,混合内存系统100也可以包括3种以上的存储介质以及每种存储介质的控制器。此外,作为一种可能的实现方式,除了如图1所示每种存储介质均对应各自关联的控制器外,也可以由一类或一个控制器统一管理上述多种类的存储介质。为了便于描述,以下实施例以图1所示的存储介质11包括HBM111、SSD112以及DDR113为例进行说明。
管理器13与多种存储介质11的控制器12连接,管理器13作为混合内存系统100中各个控制器12的上一级控制器,通过执行本申请提出的数据处理方法,在多种存储介质12之间实现数据迁移,以使得多种存储介质12能够发挥出各自访问性能的优势。可选地,管理器13还可以作为混合内存系统100对外通信的接口,用于接收来自混合内存系统100之外的用于访问存储介质12的访问请求,基于访问请求对外返回访问结果。
管理器13通过软件实现、硬件实现或者软硬件结合的方式实现。管理器13作为软件功能单元的一种举例,管理器13包括运行在计算实例上的代码。其中,计算实例包括虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,管理器13包括运行在多个虚拟机/容器上的代码。另外,用于运行该代码的多个虚拟机/容器可能分布在相同的区域(region)中,也可能分布在不同的region中。进一步地,用于运行该代码的多个虚拟机/容器可能分布在相同的可用区(availability zone,AZ)中,也可能分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
当采用运行在计算实例上的代码实现管理器13时,用于运行该代码的多个虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
管理器13作为硬件功能单元的一种举例,管理器13可能是利用专用集成电路(application-specific integrated circuit,ASIC)实现或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)、数据处理单元(data processing unit,DPU)、片上系统(system on chip,SoC)或其任意组合实现。
在一些实施例中,混合内存系统100应用于电子设备,该电子设备可能是服务器,也可能是终端设备,其中,服务器例如云服务器、中心服务器、边缘服务器、远端数据中心中的远端服务器或本地数据中心中的本地服务器等。终端设备例如台式机、笔记本电脑或者智能手机等。
当混合内存系统100应用于电子设备时,存储介质11可能是电子设备内部的片上存储器(memory on chip),也可能是电子设备中处理器外挂的存储器,也可能是电子设备通过串行总线扩展的存储设备中的存储介质。其中,串行总线例如高速串行计算机扩展总线标准(peripheral component interconnect express,PCIE)总线、计算机高速链接(compute express link,CXL)总线、加速器的缓存一致互联协议(cache coherentinterconnect for accelerators,CCIX)总线、统一总线(unified bus,UB或Ubus)等实现设备间互联的总线,在此,本申请实施例对混合内存系统100中存储介质11在电子设备中的位置不做限定。
为了进一步说明混合内存系统100的存储介质在电子设备中的位置,下面以混合内存系统100为混合内存系统1A为例,结合图2所示的电子设备200进行介绍,其中,图2是本申请提供的一种应用混合内存系统1A的电子设备的结构图,参见图2,电子设备200包括混合内存系统1A、处理器201以及缓存(cache)202,电子设备200还通过PCIE/CXL/CCIX总线连接存储设备203。
如图2所示,混合内存系统1A中的存储介质11分别为存储介质11a至存储介质11d,存储介质11a至11d的控制器分别为控制器12a、12b、12c以及12d。其中,存储介质11a为处理器201片上集成的存储器等。存储介质11b为处理器201外挂存储器,例如电子设备200的计算机主板上插入的存储器。存储介质11c和存储介质11d为存储设备203中存储器,且存储介质11c的控制器12c以及存储介质11d的控制器12d也位于存储设备230中。在另一些实施例中,处理器201片上也可能集成多种存储介质加入到混合内存系统1A中,处理器201也可能外挂多种存储介质加入到混合内存系统1A中,存储设备203中也可能有2种以上的存储介质加入到混合内存系统1A中。应当理解的是,对电子设备200的计算机主板(包括处理器20外挂的存储介质)、处理器201的片上以及电子设备200外接的存储设备这三种位置,混合内存系统1A可能包括这三种位置中至少一种位置上的存储介质。
处理器201还包括至少一个处理器核心211,处理器核心211通过缓存102连接混合内存系统1A的管理器13a,以便处理器核心211对混合内存系统1A中任一存储介质的访问请求,能够下发至管理器11a,由管理器13a基于接收到访问请求,向处理器201返回访问结果。此时,管理器13a集成在缓存202和各个控制器之间的主机内存桥片(host memory bridge)中。或者,管理器13a作为一个单独的芯片,连接主机内存桥片和各个控制器。
在另一些实施例中,混合内存系统100中的存储介质仅由电子设备通过串行总线扩展的存储设备中的存储介质组成。下面以混合内存系统100为混合内存系统1B为例,结合图3所示的电子设备300进行介绍。
图3是本申请提供的一种应用混合内存系统1B的电子设备的结构图,参见图3,电子设备300包括处理器301、缓存(cache)302、至少一个存储介质303以及每个存储介质303的控制器304,电子设备300通过PCIE/CXL/CCIX总线连接存储设备305,存储设备305包括混合内存系统1B,混合内存系统1B包括管理器13b、存储介质11e、存储介质11e的控制器12e、存储介质11f以及存储介质11的控制器12f,控制器12e和12f均与管理器13b连接。其中,图3是混合内存系统13b包括两种存储介质为例示出的,在一些实施例中,混合内存系统13b包括2种以上的存储介质,在此,本申请实施例对混合内存系统13b中存储介质11的种类不做限定。
可以理解的是,图3所示的混合内存系统13b为混合内存系统100的一种示例,管理器13b为管理器13的一种示例,若管理器13b作为硬件功能单元,和图2不同的是,在图3所示的实施例中,管理器13b位于电子设备所连接的存储设备中,而图2所示的管理器13a位于在电子设备中。
另外,图2和图3都是以电子设备包括缓存为例示出的,再另一些实施例中,应用混合内存系统的电子设备的处理器与各种存储介质之间不存在缓存,此时,应用混合内存系统的管理器13连接电子设备中处理器和各个存储介质的控制器。
对于图2所示的处理器201以及图3所示的处理器301中的任一处理器,该处理器可以采用专用集成电路(application-specific integrated circuit,ASIC)、数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gatearray,FPGA)、可编程逻辑阵列(programmable logic array,PLA)中的至少一种硬件形式来实现,当然,该处理器也可以有其他的硬件实现方式,对此本申请不做限定。处理器例如中央处理器(central processing unit,CPU),在一些实施例中,处理器还可以利用图像处理器(graphics processing unit,GPU)或数据处理单元(data processing unit,DPU)实现,GPU用于负责显示屏所需要显示的内容的渲染和绘制。在一些实施例中,该处理器还包括人工智能(artificial intelligence,AI)处理器,AI处理器用于处理有关机器学习的计算操作。
接下来,基于上述介绍混合内存系统,对本申请提供的数据处理方法作如下介绍:
图4是本申请提供的一种数据处理方法的流程图,该数据处理方法应用于混合内存系统,该混合内存系统包括第一存储介质和第二存储介质,其中,混合内存系统为上文介绍的任一种混合内存系统,第一存储介质和第二存储介质为混合内存系统中同一访问性能不同的任意两种存储介质。该第一存储介质的访问性能优于第二存储介质的访问性能,例如,第一存储介质的访问时延低于第二存储介质的访问时延,或者第一存储介质的访问带宽高于第二存储介质的访问带宽。
对于第一存储介质和第二存储介质中的任一存储介质包括多个物理页(page),物理页用于存储数据,物理页为数据迁移的基本单位。其中,第一存储介质中的物理页分为内存物理页和缓存物理页,第一存储介质中内存物理页的个数一般会多于缓存物理页的个数。第二存储介质中的物理页分为内存物理页和候选物理页,第二存储介质中内存物理页的个数多于候选物理页的个数。第一存储介质和第二存储介质中的内存物理页作为混合内存系统所在电子设备的内存使用,例如,在初始化时,混合内存系统的管理器对混合内存系统中多种存储介质的内存物理页进行统一编址,得到各个内存物理页的物理地址,以将混合内存系统中的内存物理页组织成对处理器可见的内存。每个内存物理页的物理地址用于指示该内存物理页在该内存中的位置。该物理地址为该内存物理页在该混合内存系统中的页框号。另外,为了便于应用程序访问,管理器还为该内存中的各个内存物理页分别分配一个虚拟地址,应用程序能够感知该虚拟地址,应用程序通过虚拟地址对内存物理页进行访问,可以理解的是,内存用于为应用程序可见的存储空间,该内存也称为应用程序的可见内存。
第一存储介质中的缓存物理页用于组成第二存储介质的缓存空间,该缓存空间用于缓存第二存储介质中的数据。例如,缓存物理页作为第二存储介质中的内存物理页的缓存,以缓存第二存储介质中该内存物理页的数据。当有应用程序访问第二存储介质中的内存物理页时,可以优先访问第一存储介质中的缓存物理页,在缓存物理页中没有缓存到该内存物理页的数据的情况下,再访问该内存物理页,或者等待该内存物理页中的数据缓存到缓存物理页后,再访问缓存物理页。
第二存储介质中的候选物理页为第二存储介质中候选的作为内存使用的物理页,或者,候选物理页也可以理解为第二存储介质中待加入内存的物理页。候选物理页中没有存储数据,候选物理页为空闲的物理页。
为区分内存物理页、缓存物理页以及候选物理页,管理器将内存物理页的状态记录为内存状态,将缓存物理页的状态记录缓存状态,将候选物理页的状态记录为候选状态,其中,内存状态用于指示对应物理页作为内存使用,也即是指示对应物理页作为内存物理页。缓存状态用于指示对应物理页是关联的物理页的缓存,对应物理页关联的物理页为第二存储介质中的内存物理页。候选状态用于指示对应物理页作为候选物理页。
如图4所示,本申请提供的数据处理方法由该混合内存系统中的管理器来执行,该管理器通过切换混合内存系统中的物理页的使用方式,在第一存储介质和第二存储介质之间进行数据迁移,该数据处理方法包括如下步骤。
步骤401、管理器获取第一存储介质中第一物理页的第一迁移检测结果。
其中,第一物理页是第一存储介质中作为内存使用的物理页,可以理解的是,该第一物理页为第一存储介质中的任一内存物理页。该第一迁移检测结果用于指示第一物理页的被访问次数。在一些实施例中,该第一迁移检测结果还用于指示第一物理页是否支持数据迁移。
在一种可能的实现方式中,管理器对第一存储介质中的第一物理页进行数据迁移检测,得到该第一迁移检测结果,之后,再根据该第一迁移检测结果确定第一物理页是否为待参与数据迁移的内存物理页。
示例性地,管理器通过周期性地获取第一物理页的访问统计信息,以对第一物理页进行数据迁移检测,其中,访问统计信息包括对应物理页在一段时间内的被访问次数。例如,图5所示的本申请提供的一种数据迁移检测的流程图,图5所示的数据迁移检测过程包括下述步骤。
步骤4011、管理器对混合内存系统中的各个内存物理页的被访问次数进行计数。
示例性地,管理器建立第一存储介质和第二存储介质中的各个内存物理页与访问统计信息之间的映射关系。初始时,各个内存物理页的访问统计信息中的被访问次数为0,处理器在运行应用程序的过程中,若应用程序有访问某一内存物理页的需求时,触发处理器向管理器发送对该内存物理页的访问请求。当管理器接收到该访问请求时,根据访问请求中待访问的该内存物理页的内存地址,将该内存物理页对应的访问统计信息中的被访问次数加1。其中,内存地址对应物理页作为内存使用时在内存的位置,例如,内存地址为内存物理页关联的物理地址或者为内存物理页的关联的虚拟地址。
在一种可能的实现方式中,第一存储介质和第二存储介质中的各个内存物理页与访问统计信息之间的映射关系通过页面映射表来存储。该页面映射表存储在第一存储介质或者管理器,由管理器来维护。
表1
内存地址 介质地址 介质属性标识 迁移能力标识 访问统计信息
00000001 000001 “DDR” 1 被访问次数
00000002 000001 “SSD” 1 被访问次数
00000003 000002 “SSD” 0 被访问次数
…… …… …… …… ……
以表1的页面映射表为例,该页面映射表包括多个映射表项,每个映射表项包括一个内存物理页的内存地址以及访问统计信息。当接收到的访问请求携带该内存地址时,管理器将在内存地址对应的访问统计信息中的被访问次数加1。另外,由于各个内存物理页关联的物理地址是统一编址得到,为了便于查询,以内存地址为物理地址,每个映射表项按照各个内存物理页关联的物理地址的大小顺序,依次排列在页面映射表中。以表1为例,内存地址00000001所在的映射表项位于页面映射表的第一行,内存地址00000002所在的映射表项位于页面映射表的第二行。
在另一些实施例中,为记录内存物理页更多的信息,每个映射表项还包括一个内存物理页的介质地址、介质属性标识以及迁移能力标识中的至少一项,其中,介质地址用于指示对应物理页在所属存储介质中的位置,介质属性标识用于指示对应物理页所属的存储介质。以表1为例,混合内存系统包括第一存储介质DDR和第二存储介质SSD,对于第一行的映射表项,介质地址000001指示第一存储介质DDR中的第一个物理页,该物理页为混合内存系统中的关联内存地址00000001的内存物理页,即混合内存系统中提供的内存中第一个内存物理页。表1以字符(如“DDR”、“SSD”)为例作为介质属性标识示出,在一些实施例中,管理器为混合内存系统中的每种存储介质分别分配一个介质编号,介质属性标识为存储介质的介质编号。
迁移能力标识用于指示对应物理页是否支持数据迁移,其中,迁移能力标识包括第一迁移能力标识,第二迁移能力标识,第一迁移能力标识用于指示对应物理页支持数据迁移,第二迁移能力标识用于指示对应物理页不支持数据迁移。在表1中,以第一迁移能力标识为1,第二迁移能力标识为0示出,在另一些实施例中,第一迁移能力标识为0,第二迁移能力标识为1。另外,在页面映射表包括迁移能力标识的情况下,各个内存物理页的迁移能力标识可根据业务需求或者指令来配置,在此,本申请实施例对迁移能力标识的配置方式不做限定。
步骤4012、管理器以第一时长为迁移周期,每进入到一个迁移周期,在该迁移周期结束时时,获取各个内存物理页的被访问次数。
其中,第一时长可根据具体实施场景进行设置,在此,本申请实施例对第一时长的取值不做限定。
例如,每进入到一个迁移周期,管理器从页面迁移表中获取各个内存物理页的被访问次数。
步骤4013、管理器根据各个内存物理页的被访问次数,确定第一迁移阈值、第二迁移阈值以及第三迁移阈值。
其中,第一迁移阈值是触发第一存储介质中的内存物理页向第二存储介质中的内存物理页迁移数据的迁移阈值。第二迁移阈值是触发第二存储介质中的内存物理页向第一存储介质中的内存物理页迁移数据的迁移阈值。第三迁移阈值是触发第二存储介质中的缓存物理页向第二存储介质中的内存物理页迁移数据的迁移阈值,也可以理解为,触发第二存储介质中的内存物理页回收缓存数据的迁移阈值。第二迁移阈值大于第一迁移阈值,第一迁移阈值一般大于第三迁移阈值,第一迁移阈值大于0。
如图5所示,管理器对各个内存物理页的被访问次数进行排序,得到次数序列,将次数序列中处于第一目标位置、第二目标位置以及第三目标位置的被访问次数分别作为第一迁移阈值、第二迁移阈值以及第三迁移阈值。其中,第一目标位置、第二目标位置以及第三目标位置可根据具体的实施方式进行设置,能够保证第二迁移阈值大于第一迁移阈值,第一迁移阈值大于第三迁移阈值即可。当然,管理器也可以采用其他策略确定第一迁移阈值、第二迁移阈值以及第三迁移阈值,对此,本申请实施例不做限定。
对于第一迁移阈值、第二迁移阈值以及第三迁移阈值中的任一迁移阈值,管理器中存储有在上一个迁移周期中确定出的该迁移阈值,在本次迁移过程中确定出新的迁移阈值后,将存储的迁移阈值修改为新的迁移阈值。在一些实施例中,若管理器中配置有用于指示该迁移阈值需要修改的第一需求信息,则管理器将上一个迁移周期中确定出的该迁移阈值修改为新的迁移阈值。若管理器中没有配置该需求信息,则管理器不对上一个迁移周期中确定出的该迁移阈值进行修改,将上一个迁移周期中确定出的该迁移阈值作为本次数据迁移检测的迁移阈值。
其中,步骤4013为可选步骤,在一些实施例中,管理器中配置有第一迁移阈值、第二迁移阈值以及第三迁移阈值,每个迁移周期共享配置的第一迁移阈值、第二迁移阈值以及第三迁移阈值,无须修改第一迁移阈值、第二迁移阈值以及第三迁移阈值,也就不用执行步骤4013。
步骤4014、管理器根据配置的第二需求信息,确定各个内存物理页的被访问次数是否需要复位,若需要复位,则管理器将各个内存物理页的被访问次数复位为0,并跳转执行上述步骤4011,管理器对各个内存物理页的被访问次数从0开始计数,并进入下一个迁移周期。若不需要复位,管理器跳转执行上述步骤4011,管理器从各个内存物理页当前的被访问次数继续计数,并进入下一个迁移周期。
在另一些实施例中,管理器不对各个内存物理页的被访问次数进行计数,由管理器之外的统计单元,对各个内存物理页的被访问次数进行计数,每到在一个迁移周期结束时,管理器从统计单元获取各个内存物理页的被访问次数即可。其中,该统计单元可以是硬件形式的单元也可以是软件形式的单元。
在管理器获取到第一物理页的被访问次数后,将第一物理页的被访问次数与第一迁移阈值进行比较,若第一物理页的被访问次数小于或等于第一迁移阈值,说明该第一物理页不被频繁访问,第一物理页中存储的数据为冷数据,第一物理页为冷页,触发管理器将该冷数据迁移到低访问性能的第二存储介质,迁移的过程参见下述步骤402至步骤404。
步骤402、若第一迁移检测结果满足第一数据迁移条件,管理器从第二存储介质中选择第二物理页,第二物理页为第二存储介质中作为内存使用的候选物理页。
其中,第一迁移检测结果满足第一数据迁移条件包括第一物理页的被访问次数小于或等于第一迁移阈值。或者,第一迁移检测结果满足第一数据迁移条件包括第一物理页的被访问次数小于或等于第一迁移阈值,且第一物理页支持数据迁移。
例如,管理器在当前的迁移周期结束时,从页面映射表中获取第一物理页的被访问次数,或者从统计单元获取第一物理页的被访问次数,若获取到的第一物理页的被访问次数小于或等于第一迁移阈值,则第一迁移检测结果满足第一数据迁移条件。
或者,管理器从页面映射表中获取该第一物理页的被访问次数以及迁移能力标识,在第一物理页的被访问次数小于或等于第一迁移阈值的情况下,若该迁移能力标识为第一迁移能力标识,则说明该第一物理页支持数据迁移,则第一迁移检测结果满足第一数据迁移条件。
在确定第一迁移检测结果满足第一数据迁移条件之后,管理器从第二存储介质中的作为内存使用的候选物理页,确定第二物理页。在一种可能的实现方式中,管理器将第二存储介质中的至少一个物理页的状态存储为候选状态,以指示该至少一个物理页为第二存储介质中的候选物理页,之后,该管理器选择该至少一个物理页中的一个物理页作为第二物理页。
例如,管理器通过第二存储介质对应的候选列表,来记录第二存储介质中处于候选状态的各个候选物理页。其中,候选列表用于存储第二存储介质中处于候选状态的各个候选物理页的介质地址。管理器从该候选列表中随机获取一个介质地址,或者,获取该候选列表中的第一个介质地址,将从该候选列表中获取到的介质地址所指示的候选物理页作为第二物理页。
步骤403、管理器将第二物理页作为内存使用。
在一种可能的实现方式中,管理器通过转换第二物理页的状态,实现本步骤403。例如管理器第二物理页所处的候选状态转换为内存状态。
对于混合内存系统中的各个内存物理页,管理器通过各个内存物理页的介质地址与混合系统中的内存地址之间的映射关系,来指示内存物理页处于内存状态。在一些实施例中,管理器通过页面映射表记录,各个内存物理页的介质地址与混合内存系统中的内存地址之间的映射关系。以上述的表1所示的页面映射表为例,每个映射表项包括一个内存物理页的内存地址、介质地址以及介质属性标识,同一映射表项中的内存地址、介质地址以及介质属性标识也就是一个内存物理页的介质地址与分配得到的内存地址之间的映射关系。在页面映射表用于记录各个内存物理页的迁移状态的情况下,页面映射表可以记录内存物理页的迁移能力标识以及访问统计信息中的至少一项,也可以不记录内存物理页的迁移能力标识以及访问统计信息中的至少一项,内存物理页的迁移能力标识以及访问统计信息中的至少一项也可以通过其他的表格记录。
以第一物理页为例,第一物理页的介质地址与混合内存系统中的第一内存地址之间具有第一映射关系,第一映射关系用于指示第一物理页处于内存状态。第一内存地址用于指示第一物理页作为内存使用时在内存的位置,可以理解的是,第一内存地址为第一物理页在混合内存系统中关联的物理地址或者虚拟地址。
在将第二物理页所处的候选状态转换为内存状态时,可以通过修改第一映射关系来实现。例如下述的步骤4031至步骤4032。
步骤4031、管理器删除候选列表中第二物理页的介质地址,候选列表用于存储第二存储介质中作为内存使用的候选物理页的介质地址。
以第二物理页的介质地址为候选列表中的第一个介质地址为例,管理器删除候选列表的第一个介质地址,候选列表的剩余介质地址依次向第一个介质地址的方向移动一位,使得剩余介质地址中的第一个介质地址成为候选列表中的第一个介质地址。
通过删除选列表中第二物理页的介质地址,使得第二物理页处于候选状态,从而第二物理页不具有候选物理页的身份。
步骤4032、管理器将第一映射关系中的第一物理页的介质地址修改为第二物理页的介质地址。
例如,对于页面映射表中包括第一物理页的介质地址的第一映射表项,管理器将第一映射表项中的第一物理页的介质地址修改为第二物理页的介质地址,将第一映射表项中第一存储介质的介质属性标识修改为第二存储介质的介质属性标识,从而使得第二物理页与第一映射表项中的第一内存地址关联,第二物理页也就替代了第一物理页作为第一内存地址所指示的内存物理页。当然,若第一映射表项中还记录有访问统计信息以及迁移能力标识,管理器还将第一映射表项中第一物理页的访问统计信息中的访问计数清0,或者,不将该访问计数清0,后续在该访问计数的基础上继续计数。管理器还将第一映射表项中第一物理页的迁移能力标识修改为第二物理页的迁移能力标识。
或者,管理器不修改第一映射关系中的第一物理页的介质地址,而是删除第一映射关系,建立第一物理页关联的第一内存地址与第二物理页的介质地址之间的映射关系。该映射关系的建立方式可参考第一映射关系的建立方式,在此,不再赘述。
步骤404、管理器将第一物理页作为第二物理页的缓存。
在一种可能的实现方式中,管理器通过转换第一物理页的状态,实现本步骤403。例如,管理器将第一物理页所处的内存状态转换为缓存状态,将处于缓存状态的第二物理页与第一物理页关联,使得第一物理页成为第二物理页的缓存,此时第一物理页为第一存储介质中的缓存物理页。
对于混合内存系统中的缓存物理页,管理器通过缓存物理页的介质地址与第二存储介质中的内存物理页的介质地址之间映射关系,来指示缓存物理页处于缓存状态,且缓存物理页为关联的内存物理页的缓存。在一种可能的实现方式中,缓存物理页的介质地址与第二存储介质中的内存物理页的介质地址之间映射关系通过缓存映射表来存储。该缓存映射表存储在第一存储介质或者管理器,由管理器来维护。
表2
以表2的缓存映射表为例,该缓存映射表包括多个缓存表项,每个缓存表项包括一个缓存物理页在第一存储介质中的介质地址(即缓存地址)以及第二存储介质中的一个内存物理页在第二存储介质中的介质地址,以指示缓存物理页与该内存物理页关联,该缓存物理页为该内存物理页的缓存。
在将第一物理页所处的内存状态转换为缓存状态,将处于缓存状态的第二物理页与第一物理页关联时,通过建立第一物理页的介质地址与第二物理页的介质地址之间的映射关系来实现。例如下述步骤4041至步骤4042。
步骤4041、管理器无效第一物理页的介质地址与混合内存系统中的第一内存地址之间的第一映射关系。
通过无效第一映射关系,使得第一物理页不处于内存状态,此时第一物理页不是混合内存系统中的内存物理页。其中,无效第一映射关系的方式,例如上述的步骤4032修改第一映射关系中第一物理页的介质地址或者删除第一映射关系。应当理解,若步骤4032已经执行完成,则不执行步骤4041。
步骤4042、管理器建立第一物理页的介质地址与第二物理页的介质地址之间的第二映射关系。
例如,管理器以第一物理页的介质地址为第一存储介质中的介质地址,以第二物理页的介质地址为第二存储介质中的介质地址,在缓存映射表项中新增第一缓存表项,该第一缓存表项也即是建立的第二映射关系。
在另一些实施例中,如表2所示,每个缓存表项还包括有效标识、一个缓存物理页的页缓存状态以及第二存储介质中的一个内存物理页关联的内存地址中的至少一项。其中,有效标识用于指示所在缓存表项是否有效,有效标识包括第一有效标识和第二有效标识,第一有效标识用于指示所在缓存表项有效,第二有效标识用于指示所在缓存表项无效。在表2中,以第一有效标识为1,第二有效标识为0为了示出,在另一些实施例中,第一有效标识为0,第二有效标识为1。
一个缓存物理页的页缓存状态用于指示该缓存物理页中的各个缓存行是否存储有关联的内存物理页中对应存储空间的数据,如表2所示,缓存物理页的页缓存状态用包括第一页缓存状态以及第二页缓存状态,其中,第一页缓存状态用于指示该缓存物理页中的各个缓存行是否存储有数据,第二缓存状态用于指示该缓存物理页中的各个缓存行中的数据是否和关联的内存物理页中对应存储空间中的数据相同,其中,任一缓存行为是关联的内存物理页中对应存储空间的缓存,用于存储关联的内存物理页中对应存储空间中的数据。
第一缓存状态包括多个第一缓存行状态,每个第一缓存行状态用于指示缓存物理页中的一个缓存行中是否存储有数据。如表2所示,若一个缓存行的第一缓存行状态为1,则指示缓存行中存储有数据,若一个缓存行的第一缓存行状态为0,则指示缓存行中没有数据。在另一些实施例中,以第一缓存行状态为0指示缓存行中存储有数据,以第一缓存行状态为1指示缓存行中没有存储数据。
第二缓存状态包括多个第二缓存行状态,每个第二缓存行状态用于指示缓存物理页中的一个缓存行中的数据是否和关联的内存物理页中对应存储空间中的数据相同,如表2所示,若一个缓存行的第二缓存行状态为1,则指示缓存行中的数据和关联的内存物理页中对应存储空间中的数据相同,若一个缓存行的第二缓存行状态为0,则指示该缓存行中的数据和关联的内存物理页中对应存储空间中的数据不相同。在另一些实施例中,以第二缓存行状态为1指示缓存行中的数据和关联的内存物理页中对应存储空间中的数据不相同,以第二缓存行状态为1指示缓存行中的数据和关联的内存物理页中对应存储空间中的数据相同。
在缓存映射表包括有效标识、第一页缓存状态以及第二页缓存状态的情况下,在缓存映射表中添加第一缓存表项时,管理器将该第一缓存表项中的有效标识存储为第一有效标识(如1),以指示该第一缓存表项有效。对于第一物理页中的任一缓存行,若该缓存行中存储有数据,管理器将第一页缓存状态中该缓存行的第一缓存状态存储为用于指示该缓存行中存储有数据(例如存储为1),若该缓存行中没有存储数据,管理器将第一页缓存状态中该缓存行的第一缓存状态存储为用于指示该缓存行中没有存储数据(例如存储为0)。另外,由于第二物理页原本为缓存物理页,该第二物理页中没有存储数据,则对于第一物理页中的任一缓存行,管理器将第二页缓存状态中该缓存行的第二缓存状态存储为用于指示该缓存行中的数据和第一物理页中对应存储空间中的数据不同(例如存储为0)。
在相关技术中,在将高访问性能的存储介质中的数据迁移至低访问性能的存储介质时,先读取高访问性能的存储介质中的待迁移数据,再将待迁移数据写入低访问性能的存储介质,之后这部分数据若被频繁访问,再将这部分数据迁移至高访问性能的存储介质。而本申请实施例中,若第一迁移检测结果满足第一数据迁移条件,则需要将第一物理页中的数据写回第二存储介质,考虑到之后第一物理页中的数据写回到第二存储介质后,后续还可能再次从第二存储介质迁移回第一存储介质,因此,管理器通过将第二物理页代替第一物理页作为内存使用,将第一物理页切换为第二物理页的缓存,完成数据迁移,避免之后将第一物理页中的数据写回至第二存储介质,也能够避免写回的数据再次迁移至第一存储介质,从而减少了数据迁移过程中来回读取和写入数据的开销,提高了数据迁移效率。另外,将第二物理页代替第一物理页作为内存使用,以确保对应用程序可见的内存不变,避免应用程序访问第一物理页之前关联的第一内存地址时出现缺页。
在另一些实施例中,管理器还对第二存储介质中的内存物理页进行数据迁移检测,以检测出第二存储介质中待参与数据迁移的内存物理页,并执行相关的数据迁移操作。例如下述步骤405至步骤411。
步骤405、管理器获取第二存储介质中第三物理页的第二迁移检测结果。
其中,第三物理页是第二存储介质中作为内存使用的物理页,可以理解的是,第三物理页为第二存储介质中的任一内存物理页。该第二迁移检测结果用于指示第三物理页的被访问次数。在一些实施例中,该第二迁移检测结果还用于指示第一物理页是否支持数据迁移。在一些实施例中,该第二迁移检测结果还用于指示第三物理页中存在已被缓存物理页缓存的数据。
在一种可能的实现方式中,管理器对第二存储介质中的第三物理页进行数据迁移检测,得到该第二迁移检测结果,之后,再根据该第二迁移检测结果确定第三物理页是否为待参与数据迁移的内存物理页。
示例性地,管理器通过周期性地获取第三物理页的访问统计信息,以对第三物理页进行数据迁移检测。
管理器以第一时长为一个迁移周期,每在一个迁移周期结束时,获取页面映射表中记录的第二存储介质中的介质地址对应的访问统计信息,其中,页面映射表中记录第二存储介质中的介质地址也即是第二存储介质中内存物理页的介质地址,当获取到第二存储介质中第三物理页这一内存物理页的介质地址对应的访问信息,也就完成了对第三物理页的数据迁移检测。
或者,以第三物理页关联有第一存储介质中的内存物理页为例,管理器以第二时长为迁移周期,每在一个迁移周期结束时,获取缓存映射表中记录的各个内存地址或者第二存储介质中的介质地址,获取到的每个内存地址也即是第一存储介质中的一个内存物理页关联的内存地址,获取到的每个介质地址,也即是第二存储介质中一个内存物理页的介质地址。对于获取到的各个内存地址或第二存储介质中的介质地址中的任一地址,管理器基于该任一介质地址在页面映射表中查询该任一地址对应的访问统计信息,以完成对该任一地址关联的第二存储介质中的一个内存物理页的数据迁移检测,若该任一地址关联的第二存储介质中的内存物理页为第三物理页,也就完成了对该第三物理页的数据迁移检测。其中,第二时长可以等于第一时长,也可以不等于第一时长。
另外,在管理器以第一时长为迁移周期,对第二存储介质中的内存物理页进行数据迁移检测的情况下,对第三物理页的数据迁移检测可以和对第一物理页的数据迁移检测同时执行,也可以不同时执行,也即是步骤401和步骤405可以同时执行,也可以不同时执行。或者在执行步骤401时,管理器对第一存储介质中的第一物理页以及第二存储介质中的第三物理页进行数据迁移检测,而不再执行步骤405,步骤402至步骤404所示的过程与下述步骤406至步骤411所示的过程并行处理。
在管理器获取到第三物理页的访问统计信息后,将该访问统计信息中第三物理页的被访问次数分别第二迁移阈值进行比较,若第三物理页的被访问次数大于或等于第二迁移阈值,说明该第三物理页被频繁访问,第三物理页中存储的数据为热数据,第三物理页为热页,则触发管理器将该热数据迁移到高访问性能的第一存储介质,以便之后该热数据能够在第一存储介质中被快速访问到,迁移的过程参见下述步骤406至步骤409。
步骤406、若第二迁移检测结果满足第二数据迁移条件,管理器从第一存储介质中选择第四物理页,第四物理页是第一存储介质中第三物理页的缓存。
其中,第二迁移检测结果满足第二数据迁移条件包括下述情况1至情况3中的任一情况。
情况1、第三物理页的被访问次数大于或等于第二迁移阈值。
情况2、第三物理页的被访问次数大于或等于第二迁移阈值,且第三物理页支持数据迁移。
情况3、第三物理页的被访问次数大于或等于第二迁移阈值,第三物理页支持数据迁移,且第三物理页中存在已被缓存物理页缓存的数据。
对于情况1,管理器在当前的迁移周期结束时,从页面映射表中获取第三物理页的被访问次数,或者从统计单元获取第三物理页的被访问次数,若获取到的第三物理页的被访问次数大于或等于第二迁移阈值,则第二迁移检测结果满足第二数据迁移条件。
对于情况2,管理器从页面映射表中获取该第三物理页的被访问次数以及迁移能力标识,在第三物理页的被访问次数大于或等于第二迁移阈值的情况下,若该迁移能力标识为第一迁移能力标识,则说明该第三物理页支持数据迁移,则第二迁移检测结果满足第二数据迁移条件。
对于情况3,管理器从页面映射表中获取该第三物理页的被访问次数以及迁移能力标识,在第三物理页的被访问次数大于或等于第二迁移阈值,且该迁移能力标识为第一迁移能力标识的情况下,管理器确定第一存储介质中与第三物理页关联的第四物理页,可以理解的是,第四物理页为第一存储介质中与第三物理页关联的缓存物理页。之后,从缓存映射表中查询第四物理页的第一页缓存状态,若查询到该第一页缓存状态指示该第四物理页中的缓存行存储有数据,则第二迁移检测结果满足第二数据迁移条件。
接下来对确定第四物理页的过程如下介绍。
其中,第一存储介质包括至少一个缓存物理页,每个缓存物理页与第二存储介质中作为内存使用的一个物理页关联,每个缓存物理页用于作为关联的物理页的缓存。可以理解的是,该至少一个缓存物理页为缓存映射表中的有效缓存页表项所记录的缓存物理页。
基于此,管理器将该至少一个缓存物理页中与该第三物理页关联的缓存物理页,确定为第四物理页。例如,管理器在缓存映射表中的至少一个(有效的)缓存页表项,查询包括第三物理页的介质地址的第二缓存页表项,若查询到该第二缓存页表项,将该第二缓存页表项记录的第一存储介质中的介质地址所指示的缓存物理页作为第四物理页。
对于情况3,在另一些实施例中,管理器从缓存映射表中查询多个缓存物理页的第一页缓存状态,若任一缓存物理页的第一页缓存状态指示该缓存物理页中的缓存行存储有数据,则以该缓存物理页为第四物理页,根据缓存映射表中第四物理页关联的第三物理页的内存地址,从页面映射表中查询该第三物理页的被访问次数以及迁移能力标识,若第三物理页的被访问次数大于或等于第二迁移阈值,且该迁移能力标识为第一迁移能力标识,则第二迁移检测结果满足第二数据迁移条件。
步骤407、管理器查询第三物理页中还未缓存到第四物理页的数据,将查询到的数据迁移至第四物理页。
在一种可能的实现方式中,管理器通过查询第四物理页中各个缓存行的缓存行状态,来确定第三物理页中是否存在还未缓存到第四物理页的数据,之后再将未缓存到的数据迁移直至第四物理页。
例如,管理器获取第四物理页的缓存行的缓存行状态,缓存行状态用于指示缓存行是否存储有数据,若该缓存行状态指示该缓存行没有存储数据,将第三物理页中与该缓存行对应的存储空间的数据迁移至该缓存行。
其中,缓存行的缓存行状态为缓存行的第一缓存行状态,示例性地,管理器在缓存映射表中的第二缓存表项,获取该第四物理页中的各个缓存行的第一缓存行状态。对于第四物理页中的任一缓存行,若任一缓存行的第一缓存行状态指示该任一缓存行没有存储数据,则管理器查询第三物理页中与该缓存行对应的存储空间是否存储有数据,若该存储空间中存储有数据,管理器将该存储空间中的数据存储至该任一缓存行。或者,若第四物理页中存在处于第一缓存行状态的至少一个缓存行,向第二存储介质发生数据缓存请求,该数据缓存请求用于指示缓存第二存储介质中该至少一个缓存行对应的存储空间中的数据,在第二存储介质基于该数据缓存请求,向管理器返回该至少一个缓存行中任一缓存行对应的存储空间中的数据的情况下,管理器将任一缓存行对应的存储空间中的数据存储至该任一缓存行。当然,若任一缓存行对应的存储空间中没有数据,第二存储介质基于该数据缓存请求不会向管理器返回任一缓存行对应的存储空间中的数据,此时,管理器不向该任一缓存行存储数据。
在该第四物理页中的各个缓存行的第一缓存行状态均指示存储有数据的情况下,第三物理页中不存在还未缓存到第四物理页的数据,此时,管理器不执行本步骤407。
步骤408、管理器将第四物理页作为内存使用。
在一种可能的实现方式中,管理器通过转换第四物理页的状态,实现本步骤408。例如下述步骤4081至步骤4082。
步骤4081、管理器解除第三物理页与第四物理页之间的关联。
例如,无效第三物理页的介质地址与第四物理页的介质地址之间的第四映射关系,该第四映射关系用于指示第四物理页为关联的第三物理页的缓存,通过无效第四映射关系,来解除第三物理页与第四物理页之间的关联,同时使得第四物理页不处于缓存状态。
其中,该第四映射关系通过缓存映射表中的第二缓存映射表项来存储,无效第四映射关系的方式包括将第二缓存映射表项中的有效标识由第一有效标识修改为第二有效标识,以指示该第二缓存映射表项无效,或者删除缓存映射表中的第二缓存映射表项。
步骤4082、管理器将第四物理页所处的缓存状态转换为内存状态。
其中,第三物理页的介质地址与混合内存系统中的第二内存地址之间具有第三映射关系,该第三映射关系用于指示第三物理页处于内存状态,第二内存地址用于指示第三物理页作为内存使用时在内存的位置,可以理解的是,第二内存地址为第三物理页在混合内存系统中关联的物理地址或者虚拟地址。
管理器将第三映射关系中的第三物理页的介质地址修改为第四物理页的介质地址。
例如,管理器将第二缓存表项中记录的内存地址以及第二存储介质中的介质地址分别作为第三物理页关联的第二内存地址以及介质地址,对于第三物理页关联的第二内存地址以及介质地址中的任一地址,管理器在页面映射表中查询包括该任一地址的第二映射表项,从而第二映射表项中记录有第三物理页关联的第二内存地址以及介质地址,因此,第二映射表项用于记录第三映射关系。从而管理器将该第二映射表项中的第三物理页的介质地址修改为第四物理页的介质地址,将该第二映射表项中第二存储介质的介质属性标识修改为第一存储介质的介质属性标识,从而使得第四物理页与该第二映射表项中的第二内存地址关联,第四物理页也就替代了第三物理页,成为第二内存地址所指示的内存物理页。当然,若第二映射表项中还记录有访问统计信息以及迁移能力标识,管理器还将该第二映射表项中第三物理页的访问统计信息修改为第四物理页的访问统计信息,还将该第二映射表项中第三物理页的迁移能力标识修改为第四物理页的迁移能力标识。
或者,管理器不修改第三映射关系中的第一物理页的介质地址,而是删除第三映射关系,建立第三物理页关联的第二内存地址与第四物理页的介质地址之间的映射关系。该映射关系的建立方式可参考第一映射关系的建立方式,在此不再赘述。
步骤409、管理器将第三物理页作为候选物理页。
例如,若第三物理页中还存储有数据,管理器将第三物理页中的数据删除,使得第三物理页成为空闲物理页,之后,将第三物理页的状态记录为候选状态,以指示该第三物理页是候选物理页。或者,管理器暂不删除第三物理页中的数据,将第三物理页的状态记录为候选状态,当该第三物理页由候选状态切换为内存状态后,在应用程序向该第三物理页关联的内存地址写入数据时,先删除第三物理页中存储的数据,再向第三物理页写入数据,或者,以覆盖写的方式,向第三物理页写入数据。
其中,将第三物理页的状态记录为候选状态的方式,例如,管理器在第二存储介质的候选列表中添加该第三物理页的介质地址,如在该候选列表末尾添加该第三物理页的介质地址。
在相关技术中,在将低访问性能的存储介质中的数据迁移至高访问性能的存储介质时,先读取低访问性能的存储介质中的待迁移数据,再将待迁移数据写入高访问性能的存储介质,而本申请实施例中,若第二迁移检测结果满足第二数据迁移条件,则需要将第三物理页中的数据迁移至第一存储介质,考虑到第一存储介质中第三物理页所关联的第四物理页是第三物理页的缓存,则第四物理页中可能缓存有第三物理页的数据,管理器通过将第四物理页作为内存使用,将第三物理页作为候选物理页,使得第四物理页代替第三物理页作为内存使用,如果第四物理页之前缓存了第三物理页所有的数据,也就无需从第三物理页迁移数据,简化了数据迁移流程,提高了数据迁移效率。另外,在第三物理页中存在还未缓存到第四物理页的数据的情况下,管理器最多将还未缓存的数据迁移至第一存储介质的第四物理页内,而无须迁移第三物理页中的所有数据,从而降低了数据迁移过程中传输数据所带来的开销,提高了数据迁移效率。并且,将第四物理页代替第三物理页作为内存使用,以确保对应用程序可见的内存不变,避免应用程序访问第三物理页之前关联的第二内存地址时出现缺页。
在另一些实施例中,在管理器获取到第三物理页的访问统计信息后,将该访问统计信息中第三物理页的被访问次数与第三迁移阈值进行比较,若第三物理页的被访问次数小于或等于第三迁移阈值,说明该第三物理页不被频繁访问,第三物理页中存储的数据为冷数据,第三物理页为冷页,为避免第三物理页中的冷数据占用缓存物理页,则触发管理器将第三物理页关联的缓存物理页中的该冷数据迁移到第三物理页,迁移的过程参见下述步骤410至步骤411。
步骤410、若第二迁移检测结果满足第三数据迁移条件,管理器将第四物理页所存储的数据写入第三物理页。
其中,第二迁移检测结果满足第三数据迁移条件包括第三物理页的被访问次数小于或等于第三迁移阈值,且第三物理页中存在已被缓存物理页缓存的数据。
例如,管理器在当前的迁移周期结束时,从页面映射表中获取第三物理页的被访问次数,或者从统计单元获取第三物理页的被访问次数,若获取到的第三物理页的被访问次数小于或等于第三迁移阈值,则管理器缓存映射表中查询第一存储介质中与第三物理页关联的第四物理页,从缓存映射表中查询第四物理页的第一页缓存状态,若查询到该第一页缓存状态指示该第四物理页中的缓存行存储有数据,则第二迁移检测结果满足第三数据迁移条件,管理器将第四物理页所存储的数据写入第三物理页。
或者,对于缓存映射表中的各个有效缓存页表项,管理器在当前的迁移周期结束时,将有效缓存页表项中记录的第二存储介质的介质地址所指示的内存物理页为第三物理页,将有效缓存页表项中记录的第一存储介质的介质地址所指示的内存物理页为第四物理页,根据有效缓存页表项中记录的第二存储介质的介质地址或者内存地址,从页面映射表中获取该第三物理页的访问统计次数,其中,该第三物理页的访问统计次数也即是第四物理页的访问统计次数,若访问统计次数小于或等于第三迁移阈值,则第二迁移检测结果满足第三数据迁移条件,触发管理器将第四物理页所存储的数据写入第三物理页。
其中,管理器将第四物理页所存储的数据写入第三物理页的过程,例如,管理器基于第四物理中存储的数据,生成第一数据写入请求,第一数据写入请求用于指示向第三物理页写入该数据,之后,管理器向第二存储介质的控制器发送该第一数据写入请求,由控制器根据该第一数据写入请求,向第三物理页写入该数据。
步骤411、管理器解除第三物理页与第四物理页之间的关联。
其中,本步骤411与4081同理,在此,本申请实施例对步骤411不再赘述。
在第三物理页与第四物理页之间的关联解除完成后,该管理器将该第四物理页的介质添加到第一存储介质的缓存列表,该缓存列表用于存储第一存储介质中处于缓存状态,且还未使用的缓存物理页。之后,在有第二存储介质中的内存物理页有缓存到缓存物理页的需求时,管理器再从该缓存列表中,获取一个未使用的缓存物理页的介质地址,建立该缓存物理页的介质地址与该内存物理页的介质地址之间的映射关系,以该缓存物理页为该内存物理页的缓存,之后,管理器将该内存物理页中的数据缓存到该缓存物理页,在接收到对该内存物理页的访问请求时,将该内存物理页中的数据缓存到该缓存物理页。
在第二迁移检测结果满足第三数据迁移条件的情况下,管理器将第四物理页所存储的数据写入第三物理页,解除第三物理页与第四物理页之间的关联,以解除第三物理页对第四物理页的占用,从而回收到了第四物理页所提供的缓存空间,以便之后,将第四物理页作为新的缓存分配给第二存储介质中的其他内存物理页使用。
上述是以管理器先执行步骤406至步骤409,再执行步骤410至步骤411为例进行介绍的,在另一些实施例中,步骤406至步骤409和步骤410至步骤411也可以并行处理。
图4所示的数据处理方法,通过在第一存储介质中第一物理页的第一迁移检测结果满足第一数据迁移条件的情况下,将第一物理页作为第二存储介质中的候选物理页的缓存,将该候选物理页作为第二存储介质中的内存物理页,使得待第一物理页中的数据变成第二存储介质中内存物理页的缓存数据,避免之后将第一物理页中的数据写回至第二存储介质,也能够避免写回的数据再次迁移至第一存储介质,从而简化了数据迁移流程,减少了数据迁移过程中来回读取和写入数据的开销,提高了数据迁移效率。
图4介绍了通过转换第一存储介质中内存物理页的状态,简化数据迁移流程的过程,在图4所示的过程中,应用程序还可能访问第一存储介质或者第二存储介质中的内存物理页,接下来,结合图6对应用程序访问混合内存系统中的内存物理页的过程作如下介绍。
其中,图6是本申请提供的一种混合内存系统的访问方法的流程图,该访问方法包括如下步骤。
步骤601、电子设备中的处理器向管理器发送对混合内存系统中第一目标物理页的访问请求。
其中,该第一目标物理页为第一存储介质或第二存储介质中的任一内存物理页。该访问请求包括该第一物理目标页关联的第三内存地址。
以页面映射表中的内存地址为内存物理页的物理地址为例,处理器在运行应用程序时,若应用程序对该混合内存系统中的某一虚拟地址有访问需求,应用程序生成包括该虚拟地址的访问请求,处理器通过查询页面映射表获取该虚拟地址对应的物理地址(即第三内存地址),将该访问请求中的虚拟地址转换为第三内存地址,再向管理器发送包括第三内存地址的访问请求,此时该第三内存地址所关联的内存物理页也即是第一目标物理页。
另外,该访问请求可能是数据读取请求,也可能是数据写入请求,其中,数据读取请求用于指示读取该内存地址中存储的数据,数据写入请求用于指示向该内存地址写入目标数据,此时,数据写入请求还包括待写入的目标数据。
步骤602、管理器获取对该混合内存系统中第一目标物理页的访问请求。
如图6所示,管理器在获取到该访问请求后,根据该访问请求中的第三内存地址,在页面映射表中查询包括该第三内存地址的第三映射表项,从查询到的该第三映射表项中获取第一目标物理页的介质地址,将访问请求中的物理地址转换为该介质地址。若第三映射表项中记录有第一目标物理页的被访问次数,则管理器将被访问次数1。
步骤603、若第一目标物理页属于第一存储介质,管理器基于访问请求,对第一目标物理页进行访问。
如图6所示,若该第三映射表项中的介质属性标识为第一存储介质的介质属性标识,说明该第一目标物理页为第一存储介质中的内存物理页,则该访问请求命中第一存储介质。之后,管理器基于访问请求,对第一存储介质中的第一目标物理页进行访问。例如,管理器将包括第一目标物理页的介质地址的访问请求发送给第一存储介质的控制器(称为第一控制器),由第一控制器根据接收到的访问请求,对第一目标物理页进行访问,向管理器返回对第三内存地址的访问结果。之后由管理器向处理器返回访问结果。
其中,若访问请求为数据读取请求,对目标物理页进行访问是指从第一目标物理页中读取的数据,访问结果包括从基于该数据读取请求从第一目标物理页中读取的数据。若访问请求为数据写入请求,对第一目标物理页进行访问是指向第一目标物理页写入目标数据,则访问结果用于指示向第一目标物理页写入完成。
步骤604、若第一目标物理页属于第二存储介质,管理器基于访问请求,对第一存储介质中与第一目标物理页关联的第二目标物理页进行访问,该第二目标物理页为该第一目标物理页的缓存。
如图6所示,若该第三映射表项中的介质属性标识为第二存储介质的介质属性标识,说明该第一目标物理页为第二存储介质中的内存物理页,不是第一存储介质中的内存物理页,则该访问请求命中第二存储介质,而没有命中第一存储介质。
下面以访问请求为数据写入请求,且命中第二存储介质的情况下,对本步骤604作如下介绍。
在访问请求为数据写入请求的情况下,管理器访问第一存储介质中的缓存物理页,以确定数据写入请求是否命中第一存储介质中的缓存物理页。例如,管理器基于该第一目标物理的第三内存地址或者介质地址,在缓存映射表的有效缓存表项中查询第三内存地址或者介质地址,若查询到包括第三内存地址或者介质地址的第三缓存页表项,则此时数据写入请求命中第一存储介质中的缓存物理页。例如,第三缓存页表项中的第一存储介质地址所指示的缓存物理页为该数据写请求命中的缓存物理页,该缓存物理页也即该第二目标物理页。若查询不到第三缓存页表项,则数据写入请求没有命中第一存储介质中的缓存物理页。
在数据写入请求命中第二目标物理页的情况下,管理器从第三缓存页表项中获取该第二目标物理页的介质地址,将数据写入请求中的第一目标物理页的介质地址修改为第二目标物理页的介质地址,管理器向第一控制器发送修改后的数据写入请求,由第一控制器根据接收到的数据写入请求,向第一存储介质中的第二目标物理页写入目标数据,向管理器返回访问结果,由管理器将该访问结果返回给处理器。对于这种情况,若目标数据被写入到该第二目标物理页的至少一个缓存行,对于该至少一个缓存行中的任一缓存行,若该任一缓存行的第一缓存行状态用于指示该缓存行没有数据,则管理器更新该任一缓存行的第一缓存行状态,使得更新后的该第一缓存行状态指示该缓存行中有数据,还更新该任一缓存行的第二缓存行状态,使得更新后的该第二缓存行状态指示该缓存行中的数据和第一目标物理页中对应存储空间中的数据不同。若该任一缓存行的第一缓存行状态用于指示该缓存行存储有数据,则管理器不再更新该第一缓存行状态,而由于向该第一缓存行写入了新的数据,则管理器还要更新该任一缓存行的第二缓存行状态,使得更新后的该第二缓存行状态指示该缓存行中的数据和第一目标物理页中对应存储空间中的数据不同。
在数据写入请求没有命中缓存物理页的情况下,管理器为该第一目标物理页分配缓存物理页,例如,管理器获取缓存列表中的一个介质地址,在缓存映射表中建立该介质地址与该第一目标物理页之间的映射关系,以指示该介质地址所指示的第三目标物理页为该第一目标物理页的缓存。在分配完成后,管理器将数据写入请求中的第一目标物理页的介质地址修改为第三目标物理页的介质地址,管理器向第一控制器发送修改后的数据写入请求,由第一控制器根据接收到的数据写入请求,向第一存储介质中的第三目标物理页写入目标数据,向管理器返回访问结果,由管理器将该访问结果返回给处理器。对于这种情况,由于目标数据为新数据,若目标数据被写入到该第三目标物理页的至少一个缓存行,对于该至少一个缓存行中的任一缓存行,管理器将该任一缓存行的第一缓存行状态设置为指示该缓存行存储有数据,将该任一缓存行的第二缓存行状态设置为指示该缓存行中的数据和第一目标物理页中对应存储空间中的数据不同。
下面再以访问请求不是数据写入请求而是数据读取请求,且命中第二存储介质的情况下,对本步骤604作如下介绍。
在访问请求为数据读取请求的情况下,管理器访问第一存储介质中的缓存物理页,以确定该数据读取请求是否命中第一存储介质中的缓存物理页,该过程可参考上文中确定数据写入请求是否命中缓存物理页的过程。
在数据读取请求命中第二目标物理页的情况下,管理器将数据读取请求中的第一目标物理页的介质地址修改为第二目标物理页的介质地址,管理器向第一控制器发送修改后的数据读取请求,由第一控制器根据接收到的数据读取请求,从第一存储介质中的第二目标物理页读取数据,向管理器返回访问结果,由管理器将该访问结果返回给处理器。
在数据读取请求没有命中缓存物理页的情况下,管理器向第二存储介质的控制器(称为第二控制器)发送修改后的数据读取请求,由第二控制器根据接收到的数据读取请求,从第二存储介质中的第一目标物理页读取数据,向管理器返回访问结果,由管理器将该访问结果返回给处理器。另外,管理器还为该第一目标物理页分配缓存物理页,假设将第一存储介质中的第三目标物理页分配给第一目标物理页,作为第一目标物理页的缓存,管理器从访问结果中获取从第一目标物理页读取到的数据,将读取到的数据写入第三目标物理页。假设读取到的数据被写入到第三目标物理页的至少一个缓存行,对于该至少一个缓存行中的任一缓存行,管理器将该任一缓存行的第一缓存行状态设置为指示该缓存行存储有数据,将该任一缓存行的第二缓存行状态设置为指示该缓存行中的数据和第一目标物理页中对应存储空间中的数据相同。
图6所示的方法,通过在获取对混合内存系统中第一目标物理页的访问请求后,若待访问的第一目标物理页属于第一存储介质,则基于访问请求,对第一目标物理页进行访问,由于第一存储介质访问性能高于第二存储介质,从而在访问第一存储介质中的第一目标物理页时能够快速访问。若第一目标物理页属于第二存储介质,基于访问请求,对第一存储介质中与第一目标物理页关联的第二目标物理页进行访问,由于第一存储介质访问性能高于第二存储介质,从而在访问第一存储介质中的第二目标物理页时能够快速访问。
以上介绍了本申请提供的数据处理方法,接下来,结合附图进一步介绍下本申请提供的装置、芯片和电子设备。应理解,以下介绍的装置、芯片和电子设备可以实现上述任一方法中混合内存系统的管理器或管理器一部分的任意功能。
图7是本申请提供的一种数据处理装置结构示意图,如图7所示,装置700包括映射模块701、迁移模块702、缓存管理模块703以及介质管理模块704。
其中,映射模块701,用于维护页面映射表,将处理器下发的访问请求中的内存地址转换为介质地址,该介质地址用于指示待访问的内存物理页,若待访问的内存物理页是第一存储介质中的内存物理页,则将访问请求发送给第一存储介质,若待访问的内存物理页是第二存储介质中的内存物理页,则将访问请求发送给缓存管理模块703。
映射模块701,还用于对混合内存系统中的内存物理页进行数据迁移检测,若检测到存在满足数据迁移条件的内存物理页,则通知迁移模块702对该内存物理页进行数据迁移,迁移模块702对该内存物理页进行数据迁移的过程可参考图4所示的数据处理方法。
缓存管理模块703,用于维护缓存映射表,接收到访问请求后,查询该访问请求是否命中第一存储介质中的缓存物理页(即缓存),若命中缓存物理页,将访问请求中的介质地址修改为命中的缓存物理页的介质地址,向第一存储介质发送修改后的访问请求,若没有命中缓存物理页,为第二存储介质中待访问的内存物理页分配新的缓存物理页,若访问请求为数据写入请求,则向新分配的缓存物理页写入数据,若访问请求为数据读取请求,则从第二存储介质中待访问的内存物理页读取数据,将读取的数据写入到新分配的缓存物理页,将读取的数据原路返回给处理器。
介质管理模块704,用于对装置700中的其他模块进行初始化和管理,例如初始化迁移周期、迁移阈值等。在一些实施例中,介质管理模块704还用于维护第二存储介质的候选列表。
在一些实施例中,若第二存储介质或者第二存储介质的控制器所要求的访问请求的数据格式和装置700中生成的访问请求的数据格式不一致,装置700还包括访问控制模块705,访问控制模块705用于转换接收到的访问请求的数据格式,使得转换后的访问请求的数据格式能够满足第二存储介质或者第二存储介质的控制器的要求,向第二存储介质或者第二存储介质的控制器发送转换后的访问请求,原路返回访问结果。
以第二存储介质为非易失性内存主机控制器接口规范(non-volatile memoryexpress,NVME)SSD为例,介质管理模块704还用于维护NVME SSD的NVME队列,该NVME队列用于存储块输入输出(blocking IO,BIO)请求。当接收到接收访问请求后,访问控制模块705将访问请求转换为BIO请求,将BIO请求加入到NVME队列,通知NVME SSD执行NVME队列中的BIO请求,然后,由NVME SSD从NVME队列中获取BIO请求,并基于BIO请求向访问控制模块705返回访问结果。
以第二存储介质为DDR接口的PCM为例,当接收到接收访问请求后,访问控制模块705将访问请求转换为DDR接口可识别的访问命令,向PCM发送访问命令,以对PCM进行数据的读取或写入。
应当理解,访问控制模块705接收到的访问请求可能是迁移模块702在进行数据迁移时,向第二存储介质下发的访问请求,也可能是缓存管理模块703下发的访问请求。
图8是本申请提供的一种数据处理装置的结构示意图,如图8所示的装置800可以为前面各个实施例混合内存系统的管理器或管理器的部分,用于执行管理器所执行的数据处理方法,所述装置800应用于混合内存系统,所述混合内存系统包括第一存储介质和第二存储介质,所述第一存储介质的访问性能优于所述第二存储介质的访问性能,所述装置800包括:
获取模块801,用于获取所述第一存储介质中第一物理页的第一迁移检测结果,所述第一物理页是所述第一存储介质中作为内存使用的物理页;
选择模块802,用于若所述第一迁移检测结果满足第一数据迁移条件,从所述第二存储介质中选择第二物理页,所述第二物理页为所述第二存储介质中作为内存使用的候选物理页;
第一处理模块803,用于将所述第二物理页作为所述内存使用;
第二处理模块804,用于将所述第一物理页作为所述第二物理页的缓存。
应理解的是,本申请实施例的装置800可以通过CPU实现,也可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,也可以通过可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)、数据处理单元(dataprocessing unit,DPU)、片上系统(system on chip,SoC)或其任意组合。装置800也可以通过软件实现图4至图6所示的方法,在通过软件实现时,装置800及其各个模块也可以为软件模块。
在一种可能的实现方式中,所述第一处理模块803用于:将所述第二物理页所处的候选状态转换为内存状态,所述候选状态用于指示对应物理页作为所述候选物理页,所述内存状态用于指示对应物理页作为所述内存使用。
在另一种可能的实现方式中,所述第一物理页的介质地址与所述混合内存系统中的第一内存地址之间具有第一映射关系,所述第一映射关系用于指示所述第一物理页处于所述内存状态,所述介质地址用于指示对应物理页在所属存储介质中的位置,所述第一内存地址用于指示第一物理页作为内存使用时在所述内存的位置;
所述第一处理模块803用于:删除候选列表中所述第二物理页的介质地址,所述候选列表用于存储所述第二存储介质中作为所述内存使用的候选物理页的介质地址;将所述第一映射关系中的介质地址修改为所述第二物理页的介质地址。
在另一种可能的实现方式中,所述第二处理模块804用于:将所述第一物理页所处的内存状态转换为缓存状态,将所述第二物理页与所述第一物理页关联,所述内存状态用于指示对应物理页作为所述内存使用,所述缓存状态用于指示对应物理页是关联的物理页的缓存。
在另一种可能的实现方式中,所述第二处理模块804用于:无效所述第一物理页的介质地址与所述混合内存系统中的第一内存地址之间的第一映射关系,所述第一映射关系用于指示所述第一物理页处于所述内存状态,所述介质地址用于指示对应物理页在所属存储介质中的位置,所述内存地址用于指示对应物理作为内存使用时在所述内存的位置;建立所述第一物理页的介质地址与所述第二物理页的介质地址之间的第二映射关系,所述第二映射关系用于指示所述第一物理页为关联的所述第二物理页的缓存。
在另一种可能的实现方式中,所述获取模块801,还用于获取所述第二存储介质中第三物理页的第二迁移检测结果,所述第三物理页是所述第二存储介质中作为所述内存使用的物理页;
所述选择模块802,还用于若所述第二迁移检测结果满足第二数据迁移条件,从所述第一存储介质中选择第四物理页,所述第四物理页是所述第一存储介质中所述第三物理页的缓存;
所述第一处理模块803,还用于将所述第四物理页作为所述内存使用;
所述第二处理模块804,还用于将所述第三物理页作为所述候选物理页。
在另一种可能的实现方式中,所述第一存储介质包括至少一个缓存物理页,每个缓存物理页与所述第二存储介质中作为所述内存使用的一个物理页关联,每个缓存物理页用于作为关联的物理页的缓存;
所述选择模块802,还用于将所述至少一个缓存物理页中与所述第三物理页关联的缓存物理页,确定为第四物理页。
在另一种可能的实现方式中,所述第一处理模块803还用于:解除所述第三物理页与所述第四物理页之间的关联;将所述第四物理页所处的缓存状态转换为内存状态,所述缓存状态用于指示对应物理页是关联的物理页的缓存,所述内存状态用于指示对应物理页作为所述内存使用。
在另一种可能的实现方式中,所述第三物理页的介质地址与所述混合内存系统中的第二内存地址之间具有第三映射关系,所述第三映射关系用于指示所述第三物理页处于所述内存状态,所述介质地址用于指示对应物理页在所属存储介质中的位置,所述内存地址用于指示对应物理作为内存使用时在所述内存的位置;
所述第一处理模块803,还用于将所述第三映射关系中的介质地址修改为所述第四物理页的介质地址。
在另一种可能的实现方式中,所述装置800还包括:
数据搬迁模块,用于查询所述第三物理页中还未缓存到所述第四物理页的数据,将查询到的数据迁移至所述第四物理页。
在另一种可能的实现方式中,所述数据搬迁模块用于:获取所述第四物理页的缓存行的缓存行状态,所述缓存行状态用于指示所述缓存行是否存储数据;若所述缓存行状态指示所述缓存行没有存储数据,将所述第三物理页中与所述缓存行对应的存储空间的数据迁移至所述缓存行。
在另一种可能的实现方式中,所述装置800还包括:
写入模块,用于若所述第二迁移检测结果满足第三数据迁移条件,将所述第四物理页所存储的数据写入所述第三物理页;
解除模块,用于解除所述第三物理页与所述第四物理页之间的关联。
在另一种可能的实现方式中,所述解除模块用于:无效所述第三物理页的介质地址与所述第四物理页的介质地址之间的第四映射关系,所述介质地址用于指示对应物理页在所属存储介质中的位置。
在另一种可能的实现方式中,所述装置800还包括访问模块;
所述获取模块801,还用于获取对所述混合内存系统中第一目标物理页的访问请求;
所述访问模块用于:若所述第一目标物理页属于所述第一存储介质,基于访问请求,对所述第一目标物理页进行访问;若所述第一目标物理页属于所述第二存储介质,基于所述访问请求,对所述第一存储介质中与所述第一目标物理页关联的第二目标物理页进行访问,所述第二目标物理页为所述第一目标物理页的缓存。
上述所有可能的实现方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
应理解,对于装置700和装置800中的任一装置,该装置对应于上述方法实施例中的管理器,该装置中的各模块和上述其他操作和/或功能分别为了实现方法实施例中的管理器所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
应理解,对于装置700和装置800中的任一装置,该任一装置在进行数据处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将该装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与上述方法实施例属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
应理解,对于装置700和装置800中的任一装置可以相当于图1至图3中的管理器13、13a以及13b,或者相当于管理器13、13a以及13b中的执行部件。
图9是本申请提供的一种芯片的结构示意图,如图9所示,芯片900包括处理器901和接口电路902,其中,接口电路902,用于接收指令并传输至处理器901。处理器901,例如可以是装置700或装置800的一种具体实现形式,可以用于执行上述应用于数据处理方法。处理器901与存储器903耦合,存储器903用于存储程序代码,当该程序代码被处理器901执行时,使得处理器901、接口电路902以及存储器903所组成的芯片系统实现上述图4至图6中任一方法实施例中的方法的操作步骤。
可选地,该芯片系统中的处理器901有至少一个,应理解,在本申请实施例中,处理器901可以是CPU或其他通用处理器,处理器901还可以是一个或多个用于实现本申请方案的集成电路,例如,数字信号处理器(digital signal processing,DSP)、ASIC、PLD、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
可选地,该芯片系统中的存储器903也可以为一个或多个。存储器903可以与处理器901集成在一起,也可以和处理器901分离设置,本申请并不限定。示例性的,存储器903可以与处理器901集成在同一块芯片上,如图9所示,存储器903也可以和处理器901分别设置在不同的芯片上,本申请对存储器903的类型以及存储器903与处理器901的设置方式不作具体限定。
其中,存储器903可以包括只读存储器和随机存取存储器,并向处理器901提供指令和数据。存储器903还可以包括非易失性随机存取存储器。例如,存储器903还可以存储设备类型的信息。存储器903还可以是易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
示例性的,该芯片系统可以是FPGA,可以是ASIC,还可以是SoC,还可以是CPU,还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signalprocessor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是PLD)或其他集成芯片。
本申请还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由电子设备(或芯片)中的处理器执行以完成上述实施例中的数据处理方法。该计算机可读存储介质的实现方式可参考与图9中的存储器903。
本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得处理器所在芯片或电子设备执行上述数据处理方法。
另外,本申请还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中数据处理方法。
其中,本申请提供的装置、设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)或者半导体介质。半导体介质可以是固态硬盘(solid state disk,SSD)。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (13)

1.一种数据处理方法,其特征在于,所述方法应用于混合内存系统,所述混合内存系统包括第一存储介质和第二存储介质,所述第一存储介质的访问性能优于所述第二存储介质的访问性能,所述方法包括:
获取所述第一存储介质中第一物理页的第一迁移检测结果,所述第一物理页是所述第一存储介质中作为内存使用的物理页;
若所述第一迁移检测结果满足第一数据迁移条件,从所述第二存储介质中选择第二物理页,所述第二物理页为所述第二存储介质中作为内存使用的候选物理页;
将所述第二物理页作为所述内存使用;
将所述第一物理页作为所述第二物理页的缓存。
2.根据权利要求1所述的方法,其特征在于,所述将所述第二物理页作为所述内存使用包括:
将所述第二物理页所处的候选状态转换为内存状态,所述候选状态用于指示对应物理页作为所述候选物理页,所述内存状态用于指示对应物理页作为所述内存使用。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一物理页作为所述第二物理页的缓存包括:
将所述第一物理页所处的内存状态转换为缓存状态,将所述第二物理页与所述第一物理页关联,所述内存状态用于指示对应物理页作为所述内存使用,所述缓存状态用于指示对应物理页是关联的物理页的缓存。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
获取所述第二存储介质中第三物理页的第二迁移检测结果,所述第三物理页是所述第二存储介质中作为所述内存使用的物理页;
若所述第二迁移检测结果满足第二数据迁移条件,从所述第一存储介质中选择第四物理页,所述第四物理页是所述第一存储介质中所述第三物理页的缓存;
将所述第四物理页作为所述内存使用;
将所述第三物理页作为所述候选物理页。
5.根据权利要求4所述的方法,其特征在于,所述第一存储介质包括至少一个缓存物理页,每个缓存物理页与所述第二存储介质中作为所述内存使用的一个物理页关联,每个缓存物理页用于作为关联的物理页的缓存;
所述从所述第一存储介质中选择第四物理页包括:
将所述至少一个缓存物理页中与所述第三物理页关联的缓存物理页,确定为第四物理页。
6.根据权利要求4所述的方法,其特征在于,所述将所述第四物理页作为所述内存使用包括:
解除所述第三物理页与所述第四物理页之间的关联;
将所述第四物理页所处的缓存状态转换为内存状态,所述缓存状态用于指示对应物理页是关联的物理页的缓存,所述内存状态用于指示对应物理页作为所述内存使用。
7.根据权利要求4所述的方法,其特征在于,所述将所述第四物理页作为所述内存使用之前,所述方法还包括:
查询所述第三物理页中还未缓存到所述第四物理页的数据,将查询到的数据迁移至所述第四物理页。
8.根据权利要求7所述的方法,其特征在于,所述查询所述第三物理页中还未缓存到所述第四物理页的数据,将查询到的数据迁移至所述第四物理页包括:
获取所述第四物理页的缓存行的缓存行状态,所述缓存行状态用于指示所述缓存行是否存储数据;
若所述缓存行状态指示所述缓存行没有存储数据,将所述第三物理页中与所述缓存行对应的存储空间的数据迁移至所述缓存行。
9.根据权利要求4所述的方法,其特征在于,所述获取所述第二存储介质中第三物理页的第二迁移检测结果之后,所述方法还包括:
若所述第二迁移检测结果满足第三数据迁移条件,将所述第四物理页所存储的数据写入所述第三物理页;
解除所述第三物理页与所述第四物理页之间的关联。
10.根据权利要求1-3以及5-9中任一项所述的方法,其特征在于,所述方法还包括:
获取对所述混合内存系统中第一目标物理页的访问请求;
若所述第一目标物理页属于所述第一存储介质,基于访问请求,对所述第一目标物理页进行访问;
若所述第一目标物理页属于所述第二存储介质,基于所述访问请求,对所述第一存储介质中与所述第一目标物理页关联的第二目标物理页进行访问,所述第二目标物理页为所述第一目标物理页的缓存。
11.一种数据处理装置,其特征在于,所述装置应用于混合内存系统,所述混合内存系统包括第一存储介质和第二存储介质,所述第一存储介质的访问性能优于所述第二存储介质的访问性能,所述装置包括:
获取模块,用于获取所述第一存储介质中第一物理页的第一迁移检测结果,所述第一物理页是所述第一存储介质中作为内存使用的物理页;
选择模块,用于若所述第一迁移检测结果满足第一数据迁移条件,从所述第二存储介质中选择第二物理页,所述第二物理页为所述第二存储介质中作为内存使用的候选物理页;
第一处理模块,用于将所述第二物理页作为所述内存使用;
第二处理模块,用于将所述第一物理页作为所述第二物理页的缓存。
12.一种芯片,其特征在于,所述芯片包括处理器,所述处理器用于执行至少一条程序代码,使得所述芯片执行如权利要求1至权利要求10中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器读取以使芯片执行如权利要求1至权利要求10中任一项所述的方法。
CN202211289255.5A 2022-10-20 2022-10-20 数据处理方法、装置、芯片以及计算机可读存储介质 Pending CN117917649A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211289255.5A CN117917649A (zh) 2022-10-20 2022-10-20 数据处理方法、装置、芯片以及计算机可读存储介质
PCT/CN2023/103852 WO2024082702A1 (zh) 2022-10-20 2023-06-29 数据处理方法、装置、芯片以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211289255.5A CN117917649A (zh) 2022-10-20 2022-10-20 数据处理方法、装置、芯片以及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN117917649A true CN117917649A (zh) 2024-04-23

Family

ID=90729557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211289255.5A Pending CN117917649A (zh) 2022-10-20 2022-10-20 数据处理方法、装置、芯片以及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN117917649A (zh)
WO (1) WO2024082702A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092534B (zh) * 2013-02-04 2016-01-27 中国科学院微电子研究所 一种内存结构的调度方法和装置
CN108804350B (zh) * 2017-04-27 2020-02-21 华为技术有限公司 一种内存访问方法及计算机系统
CN107193646B (zh) * 2017-05-24 2020-10-09 中国人民解放军理工大学 一种基于混合主存架构的高效动态页面调度方法
CN110347510A (zh) * 2019-07-09 2019-10-18 中国科学院微电子研究所 一种混合内存的管理方法、系统、设备及介质

Also Published As

Publication number Publication date
WO2024082702A1 (zh) 2024-04-25

Similar Documents

Publication Publication Date Title
US11709597B2 (en) Memory system and method for controlling nonvolatile memory
US11347655B2 (en) Memory system and method for controlling nonvolatile memory
US11797436B2 (en) Memory system and method for controlling nonvolatile memory
CN110555001B (zh) 数据处理方法、装置、终端及介质
CN113760560A (zh) 一种进程间通信方法以及进程间通信装置
EP4439312A1 (en) Data storage method and system, storage access configuration method and related device
WO2022257685A1 (zh) 存储系统、网卡、处理器、数据访问方法、装置及系统
JP6343722B2 (ja) マルチコアシステムにおいてデータ訪問者ディレクトリにアクセスするための方法及びデバイス
US20240241644A1 (en) Storage device and storage system
CN103595720A (zh) 卸载数据传输方法、装置和客户端
CN111475099B (zh) 一种数据存储方法、装置及其设备
WO2024060710A1 (zh) 一种页面换入方法以及装置
CN116225693A (zh) 元数据管理方法、装置、计算机设备及存储介质
CN112115521A (zh) 数据访问方法及装置
WO2021238594A1 (zh) 存储介质管理方法、装置、设备以及计算机可读存储介质
CN117917649A (zh) 数据处理方法、装置、芯片以及计算机可读存储介质
CN110209343B (zh) 数据存储方法、装置、服务器及存储介质
WO2024061344A1 (zh) 数据迁移方法、装置、芯片以及计算机可读存储介质
US20240354267A1 (en) Data Storage Method and System, Storage Access Configuration Method, and Related Device
US20240295987A1 (en) Method and device for accessing memory
WO2022021337A1 (zh) 闪存控制方法和装置
CN115827688A (zh) 数据访问方法及装置
CN118779280A (zh) 降低总线负载的方法、cxl模组、处理系统和处理器芯片
CN117880281A (zh) 一种数据传输的方法和计算设备
CN117271107A (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