CN109408405B - 内存页交换方法、装置、终端及存储介质 - Google Patents

内存页交换方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN109408405B
CN109408405B CN201811198411.0A CN201811198411A CN109408405B CN 109408405 B CN109408405 B CN 109408405B CN 201811198411 A CN201811198411 A CN 201811198411A CN 109408405 B CN109408405 B CN 109408405B
Authority
CN
China
Prior art keywords
memory
page
working
level
processor
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
CN201811198411.0A
Other languages
English (en)
Other versions
CN109408405A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201811198411.0A priority Critical patent/CN109408405B/zh
Publication of CN109408405A publication Critical patent/CN109408405A/zh
Application granted granted Critical
Publication of CN109408405B publication Critical patent/CN109408405B/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

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)

Abstract

本申请公开了一种内存页交换方法、装置、终端及存储介质,属于内存管理技术领域。所述方法包括:在所述物理内存和所述虚拟内存开始进行页交换时,生成开始通知消息;根据所述开始通知消息,将与所述页交换有关的硬件组件从第一工作状态提升为第二工作状态,所述第二工作状态的物理性能高于所述第一工作状态的物理性能;通过处于所述第二工作状态的所述硬件组件对内存页进行所述页交换。本申请通过提升与页交换有关的硬件组件的工作状态,使得内存页在物理内存和虚拟内存之间的交换效率得到提高,进而优化了***交互性能。

Description

