Abstract
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 by using a bus wrapper. However, this separation can lead to a performance penalty when reading a core's internal registers. In this paper, we introduce prefetching, 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 prefetching technique, classify different types of registers, describe our initial prefetching architectures and heuristics for certain classes of registers, and highlight experiments demonstrating the performance improvements and size/power tradeoffs. We further introduce a technique for automatically designing a prefetch unit that satisfies user-imposed register-access constraints. The technique benefits from mapping the prefetching problem to the well-known real-time process scheduling problem. We then extend the technique to allow user-specified register interdependencies, using a Petri net model, resulting in even mere efficient prefetch schedules.
Original language | English (US) |
---|---|
Pages (from-to) | 58-90 |
Number of pages | 33 |
Journal | ACM Transactions on Design Automation of Electronic Systems |
Volume | 7 |
Issue number | 1 |
DOIs | |
State | Published - Jan 2002 |
Keywords
- Bus wrapper
- Cores
- Design reuse
- Intellectual property
- Interfacing
- On-chip bus
- PVCI
- System-on-a-chip
- VSIA
ASJC Scopus subject areas
- Computer Science Applications
- Computer Graphics and Computer-Aided Design
- Electrical and Electronic Engineering