Single-core CPU, Hyper-threading, and SMP
In the early stage of computer science, most computers were equipped with a chip on the mainboard, which is called a microprocessor or a single-core CPU. These processors communicate with other components on the mainboard through a connector or socket. It is very inefficient for processors to communicate with each other by using a system bus. A performance bottleneck often occurs, and the computing capability of a CPU cannot be maximized.
To deal with it, the hyper-threading technology is developed. The hyper-threading technology copies CPU units (such as registers or the L1 cache) to the same processor, so that two execution threads can share data. This mode accelerates multi-process execution and provides higher overall performance than conventional single-core mode (hyper-threading disabled).
With the rapid development of informatization and intelligence in modern society, more and more devices are connected to the Internet, Internet of Things (IoT), and Internet of Vehicles (IoV), resulting in huge computing requirements. The multi-core architecture is an inevitable trend. The symmetric multi-processing (SMP) technology uses the symmetric multi-processor structure. Each processor is equal and has the same permissions to use the memory. Any program, process, or thread can be allocated to any processor. With the support of the OS, perfect load balancing can be achieved, which greatly improves the performance and throughput of the entire system. However, because multiple cores use a same bus to access the memory, as the core number increases, memory access conflicts increase rapidly, and the bus becomes a bottleneck, which restricts scalability and performance of the system.