内存页交换方法、装置、终端及存储介质
技术领域
本申请涉及内存管理技术领域,特别涉及一种内存页交换方法、装置、终端及存储介质。
背景技术
在Linux内核内存管理中,存在有物理内存和虚拟内存。物理内存和虚拟内存中存储有内存页,内存页用于存储应用对应的代码和数据。物理内存用于存储支持应用运行时使用频繁的内存页;虚拟内存又称SWAP分区,用于存储不常用的应用的内存页,和/或,正在运行的应用但使用不频繁的内存页。Linux内核多应用于android***中,在android***中,当想要运行一个应用时,中央处理器(Central Processing Unit,CPU)提取对应的内存页,从而实现该应用的运行。
当android***运行应用1时,物理内存中没有存储或存储部分该应用1对应的内存页,且物理内存剩余可用内存页达到物理内存规定的水位,CPU根据物理内存的预设条件,确定本次交换的内存页,将该本次交换的内存页从物理内存换入虚拟内存中,从而CPU能够运行该应用1。当android***运行应用2时,该应用2对应的内存页有全部或部分存储于虚拟内存中,CPU将该应用2对应的内存页从虚拟内存换出物理内存中,从而CPU能够运行该应用2。
发明内容
本申请实施例提供了一种内存页交换方法、装置、终端及存储介质,可以用于解决相关技术中内存页在物理内存和虚拟内存之间进行交换时,产生的交换时延过大,android***的交互性差,导致卡顿现象的问题。所述技术方案如下:
根据本公开实施例的一方面,提供了一种内存页交换方法,所述方法包括:
在所述物理内存和所述虚拟内存开始进行页交换时,生成开始通知消息;
根据所述开始通知消息,将与所述页交换有关的硬件组件从第一工作状态提升为第二工作状态,所述第二工作状态的物理性能高于所述第一工作状态的物理性能;
通过处于所述第二工作状态的所述硬件组件对内存页进行所述页交换。
根据本公开实施例的另一方面,提供了一种内存页交换装置,所述装置包括:
开始模块,用于在所述物理内存和所述虚拟内存开始进行页交换时,生成开始通知消息;
提升模块,用于根据所述开始通知消息,将与所述页交换有关的硬件组件从第一工作状态提升为第二工作状态,所述第二工作状态的物理性能高于所述第一工作状态的物理性能;
交换模块,用于通过处于所述第二工作状态的所述硬件组件对内存页进行所述页交换。
根据本公开实施例的另一方面,提供了一种终端,所述终端包括处理器,所述处理器包括存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上所述的内存页交换方法。
根据本公开实施例的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如上所述的内存页交换方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过处理器在物理内存和虚拟内存开始进行页交换时,先生成开始通知消息,再根据该开始通知消息,将与页交换有关的硬件组件从第一工作状态提升为第二工作状态,由于第二工作状态的物理性能高于第一工作状态的物理性能,采用处于第二工作状态的硬件组件进行页交换,使得内存页在物理内存和虚拟内存之间的交换效率得到提高,避免了相关技术中内存页的交换时延过大而导致的卡顿问题,进而优化了***交互性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的实现内存页交换过程的实施环境的示意图;
图2是本申请一个示例性实施例提供的内存页交换的方法流程图;
图3是本申请另一个示例性实施例提供的内存页交换的方法流程图;
图4是本申请一个示例性实施例提供的内存页交换的装置示意图;
图5是本申请另一个示例性实施例提供的内存页交换的装置示意图;
图6是本申请另一个示例性实施例提供的开始模块的装置示意图;
图7是本申请另一个示例性实施例提供的提升模块的装置示意图;
图8是本申请一个示例性实施例提供的终端的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行介绍:
物理内存:是通过易失性存储器而获得的内存空间。当运行一个应用时,该应用对应的代码和数据存储于内存页中,物理内存用于存储该内存页。在应用运行时,CPU从物理内存中读取对应的内存页,实现代码和数据的运行,从而实现该应用的运行。
虚拟内存:是***内存管理的一种技术,通过在非易失性存储器上划出一部分,并通过代码建立的一个内存空间。虚拟内存相对于物理内存,是物理内存的一个备用内存,当运行一个应用,物理内存中没有存储或存储部分该应用对应的内存页,且物理内存剩余可用内存页达到物理内存规定的水位,由CPU根据预设条件确定需要放入虚拟内存中的内存页,即本次交换的内存页,CPU将本次交换的内存页从物理内存换入虚拟内存中,从而为新应用腾出内存空间,实现该应用的运行。其中,物理内存规定的水位是指物理内存设定剩余的可用内存页与物理内存总内存页之间的比率,如物理内存设定规定水位为40%,但物理内存剩余可用内存页的比率达到40%时,需要将物理内存中的一部分内存页放入虚拟内存中。
交换:是指当本次交换的内存页位于物理内存中,CPU将本次交换的内存页从物理内存换入到虚拟内存中;当本次交换的内存页位于虚拟内存中,CPU将确定的本次交换的内存页从虚拟内存换出到物理内存中。
换入:是指CPU将内存页从物理内存换入到虚拟内存中。
换出:是指CPU将内存页从虚拟内存换出到物理内存中。
在Linux内核内存管理中,存在有物理内存和虚拟内存。物理内存位于易失性存储器上,虚拟内存又称SWAP分区,位于非易失性存储器上。Linux内核多应用于android***中,在android***中,物理内存用于存储运行一个应用的内存页,当想要运行该应用时,CPU从物理内存中提取对应的内存页,从而实现该应用的运行。
当android***中运行一个应用时,物理内存中没有存储或存储部分该应用对应的内存页,且物理内存剩余可用内存页达到物理内存规定的水位,CPU根据物理内存的预设条件,确定本次交换的内存页,将该本次交换的内存页从物理内存换入虚拟内存中,从而腾出空间以供新应用能够运行。该物理内存的预设条件是本次交换的内存页的使用频率是低于预设时间段内的预设使用频率的内存页,(如5天内使用次数不超过5次);或,物理内存中存储的可用内存页数量比大于阈值(如设定阈值为40%)。
同理的,当中运行一个应用时,该应用对应的内存页的全部或部分被换入到虚拟内存中,android***在运行该应用的过程中,需要使用到存储于虚拟内存的内存页时,CPU确定了本次交换的内存页,将本次交换的内存页从虚拟内存换出物理内存中,从而实现运行该应用被存储于虚拟内存中的内存页中的代码和数据。
然而,在CPU确定本次交换的内存页后,无论是将本次交换的内存页从物理内存换入虚拟内存中,还是从虚拟内存换出物理内存中,都会在交换时产生交换时延,该交换时延的大小反映了android***交互性能的优劣。若该交换时延过大,反映了android***交互性差,导致卡顿问题。
本申请实施例提供了一种内存页交换方法、装置、终端及存储介质,可以用于解决上述相关技术中存在的问题。在本申请的一些实施例中,通过CPU在第一存储器上运行来自第二存储器中的逻辑代码,实现了物理内存和虚拟内存之间的页交换操作。
图1示出了本申请一个示例性实施例提供的实现内存页交换过程的实施环境的示意图,图1示出了本申请提供的实现内存页交换方法的终端,该终端包括:CPU110、第一存储器120和第二存储器130。
CPU110可以是处理器,是操作***的核心部件,用于根据操作***的各种需求,下达并完成各种需求。物理内存121位于第一存储器120上,该物理内存121用于存储支持应用运行时使用频繁的内存页。该第一存储器120是易失性存储器,具有操作***断电后存储的逻辑代码丢失的特点。第一存储器120用于CPU110在该第一存储器120中运行各种需求所对应的逻辑代码或指令。虚拟内存131位于第二存储器130上,是第二存储器130划出的一部分,该虚拟内存131用于存储不常用的应用的内存页,和/或,正在运行的应用但使用不频繁的内存页。该第二存储器130是非易失性存储器,具有在操作***断电后存储的逻辑代码不丢失的特点。第二存储器130用于存储操作***运行时所需的逻辑代码。当操作***进行页交换时,CPU110将选定的内存页在物理内存121和虚拟内存131中实现交换。
其中,第二存储器130还包括:逻辑代码模块132和通知模块133。逻辑代码模块132用于存储操作***所需的各种代码,CPU110执行的内存页交换操作中用到的第一逻辑代码和第二逻辑代码都存储于逻辑代码模块132中。通知模块133用于存储CPU110生成的开始通知消息和结束通知消息。
在一种可选的实施方式中,第一存储器120可以是双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR SDRAM)或静态随机存储器(Static Random-Access Memory,SRAM)等易失性存储器;第二存储器130可以是闪存或磁盘等非易失性存储器。
在本申请的一些实施例中,本次交换的内存页在物理内存和虚拟内存之间进行交换时,可以在交换开始进行页交换时由处理器生成开始通知信息,根据该开始通知信息,处理器提高与页交换有关的硬件组件的工作频率,从而能够加快完成页交换的过程。
图2示出了本申请一个示例性实施例提供的内存页交换的方法流程图,该方法可以应用于图1所示的实施环境,该方法包括:
步骤201,处理器在物理内存和虚拟内存开始进行页交换时,生成开始通知消息。
内存页用于存储一个应用对应的代码和数据,物理内存用于存储支持应用运行时使用频繁的内存页;虚拟内存又称SWAP分区,用于存储不常用的应用的内存页,和/或,正在运行的应用但使用不频繁的内存页。
当处理器检测到物理内存和虚拟内存之间需要进行页交换时,处理器找出符合预设条件的本次交换的内存页,在物理内存和虚拟内存开始进行页交换时,生成开始通知消息。该开始通知消息用于指示与页交换有关的硬件组件开始提升工作状态。
步骤202,处理器根据开始通知消息,将与页交换有关的硬件组件从第一工作状态提升为第二工作状态,第二工作状态的物理性能高于第一工作状态的物理性能。
根据开始通知消息,处理器运行第一逻辑代码。该第一逻辑代码存储于存储器中,用于实现与页交换有关的硬件组件从第一工作状态提升为第二工作状态。其中,第二工作状态的物理性能高于第一工作状态的物理性能。
可选地,与页交换有关的硬件组件提升的工作状态可以是提升与页交换有关的硬件组件的工作频率,即与页交换有关的硬件组件正常工作时的工作频率没有达到最大值,在提升后,该与页交换有关的硬件组件的工作频率可以达到或无限接近最大值。
示意性的,第一工作状态是与页交换有关的硬件组件正常工作时的工作频率,该正常工作时的工作频率没有达到最大值。第二工作状态是处理器生成开始通知消息后,与页交换有关的硬件组件提升工作频率,该提升后的工作频率可以达到或无限接近最大值。
可选地,与页交换有关的硬件组件包括处理器,或,与页交换有关的硬件组件包括处理器,物理内存对应的第一存储器和虚拟内存对应的第二存储器。
步骤203,处理器通过处于第二工作状态的硬件组件对内存页进行页交换。
与页交换有关的硬件组件在从第一工作状态提升为第二工作状态后,与页交换有关的硬件组件提升工作频率,与页交换有关的硬件组件的工作速度加快,处理器运行第二逻辑代码。该第二逻辑代码存储于存储器中,用于实现需要进行页交换的内存页在物理内存和虚拟内存之间交换。
综上所述,在本实施例提供的方法中,通过处理器在物理内存和虚拟内存开始进行页交换时,先生成开始通知消息,再根据该开始通知消息,将与页交换有关的硬件组件从第一工作状态提升为第二工作状态,由于第二工作状态的物理性能高于第一工作状态的物理性能,采用处于第二工作状态的硬件组件进行页交换,使得内存页在物理内存和虚拟内存之间的交换效率得到提高,避免了相关技术中内存页的交换时延过大而导致的卡顿问题,进而优化了***交互性能。
在本申请的另一些实施例中,本次交换的内存页在物理内存和虚拟内存之间进行交换时,处理器在交换开始时,生成开始通知信息,根据该开始通知信息,与页交换有关的硬件组件的工作频率得到提升,加快页交换的交换过程。处理器在页交换结束后,生成结束通知信息,根据该结束通知信息,与页交换有关的硬件组件的工作频率从提升后的工作频率恢复为正常工作时的工作频率。
图3示出了本申请另一个示例性实施例提供的内存页交换的方法流程图,该方法可以应用于图1所示的实施环境,该方法包括:
步骤301,处理器在物理内存和虚拟内存开始进行页交换时,获取本次交换的内存页的数据量。
内存页用于存储一个应用对应的代码和数据,物理内存用于存储支持应用运行时使用频繁的内存页;虚拟内存又称SWAP分区,用于存储不常用的应用的内存页,和/或,正在运行的应用但使用不频繁的内存页。
当处理器检测到物理内存和虚拟内存之间需要进行页交换时,处理器找出符合预设条件的本次交换的内存页。同时,处理器获取本次交换的内存页的数据量。
步骤302,处理器根据本次交换的内存页的数据量,在至少两个提升等级中确定提升等级,提升等级与数据量成正相关关系。
由于每次需要交换的内存页的数据量都可能不相同,处理器在提升与页交换有关的硬件组件时,需要根据数据量对应提升,达到提升效果的最大化,故处理器对需要交换的内存页的数据量进行划分等级,划分后的等级包括至少两个提升等级。
处理器获取本次交换的内存页的数据量后,根据本次交换的内存页的数据量,确定数据量对应的数据参数,根据得到的数据参数在至少两个提升等级中确定对应的提升等级,提升等级与数据量成正相关关系,即数据量越大,提升等级越高;数据量越小,提升等级越低。
在一种可能的实现方式中,对本次交换的内存页的数据量对应不同的数据参数,由数据参数确定数据量所属的数据量区间,根据得到的数据量区间确定提升等级。
示意性的,当本次交换的内存页的数据量是(0,4]KB时,确定该数据量对应的数据参数为0;当本次交换的内存页的数据量是(4,8]KB时,该数据量对应的数据参数为1;当本次交换的内存页的数据量是(8,16]KB时,该数据量对应的数据参数为2;当本次交换的内存页的数据量是(16,32]KB时,该数据量对应的数据参数为3。
设定当数据量对应的数据参数为0或1时,本次交换的内存页的数据量属于第一数据量区间,从而确定提升等级为第一提升等级;当数据量对应的数据参数为2时,本次交换的内存页的数据量属于第二数据量区间,从而确定提升等级为第二提升等级;当数据量对应的数据参数为3时,本次交换的内存页的数据量属于第三数据量区间,从而确定提升等级为第三提升等级。
步骤303,处理器生成携带有提升等级的开始通知消息。
处理器生成开始通知消息,该开始通知消息用于指示与页交换有关的硬件组件开始提升工作状态,且该开始同时消息包括提升等级的信息。
步骤304,处理器从开始通知消息中获取目标提升等级,目标提升等级是至少两个提升等级中的一个。
处理器根据携带有提升等级的开始通知信息,获取本次交换的内存页的数据量对应的目标提升等级。处理器运行存储于存储器中的第一逻辑代码,并根据目标提升等级,运行第一逻辑代码中与目标提升等级对应的逻辑代码。
可选地,根据本次交换的内存页的数据量,对应的目标提升等级可以是第一提升等级、第二提升等级和第三提升等级中的任意一种。
步骤305,处理器根据目标提升等级,确定与页交换有关的硬件组件在第二工作状态下的工作参数。
处理器根据本次交换的内存页的数据量所属的数据量区间,确定对应的目标提升等级。处理器根据该目标提升等级和第一逻辑代码中与目标提升等级对应的逻辑代码,确定与页交换有关的硬件组件在第二工作状态下的工作参数。第二工作状态是与页交换有关的硬件组件根据目标提升等级,提升该硬件组件的工作参数。该工作参数是目标提升等级对应的参数。
比如,根据本次交换的内存页的数据量,处理器确定该数据量属于第二数据量区间,对应第二提升等级。根据第二提升等级,处理器运行第一逻辑代码中与第二提升等级对应的逻辑代码,从而确定与页交换有关的硬件组件在提升工作频率后对应的工作参数为2。
步骤306,处理器根据工作参数将与页交换有关的硬件组件从第一工作状态提升为第二工作状态。
处理器根据得到的工作参数得到与页交换有关的硬件组件提升工作状态的具体情况。
在一种可选的实现方式中,与页交换有关的硬件组件包括:处理器。将该处理器的工作频率从第一工作频率提升为与工作参数对应的第二工作频率。比如,处理器根据本次页交换的内存页的数据量属于第一数据量区间,对应第一提升等级,运行第一逻辑代码中与第一提升等级对应的逻辑代码。处理器根据运行的逻辑代码,确定工作参数为1,则根据该工作参数1,将处理器的工作频率从正常工作频率提升至1.6GB。
在另一种可选的实现方式中,与页交换有关的硬件组件包括:处理器、物理内存对应的第一存储器和虚拟内存对应的第二存储器。将处理器的工作频率从第一工作频率提升为与工作参数对应的第二工作频率,将第一存储器的工作频率从第三工作频率提升为与工作参数对应的第四工作频率,将第二存储器的的工作频率从第五工作频率提升为与工作参数对应的第六工作参数。
比如,处理器根据本次交换的内存页的数据量属于第一数据量区间,对应第一提升等级,运行第一逻辑代码中与第一提升等级对应的逻辑代码。处理器根据运行的逻辑代码,确定工作参数为1,则根据该工作参数1,将处理器的工作频率从正常工作频率提升至1.6GB,将第一存储器的工作频率从正常工作频率提升至300MB,将第二存储器的工作频率从正常工作频率提升至400MB。
步骤307,处理器通过处于第二工作状态的硬件组件对内存页进行页交换。
与页交换有关的硬件组件在从第一工作状态提升为第二工作状态后,与页交换有关的硬件组件的工作频率得到提升,与页交换有关的硬件组件的工作速度加快,处理器运行第二逻辑代码。该第二逻辑代码存储于存储器中,用于实现需要进行页交换的内存页在物理内存和虚拟内存之间交换。
步骤308,处理器在物理内存和虚拟内存结束页交换时,生成结束通知消息。
在一种可选的实现方式中,处理器在物理内存和虚拟内存结束页交换时,生成结束通知消息,该结束通知消息用于通知物理内存和虚拟内存结束页交换。
在另一种可选的实现方式中,物理内存和虚拟内存在进行页交换时会产生交换时长,处理器预先设定物理内存和虚拟内存在进行页交换时的预定时长。若物理内存和虚拟内存结束页交换的交换时长未达到预定时长,则处理器生成结束通知消息;若物理内存和虚拟内存结束页交换的交换时长超出预定时长,则物理内存和虚拟内存结束页交换。
步骤309,处理器根据结束通知消息,将与页交换有关的硬件组件从第二工作状态恢复到第一工作状态。
处理器根据结束通知消息,将与页交换有关的硬件组件提升后的工作频率恢复为正常工作频率。
在本实施提供的方法中,处理器对本次交换的内存页的数据量进行划分提升等级,并由开始通知消息携带提升等级,确定与页交换有关的硬件组件的工作参数,再根据工作参数确定提升工作频率的值,实现了分层提升频率,从而保证性能提升的针对性和准确性。
在本实施例提供的方法中,处理器在物理内存和虚拟内存结束页交换时,生成结束通知消息,避免页交换结束时,硬件组件还处于第二工作状态,造成终端电源损耗大,通过结束通知消息,能够节省电量,延长终端使用时间。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图4示出了本申请一个示例性实施例提供的内存页交换的装置示意图,该装置包括:
开始模块410,用于在物理内存和虚拟内存开始进行页交换时,生成开始通知消息。
提升模块420,用于根据开始通知消息,将与页交换有关的硬件组件从第一工作状态提升为第二工作状态,第二工作状态的物理性能高于第一工作状态的物理性能。
交换模块430,用于通过处于第二工作状态的硬件组件对内存页进行页交换。
图5示出了本申请另一个示例性实施例提供的内存页交换的装置示意图,该装置包括:
开始模块510,用于在物理内存和虚拟内存开始进行页交换时,生成开始通知消息。
提升模块520,用于根据开始通知消息,将与页交换有关的硬件组件从第一工作状态提升为第二工作状态,第二工作状态的物理性能高于第一工作状态的物理性能。
交换模块530,用于通过处于第二工作状态的硬件组件对内存页进行页交换。
其中,如图6所示,开始模块510,包括:
第一获取单元511,用于在物理内存和虚拟内存开始进行页交换时,获取本次交换的内存页的数据量。
第一确定单元512,用于根据本次交换的内存页的数据量,在至少两个提升等级中确定提升等级,提升等级与数据量成正相关关系。
开始单元513,用于生成携带有提升等级的开始通知消息。
可选地,第一确定单元512,用于确定本次交换的内存页的数据量所属的数据量区间,数据量区间包括由小到大排列的第一数据量区间、第二数据量区间和第三数据量区间。
第一确定单元512,用于当数据量区间是第一数据量区间时,确定提升等级为第一提升等级;第一确定单元512,用于当数据量区间是第二数据量区间时,确定提升等级为第二提升等级;第一确定单元512,用于当数据量区间是第三数据量区间时,确定提升等级为第三提升等级。
第三提升等级对应的工作参数优于第二提升等级对应的工作参数,第二提升等级对应的工作参数优于第一提升等级对应的工作参数。
其中,如图7所示,提升模块520,包括:
第二获取单元521,用于从开始通知消息中获取目标提升等级,目标提升等级是至少两个提升等级中的一个。
第二确定单元522,用于根据目标提升等级,确定与页交换有关的硬件组件在第二工作状态下的工作参数。
提升单元523,用于根据工作参数将与页交换有关的硬件组件从第一工作状态提升为第二工作状态。
在一种可选的实施方式中,与页交换有关的硬件组件包括:处理器。
提升单元523,用于将处理器的工作频率从第一工作频率提升为与工作参数对应的第二工作频率。
在另一种可选的实施方式中,与页交换有关的硬件组件包括:处理器、物理内存对应的第一存储器、虚拟内存对应的第二存储器。
提升单元523,用于将处理器的工作频率从第一工作频率提升为与工作参数对应的第二工作频率;提升单元523,用于将第一存储器的工作频率从第三工作频率提升为与工作参数对应的第四工作频率;提升单元523,用于将第二存储器的工作频率从第五工作频率提升为与工作参数对应的第六工作频率。
结束模块540,用于在物理内存和虚拟内存结束页交换时,生成结束通知消息。
恢复模块550,用于根据结束通知消息,将与页交换有关的硬件组件从第二工作状态恢复到第一工作状态。
相关细节可结合参考图2和图3所示的方法实施例。其中,开始模块510还用于实现上述方法实施例中其他任意隐含或公开的开始步骤相关的功能;提升模块520还用于实现上述方法实施例中其他任意隐含或公开的提升步骤相关的功能;交换模块530还用于实现上述方法实施例中其他任意隐含或公开的交换步骤相关的功能;结束模块540还用于实现上述方法实施例中其他任意隐含或公开的结束步骤相关的功能;恢复模块550还用于实现上述方法实施例中其他任意隐含或公开的恢复步骤相关的功能。
需要说明的是:上述实施例提供的内存页交换装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的内存页交换装置与内存页交换方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8示出了本申请一个示例性实施例所提供的终端的结构示意图。
该终端800是具有通讯功能的电子设备。比如,该终端为手机。
可选的,该终端800中包括:处理器820和存储器840。
处理器820可以包括一个或者多个处理核心。处理器820利用各种接口和线路连接整个终端800内的各个部分,通过运行或执行存储在存储器840内的指令、程序、代码集或指令集,以及调用存储在存储器840内的数据,执行终端800的各种功能和处理数据。可选的,处理器820可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器820可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器820中,单独通过一块芯片进行实现。
存储器840可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(英文:Read-Only Memory)。可选的,该存储器840包括非瞬时性计算机可读介质(英文:non-transitory computer-readable storage medium)。存储器840可用于存储指令、程序、代码、代码集或指令集。存储器840可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质为非易失性的计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,存储的计算机程序被处理组件执行时能够实现本公开上述实施例提供的内存页交换方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (9)

