Differences between CPU, MPU, MCU, SOC

CPU

CPU (Central Processing Unit) is the computing core and control core of a computer. The CPU is composed of an arithmetic unit, a controller, registers, and buses that realize the connection between them for data, control, and status. The operating principle of almost all CPUs can be divided into four stages: Fetch, Decode, Execute, and Writeback. The CPU fetches instructions from the memory or cache memory, puts them into the instruction register, decodes the instructions, and executes them. The so-called programmability of a computer mainly refers to the programming of the CPU.

MPU

MPU (Micro Processor Unit), also known as a microprocessor (not a microcontroller), usually represents a powerful CPU (let's understand it as an enhanced version of the CPU for now), but it is not a chip designed for any specific computing purpose that already exists. This kind of chip is often the core CPU of personal computers and high-end workstations. Intel X86, some Cortex-A chips of ARM such as Freescale i.MX6, Allwinner A20, TI AM335X, etc. all belong to the MPU.

 

MCU

 

MCU (Micro Control Unit), also known as a microcontroller, refers to with the emergence and development of large-scale integrated circuits, integrating the computer's CPU, RAM, ROM, timing counter, and multiple I/O interfaces on a single chip to form a chip-level chip, such as 51, AVR, Cortex-M and other chips. In addition to the CPU, there are also RAM and ROM inside, and code can be run directly by adding simple peripheral devices (resistors, capacitors). MPU such as x86 and ARM cannot directly run code, it is just an enhanced version of the CPU, so RAM and ROM need to be added.

SOC

 

SOC (System on Chip) refers to a system-on-chip. MCU is just a chip-level chip, while SOC is a system-level chip. It has built-in RAM and ROM like MCU (51, avr), and at the same time is as powerful as MPU. It can not only run simple codes, but also system-level codes, that is, it can run an operating system (it can be considered as a combination of the integration of MCU and the strong processing power of MPU). In addition, SOPC is also a concept worth understanding. Compared with the above concepts, the frequency of occurrence of SOPC is not so high, but this does not affect its importance. SOPC is the abbreviation of System On a Programmable Chip, that is, a programmable on-chip system. The most obvious difference between SOPC and MCU, MPU, and SOC is that it can change the hardware configuration, that is, to construct the chip by itself. For example, to illustrate for easy understanding, the hardware configuration of the single-chip microcomputer is solidified. What we can program and modify is the software configuration. Originally, it was a serial port communication function, and through modifying the code, it became an AD sampling function. That is to say, the hardware configuration is fixed, and we can only select one or more functions through modifying the software; while SOPC can modify the hardware configuration information to make it a corresponding chip, which can be MCU or SOC.