一种代码程序迁移方法、装置、设备和存储介质制造方法及图纸

技术编号:36707413 阅读:20 留言:0更新日期:2023-03-01 09:31
本发明专利技术实施例公开了一种代码程序迁移方法、装置、设备和存储介质,包括:创建第一地址映射表,并将第一地址映射表应用于内存管理单元MMU进行地址映射;定时获取针对目标程序的代码热力图,并根据代码热力图确定使用次数最高的目标代码块,其中,代码热力图中包括各代码块使用次数;基于MMU的地址映射结果将使用次数最高的目标代码块迁移到SRAM中存储。根据所获取的目标程序的代码热力图获取使用次数最高的目标代码块,基于内存管理单元MMU的地址映射结果,将目标代码块由DDR物理地址下映射的虚拟地址重映射到读取速率较快的SRAM物理地址,从而显著的提高目标程序的访问速度,以及运行效率。以及运行效率。以及运行效率。

【技术实现步骤摘要】
一种代码程序迁移方法、装置、设备和存储介质


[0001]本专利技术实施例涉及计算机科学
,尤其涉及一种代码程序迁移方法、装置、设备和存储介质。

技术介绍

[0002]目前大部分CPU中内存包括三种,分别是缓存Cache、静态随机存取存储器(Static RandomAccess Memory,SRAM)和双倍速率同步动态随机存储器(Double Data Rate,DDR)。其中,Cache的速度最快,大小通常为2MB及以下,SRAM的速度居中,大小通常为32MB以上,DDR的速度最慢,大小通常在2GB以上。
[0003]由于Cache和SRAM都在CPU内部,而DDR在CPU外部。所以DDR的速度会几十倍的低于SRAM和Cache。由于代码程序所占用的空间非常大,因此通常是存储在DDR中,虽然Cache能够自动的对DDR进行高速缓冲以提升整体性能,但由于Cache过小,常常因为大量读写内存时,导致Cache大量未命中造成整体性能的下降。因此目前处理器采用从DDR中读取代码程序的方式,会显著降低访问速度,从而降低代码程序的运行效率。

技术实现思路

