[发明专利]虚拟机中数组处理方法、装置、电子设备及可读存储介质在审
申请号: | 202210818052.4 | 申请日: | 2022-07-12 |
公开(公告)号: | CN115309499A | 公开(公告)日: | 2022-11-08 |
发明(设计)人: | 孙国云;敖琪 | 申请(专利权)人: | 龙芯中科技术股份有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/30 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 庞静 |
地址: | 100095 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟机 数组 处理 方法 装置 电子设备 可读 存储 介质 | ||
本发明实施例提供了一种虚拟机中数组处理方法、装置、电子设备及可读存储介质,方法通过响应待处理元素对应的第一访存指令,基于第一访存指令获取待处理数组的边界地址;将边界地址写入指定的范围寄存器,基于第一访存指令中携带的指令参数以及范围寄存器的相关信息,重组形成第二访存指令;向宿主机发送第二访存指令;宿主机基于第二访存指令对待处理元素进行数组越界检测,并在检测结果为所述待处理元素未越界的情况下,基于第二访存指令对待处理元素进行加载或存储。直接利用带有范围寄存器信息的访存指令实现访存操作,避免可能存在的指令跳转,提高宿主机的程序性能。
技术领域
本发明属于网络技术领域,特别是涉及一种虚拟机中数组处理方法、装置、电子设备及可读存储介质。
背景技术
在网络技术领域中,通常通过编译器或解释器将虚拟机指令翻译成宿主机本地的CPU指令,以使硬件直接执行翻译后的本地方法。
当虚拟机指令指示从数组中加载一个数组元素或者将一个值作为一个数组元素存储到数组中时,称该指令为访存指令。而当需要执行访存指令时,通常会对翻译后的访存指令插入一组检测指令,用于检测该数组元素所在内存地址或目标存储地址是否超过了该数组的有效边界,也称数组越界检查。
然而现有技术中,所采用的检测指令往往包含多条转移指令、比较指令和分支指令,在访存指令实际执行过程中,由于存在多条转移指令、比较指令和分支指令,因此,会降低宿主机的程序性能。
发明内容
本发明提供一种虚拟机中数组处理方法、装置、电子设备及可读存储介质,以便解决在访存指令实际执行过程中,由于多条转移指令、比较指令和分支指令的存在,降低宿主机的程序性能的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明提供一种虚拟机中数组处理方法,所述方法包括:
响应待处理元素对应的第一访存指令,基于所述第一访存指令获取所述第一访存指令对应的待处理数组的边界地址;
将所述边界地址写入指定的范围寄存器,以及,基于所述第一访存指令中携带的指令参数以及所述范围寄存器的相关信息,重组形成第二访存指令;
向宿主机发送所述第二访存指令;
所述宿主机基于所述第二访存指令对所述待处理元素进行数组越界检测,并在检测结果为所述待处理元素未越界的情况下,基于所述第二访存指令对所述待处理元素进行加载或存储。
第二方面,本发明提供一种虚拟机中数组处理装置,所述装置包括:
第一获取模块,用于响应待处理元素对应的第一访存指令,基于所述第一访存指令获取所述第一访存指令对应的待处理数组的边界地址;
重组模块,用于将所述边界地址写入指定的范围寄存器,以及,基于所述第一访存指令中携带的指令参数以及所述范围寄存器的相关信息,重组形成第二访存指令;
发送模块,用于向宿主机发送所述第二访存指令;
检测模块,用于使所述宿主机基于所述第二访存指令对所述待处理元素进行数组越界检测,并在检测结果为所述待处理元素未越界的情况下,基于所述第二访存指令对所述待处理元素进行加载或存储。
第三方面,本发明提供一种电子设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述虚拟机中数组处理方法。
第四方面,本发明提供一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述虚拟机中数组处理方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术股份有限公司,未经龙芯中科技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210818052.4/2.html,转载请声明来源钻瓜专利网。