> It’s 2022 after all, and transistors are cheap: why don’t all our microcontrollers feature page-level memory protection like their desktop counterparts?
I always thought it was because of the added cost from increased design complexity. Is it something else?
Secretly, I suspect the answer is market differentiation. You can charge a higher royalty for a CPU core that has an MMU, and bundling it into the low end stuff erodes margins.
The complexity is real, but in a typical SoC the actual CPU core is maybe 10% of the area and tossing in an MMU impacts maybe 1-2% of the total chip area. I haven't seen the pricing sheets, but I suspect the much bigger cost is the higher royalty payment associated with instantiating the MMU.
Haha, no: It's because if you put an MMU in a microcontroller it's not a microcontroller anymore! That makes it an "application processor" of which there are many tens of thousands to choose from these days.
There's nothing stopping you from taking say, a Raspberry Pi 4 and using it as a bare metal device (no OS) just like an Arduino. Or taking that same chip (BCM2711) and putting it in your own board to do something similar. It just wouldn't be economical for that sort of purpose most of the time.
I always thought it was because of the added cost from increased design complexity. Is it something else?