Memory protection unit

Computer hardware component for security

A memory protection unit (MPU) is a computer hardware unit that provides memory protection. It is usually implemented as part of the central processing unit (CPU).[1] MPU is a trimmed down version of memory management unit (MMU) providing only memory protection support. It is usually implemented in low power processors that require only memory protection and do not need the full-fledged feature of a memory management unit like virtual memory management.[2][3]

Overview

The MPU allows the privileged software to define memory regions and assign memory access permission and memory attributes to each of them. Depending on the implementation of the processor, the number of supported memory regions will vary. The MPU on ARMv8-M processors supports up to 16 regions. The memory attributes define the ordering and merging behaviors of these regions, as well as caching and buffering attributes. Cache attributes can be used by internal caches, if available, and can be exported for use by system caches.[4]

MPU monitors transactions, including instruction fetches and data accesses from the processor, which can trigger a fault exception when an access violation is detected. The main purpose of memory protection is to prevent a process from accessing memory that has not been allocated to it. This prevents a bug or malware within a process from affecting other processes, or the operating system itself.[4]

See also

  • Memory management unit
  • Memory protection

References

  1. ^ "ARM Technical Reference Manual - About the MPU".
  2. ^ "FreeRTOS MPU".
  3. ^ "KeyStone Architecture - Memory Protection Unit (MPU)".
  4. ^ a b "ARM Memory Protection Unit".
  • v
  • t
  • e
Processor technologies
ModelsArchitectureInstruction set
architectures
Types
Instruction
sets
Execution
Instruction pipelining
Hazards
Out-of-order
Speculative
Parallelism
Level
Multithreading
Flynn's taxonomy
Processor
performanceTypes
By application
Systems
on chip
Hardware
accelerators
Word sizeCore countComponents
Functional
units
Logic
Registers
Control unit
Datapath
Circuitry
Power
managementRelated
  • v
  • t
  • e
General
Variants
Kernel
Architectures
Components
Process management
Concepts
Scheduling
algorithms
Memory management,
resource protection
Storage access,
file systems
Supporting concepts
  • v
  • t
  • e
  • Memory management as a function of an operating system
Hardware
Virtual memory
Memory segmentation
Memory allocator
Manual memory management
Garbage collection
Memory safety
Issues
Other
  • Memory management
  • Virtual memory
  • Automatic memory management
  • Memory management algorithms
  • Memory management software