The Need for Large Register Files in Integer Codes

Abstract

Register allocation is an important optimization for high performance microprocessors but there is no consensus in the architecture or compiler communities as to the best number of registers to provide in an instruction set architecture. This paper discusses reasons why this situation has occurred and shows from a compiler perspective that, compared to the conventional 32-register file, 64 or more registers enables performance improvements from 5% to 20%. This is demonstrated with existing advanced compiler optimizations on the SPECint95 and SPEC2000 benchmarks. This work also documents that the optimizations eliminate cache hit operations, converting common-case cache hits to faster register accesses. Finally, this work provides additional measurements for the proper number of registers in a high-performance instruction set and shows that most programs can easily use 100 to 200 registers when multiple active functions are considered for simultaneous allocation to the register file.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jan 01, 2000
Accession Number
ADA461519

Entities

People

  • David Greene
  • Matthew Postiff
  • Trevor Mudge

Organizations

  • University of Michigan

Tags

Communities of Interest

  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Access Time
  • Algorithms
  • Boundaries
  • Compilers
  • Computations
  • Computer Programming
  • Computer Science
  • Computers
  • Computing System Architectures
  • Data Sets
  • Frequency
  • Instruction Set Architecture
  • Instructions
  • Measurement
  • Pressure Measurement
  • Simulations
  • Simulators

Fields of Study

  • Computer science

Readers

  • Applied Combinatorial Optimization and Logic Circuit Design.
  • Parallel and Distributed Computing.