支持MIPS平台的Java虚拟机实现方法及装置的制造方法

文档序号:9616149阅读:521来源:国知局
支持MIPS平台的Java虚拟机实现方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术,尤其涉及一种支持无内部互锁流水级的微处理器 (MicroprocessorwithoutInterlockedPipedStages,简称:MIPS)平台的Java虚拟机 实现方法及装置。
【背景技术】
[0002] Java语言在计算机领域有普遍的应用,虚拟机是一种支持平台无关字节码指令集 的系统软件,任何硬件系统都必须配备相应的Java虚拟机才能支持Java应用软件的运行。
[0003] Java虚拟机根据是否具有平台依赖性,可以分为平台无关的虚拟机和平台相关 的虚拟机。通常,平台相关的虚拟机采用解释器-即时编译器的方式实现。即时编译器在 虚拟机运行过程中,将一组连续目标指令为单位整体编译成同等功能的本地中央处理器 (CentralProcessingUnit,简称:CPU)指令集。在下一次执行这个位置的目标指令时,就 可以直接执行已经翻译的本地CPU指令。
[0004] 但是,平台相关的Java虚拟机不具有跨平台性,尤其是即时编译器是针对一个特 定平台将指令翻译成本地CPU指令,因此,应用于X86、Spare等指令集系统平台的Java虚 拟机的实现方法无法完全应用于支持MIPS平台的Java虚拟机。

【发明内容】

[0005] 本发明提供一种支持MIPS平台的Java虚拟机实现方法及装置,以实现对MIPS平 台运行的Java应用程序的良好支持。
[0006] 第一方面,本发明提供一种支持MIPS平台的Java虚拟机实现方法,包括:
[0007] 实现安全点功能时,若应用程序访问页面所产生的信号满足预设条件,则认为所 述信号是安全点信号;
[0008] 实现内存管理功能时,若所述应用程序运行过程中更新对象的引用关系,则清除 卡片表中与所述对象对应的标记位;
[0009] 实现线程管理功能时,利用本地操作系统的线程操作应用程序编程接口API对线 程进行管理;其中,所述对线程进行管理包括:创建线程、终止线程、暂停线程、线程的同步 以及线程的互斥;
[0010] 实现解释器功能时,通过调用与所述应用程序对应的模板,实现所述应用程序的 执行;其中,所述模板为基于所述MIPS平台的模板化解释器针对所述应用程序中每个字节 码预先生成的本地MIPS指令集序列;
[0011] 实现编译器功能时,在针对所述本地MIPS指令集的即时编译器中生成MIPS指令 的具体规则、根据所述本地MIPS指令集生成栈帧结构和参数传递规范,并针对所述本地 MIPS指令集的后端指令进行优化。
[0012] 在第一方面的第一种可能的实现方式中,所述实现安全点功能时,若应用程序访 问页面所产生的信号满足预设条件,则认为所述信号是安全点信号,包括:
[0013] 若所述应用程序访问页面时产生信号的指令是访存指令,且所述访存指令所访问 的内存地址是指定页面,则认为所述信号是所述安全点信号。
[0014] 结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述认为 所述信号时所述安全点信号包括:采用访问非可读页面的方式实现对所述线程的暂停。
[0015] 在第一方面的第三种可能的实现方式中,所述实现内存管理功能时,若所述应用 程序运行过程中更新对象的引用关系,则清除卡片表中与所述对象对应的标记位,包括:
[0016] 将所述卡片表的首地址加载到第一寄存器中,将经过逻辑运算后的所述首地址与 加载到所述第一寄存器中的所述首地址相加,并将结果保存在所述第一寄存器中,再将第 二寄存器的值作为一个字节写入所述第一寄存器指向的内存单元中;其中,所述第二寄存 器的值恒为零。
[0017] 结合第一方面至第一方面的第三种任一可能的实现方式,在第四种可能的实现方 式中,所述实现安全点功能之前,还包括:
[0018] 实现类文件装载功能时,读取所述应用程序的类文件,并在所述类文件格式的有 效性验证通过后,将所述类文件转换为内部的数据结构注册到类管理器中。
[0019] 第二方面,本发明提供一种支持MIPS平台的Java虚拟机实现装置,包括:
[0020] 安全点模块,用于实现安全点功能时,若应用程序访问页面所产生的信号满足预 设条件,则认为所述信号是安全点信号;
[0021] 内存管理模块,用于实现内存管理功能时,若所述应用程序运行过程中更新对象 的引用关系,则清除卡片表中与所述对象对应的标记位;
[0022] 线程管理模块,用于实现线程管理功能时,利用本地操作系统的线程操作应用程 序编程接口API管理线程;其中,所述管理线程包括创建线程、终止线程、暂停线程、线程的 同步以及线程的互斥;
[0023] 解释器模块,用于实现解释器功能时,通过调用与所述应用程序对应的模板,实现 所述应用程序的执行;其中,所述模板为基于所述MIPS平台的模板化解释器针对所述应用 程序中每个字节码预先生成的本地MIPS指令集序列;
[0024] 编译器模块,用于实现编译器功能时,在针对所述本地MIPS指令集的即时编译器 中生成MIPS指令的具体规则、根据所述本地MIPS指令集生成栈帧结构和参数传递规范,并 针对所述本地MIPS指令集的后端指令进行优化。
[0025] 在第二方面的第一种可能的实现方式中,所述安全点模块具体用于:
[0026] 若所述应用程序访问页面时产生信号的指令是访存指令,且所述访存指令所访问 的内存地址是指定页面,则认为所述信号是所述安全点信号。
[0027] 结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述安全 点模块具体用于采用访问非可读页面的方式实现对所述线程的暂停。
[0028] 在第二方面的第三种可能的实现方式中,所述内存管理模块具体用于:
[0029] 将所述卡片表的首地址加载到第一寄存器中,将经过逻辑运算后的所述首地址与 加载到所述第一寄存器中的所述首地址相加,并将结果保存在所述第一寄存器中,再将第 二寄存器的值作为一个字节写入所述第一寄存器指向的内存单元中;其中,所述第二寄存 器的值恒为零。
[0030] 结合第二方面至第二方面的第三种任一可能的实现方式,在第四种可能的实现方 式中,所述装置还包括类文件装载模块:
[0031] 用于实现类文件装载功能时,读取所述应用程序的类文件,并在所述类文件格式 的有效性验证通过后,将所述类文件转换为内部的数据结构注册到类管理器中。
[0032] 本发明提供的支持MIPS平台的Java虚拟机实现方法及装置,通过实现安全点功 能时,若应用程序访问页面所产生的信号满足预设条件,则将页面作为安全点页面;实现内 存管理功能时,若应用程序运行过程中更新对象的引用关系,则清除卡片表中与对象对应 的标记位;实现线程管理功能时,利用本地操作系统的线程操作API对线程进行管理;实现 解释器功能时,通过调用与应用程序对应的模板,实现应用程序的执行;其中,模板为基于 所述MIPS平台的模板化解释器针对所述应用程序中每个字节码预先生成的本地MIPS指令 集序列;实现编译器功能时,在针对所述本地MIPS指令集的即时编译器中生成MIPS指令的 具体规则、根据所述本地MIPS指令集生成栈帧结构和参数传递规范,并针对所述本地MIPS 指令集的后端指令进行优化。从而实现对MIPS平台运行的Java应用程序的良好支持。
【附图说明】
[0033] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。
[0034] 图1为本发明支持MIPS平台的Java虚拟机实现方法实
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1