[发明专利]即时编译方法及设备在审
申请号: | 202111371827.X | 申请日: | 2021-11-18 |
公开(公告)号: | CN114047908A | 公开(公告)日: | 2022-02-15 |
发明(设计)人: | 乔鹏程 | 申请(专利权)人: | 龙芯中科(合肥)技术有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06F9/455 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 屈蓓;黄健 |
地址: | 230088 安徽省合肥市高新*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 即时 编译 方法 设备 | ||
本发明提供一种即时编译方法及设备。该方法包括:获取多条指令信息;生成并存储至少一条第一指令信息的第一编码指令,该第一指令信息中的编码长度固定;若存在至少一条第二指令信息,则将第二指令信息添加到跳转列表中,并对跳转列表进行编译链接,以确定第二指令信息的编码长度,第二指令信息的编码长度不固定;在顺序执行多条指令信息的过程中,当待执行的指令信息为第一指令信息时,将第一指令信息的第一编码指令发射到内存空间中执行;当待执行的指令信息为第二指令信息时,按照第二指令信息的编码长度生成第二编码指令,并发射到内存空间中执行。本发明实施例可以降低执行指令的时延。
技术领域
本发明涉及计算机技术领域,尤其涉及一种即时编译方法及设备。
背景技术
coreCLR(core common language running,核心公共语言运行时)是一种开源框架,用于为虚拟机的运行过程提供组件,这种通过coreCLR提供的组件运行的虚拟机可以称为coreCLR虚拟机。coreCLR可以运行于各种操作系统的虚拟机上,例如,windows的虚拟机、linux的虚拟机、mac的虚拟机等。coreCLR虚拟机在接收到指令信息时,通过JIT(Just InTime,即时)编译器对指令信息进行二进制编码得到编码指令,在编码之后立即执行该编码指令。
从而,如何降低执行指令的时延成为亟待解决的问题。
发明内容
本发明提供一种即时编译方法及设备,用以降低执行指令的时延。
第一方面,本发明提供一种即时编译方法,应用于coreCLR虚拟机,所述方法包括:
编译链接前获取多条指令信息;
生成并存储所述多条指令信息中的至少一条第一指令信息的第一编码指令,所述第一指令信息的编码长度固定;
若所述多条指令信息中存在至少一条第二指令信息,则将所述第二指令信息添加到跳转列表中,并对所述跳转列表进行编译链接,以确定所述第二指令信息的编码长度,所述第二指令信息的编码长度不固定;
在顺序执行所述多条指令信息的过程中,当待执行的指令信息为所述第一指令信息时,将所述第一指令信息的第一编码指令发射到对应的内存空间中执行;若所述待执行的指令信息为所述第二指令信息时,按照所述第二指令信息的编码长度生成第二编码指令,并将所述第二编码指令发射到对应的内存空间中执行。
可选地,所述第一指令信息中不包括目标地址不确定的分支跳转指令,所述第二指令信息中包括目标地址不确定的分支跳转指令。
可选地,所述方法还包括:
在进行所述编译链接之前,根据所述第一编码指令的长度申请对应的内存空间;
在生成所述第二编码指令之后,根据所述第二编码指令的长度申请对应的内存空间。
可选地,所述第一指令信息包括:存在函数调用的第三指令信息、存在长度大于或等于预设长度阈值的立即数的第四指令信息、所述第一指令信息中除所述第三指令信息和所述第四指令信息之外的第五指令信息,所述方法还包括:
从至少一个预设结构体中确定每条所述指令信息对应的结构体,所述至少一个预设结构体包括以下至少一种:用于存储所述第五指令信息的编码指令的第一结构体、用于存储所述第二指令信息的第二结构体、用于存储所述第三指令信息的编码指令的第三结构体、用于存储所述第四指令信息的编码指令的第四结构体,所述第二结构体、所述第三结构体和所述第四结构体继承所述第一结构体;
将所述多条指令信息分别以对应的结构体存储至发射列表中;
所述顺序执行所述多条指令信息,包括:
按照所述发射列表中的顺序执行所述多条指令信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科(合肥)技术有限公司,未经龙芯中科(合肥)技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111371827.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高强度储气筒
- 下一篇:用于连续轮廓的目标对象检测方法、设备及存储介质