● 摘要
内存管理单元(Memory Management Unit,MMU)是大多数当代处理器支持虚拟存储机制的关键部件,其执行效率所导致的系统整体性能损失随着体系结构的发展日益显著,从而使得深入理解MMU的性能影响因素占有重要的地位。嵌入式系统全系统模拟趋势的出现为更加深入和全面的理解MMU的行为及性能特性提供了可能,然而全系统模拟环境中尤为突出的模拟精确度与速度之间的矛盾使得其中的MMU建模具有独特的挑战性,对设计选择的性能投影往往以昂贵的时间消耗为代价,而当前大多数全系统模拟器的开发则趋于牺牲MMU的精确度来获取更加高效的执行速度。如何对模拟的精确度及速度进行良好的折衷,从而尽可能快的获得用户关注的适宜精确度的结果,成为全系统模拟环境中MMU建模亟待解决的问题。针对上述问题,本文的主要工作和取得的成果如下:1.在观察和分析了全系统模拟器工作集单次执行过程中对于不同执行区域关注点的差异性基础上,通过采用模拟粒度的调整来进行MMU模拟速度与模拟精确度的折衷,从而以高精确度详细执行用户关注的代码区域,而对于用户不关注的部分则以牺牲精确度来换取快速的模拟推进速度。2.在分析现有多精确度模拟粒度调整方法的基础上,采用了功能与性能解耦的模拟器组织形式,通过功能模型独立执行或者与不同实现粒度的性能模型之间基于Trace驱动的协作来提供不同精确度的模拟结果,从而最大限度的对已验证的MMU功能性实现进行了重用,并将其作为不同性能模型验证中的黄金参考。3.对于多精确度模拟在粒度调整中所面临的状态一致性维护问题,根据实际的解耦组织实现形式,基于对功能模型中所缓存的历史状态信息的重用设计了基于时标比较的TLB微架构状态重建策略,从而支持对性能模型初始状态的预热。4.将Trace缓存及驱动、状态一致性维护以及模拟粒度控制封装为统一的映射层模块,最终实现了功能模拟层、性能模拟层以及映射层三层结构,并基于面向对象的模块化设计方法以及良好定义的软件体系结构实现了事务级抽象层次上的MMU模拟模型。