Increasing Processor Performance Through Early Register Release

  • Authors:
  • Oguz Ergin;Deniz Balkan;Dmitry Ponomarev;Kanad Ghose

  • Affiliations:
  • State University of New York, Binghamton, NY;State University of New York, Binghamton, NY;State University of New York, Binghamton, NY;State University of New York, Binghamton, NY

  • Venue:
  • ICCD '04 Proceedings of the IEEE International Conference on Computer Design
  • Year:
  • 2004

Quantified Score

Hi-index 0.01

Visualization

Abstract

Modern superscalar microprocessors need sizable register files to support large number of in-flight instructions for exploiting ILP. An alternative to building large register files is to use smaller number of registers, but manage them more effectively. More efficient management of registers can also result in higher performance if the reduction of the register file size is not the goal. Traditional register file management mechanisms deallocate a physical register only when the next instruction with the same destination architectural register commits. We propose two complementary techniques for deallocating the register immediately after the instruction producing the register's value commits itself, without waiting for the commitment of the next instruction with the same destination. Our design relies on the use of a checkpointed register file (CRF), where a local shadow copy of each bitcell is used to temporarily save the early deallocated register values should they be needed to recover from branch mispredictions or to reconstruct the precise state after exceptions or interrupts. The proposed techniques outperform the previously proposed schemes for early deallocation of registers. For the register-constrained datapath configurations, our techniques result in up to 35% performance increase with 23.3% increase on the average across SPEC2000 benchmarks.