This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Difference between Sub regions and Overlapping Regions in MPU

Hi Experts,

In the Memory Protection Unit,

what is the difference between Sub regions and the Overlapping regions ?

What is the typical use case of the MPU and how it helps in building a quality software ?

Regards,

Techguyz

Parents
  • Overlapping regions:

    Each region is defined by a base address, a size and some attributes.

    If you define multiple regions, it is possible some might overlap.  For example:

    Region A: Covers 1MB starting at 0x0

    Region B: Covers 4KB starting 0x10000

    The address range 0x10000-0x10FFF is now covered by both A and B.  So which attributes should it use?  The overlapping region rules in the PMSA describes how this is resolved.

    Sub-regions:

    Each region (as long as it's at least 256 bytes) is sub-divided into 8 sub-regions.  With an enable bit per sub-region.  Effectively allowing you to "poke a hole" in a region.  The corresponding addresses are not treated as part of the region.  They will either pick-up the attributes of an overlapping region (if there is one), or use the defaults.

    Allowing overlapping and sub-regions gives you flexibility, and can in many cases reduce the total number of regions you need to define.

Reply
  • Overlapping regions:

    Each region is defined by a base address, a size and some attributes.

    If you define multiple regions, it is possible some might overlap.  For example:

    Region A: Covers 1MB starting at 0x0

    Region B: Covers 4KB starting 0x10000

    The address range 0x10000-0x10FFF is now covered by both A and B.  So which attributes should it use?  The overlapping region rules in the PMSA describes how this is resolved.

    Sub-regions:

    Each region (as long as it's at least 256 bytes) is sub-divided into 8 sub-regions.  With an enable bit per sub-region.  Effectively allowing you to "poke a hole" in a region.  The corresponding addresses are not treated as part of the region.  They will either pick-up the attributes of an overlapping region (if there is one), or use the defaults.

    Allowing overlapping and sub-regions gives you flexibility, and can in many cases reduce the total number of regions you need to define.

Children