The MPU provides protection by dividing the address space into regions associated with specific attributes such as read, write, and execute. If an attempt is made to access a region for which an associated attribute is not permitted, the ARC processor raises an exception, and prevents the faulting instruction from completing. Access violations raise a protection violation exception.
The ARC architecture divides the memory into 16 equal-size regions. The MPU provides a means for defining up to 16 variable-size regions and assigning read, write, and execute attributes for each region in user and kernel modes. The number of regions is configurable and is specified by the user. Acceptable values are 1, 2, 4, 8, and 16.
The ARC MPU is added to the processor RTL using the ARChitect GUI.
| Feature | ARC 600 MPU | ARC EM MPU |
|---|---|---|
|
|
✓ | |
|
|
✓ | |
|
|
✓ | |
|
|
Memory error interrupt | EV_ProtV exception |
|
|
✓ | |
|
|
✓ | Uses EFA register |
|
|
0x01 | 0x02 |
|
|
8 KB | 2 KB |
|
|
✓ | Renamed MPU_ECR |
|
|
01 | 10 |
|
|
0x0027 | 0x0023 |
|
|
✓ |
Quickly identify and access the right IP solutions for your project needs.
Find embedded memory and logic IP for your SoC design.
Find silicon-proven NVM IP for your SoC design needs.