● 摘要
指令集模拟器是当今处理器设计及工程领域非常重要的一部分,它是传统计算机体系结构设计中必不可少的工具,能够帮助设计者验证新型处理器[24],设计和验证新的编译器,帮助调试和评估操作系统[25]等等。指令集模拟器也在嵌入式系统开发中扮演着重要的角色,它使用户在缺乏真实硬件的情况下,便可完成对软件的调试工作[23],从而降低了研发成本。因此,其在研究领域得到了广泛重视,历史上也出现了许多的模拟器。如SimOS,QEMU,SimpleScalar等等。然而,随着单核处理器能力的极限以及多核处理器的出现,指令集模拟又出现了新的挑战。在此背景下,本文设计并实现了针对MPC8641D开发板的双核PowerPC E600核模拟器,主要包含针对E600处理器的指令集部分的模拟和内存管理部分的模拟。本文设计并实现的MPC8641D集成处理器核模拟器的主要工作有:1) 设计并模拟MPC8641D的核心PowerPC E600处理器的指令集模拟器,主要包括解释模拟和动态翻译模拟。2) 设计并模拟E600 处理器的内存管理模块,主要包括地址转换,内存访问异常处理和Cache等特性。3) 提出了一种基于SystemC的并行多核指令集模拟框架。实现了对多核处理器硬件的高保真模拟。4) 设计并模拟了MPC8641D开发板的一些典型外设,包括UART,FLASH,MPIC。5) 在以上工作的基础上并结合已有的嵌入式全系统模拟平台—SimSoc,本文构建了针对MPC8641D开发板的全系统模拟平台。最后本文给出了针对以上各个模拟部件详细的测试用例。实验结果表明,指令集模拟部件和内存管理部件正确的完成了对硬件的功能模拟。并最终可以在模拟器上通过U-BOOT完成对LINUX系统的加载工作,获得相当的速度。同时可以使用SimSoc提供的GDB STUB对LINUX系统进行各种调试工作。最后本文还定量的分析了解释型和动态翻译型指令集模拟的特点,并给出了理论上的加速比和进一步优化的方向。
相关内容
相关标签