1.一种内存页交换方法,其特征在于,所述方法包括:
在物理内存和虚拟内存开始进行页交换时,生成开始通知消息;
从所述开始通知消息中获取目标提升等级,所述目标提升等级是至少两个提升等级中的一个;
根据所述目标提升等级,确定与所述页交换有关的硬件组件在第二工作状态下的工作参数;
根据所述工作参数将与所述页交换有关的硬件组件从第一工作状态提升为所述第二工作状态,所述第二工作状态的物理性能高于所述第一工作状态的物理性能;
通过处于所述第二工作状态的所述硬件组件对内存页进行所述页交换。
2.根据权利要求1所述的方法,其特征在于,所述与所述页交换有关的硬件组件包括:处理器;
所述根据所述工作参数将与所述页交换有关的硬件组件从第一工作状态提升为第二工作状态,包括:
将所述处理器的工作频率从第一工作频率提升为与所述工作参数对应的第二工作频率。
3.根据权利要求1所述的方法,其特征在于,所述与所述页交换有关的硬件组件包括:处理器、所述物理内存对应的第一存储器、所述虚拟内存对应的第二存储器;
所述根据所述工作参数将与所述页交换有关的硬件组件从第一工作状态提升为第二工作状态,包括:
将所述处理器的工作频率从第一工作频率提升为与所述工作参数对应的第二工作频率;
将所述第一存储器的工作频率从第三工作频率提升为与所述工作参数对应的第四工作频率;
将所述第二存储器的工作频率从第五工作频率提升为与所述工作参数对应的第六工作频率。
4.根据权利要求1至3任一所述的方法,其特征在于,所述在所述物理内存和所述虚拟内存开始进行页交换时,生成开始通知消息,包括:
在所述物理内存和所述虚拟内存开始进行页交换时,获取本次交换的所述内存页的数据量;
根据本次交换的所述内存页的数据量,在所述至少两个提升等级中确定所述提升等级,所述提升等级与所述数据量成正相关关系;
生成携带有所述提升等级的所述开始通知消息。
5.根据权利要求4所述的方法,其特征在于,所述根据本次交换的所述内存页的数据量,在所述至少两个提升等级中确定所述提升等级,包括:
确定本次交换的所述内存页的数据量所属的数据量区间,所述数据量区间包括由小到大排列的第一数据量区间、第二数据量区间和第三数据量区间;
当所述数据量区间是所述第一数据量区间时,确定所述提升等级为第一提升等级;
当所述数据量区间是所述第二数据量区间时,确定所述提升等级为第二提升等级;
当所述数据量区间是所述第三数据量区间时,确定所述提升等级为第三提升等级;
所述第三提升等级对应的工作参数优于所述第二提升等级对应的工作参数,所述第二提升等级对应的工作参数优于所述第一提升等级对应的工作参数。
6.根据权利要求1至3任一所述的方法,其特征在于,
在所述物理内存和所述虚拟内存结束页交换时,生成结束通知消息;
根据所述结束通知消息,将与所述页交换有关的硬件组件从第二工作状态恢复到第一工作状态。
7.一种内存页交换装置,其特征在于,所述装置包括:开始模块、提升模块以及交换模块;所述提升模块包括第二获取单元、第二确定单元以及提升单元;
所述开始模块,用于在物理内存和虚拟内存开始进行页交换时,生成开始通知消息;
所述第二获取单元,用于从所述开始通知消息中获取目标提升等级,所述目标提升等级是至少两个提升等级中的一个;
所述第二确定单元,用于根据所述目标提升等级,确定与所述页交换有关的硬件组件在第二工作状态下的工作参数;
所述提升单元,用于根据所述工作参数将与所述页交换有关的硬件组件从第一工作状态提升为所述第二工作状态,所述第二工作状态的物理性能高于所述第一工作状态的物理性能;
所述交换模块,用于通过处于所述第二工作状态的所述硬件组件对内存页进行所述页交换。
8.一种终端,其特征在于,所述终端包括处理器,所述处理器包括存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求1至6任一所述的内存页交换方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至6任一所述的内存页交换方法。
CN201811198411.0A 2018-10-15 2018-10-15 内存页交换方法、装置、终端及存储介质 Active CN109408405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811198411.0A CN109408405B (zh) 2018-10-15 2018-10-15 内存页交换方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811198411.0A CN109408405B (zh) 2018-10-15 2018-10-15 内存页交换方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN109408405A CN109408405A (zh) 2019-03-01
CN109408405B true CN109408405B (zh) 2021-03-09

