CN103970507B - 64位虚拟机处理访存指令的方法及装置 - Google Patents

64位虚拟机处理访存指令的方法及装置 Download PDF

Info

Publication number
CN103970507B
CN103970507B CN201410216828.0A CN201410216828A CN103970507B CN 103970507 B CN103970507 B CN 103970507B CN 201410216828 A CN201410216828 A CN 201410216828A CN 103970507 B CN103970507 B CN 103970507B
Authority
CN
China
Prior art keywords
address
instruction
depositor
access
assembly instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410216828.0A
Other languages
English (en)
Other versions
CN103970507A (zh
Inventor
敖琪
靳国杰
高翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN201410216828.0A priority Critical patent/CN103970507B/zh
Publication of CN103970507A publication Critical patent/CN103970507A/zh
Application granted granted Critical
Publication of CN103970507B publication Critical patent/CN103970507B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

本发明实施例提供一种64位虚拟机处理访存指令的方法及装置,涉及计算机技术领域,解决了整个程序性能损失的问题。该方法包括,获取访存指令,根据访存指令,确定访存指令所指示访存的目标地址的低位地址,根据目标地址的低位地址,生成第一汇编指令和第二汇编指令,以使通过第一汇编指令和第二汇编指令低位地址加载到第一寄存器;根据访存指令,生成第三汇编指令,第三汇编指令用于访存第一寄存器中存储的低位地址与第二寄存器中存储的高位地址,并叠加得到的目标地址,高位地址为程序的全局高位地址。用于64位虚拟机中的即时编译。

Description

64位虚拟机处理访存指令的方法及装置
技术领域
本发明实施例涉及计算机技术,尤其涉及一种64位虚拟机处理访存指令的方法及装置。
背景技术
现有技术中,在64位Java虚拟机处理访存指令时,首先确定访存指令指示访存的目标地址,并对该目标地址进行分析,然后根据该目标地址的特点编译高效的指令序列,因此,针对不同的地址值生成的访存指令序列的长度不同,长度较高时甚至7条指令才能完成一次访存操作。
上述这种方式在地址分析时相对比较耗时,对于即时编译,地址分析的过程会是一个频发的操作,会给编译进程带来性能影响,此外,对于Java虚拟机这种动态生成执行代码的程序,在生成访存代码时,并不一定能够确定目标地址的值,在生成代码后可能会对该地址进行修改,由于必须知道目标地址的值之后才能生成相应的代码,并且由于访存指令序列长度的不定,会增加地址重填过程的复杂度,给整个程序带来性能损失。
发明内容
本发明提供一种64位虚拟机处理访存指令的方法及装置,以通过固定较少的汇编指令实现访存的目的。
第一个方面,本发明提供一种64位虚拟机处理访存指令的方法,包括:
获取访存指令;根据所述访存指令,确定所述访存指令所指示访存的目标地址的低位地址;根据所述目标地址的低位地址,生成第一汇编指令和第二汇编指令,以使通过所述第一汇编指令和所述第二汇编指令将所述低位地址加载到第一寄存器;根据所述访存指令,生成第三汇编指令,所述第三汇编指令用于访存所述第一寄存器中存储的所述低位地址与第二寄存器中存储的高位地址,并叠加得到的目标地址,所述高位地址为程序的全局高位地址。
第二个方面,本发明提供一种64位虚拟机处理访存指令的装置,包括:
获取模块,用于获取访存指令;
确定模块,用于根据所述获取模块获取的所述访存指令,确定所述访存指令所指示访存的目标地址的低位地址;
第一生成模块,用于根据所述确定模块确定的所述目标地址的低位地址,生成第一汇编指令和第二汇编指令,以使通过所述第一汇编指令和所述第二汇编指令将所述低位地址加载到第一寄存器;
第二生成模块,用于根据所述获取模块获取的所述访存指令,生成第三汇编指令,所述第三汇编指令用于访存所述第一寄存器中存储的所述低位地址与第二寄存器中存储的高位地址,并叠加得到的目标地址,所述高位地址为程序的全局高位地址。
本发明提供的访存指令处理方法及装置,通过生成固定的三条汇编指令实现访存操作的执行,不需要对访存指令的地址进行分析也不会由于编译访存指令时的代码段出现指令膨胀的情况,解决了现有技术中地址分析时相对比较耗时,对于即时编译,地址分析的过程会是一个频发的操作,会给编译进程带来性能影响的问题,还解决了现有技术中由于访存指令序列长度的不定,会增加地址重填过程的复杂度,给整个程序带来性能损失的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明64位虚拟机处理访存指令的方法实施例一的流程示意图;
图2为本发明64位虚拟机处理访存指令的方法实施例二的流程示意图;
图3为本发明64位虚拟机处理访存指令的装置实施例一的结构示意图;
图4为本发明64位虚拟机处理访存指令的装置实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的64位虚拟机处理访存指令的方法具体可以应用于64为虚拟机接收到访存指令并进行处理时,该64位虚拟机处理访存指令的方法具体可以通过64位虚拟机处理访存指令的装置或即时编译器来执行,该64位虚拟机处理访存指令的装置可以集成在虚拟机中,其中,该64位虚拟机处理访存指令的装置可以采用软件和/或硬件的方式来实现。以下对本实施例提供的64位虚拟机处理访存指令的方法及装置进行说明。
图1为本发明64位虚拟机处理访存指令的方法实施例一的流程示意图。本实施例的执行的主体可以是即时编译器。如图1所示,本实施例提供的64位虚拟机处理访存指令的方法具体包括如下步骤:
步骤101、获取访存指令。
本实施例的适用场景为,64位虚拟机中即时编译器处理程序中的访存指令,其中,访存指令为即时编译器编译执行到中间代码时的访存指令。
在本实施例中,访存指令包括访问内存的目标地址,例如,该访存指令为读指令,其中,该读指令用以读取目标地址存储的数据,或者,该访存指令为写指令,其中,写指令用以将写指令指示的数据写入目标地址。
步骤102、根据访存指令,确定访存指令所指示访存的目标地址的低位地址。
在本实施例中,将目标地址分为高位地址和低位地址,其中,该低位地址为目标地址的低位部分的地址,高位地址为目标地址除低位地址的地址,例如,64位虚拟机中,高位地址为前32位,即63-32,低位地址为32位,即31-0。
值得说明的是,本发明实施例可以用于的64位JAVA虚拟机,64位JAVA虚拟机中的高位地址为全局统一的,即在同一个JAVA程序中,其访存的所有目标地址的高位地址均相同。
本发明实施例还可以用于程序模块中高位地址为全局统一的64位虚拟机,即在同一个程序块中,其访存的所有目标地址的高位地址均相同。
步骤103、根据目标地址的低位地址,生成第一汇编指令和第二汇编指令。
具体的,64位虚拟机处理访存指令的装置根据目标地址的低位地址,编译出两条汇编指令。即根据目标地址的低位地址生成第一汇编指令,第一汇编指令用于将低位地址中的高位子地址加载到第一寄存器,例如,第一汇编指令用于将地址位15-0加载到第一寄存器;根据目标地址的低位地址生成第二汇编指令,第二汇编指令用于将低位地址中的低位子地址加载到第一寄存器,例如,第一汇编指令用于将地址位31-16加载到第一寄存器。
需要说明的是,该第一寄存器可以是临时的寄存器。
步骤104、根据访存指令,生成第三汇编指令。
具体的,本实施例中的第三汇编指令用于访存第一寄存器中存储的低位地址,如地址位为31-0,与第二寄存器中存储的高位地址,如地址位为64-32,并叠加得到的64为的目标地址,其中,高位地址为程序的全局高位地址。
在本实施例中,第三汇编指令可以是双基址访存指令也可以是其他可实现第三汇编指令功能的指令,此处以双基址访存指令为例进行详细的说明,该双基址访存指令包括操作码、第一寄存器标识、第二寄存器标识、目标寄存器标识以及偏移量,其中偏移量为零。举例来讲,访存指令为读指令,对应的,第三汇编指令为双基址读指令,其中,该双基址读指令用于将通过第一寄存器标识和第二寄存器标识获得的目标地址中存储的数据读取到目标寄存器标识所标示的寄存器。或者,访存指令为写指令;第三汇编指令为双基址写指令,其中,该双基址写指令用于将目标寄存器标识所标示的寄存器中存储的数据写入到通过第一寄存器标识和第二寄存器标识获得的目标地址中。
通常情况下,64位虚拟机处理程序中不同的访存指令时,需要加载的目标地址的高位地址是相同的,需要说明的是,本实施例中的全局高位地址为64位虚拟机处理程序中不同的访存指令时,需要加载的目标地址的高位地址。
在本实施例中,高位地址存储在第二寄存器,并且在程序运行的过程中尽量避免更改该第二存储器中存储的数值。
本发明提供的64位虚拟机处理访存指令的方法及装置,通过生成固定的三条汇编指令实现访存操作的执行,不需要对访存指令的地址进行分析也不会由于编译访存指令时的代码段出现指令膨胀的情况,解决了现有技术中地址分析时相对比较耗时,对于即时编译,地址分析的过程会是一个频发的操作,会给编译进程带来性能影响的问题,还解决了现有技术中由于访存指令序列长度的不定,会增加地址重填过程的复杂度,给整个程序带来性能损失的问题。
图2为本发明64位虚拟机处理访存指令的方法实施例二的流程示意图。本实施例的执行的主体可以是即时编译器。如图2所示,
步骤201、在开始编译所述程序时,将程序对应的全局高位地址存储在第二寄存器。
具体的,在执行程序之前,首先将高位地址存储在第二寄存器中,该第二寄存器可以是全局寄存器,例如在无内部互锁流水级的微处理器(Microprocessor Without Interlocked Piped Stages,简称MIPS)的通用寄存器中,选择一个寄存器作为全局寄存器保存32为的高位地址。
在本实施例中,通常在64为Java虚拟机中,被加载的目标地址的高32为通常是相同的,因此,可以在执行程序之前,首先将高位地址存储在第二寄存器中。
步骤202、获取访存指令。
在本实施例中,访存指令包括访问内存的目标地址,例如,该访存指令为读指令,其中,该读指令用以读取目标地址存储的数据,或者,该访存指令为写指令,其中,写指令用以将写指令指示的数据写入目标地址。
步骤203、根据访存指令,确定访存指令所指示访存的目标地址的低位地址。
在本实施例中,将目标地址分为高位地址和低位地址,其中,该低位地址为目标地址的低位部分的地址,高位地址为目标地址除低位地址的地址,例如,64位虚拟机中,高位地址为前32位,即63-32,低位地址为32位,即31-0。
步骤204、根据目标地址的低位地址,生成第一汇编指令和第二汇编指令,以使通过第一汇编指令和第二汇编指令将低位地址加载到第一寄存器。
具体的,即时编译器根据目标地址的低位地址,编译出两条汇编指令。即根据目标地址的低位地址生成第一汇编指令,第一汇编指令用于将低位地址中的高位子地址加载到第一寄存器,例如,第一汇编指令用于将地址位0-15加载到第一寄存器中的0-15位;根据目标地址的低位地址生成第二汇编指令,第二汇编指令用于将低位地址中的低位子地址加载到第一寄存器,例如,第一汇编指令用于将地址位16-31加载到第一寄存器中的16-31位。
在本实施例中,该低位地址为64位目标地址的0-31位地址。需要说明的是,该第一寄存器可以是临时的寄存器,即该第一寄存器在即时编译器处理访存指令时保存全局高位地址,在即时编译器做其他执行操作时,可用于保存其他的数值。
步骤205、判断第二寄存器中保存的数值是否为程序对应的全局高位地址。
具体的,若否,则执行步骤206,若是,则执行步骤207。
需要说明的是,通过步骤205的判断,可以确保从第二寄存器中获得目标地址的高位地址是准确的。
步骤206、若否,则将程序对应的全局高位地址加载到第二寄存器,并根据访存指令生成第三汇编指令。
在本实施例中,该第三汇编指令用于访存第一寄存器中存储的低位地址与第二寄存器中存储的高位地址,并叠加得到的目标地址,其中,该高位地址为程序的全局高位地址。
举例来讲,第二寄存器中存储的高位地址没有修改之前,该第二寄存器中存储的高位地址为0x5500000000,在确定第二寄存器中存储的数值,即高位地址发生修改,可以通过以下两条指令进行第二寄存器中高位地址的恢复:
dadd rbase,zero,0x55
dsll.32rbase,0。
步骤207、若是,则直接根据访存指令生成第三汇编指令。
在本实施例中,该第三汇编指令用于访存第一寄存器中存储的低位地址与第二寄存器中存储的高位地址,并叠加得到的目标地址,其中,该高位地址为程序的全局高位地址。
需要说明的是,步骤206与步骤207中的第三汇编指令可以为双基址访存指令,该双基址访存指令包括操作码、第一寄存器标识、第二寄存器标识、目标寄存器标识以及偏移量,其中偏移量为零。举例来讲,访存指令为读指令,对应的,第三汇编指令为双基址读指令,其中,该双基址读指令用于将通过第一寄存器标识和第二寄存器标识获得的目标地址中存储的数据读取到目标寄存器标识所标示的寄存器。或者,访存指令为写指令;第三汇编指令为双基址写指令,其中,该双基址写指令用于将目标寄存器标识所标示的寄存器中存储的数据写入到通过第一寄存器标识和第二寄存器标识获得的目标地址中。
本发明提供的64位虚拟机处理访存指令方法及装置,通过生成固定的三条汇编指令实现访存操作的执行,不需要对访存指令的地址进行分析也不会由于编译访存指令时的代码段出现指令膨胀的情况,解决了现有技术中地址分析时相对比较耗时,对于即时编译,地址分析的过程会是一个频发的操作,会给编译进程带来性能影响的问题,还解决了现有技术中由于访存指令序列长度的不定,会增加地址重填过程的复杂度,给整个程序带来性能损失的问题。
图3为本发明64位虚拟机处理访存指令的装置实施例一的结构示意图。如图3所示,该寻址指令处理装置,包括:获取模块31、确定模块32、第一生成模块33和第二生成模块34,其中,
获取模块31,用于获取访存指令;
确定模块32,用于根据获取模块31获取的访存指令,确定访存指令所指示访存的目标地址的低位地址;
第一生成模块33,用于根据确定模块32确定的目标地址的低位地址,生成第一汇编指令和第二汇编指令,以使通过第一汇编指令和第二汇编指令将低位地址加载到第一寄存器;
第二生成模块34,用于根据获取模块31获取的访存指令,生成第三汇编指令,第三汇编指令用于访存第一寄存器中存储的低位地址与第二寄存器中存储的高位地址,并叠加得到的目标地址,高位地址为程序的全局高位地址。
在本实施例中,通过生成固定的三条汇编指令实现访存操作的执行,不需要对访存指令的地址进行分析也不会由于编译访存指令时的代码段出现指令膨胀的情况,解决了现有技术中地址分析时相对比较耗时,对于即时编译,地址分析的过程会是一个频发的操作,会给编译进程带来性能影响的问题,还解决了现有技术中由于访存指令序列长度的不定,会增加地址重填过程的复杂度,给整个程序带来性能损失的问题。
在上述实施例的基础上,第一生成模块33,用于根据确定模块32确定的目标地址的低位地址生成第一汇编指令,第一汇编指令用于将低位地址中的高位子地址加载到第一寄存器;第二生成单元34,用于根据确定模块32确定的目标地址的低位地址生成第二汇编指令,第二汇编指令用于将低位地址中的低位子地址加载到第一寄存器。
图4为本发明64位虚拟机处理访存指令的装置实施例二的结构示意图。如图4所示,在上述实施例的基础上,该访存指令处理装置,还可以包括:存储模块35;
其中,存储模块35,用于在开始编译程序时,将程序对应的全局高位地址存储在第二寄存器。
在本实施例中,通常在64为Java虚拟机中,被加载的目标地址的稿32为通常是相同的,因此,可以在执行程序之前,首先将高位地址存储在第二寄存器中,在需要加载目标地址时,使用一条双基址访存指令将从第二寄存器中加载目标地址的高位地址,以及从第一寄存器中加载目标地址的低位地址,从而大大的节省了访存指令的数量。
进一步的,在上述实施例的基础上,该装置还可以包括:判断模块36。
判断模块36,用于判断第二寄存器中保存的数值是否为程序对应的全局高位地址;
需要说明的是,通过判断模块36的执行,可以确保从第二寄存器中获得目标地址的高位地址是准确的。
第二生成模块34,包括:第三生成单元341,用于若判断模块36确定第二寄存器中保存的数值不是程序对应的全局高位地址时,则将程序对应的全局高位地址加载到第二寄存器,根据访存指令生成第三汇编指令;第四生成单元342,用于若判断模块36确定第二寄存器中保存的数值是程序对应的全局高位地址时,则直接根据访存指令生成第三汇编指令。
在上述实施例的基础上,第三汇编指令为双基址访存指令,双基址访存指令包括操作码、第一寄存器标识、第二寄存器标识、目标寄存器标识以及偏移量,其中偏移量为零。
进一步的,在上述实施例的基础上,该访存指令为读指令;
对应的,第三汇编指令为双基址读指令,双基址读指令用于将通过第一寄存器标识和第二寄存器标识获得的目标地址中存储的数据读取到目标寄存器标识所标示的寄存器。
可选的,在上述实施例的基础上,访存指令为写指令;
第三汇编指令为双基址写指令,双基址写指令用于将目标寄存器标识所标示的寄存器中存储的数据写入到通过第一寄存器标识和第二寄存器标识获得的目标地址中。
在本实施例中,过生成固定的三条汇编指令实现访存操作的执行,不需要对访存指令的地址进行分析也不会由于编译访存指令时的代码段出现指令膨胀的情况,解决了现有技术中地址分析时相对比较耗时,对于即时编译,地址分析的过程会是一个频发的操作,会给编译进程带来性能影响的问题,还解决了现有技术中由于访存指令序列长度的不定,会增加地址重填过程的复杂度,给整个程序带来性能损失的问题。
本领域普通技术人员可以理解:实现所述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括所述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (11)

1.一种64位虚拟机处理访存指令的方法,其特征在于,包括:
获取访存指令;
根据所述访存指令,确定所述访存指令所指示访存的目标地址的低位地址;
根据所述目标地址的低位地址,生成第一汇编指令和第二汇编指令,以使通过所述第一汇编指令和所述第二汇编指令将所述低位地址加载到第一寄存器;
根据所述访存指令,生成第三汇编指令,所述第三汇编指令用于访存所述第一寄存器中存储的所述低位地址与第二寄存器中存储的高位地址,并叠加得到的目标地址,所述高位地址为程序的全局高位地址,所述全局高位地址为64位虚拟机处理程序中不同的访存指令时,需要加载的目标地址的高位地址。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标地址的低位地址,生成第一汇编指令和第二汇编指令,包括:
根据所述目标地址的低位地址生成第一汇编指令,所述第一汇编指令用于将所述低位地址中的高位子地址加载到所述第一寄存器;
根据所述目标地址的低位地址生成第二汇编指令,所述第二汇编指令用于将所述低位地址中的低位子地址加载到所述第一寄存器。
3.根据权利要求1或2所述的方法,其特征在于,所述获取访存指令之前,还包括:
在开始编译所述程序时,将所述程序对应的所述全局高位地址存储在所述第二寄存器。
4.根据权利要求3所述的方法,其特征在于,所述根据所述访存指令,生成第三汇编指令之前,还包括:
判断所述第二寄存器中保存的数值是否为所述程序对应的所述全局高位地址;
所述根据所述访存指令,生成第三汇编指令,包括:
若确定所述第二寄存器中保存的数值不是所述程序对应的所述全局高位地址时,则将所述程序对应的全局高位地址加载到所述第二寄存器,根据所述访存指令生成第三汇编指令;
若确定所述第二寄存器中保存的数值是所述程序对应的所述全局高位地址时,则直接根据所述访存指令生成第三汇编指令。
5.根据权利要求1或2任一项所述的方法,其特征在于,所述第三汇编指令为双基址访存指令,所述双基址访存指令包括操作码、第一寄存器标识、第二寄存器标识、目标寄存器标识以及偏移量,其中所述偏移量为零。
6.根据权利要求5所述的方法,其特征在于,所述访存指令为读指令;
所述第三汇编指令为双基址读指令,所述双基址读指令用于将通过所述第一寄存器标识和所述第二寄存器标识获得的所述目标地址中存储的数据读取到所述目标寄存器标识所标示的寄存器。
7.根据权利要求5所述的方法,其特征在于,所述访存指令为写指令;
所述第三汇编指令为双基址写指令,所述双基址写指令用于将所述目标寄存器标识所标示的寄存器中存储的数据写入到通过所述第一寄存器标识和所述第二寄存器标识获得的所述目标地址中。
8.一种64位虚拟机处理访存指令的装置,其特征在于,包括:
获取模块,用于获取访存指令;
确定模块,用于根据所述获取模块获取的所述访存指令,确定所述访存指令所指示访存的目标地址的低位地址;
第一生成模块,用于根据所述确定模块确定的所述目标地址的低位地址,生成第一汇编指令和第二汇编指令,以使通过所述第一汇编指令和所述第二汇编指令将所述低位地址加载到第一寄存器;
第二生成模块,用于根据所述获取模块获取的所述访存指令,生成第三汇编指令,所述第三汇编指令用于访存所述第一寄存器中存储的所述低位地址与第二寄存器中存储的高位地址,并叠加得到的目标地址,所述高位地址为程序的全局高位地址,所述全局高位地址为64位虚拟机处理程序中不同的访存指令时,需要加载的目标地址的高位地址。
9.根据权利要求8所述的装置,其特征在于,所述第一生成模块,包括:
第一生成单元,用于根据所述确定模块确定的目标地址的低位地址生成第一汇编指令,所述第一汇编指令用于将所述低位地址中的高位子地址加载到所述第一寄存器;
第二生成单元,用于根据所述确定模块确定的目标地址的低位地址生成第二汇编指令,所述第二汇编指令用于将所述低位地址中的低位子地址加载到所述第一寄存器。
10.根据权利要求8或9所述的装置,其特征在于,还包括:存储模块;
所述存储模块,用于在开始编译所述程序时,将所述程序对应的所述全局高位地址存储在所述第二寄存器。
11.根据权利要求10所述的装置,其特征在于,还包括:判断模块;
所述判断模块,用于判断所述第二寄存器中保存的数值是否为所述程序对应的所述全局高位地址;
所述第二生成模块,包括:
第三生成单元,用于若所述判断模块确定所述第二寄存器中保存的数值不是所述程序对应的所述全局高位地址时,则将所述程序对应的全局高位地址加载到所述第二寄存器,根据所述访存指令生成第三汇编指令;
第四生成单元,用于若所述判断模块确定所述第二寄存器中保存的数值是所述程序对应的所述全局高位地址时,则直接根据所述访存指令生成第三汇编指令。
CN201410216828.0A 2014-05-21 2014-05-21 64位虚拟机处理访存指令的方法及装置 Active CN103970507B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410216828.0A CN103970507B (zh) 2014-05-21 2014-05-21 64位虚拟机处理访存指令的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410216828.0A CN103970507B (zh) 2014-05-21 2014-05-21 64位虚拟机处理访存指令的方法及装置

Publications (2)

Publication Number Publication Date
CN103970507A CN103970507A (zh) 2014-08-06
CN103970507B true CN103970507B (zh) 2016-10-19

Family

ID=51240056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410216828.0A Active CN103970507B (zh) 2014-05-21 2014-05-21 64位虚拟机处理访存指令的方法及装置

Country Status (1)

Country Link
CN (1) CN103970507B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573831B (zh) * 2014-10-13 2019-11-26 龙芯中科技术有限公司 数据转移方法和装置
CN106033370B (zh) * 2015-03-16 2019-12-10 龙芯中科技术有限公司 64位Java虚拟机的实现方法及装置
CN109992529B (zh) * 2018-01-03 2021-07-16 华为技术有限公司 虚拟地址确定方法及装置、处理器、存储介质
CN113656330B (zh) * 2021-10-20 2022-02-15 北京微核芯科技有限公司 确定访问地址的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189086B1 (en) * 1996-08-07 2001-02-13 Ricoh Company Ltd. Data processing apparatus
CN103268145A (zh) * 2013-03-06 2013-08-28 上海云间半导体科技有限公司 用于保存访存指令的虚拟地址的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11175337A (ja) * 1997-12-15 1999-07-02 Matsushita Electric Ind Co Ltd データ処理装置、機械命令生成装置及び記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189086B1 (en) * 1996-08-07 2001-02-13 Ricoh Company Ltd. Data processing apparatus
CN103268145A (zh) * 2013-03-06 2013-08-28 上海云间半导体科技有限公司 用于保存访存指令的虚拟地址的方法

Also Published As

Publication number Publication date
CN103970507A (zh) 2014-08-06

Similar Documents

Publication Publication Date Title
CN103970507B (zh) 64位虚拟机处理访存指令的方法及装置
CN104881611A (zh) 保护软件产品中的敏感数据的方法和装置
CN106155577A (zh) 扩展内存的访问方法、设备以及系统
CN103955354B (zh) 重定位方法和装置
CN107807839A (zh) 一种修改虚拟机内存数据的方法、装置及电子设备
US7624384B2 (en) Apparatus, system, and method of dynamic binary translation with translation reuse
US20050028148A1 (en) Method for dynamic recompilation of a program
CN106033370A (zh) 64位Java虚拟机的实现方法及装置
CN109614325A (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
CN110554998A (zh) 一种通过替换函数内部指令的钩子方法、装置、终端及存储介质
CN107544811B (zh) IOS平台隐藏dylib文件的方法、存储介质、电子设备及系统
RU2510073C2 (ru) Управление дескриптором типа для замороженных объектов
CN104461880B (zh) 一种嵌入式系统中自动检测内存越界的方法及系统
US20100058305A1 (en) Automatic Generation of Language Bindings for Libraries Using Data from Compiler Generated Debug Information
US8589899B2 (en) Optimization system, optimization method, and compiler program
CN112487092B (zh) 一种基于区块链的智能合约调用方法及装置
CN104063329A (zh) 64位立即数处理方法及装置
US9940267B2 (en) Compiler global memory access optimization in code regions using most appropriate base pointer registers
US9317261B2 (en) Level based data supply for reusable interface components
CN114610516B (zh) 应用程序的修复方法、装置、计算机设备以及存储介质
CN111694580A (zh) 存储设备升级及初始化的方法、装置、电子设备
CN102063308B (zh) 一种用于地震勘探资料处理流程控制的方法
CN109240702A (zh) 一种多线程模式下的快速段式编址配置和访问方法
US20130124925A1 (en) Method and apparatus for checking a main memory of a processor
CN105677559A (zh) 一种检测方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.