• DocumentCode
    1955376
  • Title

    Doubling the number of registers on ARM processors

  • Author

    Chiang, Hsu-Hung ; Cheng, Huang-Jia ; Hwang, Yuan-Shin

  • Author_Institution
    Dept. of Comput. Sci. & Inf. Eng., Nat. Taiwan Univ. of Sci. & Technol., Taipei, Taiwan
  • fYear
    2012
  • fDate
    25-25 Feb. 2012
  • Firstpage
    1
  • Lastpage
    8
  • Abstract
    It is critical that more architectural registers are available to the compiler and programmer, as a small number of architectural registers might hinder the compiler and programmer from producing efficient code. Although modern chip manufacturing processes could easily put many registers on an ARM processor, only 16 general registers are accessible by the compiler and programmer. Doubling the number of architectural registers requires adding another bit to each register field of instructions, and hence increases code size. One approach has been developed to use the underutilized condition bits to double the number of architectural registers from 16 to 32 but maintain the width of ARM instructions. Although performance gain can generally be achieved by most of benchmark programs on a 32-register ARM, this approach would still hurt performance for programs with high ratios of instructions that can be conditionalized. Therefore, a better approach would to keep the conditional execution feature even when the 4-bit condition field is used to encode the extra registers. This paper proposes to borrow the IT instruction from Thumb II ISA to represent the predicates of conditionalized instructions on the 32-register ARM. GCC and SimpleScalar/ARM have been modified to handle the new instruction format and the revised IT instruction, and experimental results have shown that performance can be improved by 10.4% on average for MediaBench II benchmarks on the 32-register ARM with conditional execution.
  • Keywords
    instruction sets; microprocessor chips; program compilers; ARM instructions; ARM processors; GCC; MediaBench II benchmarks; SimpleScalar; Thumb II ISA; architectural registers; compiler; condition field; conditional execution feature; general registers; instruction set architecture; programmer; Benchmark testing; Degradation; Encoding; Performance gain; Program processors; Registers; Thumb; Conditional Execution; ISA; Instruction Encoding; Registers;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Interaction between Compilers and Computer Architectures (INTERACT), 2012 16th Workshop on
  • Conference_Location
    New Orleans, LA
  • ISSN
    1550-6207
  • Print_ISBN
    978-1-4673-2613-1
  • Type

    conf

  • DOI
    10.1109/INTERACT.2012.6339620
  • Filename
    6339620