Family

ID=65468059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811198411.0A Active CN109408405B (zh) 2018-10-15 2018-10-15 内存页交换方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN109408405B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111580959B (zh) * 2020-04-26 2023-02-28 Oppo(重庆)智能科技有限公司 一种数据写入方法、数据写入装置、服务器及存储介质
CN112231239B (zh) * 2020-10-19 2022-05-17 海光信息技术股份有限公司 一种页交换方法、装置、cpu、可信硬件及计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833514A (zh) * 2009-03-12 2010-09-15 安凯(广州)软件技术有限公司 基于微内存***在与非型闪存介质实现虚拟内存的方法
CN104881241A (zh) * 2014-02-28 2015-09-02 华为技术有限公司 交换操作的实现方法和装置
CN107766151A (zh) * 2017-09-28 2018-03-06 郑州云海信息技术有限公司 一种页面换出方法
CN107885666A (zh) * 2016-09-28 2018-04-06 华为技术有限公司 一种内存管理方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180044095A (ko) * 2016-10-21 2018-05-02 삼성전자주식회사 전자 시스템 및 그것의 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833514A (zh) * 2009-03-12 2010-09-15 安凯(广州)软件技术有限公司 基于微内存***在与非型闪存介质实现虚拟内存的方法
CN104881241A (zh) * 2014-02-28 2015-09-02 华为技术有限公司 交换操作的实现方法和装置
CN107885666A (zh) * 2016-09-28 2018-04-06 华为技术有限公司 一种内存管理方法和装置
CN107766151A (zh) * 2017-09-28 2018-03-06 郑州云海信息技术有限公司 一种页面换出方法

