CN109299021B - 页迁移方法、装置和中央处理器 - Google Patents

页迁移方法、装置和中央处理器 Download PDF

Info

Publication number
CN109299021B
CN109299021B CN201710608312.4A CN201710608312A CN109299021B CN 109299021 B CN109299021 B CN 109299021B CN 201710608312 A CN201710608312 A CN 201710608312A CN 109299021 B CN109299021 B CN 109299021B
Authority
CN
China
Prior art keywords
color
physical
page
migrated
target object
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
CN201710608312.4A
Other languages
English (en)
Other versions
CN109299021A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710608312.4A priority Critical patent/CN109299021B/zh
Publication of CN109299021A publication Critical patent/CN109299021A/zh
Application granted granted Critical
Publication of CN109299021B publication Critical patent/CN109299021B/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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

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

本申请实施例公开了一种页迁移方法和装置,该方法包括:获取目标对象在内存中的物理页的颜色分布;确定该目标对象中的待迁移颜色和目标颜色,其中,最后一级缓存LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色;确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;对该第一物理页进行页迁移操作,迁移到该第二物理页。

Description

页迁移方法、装置和中央处理器
技术领域
本申请涉及计算机硬件技术领域,尤其涉及一种页迁移方法、装置和中央处理器。
背景技术
在非统一内存访问架构(Non Uniform Memory Access Architecture,NUMA)中,由于CPU访问本地节点内存的延迟远低于远端节点的延迟,现有的页迁移技术需要将位于远端的频繁访问的页迁移到本地节点,从而提高系统或应用的性能。
但是,如果过多的物理页被映射到本地内存的同一个缓存集(Cache Set),将会导致该Cache Set中的缓存行(Cache Line)频繁替换,并触发内存访问操作,从而降低应用或操作系统的性能。
如何避免Cache Line的频繁替换,提高CPU的Cache命中率,是本申请实施例所要解决的技术问题。
发明内容
本申请实施例的目的是提供一种页迁移方法、装置和中央处理器,以避免CacheLine的频繁替换,提高CPU的Cache命中率,从而提高应用或操作系统的性能。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提供了一种页迁移方法,该方法包括:
获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色;
确定该目标对象中的待迁移颜色和目标颜色;
确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;
对该第一物理页进行页迁移操作,迁移到该第二物理页。
第二方面,提供了一种页迁移装置,该装置包括:
获取单元,获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色;
确定单元,确定该目标对象中的待迁移颜色和目标颜色;
该确定单元,还确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;
页迁移单元,对该第一物理页进行页迁移操作,迁移到该第二物理页。
第三方面,提供了一种页迁移装置,该装置包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:
获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色;
确定该目标对象中的待迁移颜色和目标颜色;
确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;
对该第一物理页进行页迁移操作,迁移到该第二物理页。
第四方面,提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序当被包括多个应用程序的电子设备执行时,使得该电子设备执行以下操作:
获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色;
确定该目标对象中的待迁移颜色和目标颜色;
确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;
对该第一物理页进行页迁移操作,迁移到该第二物理页。
第五方面,提供了一种中央处理器,包括第二方面或第三方面的页迁移装置。
由以上本申请实施例提供的技术方案可见,本申请实施例通过页迁移调整目标对象在内存中的物理页的颜色分布,使得目标对象在内存中的物理页尽可能地均匀分布在不同的颜色上,进而能够使得目标对象的物理页在被映射到LLC时相对均匀地分布在不同的缓存集中,从而能够避免Cache Line的频繁替换,提高CPU的Cache命中率,提高应用或操作系统的性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一个实施例页迁移的方法流程图。
图2是本申请的一个实施例物理地址与缓存行、缓存集的关系示意图。
图3是本申请的一个实施例目标对象在内存中物理页的颜色分布示意图。
图4是本申请的一个实施例页迁移装置的结构示意图。
图5是本申请的另一个实施例页迁移装置的结构示意图。
具体实施方式
本申请实施例提供一种页迁移方法和装置。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了方便理解本申请实施例,首先在此介绍本申请实施例描述中会引入的几个要素。
CPU缓存(CPU Cache):是用于减少处理器访问内存所需平均时间的部件。在存储体系中,CPU缓存的访问速度仅次于CPU寄存器。CPU缓存大小是CPU的重要指标之一。当处理器发出内存访问请求时,会先查看CPU缓存内是否有请求数据。如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),则要先把内存中的相应数据载入CPU缓存,再将其返回处理器。由于CPU缓存的运行频率极高,一般是和处理器同频运作,其工作效率远远大于系统内存和硬盘。因此,CPU缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,提高系统性能。CPU缓存,一般也称为缓存。
最后一级缓存(Last Level Cache,LLC):LLC是CPU缓存中访问速度最慢的缓存,用于从内存中读取数据,并供上一级缓存读取。现有的CPU缓存可分为一级缓存、二级缓存和三级缓存等。在CPU的三级Cache体系中,LLC为三级缓存。当然,即使CPU缓存体系在未来扩展到四级Cache体系,或更多级Cache体系,LLC都是访问速度最靠近内存的Cache。LLC按照相联类型可分为全相联型Cache、直接相联型Cache和N路相联型Cache,其中,全相联型Cache可视为N路相联型Cache中N取值为1时的特例,直接相联型Cache可视为N路相联型Cache中N取值为Cache Line总数时的特例。
缓存行(Cache Line):为了简化与RAM之间的通信,高速缓存控制器是针对数据块,而不是字节进行操作的。高速缓存其实就是一组称之为缓存行(Cache Line)的固定大小的数据块,其大小是以突发读或者突发写周期的大小为基础的。每个Cache Line完全是在一个突发读操作周期中进行填充或者下载的。即使处理器只存取一个字节的存储器,高速缓存控制器也启动整个存取器访问周期并请求整个Cache Line。Cache Line的第一个字节的地址是突发周期尺寸的倍数,Cache Line的起始位置是与突发周期的开头保持一致。
页迁移(PageMigration):将一个物理页的内容拷贝到另外一个新的物理页,然后更新页表中虚拟地址到物理地址的映射关系,释放旧的物理页。
页表:页表是系统为保证进程的正确运行而建立的页面映像表。分页转换功能由驻留在内存中的表来描述,该表称为页表(page table),存放在物理地址空间中,用于实现从页号到物理块号的地址映射。以32位系统为例,页表可看作简单的2的20次方(2^20)个物理地址数组,线性到物理地址的映射功能可以简单地看做进行数组查找,线性地址的高20位构成这个数组的索引值,用于选择对应页面的物理(基)地址;线性地址的低12位给出了页面中的偏移量,加上页面的基地址最终形成对应的物理地址。
为解决上述问题,本申请实施例提出了一种页迁移方法。
图1是本申请的一个实施例页迁移的方法流程图。图1的方法的执行主体可以是中央处理器CPU的一个功能模块。图1的方法可包括:
S102,获取目标对象在内存的物理页的颜色分布。
其中,LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色。
应理解,该LLC地址位为物理地址中用于表示LLC或LLC分片内地址的位,该页内地址位为物理地址中用于表示物理页的页内地址的位。
应理解,根据物理地址中的LLC地址,可以确定在访问该物理地址时所映射的LLC的位置。
应理解,能够映射到LLC中同一个缓存区域的不同物理页的颜色相同,该缓存区域为一个物理页能够映射的缓存空间。
应理解,LLC的分片,是指LLC中一个处理器核对应的部分。例如,一个LLC按照处理器核分为6片(Slice),则该LLC可以有6个分片,每个处理器核对应于一个LLC分片。
应理解,在LLC中,可以为映射到整个LLC的所有物理页分配不同的颜色,或者为映射到一个LLC分片中的所有物理页分配不同的颜色。
为便于理解颜色的概念,下面以Intel Xeon E5 2630为例进行说明颜色与物理地址的关系。在Intel Xeon E5 2630中,处理器上有6个核(Core),LLC大小为15M,LLC为20路相连型Cache。LLC按核的数量被均匀分为6个分片(slice),每个片的大小为2.5M。每个片的结构按照集(Set)和路(Way)的概念组合起来,组织结构如同一个2048行*20列的表格,其中,
表格的行代表Cache Set,一共2048个;
表格的列代表Cache Way,一共20个;
每个格代表一个Cache Line,每个Cache Line的占用64Byte;
每个Slice容量计算公式:2048*20*64=2.5M。
应理解,在LLC中,以物理地址作为tag去标记Cache Line。为便于理解,下面结合图2对Intel Xeon E5 2630的LLC进行举例说明。
图2是本申请的一个实施例物理地址与缓存行、缓存集的关系示意图。在图2所示的64位物理地址中,0~5位作为Cache Line内部偏移,6-16位(共11位)用于标记CacheSet,共有211=2048个Cache Set。应理解,被映射到同一个Cache Set中的Cache Line可以放到该Set中的任意一个Way中;当一个Cache Set中所有的Way都被占满,则按照最近最少使用(Least Recently Used,LRU)策略替换一个Cache Line,或者按照其它替换策略进行替换,本申请实施例在此不作限制。
由于一个物理页(Page)的大小一般为4K,因此,bit 0-11用于物理页内部寻址。若以物理页为单位,则在Intel Xeon E5 2630中,可将物理地址的bit 12-16称为着色位,bit12-16的每种不同的取值对应一种颜色,每种颜色对应64个Cache Set。
当然,应理解,在具体地应用中,不同CPU的着色位可能不同。例如,在一个32位的物理地址中,如果LLC的大小为32位,则0~4位作为Cache Line内部偏移,如果Cache Line个数是4096,一个物理页(Page)的大小为4K,则可将物理地址的bit 12-17称为着色位,bit12-17的每种不同的取值对应一种颜色,每种颜色对应128个Cache Set。
应理解,对于多核的CPU来说,CPU的多个核共享LLC,每个核都可以访问LLC中的Slice,同时每个核都有各自的L1和L2Cache。在确定物理页的Slice时,可选取物理地址的某些位,然后通过hash函数算出物理页映射的地址所属的Slice,等等。在本申请实施例中,对目标对象的物理页的颜色分布进行调整,同时对目标对象的物理页映射到LLC后的片(Slice)的分布不作限制。
当然,应理解,在本申请实施例中,该目标对象可以是应用,或者是操作系统整体。特别地,当该目标对象是应用时,具体可以是某个应用,或者是某个类型的应用,或者是某几个指定的应用等等。
应理解,在本申请实施例中,根据用于存储目标对象的内存的物理地址中LLC地址位中除页内地址位以外的位,可确定目标对象的颜色分布。
为便于理解本申请的技术方案,下面结合图3进行说明。
图3是本申请的一个实施例目标对象在内存中物理页的颜色分布示意图。如图3所示,在迁移前,目标对象在内存中占据的物理页的物理地址为0x0123456789ABC000至0x0x0123456789ABCFFF。在图3所示实施例中,LLC地址位中除页内地址位以外的位,即12-17位的地址位。根据目标对象的12-17位的地址位,可确定图3所示实施例的目标对象的12-17位的地址位相同,也就是说,目标对象的颜色为同一个颜色。
当然,应理解,在实际的应用中,用于存储目标对象的物理页的颜色可能包括多个颜色。
S104,确定该目标对象中的待迁移颜色和目标颜色。
应理解,在本申请实施例中,根据颜色分布,可以从中选择待迁移颜色和目标颜色。应理解,在本申请实施例中,包含目标对象的物理页多的颜色为待迁移颜色,包含目标对象的物理页少的颜色为目标颜色。
以图3为例,目标对象只有一种颜色,显然,该颜色就是待迁移颜色。待迁移颜色以外的其它颜色,都可以作为目标颜色。
S106,确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页。
如图3所示,可以在待迁移颜色中选择一个或多个物理页作为第一物理页,并在目标颜色中选择空闲的物理页,作为第一物理页迁出后的物理页。
S108,对该第一物理页进行页迁移操作,迁移到该第二物理页。
如图3所示,对目标对象的物理页从待迁移颜色迁移到目标颜色,从而使得目标对象的颜色相对于迁移前的分布更为均匀。
当然,应理解,图3只是简单地示出了目标对象的一种迁移场景。在具体的应用中,待迁移颜色可能包括一种,也可能包括多种;目标颜色也可能包括一种,或者包括多种,一次迁移的物理页,可以包括一个,也可以包括多个。
此外,应理解,在本申请实施例中,目标对象,可以是应用或操作系统。此外,该目标对象,可以是一个目标对象,或者是多个目标对象。例如,当目标对象为应用时,该目标对象可以是一个指定应用,也可以是多个指定应用,这些指定应用是可配置的。当然,如果该目标对象是整个操作系统时,显然目标对象只有一个。
在本申请实施例中,通过页迁移调整目标对象在内存中的物理页的颜色分布,使得目标对象在内存中的物理页尽可能地均匀分布在不同的颜色上,进而能够使得目标对象的物理页在被映射到LLC时相对均匀地分布在不同的缓存集中,从而能够避免Cache Line的频繁替换,提高CPU的Cache命中率,提高应用或操作系统的性能。
可选地,步骤S102具体可实现为:
扫描该目标对象的虚拟地址空间,获取该目标对象的虚拟地址在内存中对应的物理地址;
根据该目标对象的虚拟地址在内存中对应的物理地址的着色位,统计获取该目标对象在内存中的物理页的颜色分布。
具体地,例如,可在操作系统内核中运行一个内核线程,如扫描(scanner)线程;然后,可通过scanner线程,周期性扫描某个应用或操作系统在内存中的虚拟地址空间。scanner线程扫描得到某个应用或操作系统在虚拟地址地址的虚拟地址后,可通过查找内存页表,获取虚拟地址对应的物理地址。根据物理地址,scanner可统计应用或操作系统在内存中的物理页的颜色分布。以图2所示的物理地址与缓存行、缓存集的关系示意图为例,scanner线程可根据物理地址中的着色位bit12-16的取值,统计获取不同着色位下的物理页数目,从而得到该应用或操作系统对应的内存中物理的颜色分布。
应理解,在本申请实施例中,可通过多种方式确定该目标对象中的待迁移颜色。
可选地,作为一个实施例,在步骤S104中,确定该目标对象中的待迁移颜色,具体可实现为:如果该目标对象在内存中属于第一颜色的物理页数目与该目标对象的颜色平均物理页数目的差值/比值大于或等于第一预定阈值,则确定该第一颜色为该待迁移颜色。
应理解,该目标对象的颜色平均物理页数目,是指该目标对象的虚拟地址空间中各虚拟地址映射的物理地址所对应的物理页总数,除以颜色的总数得到的平均值。
例如,bit 12-16作为着色位,总共有25=32种颜色。假设目标对象在内存中的物理页为512个,则该目标对象的颜色平均物理页数目为16。
在一种具体的实现方式中,可根据颜色的物理页数目与颜色平均物理页数目的差值确定需要迁移的颜色。此时,该第一预定阈值为正整数。
例如,可规定该目标对象的颜色平均物理页数目为16,并规定第一预定阈值为8,即8个物理页。如果目标对象的颜色A、B、C对应的物理页数目为8、24、30,则由于8-16<8,24-16=8,30-16>8,因此,可确定颜色B、C为待迁移颜色。
在另一种具体的实现方式中,可根据颜色的物理页数目与颜色平均物理页数目的比值确定需要迁移的颜色。此时,该第一预定阈值为大于1的数值。
例如,可规定该目标对象的颜色平均物理页数目为16,并规定第一预定阈值为1.5。如果目标对象的颜色A、B、C对应的物理页数目为8、24、30,则由于8/16<1.5,24/16=1.5,30/16>1.5,因此,可确定颜色B、C为待迁移颜色。
本申请实施例中,通过根据颜色的物理页数目与颜色平均物理页数目的差值/比值确定需要迁移的颜色,可以迅速查找出物理页数目较高的颜色,以将该颜色下的物理页迁移到其它物理页数目较小的颜色中。
类似地,在本申请实施例中,页可通过多种方式确定该目标对象中的目标颜色。
可选地,作为一个实施例,在步骤S104中,确定该目标对象中的目标颜色,具体可实现为:如果该目标对象在内存中属于第二颜色的物理页数目与该目标对象的颜色平均物理页数目的差值/比值小于或等于第二预定阈值,则确定该第二颜色为该目标颜色。
在一种具体的实现方式中,可根据颜色的物理页数目与颜色平均物理页数目的差值确定目标颜色。此时,该第二预定阈值为负整数。
例如,可规定该目标对象的颜色平均物理页数目为16,并规定第二预定阈值为-8。如果目标对象的颜色A、B、C对应的物理页数目为8、24、30,则由于8-16=-8,24-16>-8,30-16>-8,因此,可确定颜色A为目标颜色。
在另一种具体的实现方式中,可根据颜色的物理页数目与颜色平均物理页数目的比值确定目标颜色。此时,该第一预定阈值为大于或等于0且小于1的数值。
例如,可规定该目标对象的颜色平均物理页数目为16,并规定第二预定阈值为0.5。如果目标对象的颜色A、B、C对应的物理页数目为8、24、30,则由于8/16=0.5,24/16>0.5,30/16>0.5,因此,可确定颜色A为目标颜色。
本申请实施例中,通过根据颜色的物理页数目与颜色平均物理页数目的差值/比值确定目标颜色,可以迅速查找出物理页数目较低的颜色,以将其它物理页数目较高的颜色中的物理页,迁移到该物理页数目较低的颜色中。
应理解,上述确定待迁移颜色和目标颜色的方法可以自由组合,例如,可根据该目标对象的颜色的物理页数目与该目标对象的颜色平均物理页数目的差值确定待迁移颜色,根据该目标对象的颜色的物理页数目与该目标对象的颜色平均物理页数目的比值确定待迁移颜色;或者,根据该目标对象的颜色的物理页数目与该目标对象的颜色平均物理页数目的比值确定待迁移颜色,根据该目标对象的颜色的物理页数目与该目标对象的颜色平均物理页数目的比值确定待迁移颜色,等等。当然,优选地,可采用相同的比较方式确定待迁移颜色和目标颜色
当然,应理解,还可能存在其它确定待迁移颜色和目标颜色的方法。
可选地,作为再一个实施例,在步骤S104中,如果该目标对象在内存中属于第一颜色的物理页数目最大,则确定该第一颜色为该待迁移颜色;如果该目标对象在内存中属于第二颜色的物理页数目最小,则确定该第二颜色为该目标颜色。
例如,如果目标对象的颜色对应的物理页中,颜色A对应的物理页数目最多,颜色B对应的物理页数目最少,则可确定颜色A为待迁移颜色,颜色B为目标颜色。
应理解,在确定待迁移颜色之后,还需要确定待迁移颜色中待迁出的第一物理页。
可选地,作为一个实施例,步骤S106中,确定该待迁移颜色对应的物理页中待迁出的第一物理页,具体实现为:随机确定该待迁移颜色对应的物理页中待迁出的第一物理页。
具体地,可随机从待迁移颜色对应的物理页选择出一个或多个物理页。
可选地,作为一个实施例,步骤S106中,确定该待迁移颜色对应的物理页中待迁出的第一物理页,具体实现为:确定该待迁移颜色对应的物理页中未映射到LLC的物理页为该第一物理页。
本申请实施例中,通过将该待迁移颜色对应的物理页中未映射到LLC的物理页作为需要迁出的物理页,可以避免对CPU正在访问的物理页进行页迁移操作。
当然,应理解,在具体的应用中,可在一个待迁移颜色确定多个第一物理页并迁出。
例如,可规定该目标对象的颜色平均物理页数目为16,并规定第一预定阈值为8。如果目标对象的颜色A对应的物理页数目为30,则此时可确定颜色A为待迁出颜色,颜色A至少需要迁出30-16-8+1=7个物理页。
应理解,一个颜色迁出的物理页,可以迁移到一个目标颜色的物理页中,也可以迁移到多个目标颜色的物理页中。
例如,颜色A迁出7个物理页,可以都迁移到颜色B的物理页中;也可以分别迁移2个物理页到颜色B中,迁移3个到颜色C中,迁移2个到颜色D中,等等。
确定第一物理页和第二物理页之后,需要对该第一物理页进行页迁移操作,迁移到该第二物理页。具体地,步骤S108可实现为:将该第一物理页的数据迁移到该第二物理页,将该第一物理页的虚拟地址映射到该第二物理页,并释放该第一物理页。
具体地,首先可通过页迁移的方式将该第一物理页的数据迁移到该第二物理页,其页迁移方式可参考现有技术。在完成数据迁移后,可以从操作系统的内存页表中查到第一物理页对应的虚拟地址,然后内存页表中在将该虚拟地址改为映射到该第二物理页,从而完成页迁移操作。
当然,应理解,经过一次页迁移处理后,如果该目标对象中还存在符合迁移条件的第二待迁移颜色和第二目标颜色,则对该第二待迁移颜色和第二目标颜色执行与步骤S106和S108类似的步骤。
例如,可规定该目标对象的颜色平均物理页数目为16,并规定第一预定阈值为8,第二预定阈值为-8。如果目标对象的颜色A、B、C对应的物理页数目为4、24、30,则可确定颜色B、C为待迁移颜色,颜色A为目标颜色。
假设在第一次页迁移过程中,页迁移装置可将颜色B的1个颜色迁移到颜色A。此时,颜色A、B、C对应的物理页数目为5、23、30。根据颜色A、B、C的物理页分布,可确定颜色C仍为待迁移颜色,颜色A仍为目标颜色,页迁移装置可将颜色C的7个物理页一次迁移到颜色A的物理页中,或者分多次迁移到颜色A的物理页中。
图4是本申请的一个实施例页迁移装置400的结构示意图。如图4所示,页迁移装置400可包括获取单元401,确定单元402和页迁移单元403。其中,
获取单元,获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色;
确定单元402,确定该目标对象中的待迁移颜色和目标颜色;
确定单元402,还确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;
页迁移单元403,对该第一物理页进行页迁移操作,迁移到该第二物理页。
应理解,在本申请实施例中,该LLC地址位为物理地址中用于表示LLC或LLC分片内地址的位,该页内地址位为物理地址中用于表示物理页的页内地址的位。
应理解,能够映射到LLC中同一个缓存区域的不同物理页的颜色相同,该缓存区域为一个物理页能够映射的缓存空间。
在本申请实施例中,页迁移装置400通过页迁移调整目标对象在内存中的物理页的颜色分布,使得目标对象在内存中的物理页尽可能地均匀分布在不同的颜色上,进而能够使得目标对象的物理页在被映射到LLC时相对均匀地分布在不同的缓存集中,从而能够避免Cache Line的频繁替换,提高CPU的Cache命中率,提高应用或操作系统的性能。
可选地,获取单元401,具体用于:扫描该目标对象的虚拟地址空间,获取该目标对象的虚拟地址在内存中对应的物理地址;根据该目标对象的虚拟地址在内存中对应的物理地址的着色位,统计获取该目标对象在内存中的物理页的颜色分布。
可选地,作为一个实施例,确定单元402确定该目标对象中的待迁移颜色,具体可实现为:如果该目标对象在内存中属于第一颜色的物理页数目与该目标对象的颜色平均物理页数目的差值/比值大于或等于第一预定阈值,则确定单元402确定该第一颜色为该待迁移颜色。
可选地,作为一个实施例,确定单元402确定该目标对象中的目标颜色,具体可实现为:如果该目标对象在内存中属于第二颜色的物理页数目与该目标对象的颜色平均物理页数目的差值/比值小于或等于第二预定阈值,则确定该第二颜色为该目标颜色。
可选地,作为另一个实施例,确定单元402确定该目标对象中的待迁移颜色,具体可实现为:如果该目标对象在内存中属于第一颜色的物理页数目最大,则确定单元402确定该第一颜色为该待迁移颜色;
确定单元402确定该目标对象中的目标颜色,具体可实现为:如果该目标对象在内存中属于第二颜色的物理页数目最小,则确定单元402确定该第二颜色为该目标颜色。
可选地,作为一个实施例,确定单元402确定该待迁移颜色对应的物理页中待迁出的第一物理页,具体可实现为:确定单元402以随机的方式确定该待迁移颜色对应的物理页中待迁出的第一物理页。
可选地,作为另一个实施例,确定单元402确定该待迁移颜色对应的物理页中待迁出的第一物理页,具体可实现为:确定单元402确定该待迁移颜色对应的物理页中未映射到LLC的物理页为该第一物理页。
可选地,页迁移单元403具体用于:将该第一物理页的数据迁移到该第二物理页,将该第一物理页的虚拟地址映射到该第二物理页,并释放该第一物理页。
页迁移装置400还可执行图1的方法,并实现页迁移装置在图1所示实施例的功能,本申请实施例在此不再赘述。
图5是本申请的另一个实施例页迁移装置500的结构示意图。页迁移装置500可包括通道接口501、处理器502和存储器503。
通道接口501、处理器502和存储器503通过总线504系统相互连接。总线504可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器503,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器503可以包括只读存储器和随机存取存储器,并向处理器502提供指令和数据。存储器503可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器502,执行存储器503所存放的程序,并具体用于执行以下操作:
获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色;
确定该目标对象中的待迁移颜色和目标颜色;
确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;
对该第一物理页进行页迁移操作,迁移到该第二物理页。
应理解,在本申请实施例中,该LLC地址位为物理地址中用于表示LLC或LLC分片内地址的位,该页内地址位为物理地址中用于表示物理页的页内地址的位。
应理解,能够映射到LLC中同一个缓存区域的不同物理页的颜色相同,该缓存区域为一个物理页能够映射的缓存空间。
上述如本申请图1所示实施例揭示的页迁移装置执行的方法可以应用于处理器502中,或者由处理器502实现。处理器502可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器502中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器502可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器503,处理器502读取存储器503中的信息,结合其硬件完成上述方法的步骤。
在本申请实施例中,页迁移装置500通过页迁移调整目标对象在内存中的物理页的颜色分布,使得目标对象在内存中的物理页尽可能地均匀分布在不同的颜色上,进而能够使得目标对象的物理页在被映射到LLC时相对均匀地分布在不同的缓存集中,从而能够避免Cache Line的频繁替换,提高CPU的Cache命中率,提高应用或操作系统的性能。
页迁移处理装置还可执行图1的方法,并实现页迁移处理装置在图1所示实施例的功能,本申请实施例在此不作赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法。
本申请实施例还提出了一种中央处理器,包括图4所示实施例的页迁移装置400,或图5所示实施例的页迁移装置500。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (9)

