论文部分内容阅读
程序的性能分析对于发现软件的性能瓶颈,开展性能优化有重要的意义,在如今软件功能日益复杂,规模日益庞大的形势下,传统的手工性能优化已经无法满足需求,软件人员亟需准确有效的性能分析工具以助力性能优化。业界主流的性能分析工具普遍利用了处理器内的硬件性能计数器(Hardware Performance Counter)以获取处理器内部状态,并据此定位性能瓶颈,进行性能优化。
龙芯2F处理器是由中国科学院计算技术研究所开发的一款国产高性能RISC处理器,该处理器实现了64位MIPS-like指令集、多发射、乱序执行、转移预测等特征,并且在处理器内部实现了两个硬件性能计数器。主流的处理器能够应用硬件性能计数器记录多种处理器事件,而龙芯2F处理器中的性能计数器实现较为简单,能够支持的事件有限,这导致了软件人员难以利用其开展深入的性能分析。
本文开发了基于软件模拟的龙芯处理器性能分析工具。主要工作及贡献如下:
1)基于.x86平台的二进制分析工具DynamoRIO,开发移植了龙芯处理器的二进制分析工具Loongson Dynamic Runtime(以下简称LDR),该工具采用动态二进制插桩和Code Cache技术,可以获得实际工作负载下完整的运行时信息,如访存Trace、分支跳转Trace等,同时通过定义一套接口,可以在机器指令的粒度上方便的进行各种二进制操作,获得其他运行时数据;
2)将LDR应用到龙芯2F的CACHE模拟中,较好地弥补龙芯2F硬件性能计数器的不足。具体包括:开发了针对龙芯2F的CACHE结构模拟器LCACHE,结合LDR生成的访存Trace,产生了模拟结果,并将该结果与龙芯2F处理器上应用硬件性能计数器的结果进行了比较,取得较好的效果。