RFQ/BOM 0 Sign In / Register

Select Your Location

The boundary between microcontroller MCU and microprocessor MPU is disappearing.

December 16, 2020

2321

There was a period of time when a microprocessor (MPU) and a microcontroller (MCU) were two completely different devices. The microcontroller completed "control"-related tasks and reacted to external signal stimuli. The microprocessor mainly performed processing. Function, higher requirements for data processing and computing capabilities. But now due to changes in memory architecture, the boundaries between the two are becoming blurred.

In fact, microprocessors and microcontrollers can be distinguished in many ways, but the industry has not yet reached a consensus on their distinguishing standards. However, some people have concluded that the precise distinction between the two is no longer important.

"In recent years, the distinction between MCU and MPU has become more and more blurred." said Colin Walls, an embedded software technology expert in the Siemens business unit. "Initially, MCU integrated CPU, memory and peripherals on a single chip. This is still the case for most MCUs, but because MCUs are powerful enough to support more complex applications, MCUs with additional external memory have become common."

Two markets for computing chips

There was a period of time when computing chips were divided into two completely different markets. Most chip devices were mainly for mainstream computing, and performance was the most important consideration. These single-chip microcomputers were called "microprocessors" for personal Computers and larger systems provide power.

Today we can see them in various types of laptops, desktops, and servers. 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, non-volatile Storage is a hard drive or solid state drive.

In the less mainstream embedded computing world, moderate computing power and special purpose are required. The designed program may run in the firmware so that the entire system (including the program and all systems) can be verified before shipment. The memory requirements will be Subject to more restrictions, SRAM and non-volatile memory used to store code can be integrated on the same chip as the CPU. The key point is that real-time response is usually very important.

In general, the integration of CPU with SRAM, non-volatile memory and dedicated peripherals is called "microcontroller."

MPU.jpg

Microprocessors have developed up to 64 bits so far, while microcontrollers are still mostly 8-bit, but some changes have taken place in the middle, making the difference between the two more blurred.

Integrated flash memory is an important feature of MCUs, but this type of flash memory has not yet been used on microcontrollers with the most advanced nodes, so many devices sold in the form of microcontrollers use external flash memory instead of embedded flash memory, and also use external DRAM.

In fact, a process called "shadowing" can take code from external flash memory, copy it to DRAM, and execute the code from it, and to improve performance, cache can also be included. This makes the CPU / memory subsystem almost the same as the MPU.

So is the current MCU an MPU? Is there no difference anymore?

Factors that can distinguish MCU from MPU at present

Today's MCU and MPU are very similar, but there are still some subtle differences in many aspects, including CPU functions, number of bits, operating system, timing requirements, number of cores, etc.

In terms of CPU functions, if the CPU has a complex pipeline, predictive execution and other superscalar functions, it can be regarded as an MPU, but the exact location of the transition is not clearly defined.

In terms of bits, 8-bit devices are more likely to be regarded as MCUs, and 64-bit devices are more likely to be regarded as MPUs. But the earliest is that the MPU is 4 bits, which is more like a historical issue than a decisive feature.

It can also be classified according to the operating system that the computer can run. If it runs Linux, it can be called MPU. If it allows only a small real-time operating system, or even bare metal, it can be called an MCU, which leaves a lot of middle ground for Linux-enabled devices. In terms of timing, MCU is usually used for applications that require hard or soft real-time response, and MPU is usually not used for this purpose.

Generally, multi-core processors are also regarded as 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. Therefore, judging whether it is MPU or MCU by the number of cores is not an accurate basis.

From the point of view of the purpose of use, it can be considered that a general-purpose device is an MPU, and a single-use device is an MCU, but this is actually only related to the way the device is used. If any device is used without a clear purpose, how to call this device at that time What?

Generally, full-featured MPUs do not have dedicated peripherals. This is largely because they are general-purpose and not for specific applications. Therefore, you might think that as long as there are such peripherals, it is an MCU, but this is not the case. The lack of peripherals does not mean that it is an MPU.

From the above analysis, each characteristic factor will have defects, and the results are unsatisfactory. So what do industry experts think?

