摘要
编译器在静态分析方式下很难对程序的非线性规律访存操作进行正确的数据预取.但采用pro-filing技术可以得到程序运行时候的访存规律,利用这些信息可以精确地插入数据预取指令.基于strideprofiling技术,提出了新的信息收集类型strideiterative,更精确地反映程序执行时访存指令的实际行为,并结合别名分析的结果调整对同一cache行的数据预取,得到比普通数据预取更好的预取性能.安腾2上运行CPU2000的12个整型测试例子平均有8.54%的性能提升,其中mcf性能提升达到了77.87%.
By static analysis, the compiler can hardly correctly prefetch data that are nonlinear accessed. But by using profiling techniques one can get the regulation by which the program accesses memory, and then by using these profiling information, the compiler is guided to accurately insert prefetch instructions. Based on stride profiling technique, a new information type named stride iterative is put forward, which is more accurate than normal profiling. Together with the alias information to adjust the data prefetch for the same cache line, the compiler gets a better performance than the normal data prefetch. The CPU2000 12 INT cases get 8.54 96 performance improvement on the average, and mcf gets an 77.87% performance increase.
出处
《计算机研究与发展》
EI
CSCD
北大核心
2007年第2期355-360,共6页
Journal of Computer Research and Development
基金
国家"八六三"高技术研究发展计划软件重大专项基金项目(2004AA1Z2200)