1.一种页迁移方法,其特征在于,包括:
获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色;
确定所述目标对象中的待迁移颜色和目标颜色;
确定所述待迁移颜色对应的物理页中待迁出的第一物理页,以及所述目标颜色中空闲的第二物理页;
对所述第一物理页进行页迁移操作,迁移到所述第二物理页;
确定所述目标对象中的待迁移颜色和目标颜色,包括:
如果所述目标对象在内存中属于第一颜色的物理页数目与所述目标对象的颜色平均物理页数目的差值/比值大于或等于第一预定阈值,则确定所述第一颜色为所述待迁移颜色,所述第一预定阈值为正整数;
如果所述目标对象在内存中属于第二颜色的物理页数目与所述目标对象的颜色平均物理页数目的差值/比值小于或等于第二预定阈值,则确定所述第二颜色为所述目标颜色,所述第二预定阈值为负整数;
确定所述待迁移颜色对应的物理页中待迁出的第一物理页,包括:
随机确定所述待迁移颜色对应的物理页中待迁出的第一物理页;或者
确定所述待迁移颜色对应的物理页中未映射到LLC的物理页为所述第一物理页。
2.如权利要求1所述的方法,其特征在于
所述LLC地址位为物理地址中用于表示LLC或LLC分片内地址的位,所述页内地址位为物理地址中用于表示物理页的页内地址的位。
3.如权利要求1或2所述的方法,其特征在于,
确定所述目标对象中的待迁移颜色和目标颜色,还包括:
如果所述目标对象在内存中属于第一颜色的物理页数目最大,则确定所述第一颜色为所述待迁移颜色;
如果所述目标对象在内存中属于第二颜色的物理页数目最小,则确定所述第二颜色为所述目标颜色。
4.如权利要求1或2所述的方法,其特征在于,
获取目标对象在内存中的物理页的颜色分布,包括:
扫描所述目标对象的虚拟地址空间,获取所述目标对象的虚拟地址在内存中对应的物理地址;
根据所述目标对象的虚拟地址在内存中对应的物理地址的着色位,统计获取所述目标对象在内存中的物理页的颜色分布。
5.如权利要求1或2所述的方法,其特征在于,
对所述第一物理页进行页迁移操作,迁移到所述第二物理页,包括:
将所述第一物理页的数据迁移到所述第二物理页,将所述第一物理页的虚拟地址映射到所述第二物理页,并释放所述第一物理页。
6.如权利要求1或2所述的方法,其特征在于,
所述目标对象为应用或操作系统。
7.一种页迁移装置,其特征在于,包括:
获取单元,获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色;
确定单元,确定所述目标对象中的待迁移颜色和目标颜色;
所述确定单元,还确定所述待迁移颜色对应的物理页中待迁出的第一物理页,以及所述目标颜色中空闲的第二物理页;
页迁移单元,对所述第一物理页进行页迁移操作,迁移到所述第二物理页;
所述确定单元具体用于:
如果所述目标对象在内存中属于第一颜色的物理页数目与所述目标对象的颜色平均物理页数目的差值/比值大于或等于第一预定阈值,则确定所述第一颜色为所述待迁移颜色,所述第一预定阈值为正整数;
如果所述目标对象在内存中属于第二颜色的物理页数目与所述目标对象的颜色平均物理页数目的差值/比值小于或等于第二预定阈值,则确定所述第二颜色为所述目标颜色,所述第一预定阈值为正整数;
所述确定单元,具体用于随机确定所述待迁移颜色对应的物理页中待迁出的第一物理页;或者
确定所述待迁移颜色对应的物理页中未映射到LLC的物理页为所述第一物理页。
8.一种页迁移装置,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色;
确定所述目标对象中的待迁移颜色和目标颜色;
确定所述待迁移颜色对应的物理页中待迁出的第一物理页,以及所述目标颜色中空闲的第二物理页;
对所述第一物理页进行页迁移操作,迁移到所述第二物理页;
确定所述目标对象中的待迁移颜色和目标颜色,包括:
如果所述目标对象在内存中属于第一颜色的物理页数目与所述目标对象的颜色平均物理页数目的差值/比值大于或等于第一预定阈值,则确定所述第一颜色为所述待迁移颜色,所述第一预定阈值为正整数;
如果所述目标对象在内存中属于第二颜色的物理页数目与所述目标对象的颜色平均物理页数目的差值/比值小于或等于第二预定阈值,则确定所述第二颜色为所述目标颜色,所述第二预定阈值为负整数;
确定所述待迁移颜色对应的物理页中待迁出的第一物理页,包括:
随机确定所述待迁移颜色对应的物理页中待迁出的第一物理页;或者
确定所述待迁移颜色对应的物理页中未映射到LLC的物理页为所述第一物理页。
9.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存LLC地址位中除页内地址位以外的位的任意一种取值表示一种颜色;
确定所述目标对象中的待迁移颜色和目标颜色;
确定所述待迁移颜色对应的物理页中待迁出的第一物理页,以及所述目标颜色中空闲的第二物理页;
对所述第一物理页进行页迁移操作,迁移到所述第二物理页;
确定所述目标对象中的待迁移颜色和目标颜色,包括:
如果所述目标对象在内存中属于第一颜色的物理页数目与所述目标对象的颜色平均物理页数目的差值/比值大于或等于第一预定阈值,则确定所述第一颜色为所述待迁移颜色,所述第一预定阈值为正整数;
如果所述目标对象在内存中属于第二颜色的物理页数目与所述目标对象的颜色平均物理页数目的差值/比值小于或等于第二预定阈值,则确定所述第二颜色为所述目标颜色,所述第二预定阈值为负整数;
确定所述待迁移颜色对应的物理页中待迁出的第一物理页,包括:
随机确定所述待迁移颜色对应的物理页中待迁出的第一物理页;或者
确定所述待迁移颜色对应的物理页中未映射到LLC的物理页为所述第一物理页。
CN201710608312.4A 2017-07-24 2017-07-24 页迁移方法、装置和中央处理器 Active CN109299021B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710608312.4A CN109299021B (zh) 2017-07-24 2017-07-24 页迁移方法、装置和中央处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710608312.4A CN109299021B (zh) 2017-07-24 2017-07-24 页迁移方法、装置和中央处理器

