Operand Registers and Explicit Operand Forwarding

Operand register files are small, inexpensive register files that are integrated with function units in the execute stage of the pipeline, effectively extending the pipeline operand registers into register files. Explicit operand forwarding lets software opportunistically orchestrate the routing of operands through the forwarding network to avoid writing ephemeral values to registers. Both mechanisms let software capture short-term reuse and locality close to the function units, improving energy efficiency by allowing a significant fraction of operands to be delivered from inexpensive registers that are integrated with the function units. An evaluation shows that capturing operand bandwidth close to the function units allows operand registers to reduce the energy consumed in the register files and forwarding network of an embedded processor by 61%, and allows explicit forwarding to reduce the energy consumed by 26%.

[1]  William J. Dally,et al.  Register organization for media processing , 2000, Proceedings Sixth International Symposium on High-Performance Computer Architecture. HPCA-6 (Cat. No.PR00550).

[2]  David Ruimy Gonzales Micro-RISC architecture for the wireless market , 1999, IEEE Micro.

[3]  Javier Zalamea,et al.  Power-efficient VLIW design using clustering and widening , 2008, Int. J. Embed. Syst..

[4]  Mateo Valero,et al.  Multiple-banked register file architectures , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[5]  Norman P. Jouppi,et al.  The Multicluster Architecture: Reducing Processor Cycle Time Through Partitioning , 1999, International Journal of Parallel Programming.

[6]  Richard M. Russell,et al.  The CRAY-1 computer system , 1978, CACM.

[7]  Javier Zalamea,et al.  Two-level hierarchical register file organization for VLIW processors , 2000, MICRO 33.

[8]  Roy F. Touzeau A Fortran compiler for the FPS-164 scientific computer , 1984, SIGPLAN '84.

[9]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..