论文部分内容阅读
对于几乎所有的计算机架构研究和设计,由于制作真实CPU原型来分析微架构的性能和行为需要极高的设计成本和极长的研发周期,同时不断提出的新技术如多核、超标量的出现也需要CPU微架构快速的更新和迭代,因此使用CPU模拟器是让未来架构的定量评估成为可能的重要方式。模拟器通过帮助研究人员快速评估大量架构设计的性能,从而降低项目的成本和时间。然而,由于模拟器设计和实现极其复杂,同时模拟器经常模拟的程序是那些应该运行在硅芯片上的程序,当前大多数周期精确模拟器的执行速度与真实硬件相比是极慢的,因此模拟一个基准测试程序集中的所有程序是几乎不可能的。为了降低模拟时间,研究人员提出了各种各样的解决方案,例如选择模拟基准程序集中的一个子集,使用减小后的输入集,或者选择程序中有代表性的程序段进行模拟。但是这些研究往往只能用于特定的领域,而且目前并没有一个完整的框架支持这些加速技术。 本研究提出了一种低耦合于实际使用模拟器的设计方案,通过对于整个系统的模块化设计,可以容易地将现有的加速技术作为一个模块整合进系统,并且提出了一个不同于这些加速技术的新方法,即利用集群来并行执行模拟。这样不仅能利用到所有的计算资源,大大节省模拟时间,而且能帮助研究人员快速进行计算机体系的设计和评估。并利用我们的加速框架对于SPEC CPU2006基准程序集合进行了分析,选出了有代表性的子集,进一步缩短了未来利用该基准程序集运行模拟的时间。 基于上述设计思想,首先,本研究以Celery分布式队列为基础,研究了利用集群计算资源同时执行不同的模拟任务进行任务处理的方法;其次,研究了如何将SimPoint加速技术集成进我们的框架。基于这些研究,首先从模拟器的并行加速框架功能建模角度,开发了一个CPU模拟器并行加速框架,与具体模拟器和现有加速技术松耦合,供研究人员使用,之后,利用加速框架对于SPEC CPU2006基准程序集进行模拟执行,获取模拟的各种性能数据,并结合程序各自的架构无关的属性,通过统计和聚类技术选择出了有代表性的子集,进一步提高了加速效果。将模拟器执行一次性能验证的时候缩短到了15分钟之内。最后本文总结和分析了当前研究的优势和不足以及未来的研究方向。