Publications (2)

Publication Number Publication Date
CN109299021A CN109299021A (zh) 2019-02-01
CN109299021B true CN109299021B (zh) 2023-06-16

Family

ID=65167183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710608312.4A Active CN109299021B (zh) 2017-07-24 2017-07-24 页迁移方法、装置和中央处理器

Country Status (1)

Country Link
CN (1) CN109299021B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI776028B (zh) * 2019-03-14 2022-09-01 點序科技股份有限公司 快閃記憶體管理方法及快閃記憶體
CN112099974B (zh) * 2020-09-18 2023-09-08 海光信息技术股份有限公司 多线程处理器系统及访存带宽控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009075177A1 (ja) * 2007-12-12 2009-06-18 Nec Corporation メモリ再配置システムおよびメモリ再配置方法
JP2009301102A (ja) * 2008-06-10 2009-12-24 Nec Corp キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム
CN103885815A (zh) * 2014-03-24 2014-06-25 北京大学 一种基于热页迁移的虚拟机动态缓存方法
CN104899159A (zh) * 2014-03-06 2015-09-09 华为技术有限公司 高速缓冲存储器Cache地址的映射处理方法和装置
CN105612499A (zh) * 2013-10-29 2016-05-25 华中科技大学 混合高速缓存管理

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2011348835B2 (en) * 2011-07-28 2016-03-24 Huawei Technologies Co., Ltd. Method and device for implementing memory migration
US9645930B2 (en) * 2013-06-19 2017-05-09 Intel Corporation Dynamic home tile mapping

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009075177A1 (ja) * 2007-12-12 2009-06-18 Nec Corporation メモリ再配置システムおよびメモリ再配置方法
JP2009301102A (ja) * 2008-06-10 2009-12-24 Nec Corp キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム
CN105612499A (zh) * 2013-10-29 2016-05-25 华中科技大学 混合高速缓存管理
CN104899159A (zh) * 2014-03-06 2015-09-09 华为技术有限公司 高速缓冲存储器Cache地址的映射处理方法和装置
CN103885815A (zh) * 2014-03-24 2014-06-25 北京大学 一种基于热页迁移的虚拟机动态缓存方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CC-NUMA系统中面向页迁移的反向页表技术;杜静,戴华东,杨学军;计算机工程(第06期);全文 *
一种高效的虚拟机动态内存迁移方法;程虹锡;谭良;;计算机科学(第04期);全文 *

