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.