05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Application Level Memory Model<br />

Write-Through Cacheable, Write-Back Cacheable <strong>and</strong> Non-cacheable Normal<br />

memory<br />

In addition to being Outer Shareable, Inner Shareable or Non-shareable, each region of Normal memory can<br />

be marked as being one of:<br />

Write-Through Cacheable<br />

Write-Back Cacheable, with an additional qualifier that marks it as one of:<br />

— Write-Back, Write-Allocate<br />

— Write-Back, no Write-Allocate<br />

Non-cacheable.<br />

If the same memory locations are marked as having different cacheability attributes, for example by the use<br />

of aliases in a virtual to physical address mapping, behavior is UNPREDICTABLE.<br />

The cacheability attributes provide a mechanism of coherency control with observers that lie outside the<br />

shareability domain of a region of memory. In some cases, the use of Write-Through Cacheable or<br />

Non-cacheable regions of memory might provide a better mechanism for controlling coherency than the use<br />

of hardware coherency mechanisms or the use of cache maintenance routines. To this end, the architecture<br />

requires the following properties for Non-cacheable or Write-Through Cacheable memory:<br />

a completed write to a memory location that is Non-cacheable or Write-Through Cacheable for a<br />

level of cache made by an observer accessing the memory system inside the level of cache is visible<br />

to all observers accessing the memory system outside the level of cache without the need of explicit<br />

cache maintenance<br />

a completed write to a memory location that is Non-cacheable for a level of cache made by an<br />

observer accessing the memory system outside the level of cache is visible to all observers accessing<br />

the memory system inside the level of cache without the need of explicit cache maintenance.<br />

Note<br />

Implementations can also use the cacheability attributes to provide a performance hint regarding the<br />

performance benefit of caching. For example, it might be known to a programmer that a piece of memory<br />

is not going to be accessed again <strong>and</strong> would be better treated as Non-cacheable. The distinction between<br />

Write-Back Write-Allocate <strong>and</strong> Write-Back no Write-Allocate memory exists only as a hint for<br />

performance.<br />

The <strong>ARM</strong> architecture provides independent cacheability attributes for Normal memory for two conceptual<br />

levels of cache, the inner <strong>and</strong> the outer cache. The relationship between these conceptual levels of cache <strong>and</strong><br />

the implemented physical levels of cache is IMPLEMENTATION DEFINED, <strong>and</strong> can differ from the boundaries<br />

between the Inner <strong>and</strong> Outer Shareability domains. However:<br />

inner refers to the innermost caches, <strong>and</strong> always includes the lowest level of cache<br />

no cache controlled by the Inner cacheability attributes can lie outside a cache controlled by the Outer<br />

cacheability attributes<br />

an implementation might not have any outer cache.<br />

A3-32 Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DDI 0406B

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!