Evaluating the Use of Register Queues in Software Pipelined Loops

  • Authors:
  • Gary S. Tyson;Mikhail Smelyanskiy;Edward S. Davidson

  • Affiliations:
  • Univ. of Michigan, Ann Arbor;Univ. of Michigan, Ann Arbor;Univ. of Michigan, Ann Arbor

  • Venue:
  • IEEE Transactions on Computers - Special issue on the parallel architecture and compilation techniques conference
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper, we examine the effectiveness of a new hardware mechanism, called Register Queues (RQs), which effectively decouples the architected register space from the physical registers. Using RQs, the compiler can allocate physical registers to store live values in the software pipelined loop while minimizing the pressure placed on architected registers. We show that decoupling the architected register space from the physical register space can greatly increase the applicability of software pipelining, even as memory latencies increase. RQs combine the major aspects of existing rotating register file and register connection techniques to generate efficient software pipeline schedules. Through the use of RQs, we can minimize the register pressure and code expansion caused by software pipelining. We demonstrate the effect of incorporating register queues and software pipelining with 983 loops taken from the Perfect Club, the SPEC suites, and the Livermore Kernels.