Effective exploitation of a zero overhead loop buffer

  • Authors:
  • Gang-Ryung Uh;Yuhong Wang;David Whalley;Sanjay Jinturkar;Chris Burns;Vincent Cao

  • Affiliations:
  • Lucent Technologies, Allentown, PA;Department of Computer Science, Florida State University, Tallahassee, FL;Department of Computer Science, Florida State University, Tallahassee, FL;Lucent Technologies, Allentown, PA;Lucent Technologies, Allentown, PA;Lucent Technologies, Allentown, PA

  • Venue:
  • Proceedings of the ACM SIGPLAN 1999 workshop on Languages, compilers, and tools for embedded systems
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

A Zero Overhead Loop Buffer (ZOLB) is an architectural feature that is commonly found in DSP processors. This buffer can be viewed as a compiler managed cache that contains a sequence of instructions that will be executed a specified number of times. Unlike techniques such as loop unrolling, a loop buffer is a hardware technique that can be used to minimize loop overhead without the penalty of increasing code size. In addition, a ZOLB also requires relatively little space and power, which are both important considerations for most DSP applications. This paper describes strategies for generating code to effectively use a ZOLB. The authors have found that many common improving transformations used by optimizing compilers to improve code on conventional architectures are shown (1) to allow more loops to be placed in a ZOLB and (2) to further reduce loop overhead of the loops placed in a ZOLB. The results given in this paper demonstrate that this architectural feature can often be exploited with substantial improvements in execution time and slight reductions in code size.