UNCACHED attribute

Top  Previous  Next

The C6000 cache has some unfortunate properties that can have a significant negative effect on performance. In particular, because the cache cannot maintain coherence with external memory when DMA transfers are involved, all link transfers using external memory must start by flushing the associated parts of the cache. This is very slow (it has been measured at about 0.25ms/MB) and can lead to large gaps between consecutive transfers. In such cases it may be more effective to prevent the external memory from being cached. The UNCACHED processor statement does this by clearing selected memory attribute registers (MAR).

 

There are two forms of the attribute.

 

UNCACHED = 0x80000000

UNCACHED = 0x80000000:0x8FFFFFFF

 

The first form clears the MAR associated with the given address. The second form clears all MARs associated with the inclusive range of addresses. For example:

 

PROCESSOR root SMQ UNCACHED=0xA0000000