摘要

在嵌入式领域,计算机系统模拟器是研究与原型开发的重要工具.对于采用解释执行的模拟器,其CPU模型的译码过程会影响性能,如何提升译码过程的性能是提高仿真效率的关键问题之一.此外,对于无标准测试集的指令集来说(例如自定义指令等),手动编写指令功能测试的开发效率较低,并且其与实现译码过程所需的指令信息基本相同.为解决上述问题,提出一个代码生成方案,输入一份指令集描述,输出针对gem5优化后的指令集实现代码和功能测试代码.首先,扩展gem5的指令集描述语言,将其分为编码描述、功能描述和测试描述.其次,针对gem5优化译码决策树构建算法,并为gem5生成译码模块代码、指令集实现代码和指令功能测试用例.最后,以Cortex-M3指令集为例与原方案相比,总生成时间减少约64%,编译后的可执行文件代码大小减少约407kb,性能提升约13%,并且能够提高开发效率.