论文部分内容阅读
面对日益复杂的设计和有限的设计时间,如何有效地进行性能分析和优化,是摆在每一个处理器设计者面前的问题。本文紧密结合一个高性能微处理器(龙芯2号[HZL05])的设计,从性能分析环境设计和性能分析方法着手,系统地研究了微处理器性能分析和优化问题,并根据性能分析结果提出了若干龙芯2号结构优化方法。性能分析环境的核心是目标处理器和工作负载的模型,这些模型的准确性、速度和灵活性是其关键指标。处理器的RTL模型是一种准确的模型,但是它的速度和灵活性不能满足性能分析的要求。本文提出了一种使用高级语言对硬件建模的方法,并使用它建立了龙芯2号的信号级模拟器ICT-godson。ICT-godson和RTL的逻辑行为相同,但速度可以比RTL仿真高一个数量级以上。ICT-godson部分解决了运行速度的问题,但由于它还是模拟了所有硬件信号和行为,其速度和灵活性依然受到比较大的限制。为此本文进一步建立了一种更高层的模拟器Sim-godson。Sim-godson是一个用C语言实现的龙芯2号处理器性能模型。执行驱动的组织方式、高效的数据结构和算法以及模块化实现保证了Sim-godson的速度和灵活性。Sim-godson每秒能够模拟约500K个处理器周期,和目前公开的最快的详细模拟器相当。Sim-godson支持大程序快速评估,能够在一个小时内准确地给出SPEC CPU2000程序的性能数据。Sim-godson同时支持用户级模拟和全系统模拟,既能满足不同场合的要求,还能方便地隔离操作系统和I/O对程序性能的影响。本文还为Sim-godson建立了一个完整的验证流程,它能够有效地控制模拟器的误差。为了充分满足不同设计阶段和设计目的的需求,性能分析环境应该由一组工具组成。除了ICT-godson和Sim-godson两种高级语言性能模型,本文建立的性能分析环境还包括RTL和FPGA仿真环境以及一些辅助的软件工具。RTL和FPGA主要用于验证高级语言模型,各种辅助工具可以用于工作负载的分析和优化。本文为ICT-godson和Sim-godson模拟器实现了多角度的数据收集。这种方法能够从各个侧面体现目标处理器的行为,帮助设计人员发现性能瓶颈。为了更深入地理解高性能微处理器的行为,本文进一步考察了一些瓶颈分析方法。这些方法能够用来系统地确定处理器内部各类瓶颈因素的重要程度以及它们之间的关系。最后,本文详细地讨论了龙芯2号性能分析和优化工作。我们展示了多角度的数据收集方法的实际应用,分析了龙芯2号的瓶颈,并讨论了基于性能分析的一些优化,包括Load猜测优化、存储系统优化等。本文还讨论了对SPEC CPU2000工作负载的分析,以及编译器和操作系统对性能的影响。实践证明,本文所建立的性能分析环境和分析方法能很好地满足实际高性能微处理器性能分析和优化的需求。