[发明专利]即时编译引擎自适应函数加载方法有效
| 申请号: | 201910903889.7 | 申请日: | 2019-09-24 |
| 公开(公告)号: | CN112558976B | 公开(公告)日: | 2022-07-12 |
| 发明(设计)人: | 沈莉;周文浩;王飞;吴伟;武文浩 | 申请(专利权)人: | 无锡江南计算技术研究所 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/445 |
| 代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
| 地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 即时 编译 引擎 自适应 函数 加载 方法 | ||
本发明公开一种即时编译引擎自适应函数加载方法,面向异构众核平台,包括以下步骤:S1、对于一个函数符号,执行引擎检查其是否为外部函数;S2、对于一个S1中标记的外部函数符号,执行引擎检查其是否为从核函数,并使用对应的动态链接库加载函数加载包含该外部函数符号的动态链接库;S3、从步骤S2中加载的动态链接库中获取外部函数入口地址;S4、使用步骤S3中获取的外部函数入口地址,对用户程序代码段进行GOT表覆写和重定位回填。本发明实现了异构众核程序对核组空间的有效利用,完善了面向异构众核平台的即时编译引擎的功能。
技术领域
本发明涉及一种即时编译引擎自适应函数加载方法,属于编译优化技术领域。
背景技术
即时编译(Just-In-Time)是一种动态编译中间代码的方式,根据需要,在程序执行时将代码翻译成机器码并且执行。Java语言,.net平台,LuaJIT等新兴语言的编译器均广泛使用即时编译技术。即时编译结合了静态编译和解释执行的优势,能够产生高效的机器码,并且具有足够的灵活性。即时编译调用内部函数和外部函数的方式不同。对于内部函数,执行引擎直接从程序代码段获取函数入口地址。对于外部函数,执行引擎从所有加载到内存的动态库中查找对应的符号。
LLVM(Lower Level Virtual Machine)是当今非常流行的一款编译器基础框架,在设计之初就考虑了即时编译的功能,其采用自创的代码优化机制,并且有着清晰的架构层次和详细的开发文档,结合了静态编译和解释执行的优势,正逐渐被越来越多的科研机构和商业项目所使用。
国产异构众核平台操作系统将可执行内存空间划分为两部分:容量受限的核组空间和容量不受限的系统空间。核组空间既可以加载主核函数,也可以加载从核函数,而系统空间只能够加载和执行主核函数。这种空间划分使得国产异构众核平台的主从核可执行地址空间具有非一致属性,从核函数需要加载到特定的核组空间才能正常运行,但是核组空间容量受限,无法满足所有用户程序外部函数的加载需求,导致国产众核处理器的即时编译引擎难以对内存空间进行有效利用。
发明内容
本发明的目的是提供一种即时编译引擎自适应函数加载方法,该即时编译引擎自适应函数加载方法实现了异构众核程序对核组空间的有效利用,完善了面向异构众核平台的即时编译引擎的功能。
为达到上述目的,本发明采用的技术方案是:一种即时编译引擎自适应函数加载方法,面向异构众核平台,包括以下步骤:
S1、对于一个函数符号,执行引擎检查其是否为外部函数,具体如下:
S11、对于一个函数符号,执行引擎在用户程序代码段查找该函数符号的定义,若找到,则标记该用户程序代码段中的函数符号为内部函数符号,执行引擎从用户程序代码段获取该内部函数入口地址,并跳转到S4;
S12、对于一个函数符号,若在用户程序代码段未找到该函数符号的定义,则标记该函数符号为外部函数符号,执行S2;
S2、对于一个S12中标记的外部函数符号,执行引擎检查其是否为从核函数,并使用对应的动态链接库加载函数加载包含该外部函数符号的动态链接库,具体如下:
S21、从操作系统环境变量指定的动态链接库查找路径中查找包含该外部函数符号的动态链接库;
S22、判断包含该外部函数符号的动态链接库中是否包含有从核函数;
S23、如果包含从核函数,则该动态链接库为混合链接,使用混合链接的动态链接库加载函数dlopen_hybrid加载该动态链接库;
S24、如果不包含从核函数,则该动态链接库为纯主核链接,使用主核链接的动态链接库加载函数dlopen加载该动态链接库;
S25、跳转到S3;
S3、从步骤S2中加载的动态链接库中获取外部函数入口地址,具体如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910903889.7/2.html,转载请声明来源钻瓜专利网。





