CPU vs. GPU vs. FPGA vs. ASIC

According to the structure and function, semiconductors are divided into four categories: integrated circuits, discrete devices, optoelectronic devices and sensors, among which the market size of integrated circuits accounts for about 82.02%. The subdivision of integrated circuits is an extremely complex project.

According to the types of processing signals, IC chips can be divided into digital chips and analog chips, of which digital chips account for 69.38% of the semiconductor market size, and analog chips account for 12.64% of the semiconductor market size.

Digital chips can be further subdivided into logic chips that undertake computing functions, memory chips that undertake storage functions, and micro control units (MCUs) that integrate computing, storage and other functions on one chip. Their market shares accounted for 26.89%, 26.67%, and 15.82% of the overall semiconductor market, respectively.

Logic chip refers to an integrated circuit that contains logical relations and uses binary as the principle to realize calculation and logical judgment functions. Common logic chips include CPU (Central Processing Unit), GPU (Graphics Processing Unit), ASIC (Application-Specific Processor) and FPGA (Field Programmable Gate Array). Then what is the difference among CPU vs. GPU vs. FPGA vs. ASIC? How much do you know about CPU vs. GPU vs. FPGA vs. ASIC? Let’s take a further look.

What is CPU?

CPU

CPU (Central Processing Unit) is the brain of the computer. It is composed of three units: calculation, control and storage. The three parts coordinate with each other to analyze, judge, calculate and control the coordination of various parts of the computer. The CPU first appeared in 1971 and is the most widely used computer system main control chip, which is applied to personal PCs and data terminal servers.

The CPU market can be divided into servers, workstations, PCs, mobile terminals and embedded devices. The global CPU industry is monopolized by Intel and AMD. The market share of state-owned chips is about 1% in the personal PC field and 2% in the server field.

What is GPU?

GPU (Graphics Processing Unit), currently mainly used as the computing core of the graphics card, mainly solves the problem of graphics rendering. The essence of graphics rendering is fast parallel computing of large amounts of data, which requires processors with high parallelism and high throughput.

The number of CPU cores does not exceed two digits, each core has enough cache and ALU, and is assisted by a lot of hardware to accelerate branch judgment and even more complex logic judgment. The number of GPU cores far exceeds that of CPU, which is called many cores ( NVIDIA Fermi has 512 cores). The cache size of each core is relatively small, and the digital logic operation unit is also small and simple. The reason why GPUs and CPUs are quite different is due to their different design goals, which are aimed at two different application scenarios.

GPU

Compared with the CPU, the GPU abandons some control units and has more computing units, so a large number of homogeneous data operations can be performed at high density, that is, large-scale concurrent computing. In addition to graphics rendering, large-scale concurrent computing is also required for password cracking and so on.

Therefore, in addition to image processing, GPUs are increasingly involved in computing. The CPU is more suitable for complex calculations because it has more storage units and control units.

Functionally, the GPU can be seen as a huge complement to the CPU. GPU can be divided into integrated graphics card (iGPU, integrated GPU) and discrete graphics card (dGPU: discrete/dedicated GPU). The current global GPU market is monopolized by Nvidia, Intel and AMD. The market share of the three is close to 100%.

What is ASIC?

ASIC (Application Specific Integrated Circuit), is an integrated circuit for a special purpose. With the advent of smaller smart devices such as smartphones and wearable devices, the integration of chips is getting higher and higher, and there are application-specific integrated circuits (ASICs) that are characterized by customer participation in design. It is required to integrate dozens of small-scale IC modules such as CPU, GPU, memory, Bluetooth, and WIFI on one chip to achieve system-level design requirements.

This approach is also called SOC (system on chip). It optimizes the circuit of the whole machine, reduces the number of components, shortens the wiring, reduces the volume and weight, and improves the reliability of the system.

Smartphones are the main application scenarios of ASICs. ASICs have two main chips in mobile phones, one is AP (Application Processor). AP is a very large-scale integrated circuit that expands audio and video functions and dedicated interfaces on the basis of low-power CPU. It is the main control processor, which is the core of calculation and control. All peripherals (WIFI, GPS, touch screen, camera, gyroscope, etc.) including the baseband processor are managed by it.

The other is BP (Baseband Processor). BP is the communication module in the mobile phone. Its main function is to communicate with the base station of the mobile communication network, and to modulate, demodulate, encode, and transmit uplink and downlink wireless signals.

