| 摘要: |
| 寄存器结构及其分配是软件流水算法的关键之一.为支持多重循环的软件流水,该文提出一种新颖的寄存器结构:半共享跳跃式流水寄存器堆.它可以有效地解决多重循环软件流水下的特殊问题,即:同层次和跨层次的寄存器重命名问题以及断流问题;有效地消除外层循环的体间读写相关,提高程序的指令级并行度.它有3种分配方式可供灵活使用:单个寄存器、流水寄存器和寄存器组方式.流水寄存器方式对生存期确定的、局限于一个循环层次的寄存器重命名问题提供简单而有效的支持.寄存器组分配方式解决了多重循环软件流水时变量生存期不确定的情况.跳跃操作为 |
| 关键词: 指令级并行,寄存器堆,流水寄存器,数据相关,软件流水. |
| DOI: |
| 分类号: |
| 基金项目:本文研究得到国家自然科学基金(No.69773028)资助. |
|
| A Novel Register File Structure Supporting for Software Pipelining of Nested Loops |
|
RONG Hong-bo,TANG Zhi-zhong
|
| Abstract: |
| The structure and allocation of the register file is a key factor affecting the performance of software pipelining.To support software pipelining of nested loops,a novel register file,partly-shared leaping pipeline register file,is presented and its allocation is discussed.The register file effectively addresses the special problems in software pipelining nested loops,i.e.,intra- and inter-level register renaming,and iteration discontinuity.Three allocation styles are designed for flexible application:single,pipeline and groupe register styles.Pipeline registers effectively supports intra-level register renaming with deterministic lifetime.A variable,which generally has deterministic lifetime,may have non-deterministic lifetime in software pipelining nested loops.Group registers address such a problem.To make a paused iteration continue execution again,a leaping operation provides quick data transmission between registers.The engineering practice has proved the efficiency of the structure and its allocation method. |
| Key words: Instruction-Level parallelism,register file,pipeline register,data dependence,software pipelining. |