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.

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

)<br />

FullAddress paddress<br />

// Access permissions descriptor<br />

type Permissions is (<br />

bits(3) ap, // Access Permission bits<br />

bit xn // Execute Never bit<br />

)<br />

B2.4.2 Basic memory accesses<br />

The _Mem[] function performs single-copy atomic, aligned, little-endian memory accesses to the underlying<br />

physical memory array of bytes:<br />

bits(8*size) _Mem[AddressDescriptor memaddrdesc, integer size]<br />

assert size == 1 || size == 2 || size == 4 || size == 8;<br />

_Mem[AddressDescriptor memaddrdesc, integer size] = bits(8*size) value<br />

assert size == 1 || size == 2 || size == 4 || size == 8;<br />

This function addresses the array using memaddrdesc.paddress,that supplies:<br />

A 32-bit physical address.<br />

An 8-bit physical address extension, that is treated as additional high-order bits of the physical<br />

address. This extension is always 0b00000000 in the PMSA.<br />

A single NS bit to select between Secure <strong>and</strong> Non-secure parts of the array. This bit is always 0 if the<br />

Security Extensions are not implemented.<br />

The actual implemented array of memory might be smaller than the 2 41 bytes implied. In this case, the<br />

scheme for aliasing is IMPLEMENTATION DEFINED, or some parts of the address space might give rise to<br />

external aborts. For more information, see:<br />

External aborts on page B3-45 for a VMSA implementation<br />

External aborts on page B4-15 for a PMSA implementation.<br />

The attributes in memaddrdesc.memattrs are used by the memory system to determine caching <strong>and</strong> ordering<br />

behaviors as described in Memory types <strong>and</strong> attributes <strong>and</strong> the memory order model on page A3-24.<br />

B2.4.3 Interfaces to memory system specific pseudocode<br />

The following functions call the VMSA-specific or PMSA-specific functions to h<strong>and</strong>le Alignment faults<br />

<strong>and</strong> perform address translation.<br />

// AlignmentFault()<br />

// ================<br />

AlignmentFault(bits(32) address, boolean iswrite)<br />

case MemorySystem<strong>Architecture</strong>() of<br />

when MemArch_VMSA AlignmentFaultV(address, iswrite);<br />

B2-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!