In order to expand the performance of single-core CPU, the current server architecture mostly uses multi-core CPU architecture. A typical CPU architecture is the Symmetric Multi-processing (SMP) architecture. Its counterpart is asyM-mark mulit-processing.

What does this symmetry mean? That is, the processor-to-processor relationship. In a symmetric multiprocessing architecture, processors are of the same level and all processors have access to the same resources. In contrast, asymmetric multiprocessing architectures form a simple master-slave relationship between processors, accessing limited resources.

An SMP CPU architecture is shown as follows:

Modern cpus typically have multiple cores, and here we have two. Each core has its own L1 Cache, and multiple cores share L2 and L3 caches. The CPU accesses main memory through the front end Bus (FSB). Memory access by multiple cpus is based on Cache lines, and memory access by multiple cpus complies with the Cache coherency Protocol. In the SMP architecture, all resources in the system are shared. As multiple cpus compete for the same front-end bus, scalability is limited. The problem gets worse on machines with more than 64 cpus. In large servers, the dominant architecture is generally NON-uniform Memory Access (NUMA).

Wechat search “my programming meow” public account, a daily brush, easy to improve skills, won a variety of offers