最新微软官方MSDN原版Win10系统下载

当前位置:主页 > U盘装系统 > U盘装win7系统 >

嵌入式开发:FORTH虚拟计算机的设计实现

时间:2024-02-15    来源:九州体育    人气:

本文摘要:作者:王丽清,杨乡里,代红兵,周永录 在嵌入式领域,如何减少系统与运营环境之间的相关性,在各种异构的嵌入式平台上较慢建构系统仍然是研究的重点。本文基于FORTH语言,通过对虚拟机工作原理的分析,以自律建构的JLPFORTH虚拟世界平台为事例,叙述了虚拟机的构建原理、指令定义、存储方法和核心算法,并且在存储上明确提出以分段的方式分离出来代码和数据,通过该方法建构的FORTH虚拟机具备了更高的系统安全性,并且调试便利、扩展性强劲,尤其合适应用于嵌入式系统。

九州体育

作者:王丽清,杨乡里,代红兵,周永录  在嵌入式领域,如何减少系统与运营环境之间的相关性,在各种异构的嵌入式平台上较慢建构系统仍然是研究的重点。本文基于FORTH语言,通过对虚拟机工作原理的分析,以自律建构的JLPFORTH虚拟世界平台为事例,叙述了虚拟机的构建原理、指令定义、存储方法和核心算法,并且在存储上明确提出以分段的方式分离出来代码和数据,通过该方法建构的FORTH虚拟机具备了更高的系统安全性,并且调试便利、扩展性强劲,尤其合适应用于嵌入式系统。

  1.章节  虚拟机最初是美国计算机科学家波佩克(Popek)与戈德堡(Gerald)在虚拟化市场需求中得出了定义,专指有效地的、孤立无援的现实计算机的副本,现在则所指可像现实计算机一样运营程序的软件构建,还包括跟任何现实计算机牵涉到的虚拟机。根据运用和与机器的相关性可分成系统虚拟机和程序虚拟机,一个获取了原始的操作系统,另一个则以运营单个计算机程序居多。  在嵌入式应用领域,嵌入式系统涉及的CPU芯片和微计算机硬件系统种类多样,并且大大推陈出新,甚至多核处理器已被广泛使用。但是在新的平台上,无法针对每一种芯片或平台制订一种计算机语言来编程。

解决问题的方法一是可使用公共计算机语言,用有所不同的编译器来分解机器码,但该方法必须具备该语言的编译器,在新的平台上往往无法不具备。另一种方法即创建一个虚拟机,然后用一个计算机语言,用一个解释器来说明继续执行。使用该方法,难题在于嵌入式虚拟机的建构,要需要适应环境多种环境、较慢建构、可拓展。  FORTH是一种与众不同的计算机程序设计语言。

它具备极强的扩展性,通过字的定义,可实现大大填充和拓展。同时,它又具备极佳的交互性,指令可说明继续执行,这就为应用于的调试带给了很大的便利。本文基于FORTH语言,以自律建构的JLPFORTH虚拟世界平台为事例,详尽阐释FORTH虚拟机的构建原理和核心构建方法,仿真和构建了标准化的交互式计算机结构,构建了现实计算机的典型工作流程[4],并且一特立独行FORTH代码和数据混合存储的方式,在内存的存储上以分段的方式将内存分成CS、VS、DS、SS四个段,分别存储指令和数据,这样,就构建了系统指令和用户数据的分离出来,有效地提升了代码和系统的安全性,并且调试便利、扩展性强劲,特别是在合适应用于对安全性、兼容性、移植性、扩展性、交互性拒绝低的嵌入式系统领域。  2.FORTH虚拟机构建原理  现实计算机的基本工作原理是存储和掌控。