ASIC

BP is equivalent to a protocol processor, which is responsible for data processing and storage. The main components are digital signal processor (DSP), microcontroller (MCU), memory (SRAM, Flash) and other units. BP manages all wireless signals of mobile phones (except wifi, bluetooth, NFC, etc.). How many network modes a mobile phone supports, whether it supports 4G or 3G, is determined by the baseband part.

In addition to AP and BP, there is currently a third ASIC chip in mobile phones, CP (CoProcessor), a specific processing task chip used to relieve the system microprocessor. CP is a processor developed and applied to assist the central processing unit to complete the processing work that it cannot perform or perform with low efficiency and effect. There are many tasks that this kind of central processing unit cannot perform, such as signal transmission between devices, management of access devices, etc.

In order to perform these processes, various auxiliary processors are born. Each manufacturer has a different name for CP, for example, Apple calls it a coprocessor, and Qualcomm 820 calls it a “low power island”. In the early days, CP was only used for simple tasks such as decoding video and processing audio, but major manufacturers discovered that the performance of CP can actually be very high, so they began to process more and more things. The current CP can already handle virtual reality, augmented reality, image processing, HIFI, HDR, sensors and so on.

What is FPGA?

FPGA (Field Programmable Gate Array) is a product of further development on the basis of programmable devices such as PAL, GAL, and CPLD. It appeared as a semi-custom circuit in the field of ASIC, which not only solved the shortcomings of custom circuits (ie ASIC), but also overcome the shortcomings of the limited number of gate circuits of the original programmable device.

Although the customized ASIC optimizes the circuit of the whole machine and effectively reduces the size of the smart device, it also means that the complexity of the chip design is greatly increased, and the risk of tape-out (proofing) failure increases. In this context, semi-customized FPGA came into being.

The biggest feature of FPGA is the field programmable in its name. It is the main hardware platform for today’s digital system design. The main feature is that it is completely configured and programmed by the user through software to complete a specific function and can be repeatedly erased.

FPGA

Whether it is a CPU, GPU or ASIC, after the chip is manufactured, the function of the chip is fixed, and the user cannot make changes to the hardware function. However, after the FPGA is manufactured, the functions are not fixed. Users can use the FPGA chip provider’s software to configure the functions of the chip, and convert the blank modules on the chip into modules with specific functions that they need. This is a big difference among CPU vs. GPU vs. FPGA vs. ASIC.

FPGA has strong flexibility. When modifying and upgrading, it does not need to change the PCB circuit board, but only modify and update the program on the computer, so that the hardware design work becomes software development work, and the user can change the chip in just a few minutes. The logic function enables it to be flexibly deployed among different business requirements.

Compared with the ASIC solution, the FPGA solution can shorten the system design cycle, reduce the risk of tape-out failure, improve implementation flexibility and reduce costs. On the other hand, in order to achieve repeated programming, FPGA will inevitably cause redundancy of resources on the board, which is also a deficiency of it compared with ASIC.

As far as the implementation principle is concerned, when the power is turned on, the FPGA chip reads the data in the EPROM into the on-chip programming RAM, and after the configuration is completed, the FPGA enters the working state. After power-off, the FPGA returns to white, and the internal logic relationship disappears, so the FPGA can be used repeatedly.

In theory, FPGAs allow unlimited programming. FPGA programming does not require a dedicated FPGA programmer, only a general-purpose EPROM or PROM programmer is sufficient. There are abundant flip-flops and I/O pins inside the FPGA, which can be finished quickly without the need for users to intervene in chip layout and process issues, and can change logic functions at any time, making it flexible to use.

Conclusion

CPU vs. GPU vs. FPGA vs. ASIC

Regardless of communication, machine learning, encryption and decryption, the algorithms are very complicated. CPU vs. GPU vs. FPGA vs. ASIC all perform different functions for different applications and purposes. If you try to completely replace the CPU with FPGA, it will inevitably lead to a huge waste of FPGA logic resources and increase the development cost of FPGA programs. A more practical approach is for the FPGA and the CPU to work together, the locality and repeatability belong to the FPGA, and the complex ones belong to the CPU.

Although there are differences among CPU vs. GPU vs. FPGA vs. ASIC, every of them has their own characteristics and plays an important role in electronic world. Undoubtedly they are a good complementary for each other.