一种虚拟机的单栈设计方法

文档序号:6601920阅读:181来源:国知局
专利名称:一种虚拟机的单栈设计方法
技术领域
本发明属于计算机技术领域与虚拟机技术领域,特别涉及一种虚拟机的单栈式设计方法,可简化栈式虚拟机的设计及实现复杂度,简化虚拟机指令集体系结构,易于程序开 发和移植。
背景技术
目前,虚拟机系统的设计方法多采用多栈形式,这类虚拟机设计和实现的复杂度 高,实现的功能虽强,但需要运行在资源丰富的支撑平台上。如果运行在资源受限的嵌入式 计算环境下,其功能一般会受到严重影响;而此时如果不使用其提供的复杂功能,又造成虚 拟机资源的浪费。此外,这类虚拟机一般指令集规模庞大,使用这类虚拟机开发程序成本较 高。针对这一问题,需要设计一种简化虚拟机设计和实现的方法。本发明实现一种虚拟机 的单栈设计方法,对结构复杂的多栈设计所实现功能进行规约简化,在保证虚拟机栈式运 行功能的前提下,以简化的单栈形式实现。此外,为基于单栈设计的虚拟机系统提供简化的 指令集系统,以降低应用程序开发的成本。单栈设计的虚拟机系统更适合在资源受限的嵌 入式计算环境中应用。

发明内容
本发明的目的是针对多栈虚拟机不适于在资源受限的嵌入式环境中应用的问题, 提供一种虚拟机的单栈设计方法,及规约简化的虚拟机指令集。单栈设计的虚拟机系统更 易于在嵌入式环境中运行,程序开发成本也更低。本发明实现一种虚拟机的单栈设计方法,包括使用一个指令寄存器指示当前指令 地址;二个指令区段寄存器,指示指令区段首尾地址;二个堆区段寄存器,指示堆区段首尾 地址;二个栈区段寄存器,指示栈区段首尾地址。指令区段,用于存储所述虚拟机可执行程 序的指令集合;堆区段用于存储所述虚拟机可执行程序在运行过程中产生的所有变量信 息;单栈区段以一个单栈形式实现所述虚拟机指令执行的工作栈、所述虚拟机函数调用栈、 变量地址存储栈和变量引用栈。本发明的工作流程和步骤为1、所述虚拟机初始化;2、所述虚拟机装载应用程序;3、执行引擎工作,载入并识别指令,并予以执行;4、指令执行过程中产生的工作栈、所述虚拟机函数调用栈、变量地址存储栈和变 量引用栈均由所述虚拟机的单栈实现;5、指令执行过程中产生的变量值存储在堆区段中;6、通过单栈调用可选的堆管理模块,实现所述虚拟机堆区段的管理;7、通过单栈调用可选的本地方法,与支撑操作系统通信;8、通过单栈调用可选通信模块,实现网络通信;
9、通过单栈调用可选数值计算模块,实现数值计算;10、最后执行应用程序的停机指令,结束虚拟机系统。本发明实现一种虚拟机的单栈设计方法,可以实现指令集规模简约、体系结构简 单、开发成本低、方便移植、功能全面的单栈虚拟机系统,易于在嵌入式计算环境下部署和 运行。


图1是本发明的系统结构框图;图中1为虚拟机初始化模块,2为虚拟机装载器 模块,3为内存映像,4为指令区段,5为堆区段,6为单栈区段,7为虚拟机执行引擎,8为指 令寄存器,9为指令区段首寄存器,10为指令区段尾寄存器,11为堆区段首寄存器,12为堆 区段尾寄存器,13为单栈区段首寄存器,14为单栈区段尾寄存器,15为解释器,16为本地 (I/O)模块,17为堆管理模块,18为通信模块,19为数值计算模块,20为宿主支撑平台。
具体实施方式

结合实施例进一步说明本发明的结构方案和工作过程。如图1所示,所述单栈虚拟机系统包括虚拟机初始化模块1,虚拟机装载器模块2, 内存映像3,指令区段4,堆区段5,单栈区段6,虚拟机执行引擎7,指令寄存器8,指令区段 首寄存器9,指令区段尾寄存器10,堆区段首寄存器11,堆区段尾寄存器12,单栈区段首寄 存器13,单栈区段尾寄存器14,解释器15,本地(I/O)模块16,堆管理模块17,通信模块18, 数值计算模块19,宿主支撑平台20。所述虚拟机的核心是虚拟机执行引擎7,它通过单栈区 段6简化了虚拟机设计和实现的复杂度,并通过指令区段4、堆区段5与单栈区段6实现虚 拟机系统的功能。如图1所示,本发明的工作流程包括以下步骤(1)所述虚拟机初始化,包括在内存映像中建立指令区段4,堆区段5和单栈区段 6 ;同时初始化虚拟机寄存器,包括指令寄存器8,指向零地址;指令区段首寄存器9,指向指 令区段首;指令区段尾寄存器10,指向指令区段尾;堆区段首寄存器11,指向堆区段首;堆 区段尾寄存器12,指向堆区段尾;单栈区段首寄存器13,指向单栈区段首;单栈区段尾寄存 器14,指向单栈区段尾;(2)所述虚拟机装载应用程序,虚拟机装载器模块2读取虚拟机可执行程序,进行 安全检测,然后将其载入指令区段4 ;(3)虚拟机执行引擎7工作,通过指令寄存器8载入应用程序指令,由解释器15予 以解释和执行;此后步骤(4)-(9)循环,直到(10);(4)指令执行过程中产生的工作栈、所述虚拟机函数调用栈、变量地址存储栈和变 量引用栈均由所述虚拟机的单栈区段6实现;(5)指令执行过程中产生的变量值存储在堆区段5中;(6)通过单栈区段6调用可选的堆管理模块17,实现所述虚拟机堆区段的管理;(7)通过单栈区段6调用可选的本地(I/O)模块16,与宿主支撑平台20通信;(8)通过单栈区段6调用可选通信模块18,实现网络通信;(9)通过单栈区段6调用可选数值计算模块19,实现数值计算;
(10)最后执行应用程序的停机指令,结束虚拟机系统。虚拟机的单栈设计方法可以实现指令集规模简化、体系结构简单、开发成本低、方便移植、功能全面的单栈虚拟机系统,易于在嵌入式计算环境下部署和运行。
权利要求
一种虚拟机的单栈设计方法,其特征在于该方法包括以下步骤1)虚拟机在内存映像中构建指令区段,存储所述虚拟机可执行程序的指令集合;2)虚拟机在内在映像中构建堆区段,存储所述虚拟机可执行程序在运行过程中产生的所有变量信息;3)虚拟机在内在映像中构建单栈区段,以一个单栈形式实现所述虚拟机指令执行的工作栈、函数调用栈、变量地址存储栈和变量引用栈。
全文摘要
一种虚拟机的单栈设计方法、系统和计算机程序产品。所述虚拟机构建的内存映像中包括指令区,用于存储和识别所述虚拟机指令集;堆区,存储所述虚拟机运行过程中产生的所有变量值;栈区,使用单独的栈区作为所述虚拟机指令执行的工作区和函数调用栈,同时也存储所述虚拟机产生的变量地址。单栈设计方法简化了栈式虚拟机的设计复杂度,简化所述虚拟机的指令集规模,在保证程序可移植性的前提下降低程序开发成本,适用于具有嵌入式计算环境的多种平台。
文档编号G06F9/455GK101833471SQ20101016537
公开日2010年9月15日 申请日期2010年5月7日 优先权日2010年5月7日
发明者徐野 申请人:沈阳理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1