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.

<strong>ARM</strong>v6 Differences<br />

Blocking <strong>and</strong> non-blocking behavior<br />

The cache block transfer operations for cleaning, invalidating, or clean <strong>and</strong> invalidating a range of addresses<br />

from the cache are blocking operations. Following instructions must not be executed until the block transfer<br />

operation has completed. The prefetch range operation is non-blocking <strong>and</strong> can permit following<br />

instructions to be executed before the operation is complete. If an exception occurs a non-blocking operation<br />

does not signal an exception to the processor. This enables implementations to retire following instructions<br />

while the non-blocking operation is executing, without the requirement to retain precise processor state.<br />

The blocking operations generate a Data Abort exception on a Translation fault if a valid translation table<br />

entry cannot be fetched. The DFAR indicates the address that caused the fault, <strong>and</strong> the DFSR indicates the<br />

reason for the fault.<br />

Any fault on a prefetch range operation results in the operation failing without signaling an error.<br />

Register encodings<br />

Table G-9 shows the block operations supported using CP15. The operations are performed using an MCRR<br />

instruction. See MCRR, MCRR2 on page A8-188.<br />

The instruction format for block operations is:<br />

MCRR p15, , , , <br />

Note<br />

Table G-9 Enhanced cache control operations using MCRR<br />

CRm Opc Function Rn Data, VA a<br />

c5 0 Invalidate instruction cache range b<br />

a. The true virtual address, before any modification by the FCSE. See Appendix E Fast Context Switch<br />

Extension (FCSE). This address is translated by the FCSE logic.<br />

b. Accessible only in privileged modes. Results in an UNDEFINED instruction exception if the operation is<br />

attempted in user mode.<br />

c. Accessible in both unprivileged <strong>and</strong> privileged modes.<br />

The <strong>ARM</strong>v6 MCRR encodings that support block operations are UNDEFINED in <strong>ARM</strong>v7.<br />

Rt Data, VA a<br />

Start address End address<br />

c6 0 Invalidate data cache range b Start address End address<br />

c12 0 Clean data cache range c<br />

Start address End address<br />

c12 1 Prefetch instruction range c Start address End address<br />

c12 2 Prefetch data range c Start address End address<br />

c14 0 Clean <strong>and</strong> invalidate data cache range b Start address End address<br />

AppxG-42 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!