ArmSim:基于ARM处理器的全系统模拟器.pdf

ArmSim:基于ARM处理器的全系统模拟器.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ArmSim:基于ARM处理器的全系统模拟器.pdf

ArmSim :基于ARM处理器的全系统模拟器1 1 1 1 邓立波 ,龙 翔 ,高小鹏 1北京航空航天大学计算机学院,北京(100083) E-mail:denglibo@ 摘 要:模拟器作为嵌入式系统研究的基础研发工具,可辅助系统体系结构调优、软硬件协 同设计。本文实现了具有良好配置性及可扩展性的ArmSim 模拟器,该模拟器是针对ARM 处理器的全系统模拟器,可在其上运行和调试ARM 应用级和系统级的目标程序。本文详细 描述ArmSim 的设计与实现细节。 关键词:ARM处理器 模拟 全系统模拟器 中图分类号: 1. 引言 随着嵌入式系统的飞速发展,嵌入式系统的研究与开发已经成为当今计算机科学的一个 重要分支。由于应用领域的特点,嵌入式系统研发通常需要依赖特定的硬件环境。由于对硬 件环境的过度依赖,因此传统的研究开发模式具有明显的缺陷,即软件开发与硬件开发无法 并行展开。这一方面致使研发周期过长,另一方面也使得设计工作缺乏足够的灵活性。 为了解决上述问题,基于软件的模拟器已经成为嵌入式系统研发中的主要技术手段之 一。软件模拟就是用计算机软件来模拟某一特定硬件系统的全部或部分的外部特性和内部功 能,实现对目标硬件系统的高度仿真,使得运行在模拟器上的程序无法感知到底层硬件的存 在,就如同运行在真实硬件平台上。在嵌入式系统领域,软件模拟技术已经被广泛应用于嵌 入式系统软硬件协同设计、嵌入式操作系统开发与评估以及大型嵌入式应用软件性能评估等 方面。 本文描述的ArmSim 是一个基于C 语言的ARM 处理器的全系统模拟器。ArmSim 实现 了全系统硬件的功能模拟,不仅可以运行ELF 格式的ARM 应用级程序,而且可以运行ELF 映象或二进制映象格式的系统级程序,如U-Boot 。ArmSim 模拟器还支持GDB 等调试器对 模拟器上运行的ARM 程序进行源代码级远程调试。 本文其它部分的结构如下:第 2 部分对主要的模拟技术进行阐述;第 3 部分详细描述 ArmSim 模拟器的实现;第4 部分为结论。 2. 模拟技术 全系统模拟器的实现主要包括指令集的模拟和外部设备的模拟。对指令集的模拟是构建 所有目标机模拟器的基本要求,而对于构建可以运行目标机系统级程序的全系统模拟器而 言,对外部设备的模拟则是其必要的组成部分,是模拟CPU 和宿主机的通信接口。 2.1 指令集的模拟 对指令集的模拟,最常用的方法包括:解释执行和基于翻译的方法。 1 1本课题得到高等学校博士学科点专项科研基金(项目编号:20030006026 )资助 - 1 - 解释执行方式是最简单也是使用得最为广泛的一种指令集模拟方法,如SimOS[1] 、 Skyeye[2]等都采用了该方式。解释执行的原理是在模拟器内部构建和目标机器对应的CPU、 内存等模拟模块,在模拟器执行过程中,利用这些模拟的硬件执行部件模拟真实CPU 的工作 流程,也就是通常的“取指—译码—执行”循环。穿线代码方式[3][7]是对解释执行方式的一 种改进,通过缓存已执行过的指令所对应的模拟函数的地址,实现了一次译码多次执行,从 而提高了模拟效率。 在采用基于翻译的方法实现指令集的模拟时,常用的方法有动态翻译[4][5]和静态翻译。 动态翻译是在模拟器运行过程中,将目标机器的二进制代码翻译为宿主机的二进制代码的模 拟技术。动态翻译一般以一个基本代码段(通常为两个条件语句之间的代码)为基本单元,对 每个基本单元通过一次翻译多次执行来提高运行效率。静态翻译是将指令的翻译过程移到了 编译阶段,即在编译阶段将目标机器的二进制代码翻译为宿主平台的二进制代码。模拟器运 行时直接执行翻译后的宿主平台代码,完全省去了运行时的译码和翻译开销,因而效率也最 高。但静态翻译方式不能提供对自修改代码的支持,缺乏通用性。 2.2 外部设备的模拟 在实现外部设备的模拟时,需要考虑

文档评论(0)

tangtianbao1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档