MCU and MPU have become obsolete terms

Marc Greenberg, Director of Product Marketing of Cadence IP Group, said: “I don’t know whether there is any official definition of the difference between MCU and MPU. A simple search seems to show that the NVM on the die is the MCU, but various MPUs There are some bits of NVM, MPU may also have MCU on the same die, then what is it? The smallest cacheless processor may still have some registers and SRAM, sequencer encoded with RTL and slave ROM Is there really a difference in the general-purpose processor that executes? Obviously the difference between MCU and MPU is somewhat arbitrary, which means that the boundary is not clear or even free. When I think of MPU, I think of it for controlling general-purpose computers Devices, such as desktops, servers, tablets, etc."

Cadence senior engineer Grant Martin 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 a single or multiple integrated circuits with a MOSFET structure. The function of the central processing unit."

"If you study in depth, MPU has the function of CPU, so it is a computer processor, and MCU is a more complete computer, which means that the MCU contains MPU, which is contrary to common sense. 16-way server with multiple processor cores Is the processor no longer an MPU? It is a multi-core heterogeneous SoC?"

"For example, a mobile phone may 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 nerve for entertainment purposes only. Network processing unit-MCU. From my point of view, the industry should abandon these outdated terms and use more precise and descriptive terms.” Grant Martin continued.

Jeff Hancock, senior product manager of Mentor, a Siemens business unit, believes: "From a system software perspective, MCUs are expected to be suitable for applications that directly interpret and control hardware sensors and actuators. Such access usually involves consistent and reliable command timing. This contradicts the needs of general-purpose MPUs. General-purpose MPUs are designed to optimize throughput, and MCUs usually optimize latency. Therefore, if you need to deal with large databases, MPU is more suitable. If you need fine electromechanical control, then MCU is more suitable.

Jeff Hancock also said: "External memory and cache definitely change the MCU standards, but this is a long way from equating MCUs with MPUs. Especially not all processing units in all MCUs are used exclusively. External memory, you can also build systems using isolated subsystems that allow critical workloads and less critical application-level systems to continue in parallel."

"From a software engineer's point of view, this is an interesting challenge. There may be two memory areas in discontinuous places. The integrated memory is small but faster, so it is best to leave it to the code with high requirements for speed. , Such as a real-time operating system. This means that the development tool must be flexible enough to correctly map the code to the memory, and the RTOS must be small enough to fit the on-chip memory.” added Walls, an embedded software technology expert in the Siemens business unit.

Nicole Fern, a senior hardware security engineer at Tortuga Logic, said: “In the past, MCUs were associated with embedded systems. In embedded systems, low-cost and low-power requirements are more important than performance. But as mobile computing and IoT edge With the advent of computing, many embedded systems now require complex processing. This results in MCU products that look more like MPUs in the embedded field, and provide higher performance and configurability for devices with external memory and cache. In this case, the difference between the terms MCU and MPU only depends on whether the CPU system is integrated."

Thomas Ensergueix, Senior Director of Arm’s Low-Power IoT Business, also believes: “In recent years, the boundary between MCU and MPU has been blurred. One of the main differences between MCU and MPU is software and development. MPU will support a rich OS, Such as Linux and related software stacks, and MCUs will usually focus on bare metal and RTOS. Before deciding which hardware platform, MCU or MPU is the most effective, it is up to software developers to decide which software environment and ecosystem is best for their applications.

"As the MCU has now transitioned to 32-bit, we have also seen a dramatic improvement in performance, which helps to narrow the gap between MCU and MPU. For example: Many Arm Cortex-M7-based MCUs can provide more than 100 Dhrystone MIPS , Or provide more than 2,000 points in CoreMark. Many of these devices also have very large built-in memory, or provide fast interfaces to connect to external memory. This ensures that performance and memory are no longer the bottleneck of the MCU, and Bring them closer to low-end MPUs."

Summary

Does it really matter whether there is a clear boundary between MPU and MCU today? It may not matter anymore. Because no matter what we call it, the application has accompanying requirements that will determine which device to use.