Figure 2–21. Nonaligned Read Word Access
11
aa
bb
2.7.11.2
Translation Fault
2.7.11.3
Domain Fault
2.7.11.4
Permission Fault
If the access generates an alignment fault, the access sequence aborts with-
out checking access rights.
If a nonaligned read access is executed and the alignment fault is disabled,
data is accessed at a word address and rotated inside the core as shown be-
low. If a nonaligned half-word or word write is executed while the alignment
fault is disabled, the write is done on a half-word or word address boundary.
Figure 2–21 is an example of read word access on byte 11.
10
01
bb
cc
cc
dd
There are two types of translation fault: section and page.
-
A section translation fault is generated if the level 1 descriptor is marked
as invalid. This happens if bits [1–0] of the descriptor are both 0.
-
A page translation fault is generated if the page table entry is marked as
invalid. This happens if bits [1–0] of the page table entry are both 0.
There are two types of domain faults: section and page. In both cases, the level
1 descriptor holds the 4-bit domain field that selects one of the sixteen 2-bit
domains in the domain access control register. The two bits of the specified
domain are then checked for access permissions, as detailed in Table 2.15.
-
In the case of a section, the domain is checked once the level 1 descriptor
is returned.
-
In the case of a page, the domain is checked once the page table entry is
returned.
A section or page domain fault occurs if the permission access is either no
access (00) or reserved (10).
There are two types of permission faults: section and subpage. Permission
fault is checked at the same time as the domain fault. If the 2-bit domain field
returns client (01), then the permission access check is invoked as follows:
00
dd
Word address in memory
aa
Word is rotated inside the MPU core
MPU Memory Management Unit
Read Access on Address Byte 11
MPU Subsystem
2-45