Developer’s Manual
January, 2004
195
Intel XScale® Core
Developer’s Manual
Optimization Guide
A.4.2.5.
Mini-data Cache
The mini-data cache is best used for data structures, which have short temporal lives, and/or cover
vast amounts of data space. Addressing these types of data spaces from the Data cache would
corrupt much if not all of the Data cache by evicting valuable data. Eviction of valuable data will
reduce performance. Placing this data instead in Mini-data cache memory region would prevent
Data cache corruption while providing the benefits of cached accesses.
A prime example of using the mini-data cache would be for caching the procedure call stack. The
stack can be allocated to the mini-data cache so that it’s use does not trash the main dcache. This
would keep local variables from global data.
Following are examples of data that could be assigned to mini-dcache:
•
The stack space of a frequently occurring interrupt, the stack is used only during the duration
of the interrupt, which is usually very small.
•
Video buffers, these are usual large and can occupy the whole cache.
Over use of the Mini-Data cache will thrash the cache. This is easy to do because the Mini-Data
cache only has two ways per set. For example, a loop which uses a simple statement such as:
for (i=0; I< IMAX; i++)
{
A[i] = B[i] + C[i];
}
Where A, B, and C reside in a mini-data cache memory region and each is array is aligned on a 1K
boundary will quickly thrash the cache.