计算机应用 ›› 2010, Vol. 30 ›› Issue (1): 274-276.

• 典型应用 • 上一篇    下一篇

一种基于寄存器压力的VLIW DSP分簇算法

雷一鸣1,洪一2,徐云3,姜海涛3   

  1. 1. 国家高性能计算中心(合肥)
    2. 中国电子科技集团第38研究所
    3. 中国科学技术大学计算机科学技术学院
  • 收稿日期:2009-07-16 修回日期:2009-09-11 发布日期:2010-01-01 出版日期:2010-01-01
  • 通讯作者: 雷一鸣

Register based algorithm for VLIW DSP cluster assignment

  • Received:2009-07-16 Revised:2009-09-11 Online:2010-01-01 Published:2010-01-01
  • Contact: Yi-ming Lei

摘要: 寄存器是程序运行时最宝贵的资源之一,软件流水在对VLIW DSP指令调度的同时,会显著增加寄存器的压力,从而导致寄存器溢出,软件流水中止。在以往的研究中,软件流水之前的指令分簇会更多地考虑指令并行性,往往会把寄存器的压力交给寄存器分配阶段,当物理寄存器不够分配时会造成寄存器溢出。通过考察指令运行时的寄存器压力情况对指令进行分簇,这样可根据各个簇的寄存器压力的动态信息减少寄存器的溢出,提高指令运行效率。

关键词: 超长指令字, 编译器, 分簇, 寄存器压力, 软件流水

Abstract: Register is one of the most valuable resources. Software pipelining could bring about register pressure while scheduling instruction of VLIW DSP, which would cause register spill and software pipelining suspension. In the past research, instruction clustering pay more attension on instruction parallelism, and pass the register pressure to register allocator. In this paper, the authors clustered instruction through runtime inspection of the register command pressure. This is a dynamic method, according to all the pressure of each clusters register, which can reduce register spill and improve the efficiency of the program.

Key words: Very Long Instruction Word (VLIW), compiler, clustering, register pressure, software pipelining