论文部分内容阅读
随着软硬件技术的发展,用软件虚拟硬件—构造虚拟机来辅助硬件设计、开发系统软件和应用软件已经越来越普遍。通过虚拟机平台,开发者可以在一台PC机上同时使用多个目标机器。软件开发者可以在x86机器上使用虚拟机开发、运行和调试ARM、8051程序;硬件开发者也可以在虚拟机上验证硬件设计的优劣。虚拟机开发是一个庞大的工程,开发工作量主要集中在处理器的模拟,即指令集模拟部分,约占总工作量80%左右。如何快速建立高质量虚拟仿真环境,特别是处理器模拟模型是迫切需要解决的问题。 论文在分析主流机器语言和指令集描述语言的基础上,研究了处理器抽象模型方法,设计实现了一种轻量级处理器指令集描述语言Smart-ISDL,其目的是为快速高效建立处理器模拟模型提供一种中间形式化语言。Smart-ISDL是一种通用的指令集描述语言,可用于描述各种体系结构的处理器模型,如ARM、MIPS、8051等。通过对CPU模型的抽象,Smart-ISDL可以快速建立处理器模拟模型,将处理器取指、译码、执行等真实部件映射成Smart-ISDL描述模板文法的相应描述模型,完成处理器部件快速模拟。Smart-ISDL模板文法可以直观地表达指令集行为特点,它通过对体系存储系统、指令实体相关特性的描述,并借助辅助工具链,自动生成最终代码,取代使用C/C++等编写指令集模拟,降低虚拟机模拟和调试的工作量。Smart-ISDL使用流行的可扩展标记语言XML作为表现形式,在表现力上直观而且简单。目前,Smart-ISDL描述模板主要表现为2个直观的实体:a)机器存储部件,其中包括了寄存器和内存的表示;b)指令实体,包括了指令的格式、类型、指令执行时行为等。不同于其他指令集描述语言,Smart-ISDL实现了多体系结构描述,可以描述不同体系CPU支持的指令集合;屏蔽机器各个部件的交互细节,提供直观的访问操作;支持多内存体系结构的访问;支持变长数据和变长指令的存取、执行;支持对单独寄存器位访问操作,并且支持寄存器别名访问。 在系统级模拟器开发过程中,通过Smart-ISDL辅助,开发人员在模拟处理器时可以对体系底层了解甚少,转而关注指令集执行行为特性。理解指令执行行为不需要特殊专业背景。一般说来,指令行为就是对寄存器和内存操作以及改变处理器和内存系统的状态。Smart-ISDL主要作出了以下几点贡献:a)降低了模拟器开发者的要求,Smart-ISDL这种中间语言形式化地表现了处理器各个部件以及指令行为特点。b)减轻了模拟器开发的工作量,通过Samrt-ISDL描述模板和工具链生成目标代码,可以减少整个开发的工作量。c)降低了代码出错率。d)给模拟器开发带来了很多弹性选择,特别在生成目标代码时,可以根据需要生成多个可用部件,比如反汇编器、信息统计、指令跟踪器等。