资 源 简 介
指令集仿真器是目前嵌入式系统研究中一个极其重要的领域,一个灵活高效且准确度高的仿真器不仅可以实现对嵌入式系统硬件环境的仿真,而且是现代微处理器结构设计过程中性能评估的重要工具. 仿真器的性能已经成为影响整个设计效率的重要因素,在现有的指令集仿真技术中,编译型仿真技术虽然可以获得高的仿真速度,但其对应用的假设过于严格,限制了其在商业领域中的应用;解释型仿真器虽被普遍使用,但其缺点也很明显,由于模拟过程中需要耗费大量时间用于指令译码,解释型模拟器速度往往很有限,使用性能较低。由此可见,如何减少仿真过程中的指令译码时间,是提高仿真器的性能的关键。 本文旨在提出一个指令集仿真器的原型,重点解决指令解码过程中的速度瓶颈,在其基础可以进行扩充和改进,以适应不同硬件平台的需要。文章首先从ARM指令集的指令功能和编码格式入手,通过分析和比较找出了一般常用指令的编码和实现规律,并在此基础上进行了高级语言的描述,其后提出了改进版解释型指令集仿真器的设计方案,包括为提高仿真器性能,减少译码时间,创新性的在流程设计中加入了预解码的步骤,同时用自己设计的压缩算法解决了因预解码产生大量译码信息而带来的内存过度消耗难题。接下来,描述了仿真器的实现,包括指令的取指、译码、执行等基本功能,并着重描述了如何通过划分存储域和存储块的方式模拟真实存储器的读写访问实现。 另外,需要特别指出的是,针对仿真器中普遍存在的调试难问题,本文从一线程序开发人员的角度,在调试模块的设计中除了断点设置、程序暂停、恢复等基本功能外,还添加了各类监视设备和程序跟踪的功能,以期能提高本仿真器的实用性。 在文章的结尾,提出了仿真器的验证方案,并按照该方案对仿真器进行了功能和性能上的验证,最后对进一步的工作进行了展望。