Also Published As

Publication number Publication date
CN109299021A (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
US9972375B2 (en) Sanitize-aware DRAM controller
US7558920B2 (en) Apparatus and method for partitioning a shared cache of a chip multi-processor
EP2645259B1 (en) Method, device and system for caching data in multi-node system
US9405703B2 (en) Translation lookaside buffer
US10719451B2 (en) Variable translation-lookaside buffer (TLB) indexing
US10997078B2 (en) Method, apparatus, and non-transitory readable medium for accessing non-volatile memory
US20170337136A1 (en) Managing Cache Coherence Using Information in a Page Table
CN110795363B (zh) 一种存储介质的热页预测方法和页面调度方法
US20190004968A1 (en) Cache management method, storage system and computer program product
CN109299021B (zh) 页迁移方法、装置和中央处理器
US8028118B2 (en) Using an index value located on a page table to index page attributes
CN110532200B (zh) 一种基于混合内存架构的内存系统
CN109597771B (zh) 用于控制分层存储器系统的方法和装置
US9128856B2 (en) Selective cache fills in response to write misses
US11256630B2 (en) Cache address mapping method and related device
CN115079957B (zh) 请求处理方法、装置、控制器、设备及存储介质
CN106649143B (zh) 一种访问缓存的方法、装置及电子设备
CN113253939B (zh) 数据处理方法、装置、电子设备及存储介质
US20110078390A1 (en) Information processing apparatus and semiconductor storage device
US20160140034A1 (en) Devices and methods for linked list array hardware implementation
US8065485B2 (en) Method and apparatus for determining cache storage locations based on latency requirements
US11397691B2 (en) Latency hiding for caches
CN109165172B (zh) 缓存数据处理方法及相关设备
US20160103766A1 (en) Lookup of a data structure containing a mapping between a virtual address space and a physical address space
CN116257465A (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