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>v4 <strong>and</strong> <strong>ARM</strong>v5 Differences<br />

H.6.4 Protected memory support<br />

The MPU based Protected Memory System <strong>Architecture</strong> (PMSA) is a much simpler memory protection<br />

scheme than the MMU-based VMSA model described in Virtual memory support on page AppxH-21. The<br />

simplification applies to both the hardware <strong>and</strong> the software. PMSA in <strong>ARM</strong>v4 <strong>and</strong> <strong>ARM</strong>v5 differs from<br />

that supported in <strong>ARM</strong>v6 <strong>and</strong> <strong>ARM</strong>v7 in the following ways:<br />

the programming model is unique to <strong>ARM</strong>v4 <strong>and</strong> <strong>ARM</strong>v5<br />

the supported number of memory regions is fixed<br />

background memory support requires use of a region resource<br />

there is no architecturally-defined recovery mechanism from memory aborts<br />

there is no default memory map definition.<br />

Control <strong>and</strong> configuration<br />

CP15 registers are used to fully define protection regions, eliminating the VMSA requirements for hardware<br />

to do translation table walks, <strong>and</strong> for software to set up <strong>and</strong> maintain the translation tables. This makes<br />

memory checking fully deterministic. However, the level of control is now region based rather than page<br />

based. This means the control is not as fine-grained.<br />

The following features apply:<br />

The memory is divided into regions. CP15 registers are used to define the region size, base address,<br />

<strong>and</strong> memory attributes. For example, cacheability, bufferability, <strong>and</strong> access permissions of a region.<br />

Memory region control (read <strong>and</strong> write access) is permitted only from privileged modes.<br />

If an address is defined in multiple regions, a fixed priority scheme (highest region number) is used<br />

to define the properties of the address being accessed.<br />

An access to an address that is not defined in any region causes a memory abort.<br />

All addresses are physical addresses. Address translation is not supported.<br />

PMSA supports unified (von Neumann) <strong>and</strong> separate (Harvard) instruction <strong>and</strong> data address spaces.<br />

Eight regions can be configured, with C, B, <strong>and</strong> AP[1:0] attribute bits associated with each region. The<br />

supported region sizes are 2NKB, where 2 =< N =< 32. It is IMPLEMENTATION DEFINED if the regions are<br />

configurable or fixed in an implementation:<br />

as eight unified regions supporting data accesses <strong>and</strong> instruction fetches<br />

as eight data regions <strong>and</strong> eight instruction regions each with independent memory region attributes.<br />

CP15 provides the following support:<br />

a global MPU enable bit, SCTLR.M<br />

cacheability register support, a C bit for each region<br />

bufferability register support, a B bit for each region<br />

AppxH-28 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!