论文部分内容阅读
现代计算机系统日趋复杂,处理器、存储系统、输入输出系统、操作系统、编译器以及应用程序对计算机系统的整体性能都有重要影响,所以需要我们采用能够真实反映客观实际的方法来研究、分析和发现制约机器性能提高的真正瓶颈,以及评价某一具体技术对机器性能的改进程度.系统级模拟器模拟完整的硬件系统,所以能够在系统级模拟器上搭建完整的软件运行环境,从而系统级模拟器可以支持各项研究的开展.例如:体系结构设计人员可以通过修改系统级模拟器的配置或者模拟新的硬件模型来评测不同硬件设计的优劣;操作系统设计人员可以在系统级模拟器上开发操作系统,因为系统级模拟器可以提供与目标机(target machine)硬件系统一致的接口;性能评测人员可以使用系统级模拟器统计软件负载执行的细节,从而分析出硬件、操作系统及应用程序的性能瓶颈.系统级模拟器的设计需要考虑三方面的问题:模拟器的性能(performance)、可适性(flexibility)与模拟粒度(granularity).模拟器的性能是指模拟器运行软件程序的速度;可适性是指系统级模拟器是否易于修改,支持模拟不同的硬件设计;粒度是指系统级模拟器模拟硬件系统以何种方式进行:是模拟硬件系统的功能,还是模拟硬件系统的结构.如果是模拟功能,逐条模拟指令的执行即可,而如果要模拟结构,则需要模拟硬件系统每个周期的行为.解决以上问题有诸多方式,系统级模拟器Unilator的解决方案是定义一种通用结构框架,这种结构框架具有多维扩展空间,不同的扩展能够解决不同的问题.扩展中包括可重定向(retargetable)及多粒度模拟:可重定向指Unilator易于支持不同目标机系统的模拟;多粒度模拟指Unilator能够支持指令级模拟,也能支持周期级模拟.在这一框架内,对不同目标机系统的模拟及不同粒度的模拟能够以同一扩展方式进行.Unilator的设计与实现借鉴了Bochs的结构与SimpleScalar的指令模板机制(ADT),目前已经完成Unilator的框架及可重定向设计,能够完整的模拟两种目标机系统:NETWINDER与Unity-863网络计算机.该文主要论述Unilator框架及可重定向扩展的设计、实现与验证.通过重定向到两种特定目标机的验证工作,可以得出结论:Unilator模拟器的框架及可重定向设计达到了预期目标,Unilator易于支持不同目标机的系统级模拟.