页迁移方法、装置和中央处理器与流程

文档序号:16781371发布日期:2019-02-01 19:09阅读:151来源:国知局
本申请涉及计算机硬件
技术领域
:,尤其涉及一种页迁移方法、装置和中央处理器。
背景技术
::在非统一内存访问架构(nonuniformmemoryaccessarchitecture,numa)中,由于cpu访问本地节点内存的延迟远低于远端节点的延迟,现有的页迁移技术需要将位于远端的频繁访问的页迁移到本地节点,从而提高系统或应用的性能。但是,如果过多的物理页被映射到本地内存的同一个缓存集(cacheset),将会导致该cacheset中的缓存行(cacheline)频繁替换,并触发内存访问操作,从而降低应用或操作系统的性能。如何避免cacheline的频繁替换,提高cpu的cache命中率,是本申请实施例所要解决的技术问题。技术实现要素:本申请实施例的目的是提供一种页迁移方法、装置和中央处理器,以避免cacheline的频繁替换,提高cpu的cache命中率,从而提高应用或操作系统的性能。为解决上述技术问题,本申请实施例是这样实现的:第一方面,提供了一种页迁移方法,该方法包括:获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存llc地址位中除页内地址位以外的位的任意一种取值表示一种颜色;确定该目标对象中的待迁移颜色和目标颜色;确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;对该第一物理页进行页迁移操作,迁移到该第二物理页。第二方面,提供了一种页迁移装置,该装置包括:获取单元,获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存llc地址位中除页内地址位以外的位的任意一种取值表示一种颜色;确定单元,确定该目标对象中的待迁移颜色和目标颜色;该确定单元,还确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;页迁移单元,对该第一物理页进行页迁移操作,迁移到该第二物理页。第三方面,提供了一种页迁移装置,该装置包括:处理器;以及被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存llc地址位中除页内地址位以外的位的任意一种取值表示一种颜色;确定该目标对象中的待迁移颜色和目标颜色;确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;对该第一物理页进行页迁移操作,迁移到该第二物理页。第四方面,提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序当被包括多个应用程序的电子设备执行时,使得该电子设备执行以下操作:获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存llc地址位中除页内地址位以外的位的任意一种取值表示一种颜色;确定该目标对象中的待迁移颜色和目标颜色;确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;对该第一物理页进行页迁移操作,迁移到该第二物理页。第五方面,提供了一种中央处理器,包括第二方面或第三方面的页迁移装置。由以上本申请实施例提供的技术方案可见,本申请实施例通过页迁移调整目标对象在内存中的物理页的颜色分布,使得目标对象在内存中的物理页尽可能地均匀分布在不同的颜色上,进而能够使得目标对象的物理页在被映射到llc时相对均匀地分布在不同的缓存集中,从而能够避免cacheline的频繁替换,提高cpu的cache命中率,提高应用或操作系统的性能。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请的一个实施例页迁移的方法流程图。图2是本申请的一个实施例物理地址与缓存行、缓存集的关系示意图。图3是本申请的一个实施例目标对象在内存中物理页的颜色分布示意图。图4是本申请的一个实施例页迁移装置的结构示意图。图5是本申请的另一个实施例页迁移装置的结构示意图。具体实施方式本申请实施例提供一种页迁移方法和装置。为了使本
技术领域
:的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。为了方便理解本申请实施例,首先在此介绍本申请实施例描述中会引入的几个要素。cpu缓存(cpucache):是用于减少处理器访问内存所需平均时间的部件。在存储体系中,cpu缓存的访问速度仅次于cpu寄存器。cpu缓存大小是cpu的重要指标之一。当处理器发出内存访问请求时,会先查看cpu缓存内是否有请求数据。如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),则要先把内存中的相应数据载入cpu缓存,再将其返回处理器。由于cpu缓存的运行频率极高,一般是和处理器同频运作,其工作效率远远大于系统内存和硬盘。因此,cpu缓存容量的增大,可以大幅度提升cpu内部读取数据的命中率,提高系统性能。cpu缓存,一般也称为缓存。最后一级缓存(lastlevelcache,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取值为cacheline总数时的特例。缓存行(cacheline):为了简化与ram之间的通信,高速缓存控制器是针对数据块,而不是字节进行操作的。高速缓存其实就是一组称之为缓存行(cacheline)的固定大小的数据块,其大小是以突发读或者突发写周期的大小为基础的。每个cacheline完全是在一个突发读操作周期中进行填充或者下载的。即使处理器只存取一个字节的存储器,高速缓存控制器也启动整个存取器访问周期并请求整个cacheline。cacheline的第一个字节的地址是突发周期尺寸的倍数,cacheline的起始位置是与突发周期的开头保持一致。页迁移(pagemigration):将一个物理页的内容拷贝到另外一个新的物理页,然后更新页表中虚拟地址到物理地址的映射关系,释放旧的物理页。页表:页表是系统为保证进程的正确运行而建立的页面映像表。分页转换功能由驻留在内存中的表来描述,该表称为页表(pagetable),存放在物理地址空间中,用于实现从页号到物理块号的地址映射。以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分片中的所有物理页分配不同的颜色。为便于理解颜色的概念,下面以intelxeone52630为例进行说明颜色与物理地址的关系。在intelxeone52630中,处理器上有6个核(core),llc大小为15m,llc为20路相连型cache。llc按核的数量被均匀分为6个分片(slice),每个片的大小为2.5m。每个片的结构按照集(set)和路(way)的概念组合起来,组织结构如同一个2048行*20列的表格,其中,表格的行代表cacheset,一共2048个;表格的列代表cacheway,一共20个;每个格代表一个cacheline,每个cacheline的占用64byte;每个slice容量计算公式:2048*20*64=2.5m。应理解,在llc中,以物理地址作为tag去标记cacheline。为便于理解,下面结合图2对intelxeone52630的llc进行举例说明。图2是本申请的一个实施例物理地址与缓存行、缓存集的关系示意图。在图2所示的64位物理地址中,0~5位作为cacheline内部偏移,6-16位(共11位)用于标记cacheset,共有211=2048个cacheset。应理解,被映射到同一个cacheset中的cacheline可以放到该set中的任意一个way中;当一个cacheset中所有的way都被占满,则按照最近最少使用(leastrecentlyused,lru)策略替换一个cacheline,或者按照其它替换策略进行替换,本申请实施例在此不作限制。由于一个物理页(page)的大小一般为4k,因此,bit0-11用于物理页内部寻址。若以物理页为单位,则在intelxeone52630中,可将物理地址的bit12-16称为着色位,bit12-16的每种不同的取值对应一种颜色,每种颜色对应64个cacheset。当然,应理解,在具体地应用中,不同cpu的着色位可能不同。例如,在一个32位的物理地址中,如果llc的大小为32位,则0~4位作为cacheline内部偏移,如果cacheline个数是4096,一个物理页(page)的大小为4k,则可将物理地址的bit12-17称为着色位,bit12-17的每种不同的取值对应一种颜色,每种颜色对应128个cacheset。应理解,对于多核的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时相对均匀地分布在不同的缓存集中,从而能够避免cacheline的频繁替换,提高cpu的cache命中率,提高应用或操作系统的性能。可选地,步骤s102具体可实现为:扫描该目标对象的虚拟地址空间,获取该目标对象的虚拟地址在内存中对应的物理地址;根据该目标对象的虚拟地址在内存中对应的物理地址的着色位,统计获取该目标对象在内存中的物理页的颜色分布。具体地,例如,可在操作系统内核中运行一个内核线程,如扫描(scanner)线程;然后,可通过scanner线程,周期性扫描某个应用或操作系统在内存中的虚拟地址空间。scanner线程扫描得到某个应用或操作系统在虚拟地址地址的虚拟地址后,可通过查找内存页表,获取虚拟地址对应的物理地址。根据物理地址,scanner可统计应用或操作系统在内存中的物理页的颜色分布。以图2所示的物理地址与缓存行、缓存集的关系示意图为例,scanner线程可根据物理地址中的着色位bit12-16的取值,统计获取不同着色位下的物理页数目,从而得到该应用或操作系统对应的内存中物理的颜色分布。应理解,在本申请实施例中,可通过多种方式确定该目标对象中的待迁移颜色。可选地,作为一个实施例,在步骤s104中,确定该目标对象中的待迁移颜色,具体可实现为:如果该目标对象在内存中属于第一颜色的物理页数目与该目标对象的颜色平均物理页数目的差值/比值大于或等于第一预定阈值,则确定该第一颜色为该待迁移颜色。应理解,该目标对象的颜色平均物理页数目,是指该目标对象的虚拟地址空间中各虚拟地址映射的物理地址所对应的物理页总数,除以颜色的总数得到的平均值。例如,bit12-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时相对均匀地分布在不同的缓存集中,从而能够避免cacheline的频繁替换,提高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-volatilememory),例如至少一个磁盘存储器。处理器502,执行存储器503所存放的程序,并具体用于执行以下操作:获取目标对象在内存中的物理页的颜色分布,其中,最后一级缓存llc地址位中除页内地址位以外的位的任意一种取值表示一种颜色;确定该目标对象中的待迁移颜色和目标颜色;确定该待迁移颜色对应的物理页中待迁出的第一物理页,以及该目标颜色中空闲的第二物理页;对该第一物理页进行页迁移操作,迁移到该第二物理页。应理解,在本申请实施例中,该llc地址位为物理地址中用于表示llc或llc分片内地址的位,该页内地址位为物理地址中用于表示物理页的页内地址的位。应理解,能够映射到llc中同一个缓存区域的不同物理页的颜色相同,该缓存区域为一个物理页能够映射的缓存空间。上述如本申请图1所示实施例揭示的页迁移装置执行的方法可以应用于处理器502中,或者由处理器502实现。处理器502可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器502中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器502可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器503,处理器502读取存储器503中的信息,结合其硬件完成上述方法的步骤。在本申请实施例中,页迁移装置500通过页迁移调整目标对象在内存中的物理页的颜色分布,使得目标对象在内存中的物理页尽可能地均匀分布在不同的颜色上,进而能够使得目标对象的物理页在被映射到llc时相对均匀地分布在不同的缓存集中,从而能够避免cacheline的频繁替换,提高cpu的cache命中率,提高应用或操作系统的性能。页迁移处理装置还可执行图1的方法,并实现页迁移处理装置在图1所示实施例的功能,本申请实施例在此不作赘述。本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法。本申请实施例还提出了一种中央处理器,包括图4所示实施例的页迁移装置400,或图5所示实施例的页迁移装置500。总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1