Comparison of Bank Change Mechanisms for Banked Reduced Encoding Architectures

  • Authors:
  • Je-Hyung Lee;Soo-Mook Moon;Hyung-Kyu Choi

  • Affiliations:
  • -;-;-

  • Venue:
  • CSE '09 Proceedings of the 2009 International Conference on Computational Science and Engineering - Volume 02
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Embedded systems often require small code size due to their tight memory constraints. Although the reduced encoding architectures such as the ARM THUMB or the MIPS-16 can successfully reduce the code size due to its half-sized instructions, they suffer from higher spills due to their shortened register fields which constrain available registers, thus affecting the code size and the performance negatively. One solution is reconstructing the original register file into the banked one and allowing only one bank to be active at a time using a bank change instruction. This can make all of the original registers available for register allocation, thus reducing the spills. This requires efficient banked register allocation by partitioning the code into two regions, one for each register bank. One important factor that affects the partitioning is the bank change mechanism, and two bank change mechanisms have been proposed, toggling and selection. Toggling simplifies the code partitioning, while selection is flexible in the code partitioning which, in theory, can distribute the register pressure better. This paper evaluates both mechanisms in the same context of dual register banks to understand their impact on the code size and the performance. Our experimental results indicate that selection fails to achieve smaller code or better performance than toggling due to excessive inter-bank copies even when it can partition regions aggressively.