[发明专利]一种指令执行方法及虚拟机有效
申请号: | 201610139205.7 | 申请日: | 2016-03-11 |
公开(公告)号: | CN107179935B | 公开(公告)日: | 2021-01-29 |
发明(设计)人: | 佟强;刘宗超;尚博 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F16/21 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 指令 执行 方法 虚拟机 | ||
本发明公开了一种指令执行方法及虚拟机,能够减少不必要的指令执行次数,提高执行效率,本发明实施例方法包括:确定第一指令对应的第一关联寄存器,所述第一指令为虚拟机中循环体的指令,所述第一关联寄存器中存储有第一关联信息,所述第一关联信息包含位置变化信息、数值变化信息中至少一种;对所述第一指令以及所述第一关联信息进行绑定;当所述第一指令将被执行时,判断所述第一关联信息是否发生变化,若是,则执行所述第一指令。
技术领域
本发明涉及计算机领域,尤其涉及一种指令执行方法及虚拟机。
背景技术
基于虚拟机的执行引擎是数据库执行引擎的一种实现方法,数据库首先解析结构化查询语言(英文全称:Structured Query Language,英文缩写:SQL)语句,生成语法树,根据语法树生成虚拟机字节码bytecode,数据库执行引擎执行bytecode来完成数据查询。从语法树生成bytecode一般采用通用的编译技术,将数据库的投影、选择、连接、排序、分组以及去重等操作转化为操作码、顺序执行、比较、条件跳转、循环等指令。数据库虚拟机融合数据库技术和编译技术,很多编译器优化技术需要结合数据库自身特点才能实现。
现有的一种编译器优化技术的思想是将循环体内没有变化的指令调整到循环体外。
但是,针对循环体外的指令,当指令将被执行时,指令每次都会被执行,但是可能指令每次执行的输出结果是不变的,由此指令实质上不需要每次都执行,因此会增加不必要的指令执行次数,执行效率不高。
发明内容
本发明实施例提供了一种指令执行方法及虚拟机,能够减少不必要的指令执行次数,提高执行效率。
有鉴于此,本发明第一方面提供了一种指令执行方法,包括:
虚拟机中循环体的第一指令在执行之前,需要对影响第一指令的输出结果的第一关联信息进行绑定,第一关联信息存储在第一关联寄存器中,第一关联信息包含位置变化信息、数值变化信息中至少一种;当第一指令将被执行时,判断第一关联信息是否发生变化,若是,则执行第一指令。
其中,第一关联信息记录着第一关联寄存器的数值和位置的变化。
其有益效果是:第一指令需要与位置变化信息和/或数值变化信息进行绑定,在第一指令每次执行之前,需要先判断位置和/或数值是否发生变化,只有确定位置和数值至少一个发生变化,第一指令才会执行,相对于现有技术中第一指令可能每次都会执行的方案,本发明中第一指令的每次执行基于指令通知机制,因此本发明能够减少不必要的指令执行次数,提高执行效率。
结合本发明第一方面,本发明第一方面的第一实施方式包括:
由于第一关联信息包含位置变化信息、数值变化信息中至少一种,所以第一关联信息可以分为三种,若第一关联信息包含位置变化信息,则可以通过位置变化信息判断第一关联寄存器的位置是否发生变化,若是,则确定第一关联信息发生变化;若第一关联信息包含数值变化信息,则根据数值变化信息判断第一关联寄存器的数值是否发生变化,若是,则确定第一关联信息发生变化;若第一关联信息包含位置变化信息和数值变化信息,则根据位置变化信息和数值变化信息判断第一关联寄存器的位置和数值中的至少一个是否发生变化,若是,则确定第一关联信息发生变化。
其有益效果是:针对如何判断第一关联信息是否发生变化进行了相应的说明,完善了本发明的技术方案。
结合本发明第一方面,本发明第一方面的第二实施方式包括:
在执行第一指令后,当第二指令将被执行时,若检测到第一指令的输出结果改变了第二关联寄存器的位置和/或数值,且检测到第二指令与第二关联信息绑定,则执行第二指令。
结合本发明第一方面的第二实施方式,本发明第一方面的第三实施方式包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610139205.7/2.html,转载请声明来源钻瓜专利网。