基于复合指令的指令及其操作数的优化方法及装置制造方法及图纸

技术编号:38259751 阅读:17 留言:0更新日期:2023-07-27 10:20
本申请涉及计算机技术领域,公开一种基于复合指令的指令及其操作数的优化方法及装置,其中,所述优化方法包括:从原生指令流中,获取数据操作指令以及所述数据操作指令对应的匹配指令;根据数据操作指令和匹配指令形成的指令组合,识别出所述指令组合对应的操作模型;根据所述操作模型对应的复合指令,对所述原生指令流中的原生指令码及其操作数进行优化。本申请通过对原生指令流中的原生指令码及其操作数进行优化,转换成本申请的复合指令,减少了WebAssembly模块中的指令条数、指令占用的存储空间、操作数个数以及运行时使用的操作数栈的深度,使得WebAssembly模块更加适合在资源受限设备上运行。源受限设备上运行。源受限设备上运行。

【技术实现步骤摘要】
基于复合指令的指令及其操作数的优化方法及装置


[0001]本申请涉及计算机
,例如涉及一种基于复合指令的指令及其操作数的优化方法及装置。

技术介绍

[0002]目前,资源受限设备(Resource Constrained Device)通常是指电量供应有限,计算能力有限,以及存储容量有限的电子设备,例如智能卡(Smart Card)和安全单元(Secure Element)。在这些设备上通常运行有片内操作系统(Chip Operating System,COS),COS可以通过输入/输出接口和外部接口设备进行通信,接收外部接口设备的命令,在其内部完成命令处理,把命令响应发送给外部接口设备,为接口设备提供私密信息的安全存储、重要程序的安全执行、用户身份鉴别等安全访问、控制功能。
[0003]同时,WebAssembly是一种可以在浏览器中可执行的字节码,也是一种以安全有效的方式运行可移植程序的技术,其主要解决浏览器性能的问题。
[0004]在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:由WebAssembly模块的原生指令码条数较多、指令操作数繁多且复杂,导致其原生指令流占用的存储空间较大,且运行时消耗随机存取存储器(Random Access Memory,RAM)的资源较多,不适合应用于资源受限设备。
[0005]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路
r/>[0006]为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
[0007]本公开实施例提供了一种基于复合指令的指令及其操作数的优化方法及装置、计算设备及存储介质,减少了指令占用的存储空间,提高了指令的运行速度,并使得WebAssembly模块更加适合在资源受限设备上运行。
[0008]在一些实施例中,所述基于复合指令的指令及其操作数的优化方法,包括:从原生指令流中,获取数据操作指令以及所述数据操作指令对应的匹配指令;根据数据操作指令和匹配指令形成的指令组合,识别出所述指令组合对应的操作模型;根据所述操作模型对应的复合指令,对所述原生指令流中的原生指令码及其操作数进行优化。
[0009]在一些实施例中,所述基于复合指令的指令及其操作数的优化装置,安装于资源受限设备的内部,或者,位于资源受限设备的外部,包括:指令匹配模块,被配置为从原生指令流中,获取数据操作指令以及所述数据操作
指令对应的匹配指令;模型识别模块,被配置为根据数据操作指令和匹配指令形成的指令组合,识别出所述指令组合对应的操作模型;指令优化模块,被配置为根据所述操作模型对应的复合指令,对所述原生指令流中的原生指令码及其操作数进行优化。
[0010]在一些实施例中,所述计算设备,包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行原生指令流中的原生指令时,执行如本申请所述的基于复合指令的指令及其操作数的优化方法,或者,所述处理器被配置为在运行所述程序指令时,执行如本申请所述的优化装置输出的根据复合指令优化后的指令流。
[0011]在一些实施例中,所述存储介质,存储有程序指令,所述程序指令在运行时,执行如本申请所述的用于指令码优化的方法。
[0012]本公开实施例提供的基于复合指令的指令及其操作数的优化方法及装置、计算设备及存储介质,可以实现以下技术效果:本申请根据原生指令码及其指令操作各类变量的特性,获取数据操作指令以及所述数据操作指令对应的匹配指令,进而根据数据操作指令和匹配指令形成的指令组合,识别出指令组合对应的操作模型,通过操作模型对原生指令流中的原生指令码及其操作数进行优化,转换成本申请的复合指令,减少了WebAssembly模块中的指令条数、指令占用的存储空间、操作数个数以及运行时使用的操作数栈的深度,从而提高了指令的运行速度,使得WebAssembly模块更加适合在资源受限设备上运行。
[0013]此外,本申请的指令码优化过程可以由位于资源受限设备外部的转换器完成,转换器通过将优化后的指令直接提供给资源受限设备执行,从而减少了计算机在执行指令时的工作量,加快了执行速度。
[0014]以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
[0015]一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:图1是本公开实施例提供的一个栈式虚拟机的结构示意图;图2是本公开实施例提供的一个用于指令码优化的方法的示意图;图3是本公开实施例提供的另一个用于指令码优化的方法的示意图;图4是本公开实施例的一个函数信息表的示意图;图5是本公开实施例提供的一个用于指令码优化的方法的示意图;图6是本公开实施例提供的一个数据操作指令的配对指令查找流程的示意图;图7是本公开实施例提供的另一个用于指令码优化的方法的示意图;图8是本公开实施例提供的另一个用于指令码优化的方法的示意图;图9是本公开实施例提供的一个用于指令码优化的装置的示意图图10是本公开实施例提供的一个资源受限设备的运行过程示意图;图11是本公开实施例提供的一个计算设备的示意图。
具体实施方式
[0016]为了能够更加详尽地了解本公开实施例的特点与
技术实现思路
,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
[0017]本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
[0018]除非另有说明,术语“多个”表示两个或两个以上。
[0019]以下对本公开实施例用到的技术术语进行解释:指令(Instruction):指的是单个指示计算机(包括物理机和虚拟机)硬件执行某种运算、处理功能的命令。由操作码和可选的若干操作数组成。
[0020]指令集(Instruction Set):一台计算机(包括物理机和虚拟机)上全部指令的集合,就是这台计算机的指令系统。指令系统也称指令集,是这台计算机全部功能的体现。
[0021]指令码(Operation Code):也称操作码,指计算机程序中所规定的要执行操作的那一部分指令或字段(通常用代码表示),其实就是指令序列本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于复合指令的指令及其操作数的优化方法,其特征在于,包括:从原生指令流中,获取数据操作指令以及所述数据操作指令对应的匹配指令;根据数据操作指令和匹配指令形成的指令组合,识别出所述指令组合对应的操作模型;根据所述操作模型对应的复合指令,对所述原生指令流中的原生指令码及其操作数进行优化。2.根据权利要求1所述的优化方法,其特征在于,所述从原生指令流中,获取数据操作指令以及所述数据操作指令对应的匹配指令,包括:遍历包含原生指令流的函数信息表,查找数据操作指令;在函数信息表对应的指令流中,根据数据操作指令所需的操作数个数及操作数栈的深度,获取所述数据操作指令对应的匹配指令。3.根据权利要求2所述的优化方法,其特征在于,所述数据操作指令,包括i32.store[type]、i32.load[type]和i32.operate中的一个或多个类型。4.根据权利要求2所述的优化方法,其特征在于,所述根据数据操作指令所需的操作数个数及操作数栈的深度,获取数据操作指令对应的匹配指令,包括:在函数信息表对应的指令流中,从当前数据操作指令开始,向前依次查找每条指令的压栈个数和出栈个数;根据指令的压栈个数和出栈个数,计算每条指令对应的操作数栈上的操作数个数;在当前数据操作指令所需操作数个数等于操作数栈上的操作数个数时,将把第一个操作数压入栈中的指令,作为所述当前数据操作指令对应的匹配指令。5.根据权利要求2所述的优化方法,其特征在于,所述根据数据操作指令和匹配指令形成的指令组合,识别出所述指令组合对应的操作模型,包括:根据数据操作指令以及对应的匹配指令形成的指令组合,确定出指令组合对应的指令操作类型;从多个单一类的操作模型中,识别出具有相同指令操作类型的单一类的操作模型。6.根据权利要求5所述的优化方法,其特征在于,还包括:在满足预设条件的情况下,将识别出的两个单一类的操作模型,合并为复合类的操作模型;其中,所述预设条件包括两个单一类的操作模型之间存在内嵌关系,且两个单一类的操作模型的局部变量索引均相同。7.根据权利要求6所述的优化方法,其...

【专利技术属性】
技术研发人员:路倩张章刘静亚邹重人
申请(专利权)人:紫光同芯微电子有限公司
类型:发明
国别省市:

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

1