Recently, several loop buffer designs have been proposed to reduce instruction fetch energy due to size and location advantage of loop buffer. Nevertheless, on design complexity dictates most loop buffer designs to store only innermost loops without forward branch or instructions within innermost loops before a forward branch. While program modeling shows that typical programs can best be represented with a simple loop model, many of then contain forward branches in their innermost loops. For example, MiBench spends 71% of execution time on innermost loops, and 27% of these innermost loops consist of forward branch(es). Hence, existing designs lead to limitation in reduction of instruction fetch energy. We propose a simple and effective way to cope with this complexity: since using BTB is a norm in most designs, if we add an extra bit in BTB, indicating if the loop buffer stores the fall-through or target trace after a within-the-innermost-loop forward branch, then much of the complexity can be avoided. Results with MiBench indicate that up to 14.1% of further reduction in instruction fetch energy, and only 1.8% hardware overhead in BTB, is introduced compared with the design without forward branch handling.
[1]
Frank Vahid,et al.
Tiny instruction caches for low power embedded systems
,
2003,
TECS.
[2]
Lea Hwang Lee,et al.
Low-Cost Embedded Program Loop Caching - Revisited
,
1999
.
[3]
Henk Corporaal,et al.
Clustered loop buffer organization for low energy VLIW embedded processors
,
2005,
IEEE Transactions on Computers.
[4]
Margaret Martonosi,et al.
Wattch: a framework for architectural-level power analysis and optimizations
,
2000,
Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).
[5]
Todd M. Austin,et al.
SimpleScalar: An Infrastructure for Computer System Modeling
,
2002,
Computer.
[6]
Sanjive Agarwala,et al.
Effective hardware-based two-way loop cache for high performance low power processors
,
2000,
Proceedings 2000 International Conference on Computer Design.
[7]
Trevor Mudge,et al.
MiBench: A free, commercially representative embedded benchmark suite
,
2001
.