节点文献
IA-64中软件流水失败的解决方法
Reducing software pipelining failure on IA-64
【摘要】 软件流水是开发指令级并行性的重要方法之一。IA-64是支持软件流水的EPIC(显式并行指令计算)体系结构。通过对NASBenchmarks和MediaBench中软件流水所需的寄存器进行分析,指出静态通用寄存器是导致软件流水失败的主要因素。提出了解决IA-64中软件流水失败的两种方法:限制循环展开因子的启发式算法(RSU)和堆栈寄存器分配算法(SRA)。RSU通过适当减小循环展开因子,增加了软件流水的成功率;SRA在静态寄存器和旋转寄存器之间达到了动态的平衡,提高了寄存器的利用率,更有效地提高了编译器的性能。
【Abstract】 Software pipelining is a l oo p scheduling technique that explores instruction level parallelism by overlappin g execution of several consecutive iterations. IA-64 is a new EPIC architecture that provides hardware support for software pipelining. Analysis of the registe r requirements for software pipelined loops showed that the static general regis ter played a key role in software pipelining failure. A heuristic algorithm call ed register sensitive unrolling was developed to increase the number of software pipelined loops by limiting unrolling factors. The stacked register allocation algorithm was developed to improve register usage efficiency by allocating stack ed general registers as static general registers, and the algorithm markedly boosts compiler perform ance.
【Key words】 software; software pipelining; IA-64; loop unrolling; register allocation;
- 【文献出处】 清华大学学报(自然科学版) ,Journal of Tsinghua University(Science and Technology) , 编辑部邮箱 ,2003年07期
- 【分类号】TP311.5
- 【被引频次】5
- 【下载频次】66