[发明专利]解释执行字节码指令流的方法及装置有效
申请号: | 201910818266.X | 申请日: | 2019-08-30 |
公开(公告)号: | CN110704108B | 公开(公告)日: | 2020-08-14 |
发明(设计)人: | 刘晓建 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/32 |
代理公司: | 北京亿腾知识产权代理事务所(普通合伙) 11309 | 代理人: | 张静娟;周良玉 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 解释 执行 字节 指令 方法 装置 | ||
本说明书实施例提供一种解释执行字节码指令流的方法和装置,通过虚拟机的解释器实现,其中利用第一寄存器存储下一条指令的模拟函数地址,利用第二寄存器存储当前指令的模拟函数地址。在方法中,首先读取第一寄存器中存储的第一值;当第一值为有效值时,将第一值存储到第二寄存器中,作为字节码指令流中当前指令对应的当前模拟函数地址。然后,从存储器获取当前指令的下一条指令对应的下一模拟函数地址,并将该下一模拟函数地址存储在第一寄存器中,并且,根据从第二寄存器中读取的当前模拟函数地址,执行当前指令。
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及解释执行字节码指令流的方法和装置。
背景技术
虚拟机(Virtual Machine)是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。由于虚拟机可以隔离底层硬件平台以及操作系统对上层应用的影响,因此非常有利于上层应用的开发。上层应用开发过程中无需关注底层平台的细节,只需要关注具体的业务逻辑。开发完成后,由虚拟机运行上层应用,负责将应用的代码转换为适于底层平台执行的代码。具体地,在许多场景中,上层应用由开发人员使用高级语言编写开发,之后通过编译器编译为字节码(bytecode)。字节码是一种包含执行程序,由一序列op代码(操作码)/数据对组成的二进制文件,是一种中间码。然后,虚拟机中的解释器对字节码代表的指令流进行解释和执行。
例如,在支持智能合约的区块链应用场景中,可以在区块链网络的每个节点中部署虚拟机。例如,在以太坊中,每个节点中部署有以太坊虚拟机EVM。用户可以用高级语言编写智能合约,然后经由编译器编译为字节码之后,将该字节码包含在创建智能合约的交易中,发布到区块链网络中,也就是部署到区块链网络的各个节点中。在需要执行智能合约时,由各个节点中的虚拟机EVM对该字节码进行解释执行。
在包括但不限于区块链的各种应用场景中,虚拟机解释器对字节码的解释执行速度对于整个系统的性能都至关重要。因此,希望能有改进的方案,进一步提高字节码指令流的执行效率。
发明内容
本说明书一个或多个实施例描述了一种解释执行字节码指令流的方法和装置,其中在执行当前指令时预取下一条指令的函数地址,并将其存储在寄存器中,从而加快字节码指令流的执行效率。
根据第一方面,提供了一种解释执行字节码指令流的方法,通过虚拟机解释器执行,包括:
读取第一寄存器中存储的第一值;
当所述第一值为有效值时,将所述第一值存储到第二寄存器中,所述第二寄存器用于存储所述字节码指令流中当前指令对应的当前模拟函数地址;
从存储器获取所述当前指令的下一条指令对应的下一模拟函数地址,并将该下一模拟函数地址存储在所述第一寄存器中,并且,根据从所述第二寄存器中读取的所述当前模拟函数地址,执行所述当前指令。
根据一种实施方式,上述方法还包括,当所述第一值不是有效值时,从存储器获取所述当前指令对应的当前模拟函数地址,并将其存储到所述第二寄存器中。
在一个实施例中,通过以下方式获取下一模拟函数地址:
确定下一条指令对应的操作码;
查询所述存储器中存储的映射表,从而得到所述操作码对应的模拟函数地址。
进一步的,在一个实施例中,通过以下方式确定下一条指令对应的操作码:将程序计数器的PC值累加预定字节长度,得到下一条指令的位置编号;根据该位置编号,查询所述存储器中存储的指令顺序表,得到下一条指令对应的操作码。
在另一实施例中,通过以下方式确定下一条指令对应的操作码:确定所述当前指令的指令长度;将程序计数器的PC值累加所述指令长度,得到下一条指令的位置编号;根据该位置编号,查询所述存储器中存储的指令顺序表,得到下一条指令对应的操作码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910818266.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:预取器、预取器的运作方法及处理器
- 下一篇:一种椭圆曲线密码协处理器