[0004]本专利技术实施例提供了一种代码热度统计方法、装置、设备和存储介质,以实现对代码热度的自动统计。
[0005]第一方面,本专利技术实施例提供了一种代码程序迁移方法,包括:创建第一地址映射表,并将所述第一地址映射表应用于内存管理单元MMU进行地址映射,其中,所述第一地址映射表中包括存储目标程序各代码块的原始双倍速率同步动态随机存储器DDR物理地址与原始虚拟地址的第一映射关系,以及保留的第一虚拟地址与静态随机存取存储器SRAM物理地址的第二映射关系;
[0006]定时获取针对所述目标程序的代码热力图,并根据所述代码热力图确定使用次数最高的目标代码块,其中,所述代码热力图中包括各代码块使用次数;
[0007]基于所述MMU的地址映射结果将使用次数最高的所述目标代码块迁移到所述SRAM物理地址中存储。
[0008]第二方面,本专利技术实施例提供了一种代码程序迁移装置,包括:第一地址映射表创建模块,用于创建第一地址映射表,并将所述第一地址映射表应用于内存管理单元MMU进行地址映射,其中,所述第一地址映射表中包括存储目标程序各代码块的原始双倍速率同步动态随机存储器DDR物理地址与原始虚拟地址的第一映射关系,以及保留的第一虚拟地址与静态随机存取存储器SRAM物理地址的第二映射关系;
[0009]目标代码块确定模块,用于定时获取针对所述目标程序的代码热力图,并根据所述代码热力图确定使用次数最高的目标代码块,其中,所述代码热力图中包括各代码块使用次数;
[0010]目标代码块迁移模块,用于基于所述MMU的地址映射结果将使用次数最高的所述
目标代码块迁移到所述SRAM物理地址中存储。
[0011]第三方面,本专利技术实施例提供了一种计算机设备,计算机设备包括:
[0012]一个或多个处理器;
[0013]存储装置,用于存储一个或多个程序,
[0014]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的代码程序迁移方法。
[0015]第四方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的代码程序迁移方法。
[0016]本专利技术实施例的技术方案,根据所获取的目标程序的代码热力图,将使用次数最高的目标代码块,通过内存管理单元MMU将其由DDR物理地址下迁移到读取速率较快的SRAM物理地址,从而显著的提高目标程序的访问速度,以及运行效率。
附图说明
[0017]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0018]图1是本专利技术实施例一提供的一种代码程序的迁移方法的流程图;
[0019]图2是本专利技术实施例二提供的一种代码程序的迁移方法的流程图;
[0020]图3是本专利技术实施例三提供的一种代码程序的迁移装置的结构示意图;
[0021]图4是本专利技术实施例四提供的计算机设备的结构示意图。
具体实施方式
[0022]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0023]需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0024]实施例一
[0025]图1为本专利技术实施例一提供的一种代码程序迁移方法的流程图,本实施例可适用于对代码程序进行迁移的场景,该方法可以由本专利技术实施例中的代码程序迁移装置来执行,该装置可以采用硬件和/或软件的形式实现。如图1所示,该方法包括:
[0026]步骤S101,创建第一地址映射表,并将第一地址映射表应用于内存管理单元MMU进行地址映射。
[0027]可选的,创建第一地址映射表,包括:获取预先创建的原始地址映射表,其中,原始地址映射表中包括存储目标程序各代码块的原始DDR物理地址与原始虚拟地址的第一映射关系;从SRAM中确定出SRAM物理地址,并获取保留的第一虚拟地址;建立SRAM物理地址与第一虚拟地址的第二映射关系,并根据第二映射关系对原始地址映射表进行更新,以获取第一地址映射表。
[0028]具体的说,本实施方式中的目标程序由于占用存储空间非常大,因此在初始时刻是全部存储在DDR中的,而处理机具体是参照预先创建的原始地址映射表对存储在DDR中的目标程序进行访问的,并将原始地址映射表中原始DDR物理地址与原始虚拟地址的对应关系称为第一映射关系,如下表1所示,为预先创建的原始地址映射表的示例:
[0029]表1
[0030]代码块编号虚拟地址空间物理地址空间1虚拟地址ADDR物理地址X2虚拟地址BDDR物理地址Y....
ꢀꢀ
n虚拟地址MDDR物理地址N
[0031]其中,如果基于表1对目标程序中的指定代码块进行访问时,例如代码块1,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码程序迁移方法,其特征在于,包括:创建第一地址映射表,并将所述第一地址映射表应用于内存管理单元MMU进行地址映射,其中,所述第一地址映射表中包括存储目标程序各代码块的原始双倍速率同步动态随机存储器DDR物理地址与原始虚拟地址的第一映射关系,以及保留的第一虚拟地址与静态随机存取存储器SRAM物理地址的第二映射关系;定时获取针对所述目标程序的代码热力图,并根据所述代码热力图确定使用次数最高的目标代码块,其中,所述代码热力图中包括各代码块使用次数;基于所述MMU的地址映射结果将使用次数最高的所述目标代码块迁移到所述SRAM物理地址中存储。2.根据权利要求1所述的方法,其特征在于,所述基于所述MMU的地址映射结果将使用次数最高的所述目标代码块迁移到所述SRAM物理地址中存储之后,还包括:将所述第一地址映射表中所述目标代码块所对应的第二虚拟地址与原始DDR物理地址的第一映射关系进行解除;将所述SRAM物理地址映射到所述目标代码块所对应的第二虚拟地址,以对所述第一地址映射表进行更新。3.根据权利要求1所述的方法,其特征在于,所述创建第一地址映射表,包括:获取预先创建的原始地址映射表,其中,所述原始地址映射表中包括存储目标程序各代码块的原始DDR物理地址与原始虚拟地址的第一映射关系;从SRAM中确定出所述SRAM物理地址,并获取保留的所述第一虚拟地址;建立所述SRAM物理地址与所述第一虚拟地址的第二映射关系,并根据所述第二映射关系对所述原始地址映射表进行更新,以获取所述第一地址映射表。4.根据权利要求1所述的方法,其特征在于,所述定时获取针对所述目标程序的代码热力图,包括:获取指定时间范围内各统计时刻最高优先级就绪线程的上下文,其中,所述最高优先级就绪线程的上下文中包含程序计数寄存器PC的数值;根据所述PC的数值确定各统计时刻所述目标程序中所使用的代码块的编号,其中,所述目标程序中包含所述最高优先级就绪线程;根据所述代码块的编号对保存有各代码块使用次数的代码数组进行更新,以获取所述目标程序中的代码热力图。5.根据权利要求1所述的方法,其特征在于,所述基于所述MMU的地址映射结果将使用次数最高的所述目标代码块迁移到所述SRAM物理地...

【专利技术属性】
技术研发人员:张一弘程茂毛玉泽栾学广岳泽宇
申请(专利权)人:科东广州软件科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1