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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Application Level Memory Model<br />

Non-shareable Normal memory<br />

For a Normal memory region, the Non-shareable attribute identifies Normal memory that is likely to be<br />

accessed only by a single processor.<br />

A region of Normal memory with the Non-shareable attribute does not have any requirement to make data<br />

accesses by different observers coherent, unless the memory is non-cacheable. If other observers share the<br />

memory system, software must use cache maintenance operations if the presence of caches might lead to<br />

coherency issues when communicating between the observers. This cache maintenance requirement is in<br />

addition to the barrier operations that are required to ensure memory ordering.<br />

For Non-shareable Normal memory, the Load-Exclusive <strong>and</strong> Store-Exclusive synchronization primitives do<br />

not take account of the possibility of accesses by more than one observer.<br />

Shareable, Inner Shareable, <strong>and</strong> Outer Shareable Normal memory<br />

For Normal memory, the Shareable <strong>and</strong> Outer Shareable memory attributes describe Normal memory that<br />

is expected to be accessed by multiple processors or other system masters:<br />

In a VMSA implementation, Normal memory that has the Shareable attribute but not the Outer<br />

Shareable attribute assigned is described as having the Inner Shareable attribute.<br />

In a PMSA implementation, no distinction is made between Inner Shareable <strong>and</strong> Outer Shareable<br />

Normal memory, <strong>and</strong> you cannot assign the Outer Shareable attribute to Normal memory regions.<br />

A region of Normal memory with the Shareable attribute is one for which data accesses to memory by<br />

different observers within the same shareability domain are coherent.<br />

The Outer Shareable attribute is introduced in <strong>ARM</strong>v7, <strong>and</strong> can be applied only to a Normal memory region<br />

in a VMSA implementation that has the Shareable attribute assigned. It creates three levels of shareability<br />

for a Normal memory region:<br />

Non-shareable<br />

A Normal memory region that does not have the Shareable attribute assigned.<br />

Inner Shareable<br />

A Normal memory region that has the Shareable attribute assigned, but not the Outer<br />

Shareable attribute.<br />

Outer Shareable<br />

A Normal memory region that has both the Shareable <strong>and</strong> the Outer Shareable attributes<br />

assigned.<br />

These attributes can be used to define sets of observers for which the shareability attributes make the data<br />

or unified caches transparent for data accesses. The sets of observers that are affected by the shareability<br />

attributes are described as shareability domains. The details of the use of these attributes are<br />

system-specific. Example A3-1 on page A3-31 shows how they might be used:<br />

A3-30 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!