Pre-fetching for improved core interfacing

Reuse of cores can reduce design time for systems-on-a-chip. Such reuse is dependent on being able to easily interface a core to any bus. To enable such interfacing, many propose separating a core's interface from its internals. However, this separation can lead to a performance penalty when reading a core's internal registers. We introduce pre-fetching, which is analogous to caching, as a technique to reduce or eliminate this performance penalty, involving a tradeoff with power and size. We describe the pre-fetching technique, classify different types of registers, describe our initial pre-fetching architectures and heuristics for certain classes of registers, and highlight experiments demonstrating the performance improvements and size/power tradeoffs.

[1]  Gaetano Borriello,et al.  Interface co-synthesis techniques for embedded systems , 1995, ICCAD.

[2]  Frank Vahid,et al.  An object-oriented communication library for hardware-software codesign , 1997, Proceedings of 5th International Workshop on Hardware/Software Co Design. Codes/CASHE '97.

[3]  Vijay K. Madisetti,et al.  Interface Design for Core-Based Systems , 1997, IEEE Des. Test Comput..

[4]  Frank Vahid,et al.  An Object-Oriented Communication Library for Hardware-Software CoDesign , 1997, CODES.

[5]  Frank Vahid,et al.  The case for a configure-and-execute paradigm , 1999, Proceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450).

[6]  Hugo De Man,et al.  Constructing application-specific heterogeneous embedded architectures from custom HW/SW applications , 1996, DAC '96.

[7]  Alberto L. Sangiovanni-Vincentelli,et al.  Interface-based design , 1997, DAC.

[8]  Manfred Glesner,et al.  Bus-Based Communication Synthesis on System-Level , 1996, TODE.