Literally speaking, MMU is ‘Memory Management Unit’ while MPU is ‘Memory Protection Unit’. Both of these are specialized hardware which are used by CPU for memory handling. MMU is used for many functions primarily Virtual Memory (i.e. translation of virtual address to physical address) and memory protection. But MPU is used for memory protection only. In that sense, we can think of MMU as super set of MPU.
Processors which need to run high-end operating systems such as Android, Linux, Windows typically have MMU but processors which need to run RTOS such as ThreadX, Nucleus typically have MPU. Let us mention few of the real world examples of the processors with MMU and MPU. Typically, a smart-phone contains two main processors – one which runs high-end OS (e.g. Android) where Apps are running and second which runs baseband RTOS (e.g. ThredX) where 3G/4G protocol stacks are running. First one is called Apps processor while second one is called Baseband processor. Apps processor (e.g. ARM Cortex-A series) has MMU while Baseband processor (e.g. ARM Cortex-R series) has MPU.
A quick analogy can be thought of MMU as ‘swiss army knife’ and MPU as ‘knife’! Basically, MMU implementation in HW much more complex than that of MPU. That’s why many computer systems (such as real time embedded systems) which don’t need Virtual Memory but need memory protection have much simpler MPU instead of full blown MMU.
Please do Like/Share if you find the above useful. Also, please do leave us comment for further clarification or info. We would love to help and learn 🙂
- Difference between CRT and LCD
- Difference between RPC and RMI
- Difference between JSP and ASP
- Difference between CLI and GUI
- Difference between C and C++
- Difference between 1G and 2G
- Web 1.0, Web 2.0 and Web 3.0 with their difference
- Difference between LAN and WAN
- Difference between LAN and MAN
- What is the difference between GUI and CUI?
- Difference between LAN, MAN and WAN
- Difference between MAN and WAN
- Difference between CPU and GPU
- Difference between ++*p, *p++ and *++p
- Difference between CD and DVD