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 />

The second part of the definition of Group B is recursive. Ultimately, membership of Group B derives<br />

from the observation by any observer of an access by Pe that is a member of Group B as a result of<br />

the first part of the definition of Group B.<br />

DMB only affects memory accesses. It has no effect on the ordering of any other instructions executing on the<br />

processor.<br />

For details of the DMB instruction in the Thumb <strong>and</strong> <strong>ARM</strong> instruction sets see DMB on page A8-90.<br />

Data Synchronization Barrier (DSB)<br />

The DSB instruction is a special memory barrier, that synchronizes the execution stream with memory<br />

accesses. The DSB instruction takes the required shareability domain <strong>and</strong> required access types as arguments.<br />

If the required shareability is Full system then the operation applies to all observers within the system.<br />

A DSB behaves as a DMB with the same arguments, <strong>and</strong> also has the additional properties defined here.<br />

A DSB completes when both:<br />

all explicit memory accesses that are observed by Pe before the DSB is executed, are of the required<br />

access types, <strong>and</strong> are from observers in the same required shareability domain as Pe, are complete for<br />

the set of observers in the required shareability domain<br />

all cache, branch predictor, <strong>and</strong> TLB maintenance operations issued by Pe before the DSB are complete<br />

for the required shareability domain.<br />

In addition, no instruction that appears in program order after the DSB instruction can execute until the DSB<br />

completes.<br />

For details of the DSB instruction in the Thumb <strong>and</strong> <strong>ARM</strong> instruction sets see DSB on page A8-92.<br />

Note<br />

Historically, this operation was referred to as Drain Write Buffer or Data Write Barrier (DWB). From<br />

<strong>ARM</strong>v6, these names <strong>and</strong> the use of DWB were deprecated in favor of the new Data Synchronization Barrier<br />

name <strong>and</strong> DSB abbreviation. DSB better reflects the functionality provided from <strong>ARM</strong>v6, because DSB is<br />

architecturally defined to include all cache, TLB <strong>and</strong> branch prediction maintenance operations as well as<br />

explicit memory operations.<br />

Instruction Synchronization Barrier (ISB)<br />

An ISB instruction flushes the pipeline in the processor, so that all instructions that come after the ISB<br />

instruction in program order are fetched from cache or memory only after the ISB instruction has completed.<br />

Using an ISB ensures that the effects of context altering operations executed before the ISB are visible to the<br />

instructions fetched after the ISB instruction. Examples of context altering operations that require the<br />

insertion of an ISB instruction to ensure the operations are complete are:<br />

cache, TLB, <strong>and</strong> branch predictor maintenance operations<br />

changes to the CP14 <strong>and</strong> CP15 registers.<br />

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

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

Saved successfully!

Ooh no, something went wrong!