计算机在控制器的指挥官下,放入预先存储的指令序列(即程序)和数据,通过控制器译码,按指令的拒绝,放入数据已完成运算,再行把结果新的存储一起,如此循环,以后已完成全部指令。对现实计算机来说,这个过程相结合中央处理器CPU来构建,CPU还包括运算器、控制器和寄存器。如果叙述CPU核心工作过程,主要还包括以下步骤:  (1)萃取程序计数器值,该值指向的地址即指令地址;  (2)从该地址放入指令;  (3)程序计数器减少指令长度,即指向下一条指令地址;  (4)解码继续执行指令;  (5)回到结果。  由于FORTH虚拟机是工作在现实计算机上的,因此要构建FORTH虚拟机必需用对应关系相结合现实计算机的代码来构建这个核心过程。

九州体育

  在FORTH虚拟机中,用核心算法--NEXT仿真了这个过程,将虚拟机指令和现实计算机指令构建对应,通过创建字典表格,设置地址函数调用,以串线字节的方式将虚拟机命令字和必要机器指令构建对应,相结合现实计算机指令已完成了CPU的处理过程。如图1右图。  明确过程是:在FORTH定义字时创立链结构的字典表格,在其中存储各个字的名称、长度、状态、指令码以及链接指针。例如定义FORTH字S:SDUP*;在字典表格存放在了各个FORTH高级字的名称和代码执行地址,其中也有S字的定义,在S字的代码场中存在S字的代码执行地址,该代码执行地址与code所叙述的必要机器继续执行代码比较不应,包含间接串线编码。

当继续执行该指令时,首先查询字典表格,寻找S定义后,放入其WPF指令码中存放在的地址,然后函数调用到代码场该地址中,由于是FORTH高级字定义,所以首先继续执行:机器码将程序计数器所记录的下一条指令回到地址压入栈,然后函数调用到参数场地址依序继续执行,直到最后的;回到指令继续执行后,再行将原本现金栈的回到地址弹头出有,这样即已完成一条指令的继续执行。其中,代码场和参数场分别存储指令和参数。以下以JLPFORTH虚拟机为事例,详细描述其字典表格、代码场、参数场的定义、虚拟机存储和指针的分配,以及核心算法。  3.指令的定义和存储  FORTH虚拟世界计算机使用该虚拟世界指令的存储地址来回应该指令,称作地址码.虚拟世界计算机的每个指令用名称(例如+、-、*)来回应,称作字(Word).FORTH虚拟世界计算机的指令还包括填充字和基本字.基本字也称作低级字,由现实计算机机器码和数据构成的,低级字人组可包含填充字,所以,填充字也称作高级字.  高级字和低级字都可通过定义拓展。

拓展高级字用:冒号定义,通过高级字定义用有数的指令构成新的指令。格式如下:  :名字leave;其中继续执行leave指令可以跑出该FORTH字的继续执行,忽视掉其后的指令。拓展低级字则用机器码定义,格式如下:  CODE名字NEXT,END-CODE其中NEXT,指令可以让计算机继续执行下一条虚拟机指令。  对于现实计算机,用编译器分解的指令码序列中不必须保有指令名称。

FORTH虚拟世界计算机有所不同,由于必须虚拟机继续执行和结构新的虚拟机指令,因此在虚拟世界计算机中要保有FORTH字的名称,用作存储FORTH字的存储空间就是字典表格.在JLPFORTH虚拟世界平台中,字典表格结构如表格1,在图1中也有标示。  WPF里存储的指令码即FORTH字在存储空间的地址。由于容许FORTH字的名称长度不一样,因此使用链表结构可有效地存储它们,在LPF中即存放在了下一个字的定义地址。  代码场和参数场用作联合存储FORTH字,如表格2.  其中CFA存放在构建虚拟机功能的CPU机器码开始地址。

PFA依序存放在构成它的虚拟机指令。对于基本字PFA的内容不一样。对于一个常数基本字,PFA就必要存放在这个常数。

对于一个变量基本字,PFA就存放数据段中这个变量的地址[6].。


本文关键词:嵌入式,开发,FORTH,虚拟,计算机,的,设计,九州体育,实现

本文来源:九州体育-www.hebeiweilun.com

相关文章

U盘装win7系统排行榜

更多>>

U盘装系统排行榜

更多>>

系统教程排行榜

更多>>

公众号