论文部分内容阅读
指令集仿真器是针对嵌入式系统的处理器硬件开发的软件模拟环境,它采用编程语言对包括处理器、算数逻辑单元、高速缓存、寄存器堆、存储系统等在内的计算机体系结构组成模块进行描述,指令集仿真器不仅承担了系统级验证中功能验证部分的正确性评判工作,还常被用作处理器体系结构评估和处理器流片前的应用软件开发调试工具。仿真速度是制约当前指令集仿真器应用范围的最主要因素。为适应嵌入式系统开发过程中对指令集仿真器的仿真速度要求,文章在现有的静态多核指令集仿真器基础上,提出了一种改进的多核指令集仿真技术。文章所做的优化工作包括:在不增加额外时间开销的前提下,将仿真器由单一工作模式增加为动态仿真和动态库函数执行两种工作模式,仿真器根据指令块的热度和动态库函数转换情况进行模式的动态切换;动态仿真模式下的指令译码阶段引入动态译码缓存,保存已译码指令的操作码和操作数等信息,避免重复译码;将仿真器由单线程工作扩展为多线程并行执行。新增的子线程由主线程在仿真伊始开辟,与仿真器主线程并行工作,对待仿真文件中的指令段内容进行剖析,将符合转换条件的指令块生成对应的C函数,并编译得到动态库函数,供主线程在动态库函数工作模式下调用,实现由指令块仿真替代原有的单条指令仿真,降低单条指令仿真时需要单独译码和执行带来的时间开销。文章提出的指令集仿真器优化技术已成功应用于针对IME-Diamond DSP(Digital Signal Processor)处理器所开发的软件仿真环境——多核优化仿真器的设计中。在搭建的软件测试平台下采用实际应用程序对仿真器进行功能正确性和仿真性能测试,实验结果表明文章提出的优化技术能够有效地得提升仿真速度,多核优化仿真器较现有仿真器的仿真速度提升约20%,平均仿真速度约为7mips(million instruction per second),有助于嵌入式系统开发工作的开展。