Also Published As

Publication number Publication date
CN109408405A (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
US11531625B2 (en) Memory management method and apparatus
CN108984264B (zh) 虚拟gpu的实现方法、装置及***
WO2016165597A1 (zh) 数据存储的处理方法及装置
CN101770385B (zh) 一种基于Linux***的设备及其应用启动的方法
CN114096953A (zh) 内存管理方法、装置、电子设备和计算机可读介质
CN109408405B (zh) 内存页交换方法、装置、终端及存储介质
CN111813713B (zh) 数据加速运算处理方法、装置及计算机可读存储介质
US20180275925A1 (en) Method and mobile terminal for processing write request
WO2020220971A1 (zh) 一种文件加载方法、装置、电子设备及存储介质
WO2021057622A1 (zh) 内存回收方法、装置、电子设备及存储介质
CN113704301B (zh) 异构计算平台的数据处理方法、装置、***、设备及介质
CN109271253A (zh) 一种资源调配方法、装置及***
CN103955389B (zh) 一种基于pcm的***启动方法
JP2024508129A (ja) オリジナルシステムに基づく派生ソフトウェアの構築方法、システム及び装置
CN110109677B (zh) 一种动态对象缓存池分配方法
CN116775413A (zh) 一种pcie拓扑扫描方法、装置、设备及可读存储介质
CN107766122B (zh) 一种宿主机的可用内存空间设置方法和装置
CN112527425A (zh) 开机画面显示方法、终端及存储介质
CN103077052A (zh) 一种处理移动终端运行卡顿问题的方法及装置
CN115587049A (zh) 内存回收方法、装置、电子设备及存储介质
CN103377071A (zh) 一种数据批量删除方法和***
CN111562983B (zh) 内存优化方法、装置、电子设备及存储介质
CN111061429B (zh) 一种数据访问方法、装置、设备、介质
CN105224413A (zh) 一种提升应用程序稳定状态的方法和处理***
CN103544116A (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