FPGA is a semi customized programmable circuit developed from application specific integrated circuit. From the day of its birth, its life experience determines that it can not flexibly process all kinds of unprecedented instructions like CPU, but can only process the input data and then output according to a fixed mode. The structure of FPGA is like this.
Very simply, most of them are computing units, but the absence of control units does not mean that FPGA will not execute instructions. In fact, the role of control units in FPGA is completed by the programmable logic connection line between each control unit and unit in the figure. Through FPGA programming, developers can change the operation logic of each unit of FPGA and the connection mode between units, So that it can achieve the same effect as the general running program. It differs from the CPU in that it cannot handle instructions that have not been programmed.
Once the programming mode is determined, FPGA can only process specific data input according to the programmed processing logic and mode. However, in exchange for such an architecture, FPGA is almost full of computing units, so the actual computing power of FPGA will be much stronger than it looks, especially when running simple but highly repetitive tasks. Due to its simplicity, few logic units or even one can output the results of this operation independently. The efficiency of FPGA running the same code repeatedly has been greatly improved because the two steps of CPU finger fetching and decoding are omitted.
There is an appropriate analogy. CPU is like a respected old professor in the University. It can calculate everything, but after all, it has only one person. When the calculation task is too heavy, it will be tired. However, the structure of FPGA is like a queue of all primary school students in the whole primary school. Everyone can only calculate simple addition, subtraction, multiplication and division, However, some large but uncomplicated computing tasks will be faster if they are entrusted to them.
Specifically, in terms of performance, it is obvious that the general CPU can only process 4 to 8 instructions at the same time, which is not too bad. As long as the FPGA is properly optimized, it can process 256 or more instructions at the same time. In fact, the design idea of GPU is similar to that of FPGA. It is a device that appears to deal with a large number of simple and repeated operations. However, the performance of GPU is strong and the energy consumption is also high. Because the programming and optimization of FPGA are carried out directly at the hardware level, the energy consumption will be much lower.