The disappearing boundary between MCU and MPU
Author | Wu You
There was a time when microprocessors (MPUs) and microcontrollers (MCUs) were two completely different devices. Microcontrollers completed "control" related tasks and responded to external signal stimuli, while microprocessors mainly performed processing functions and had high requirements for data processing and computing power. However, due to changes in memory architecture, the boundaries between the two are becoming blurred.
In fact, there are many ways to distinguish between microprocessors and microcontrollers, and the industry has not yet reached a consensus on the criteria for distinguishing them. However, some people have concluded that the precise distinction between the two is no longer important.
"In recent years, the distinction between MCUs and MPUs has become increasingly blurred," said Colin Walls, an embedded software technology expert at a Siemens business unit. " Originally, MCUs integrated the CPU, memory and peripherals on a single chip. Most MCUs are still like this today, but as MCUs become powerful enough to support more complex applications, MCUs with additional external memory are becoming common."
1
Two markets for computing chips
There was a time when computing chips were divided into two distinct markets. Most chip devices were aimed at mainstream computing, where performance was the main consideration. These single-chip miniature computers were called "microprocessors" and powered personal computers and larger systems.
Today we can see them in all types of laptops, desktops and servers, and it is worth noting that they are general-purpose engines designed to run any number of programs unknown in advance, the main memory is DRAM and the non-volatile storage is a hard drive or SSD.
In the less mainstream world of embedded computing, where modest computing power and specialized purposes are required, designed programs may run in firmware to allow the entire system (program and all) to be verified before shipping, memory requirements will be more limited, and SRAM and non-volatile memory used to store code can be integrated on the same chip as the CPU. Crucially, real-time response is usually important.
Embedded computers also tend to be used in environments with specialized I/O needs, some might be driving motors, others might be processing sound or reading sensors. It is very efficient to integrate specialized peripheral interface hardware onto the same chip as the CPU and memory, which results in a variety of chips with different characteristics.
In general, a CPU integrated with SRAM, non-volatile memory and dedicated peripherals is called a "microcontroller".
Microprocessors have evolved to 64 bits, while microcontrollers are still mostly 8 bits, but some changes have occurred in between, making the distinction between the two more blurred.
Integrated flash memory is an important feature of MCUs, but this type of flash memory is not yet available on microcontrollers with the most advanced nodes, so many devices sold as microcontrollers use external flash memory instead of embedded flash memory, and also use external DRAM.
In fact, a process called "shadowing" can take the code from external flash and copy it into DRAM, from which the code can then be executed, and for increased performance, cache can also be included. This makes the CPU/memory subsystem almost indistinguishable from an MPU.
So is the MCU now the MPU? Is there no difference anymore?
2
Factors that differentiate MCUs from MPUs today
Today's MCUs and MPUs are very similar, but there are still some subtle differences in many aspects, including CPU functions, bit number, operating system, timing requirements, number of cores, etc.
In terms of CPU capabilities, if a CPU has a complex pipeline with speculative execution and other superscalar features, it can be considered an MPU, but exactly where the transition occurs is not clearly defined.
In terms of the number of bits, an 8-bit device is more likely to be considered an MCU, and a 64-bit device is likely to be considered an MPU. However, the earliest MPUs were 4 bits, which is more of a historical issue than a defining characteristic.
It can also be categorized based on the operating system the computer can run, if it runs Linux, it can be called an MPU. If it only allows for a smaller real-time operating system, or even just runs bare metal, it can be called an MCU, which leaves a lot of middle ground for devices that can run Linux. In terms of timing, MCUs are usually used for applications that require hard or soft real-time response, and MPUs are generally not used for this purpose.
Multi-core processors are generally considered MPUs, especially when the cores are the same and the management is symmetrical. However, dedicated devices may have multiple processors, and some processors dedicated to specific tasks such as digital signals are also considered MCUs, so it is not an accurate basis to judge whether it is an MPU or MCU by the number of cores.
From the perspective of purpose of use, it can be considered that general-purpose devices are MPUs and single-purpose devices are MCUs, but this is actually only about how the device is used. If any device is used without a clear purpose, what should the device be called at that time?
Typically full-featured MPUs will not have specialized peripherals, largely because they are general purpose rather than application specific, so you might think that as long as there are such peripherals, it is an MCU, but this is not the case, and the lack of peripherals does not mean it is an MPU.
From the above analysis, we can see that each characteristic factor has defects and the results are unsatisfactory. So what do industry experts think?
3
MCU and MPU are becoming obsolete terms
Marc Greenberg, director of product marketing for the Cadence IP Group, said: "I don't know if there is some official definition of the difference between MCUs and MPUs. A simple search seems to indicate that MCUs are those with NVM on the die, but various MPUs have some bits of NVM. MPUs may also have MCUs on the same die, so what is it? The smallest cacheless processor may still have some registers and SRAM. Is there really a difference between a sequencer coded in RTL and a general-purpose processor executed from ROM? Obviously the distinction between MCUs and MPUs is somewhat arbitrary, which means that the boundary is not clear and can even be arbitrary. When I think of MPUs, I think of devices used to control general-purpose computers, such as desktops, servers, tablets, etc."
Grant Martin, senior engineer at Cadence, said: "According to Wikipedia, an MCU is a small computer on a single metal oxide semiconductor integrated circuit chip, and an MPU is a computer processor that combines the functions of a central processing unit on a single or multiple integrated circuits in a MOSFET structure."
“If you dig deeper, an MPU has the functionality of a CPU, so it is a computer processor, while an MCU is a more complete computer, which means that an MCU contains an MPU, which is contrary to common sense. Is a 16-way server processor with multiple processor cores no longer an MPU? But a multi-core heterogeneous SoC?”
“For example, a mobile phone might include multiple application processing cores, multiple DSPs for audio, video, and image processing, one or two GPUs for rendering images on the screen, and a neural network processing unit - an MCU - just for entertainment purposes. From my point of view, the industry should abandon these outdated terms and use more precise and descriptive terms ,” continued Grant Martin.
Jeff Hancock, senior product manager at Mentor, a Siemens business, said: "From a system software perspective, MCUs are expected to be suitable for applications that directly interpret and control hardware sensors and actuators. This access usually involves consistent and reliable instruction timing, which conflicts with the needs of general-purpose MPUs. General-purpose MPUs are designed to optimize throughput, while MCUs usually optimize latency. Therefore, if you need to process large databases, MPUs are more suitable, and if you need fine electromechanical control, then MCUs are more suitable.
Jeff Hancock also said: "External memory and cache have certainly changed the standard of MCU, but this is still a long way from equating MCU with MPU. In particular, not all processing units in all MCUs use external memory exclusively, and systems can also be built with isolated subsystems that allow critical workloads and less critical application-level systems to continue in parallel."
“From a software engineer’s perspective, this is an interesting challenge. There may be two areas of memory in non-contiguous places. Integrated memory is smaller but faster, so it is best left for speed-critical code such as real-time operating systems. This means that the development tools must be flexible enough to map the code correctly to the memory, and the RTOS must be small enough to fit in the on-chip memory,” added Walls, an expert in embedded software technology at Siemens Business Unit.
“MCUs have historically been associated with embedded systems, where low cost and low power requirements are more important than performance,” said Nicole Fern, senior hardware security engineer at Tortuga Logic. “But with the advent of mobile computing and IoT edge computing, many embedded systems now require complex processing, which has led to MCU products that look more like MPUs for the embedded space, providing higher performance and configurability for devices with external memory and cache. In this case, the difference between the terms MCU and MPU is only based on whether the CPU system is integrated.”
Thomas Ensergueix, senior director of Arm's low-power IoT business, agrees: "In recent years, the line between MCUs and MPUs has blurred. One of the main differences between MCUs and MPUs is software and development. MPUs will support rich OSs such as Linux and related software stacks, while MCUs will typically focus on bare metal and RTOS. Before deciding which hardware platform, MCU or MPU is most effective, it is up to software developers to decide which software environment and ecosystem is best for their application.
“ As MCUs have now transitioned to 32-bit, we have also seen a dramatic increase in performance, which has helped to close the gap between MCUs and MPUs. For example: many Arm Cortex-M7-based MCUs offer more than 100 Dhrystone MIPS, or more than 2,000 points in CoreMark. Many of these devices also have very large built-in memories, or provide fast interfaces to connect external memories. This ensures that performance and memory are no longer bottlenecks for MCUs, and brings them closer to low-end MPUs.”
4
summary
Does it really matter if there is a clear line between MPUs and MCUs today? Probably not. Because no matter what we call it, the application has accompanying requirements that will determine which device to use.
This article is compiled from https://semiengineering.com/mpu-vs-mcu/
Originally Posted by Bryon Moyer
Previous recommendations