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.

Common Memory System <strong>Architecture</strong> Features<br />

; Enter this code with containing the new 32-bit instruction. Use STRH in the first<br />

; line instead of STR for a 16-bit instruction.<br />

STR , [instruction location]<br />

Clean data cache by MVA to point of unification [instruction location]<br />

DSB ; Ensures visibility of the data cleaned from the data cache<br />

Invalidate instruction cache by MVA [instruction location]<br />

Invalidate BTC entry by MVA [instruction location]<br />

DSB ; Ensures completion of the instruction cache invalidation<br />

ISB<br />

B2.2.8 Multiprocessor effects on cache maintenance operations<br />

This section describes the multiprocessor effects on cache maintenance operations for the base <strong>ARM</strong>v7<br />

architecture <strong>and</strong> the base <strong>ARM</strong>v7 architecture with Multiprocessing Extensions.<br />

Base <strong>ARM</strong>v7 architecture<br />

The base <strong>ARM</strong>v7 architecture defines that all cache maintenance operations apply only to the caches<br />

directly attached to the processor on which the operation is executed. There is no requirement that cache<br />

maintenance operations influence all processors with which the data can be shared.<br />

In porting an architecturally portable multiprocessor operating system to <strong>ARM</strong>v7, when a cache<br />

maintenance operation is performed, Inter-Processor Interrupts (IPIs) must be used to inform other<br />

processors in a multiprocessor configuration that they must perform the equivalent operation.<br />

Multiprocessing Extensions<br />

To improve the implementation of multiprocessor systems, a set of extensions to <strong>ARM</strong>v7, called the<br />

Multiprocessing Extensions, has been introduced. These exp<strong>and</strong> the role of cache <strong>and</strong> branch predictor<br />

maintenance operations in the multiprocessing system. For the VMSA architecture, the Multiprocessing<br />

Extensions also extend the role of TLB operations. For more information see Multiprocessor effects on TLB<br />

maintenance operations on page B3-62.<br />

The extensions can be implemented in a uniprocessor system with no hardware support for cache coherency.<br />

In such a system, the Inner Shareable <strong>and</strong> Outer Shareable domains would be limited to being the single<br />

processor, <strong>and</strong> all instructions defined to apply to the Inner Shareable domains behave as aliases of the local<br />

operations.<br />

Data <strong>and</strong> Unified cache operations to the point of coherency<br />

The following instructions have an effect on data <strong>and</strong> unified caches to the point of coherency, <strong>and</strong> must<br />

affect the caches of other processors in the shareability domain described by the shareability attributes of<br />

the MVA passed with the instruction:<br />

invalidate data, or unified, cache line by MVA to the point of coherency (DCIMVAC)<br />

clean data, or unified, cache line by MVA to the point of coherency (DCCMVAC)<br />

clean <strong>and</strong> invalidate data (or unified) cache line by MVA to the point of coherency (DCCIMVAC).<br />

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

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

Saved successfully!

Ooh no, something went wrong!