Symmetric multiprocessing (SMP) is a widely used architecture for modern computer systems, but its history is rarely discussed. The basic idea of this architecture is that multiple identical processors are connected to a single shared main memory and managed by a single operating system. This collaborative feature allows each processor to process different tasks in parallel, thereby significantly improving the overall performance of the system. This article will take you through history and explore the origin and evolution of SMP.
SMP systems typically consist of multiple similar processors that share a central main memory and run under a single operating system. Each processor is equipped with dedicated cache memory to speed up access to main memory and reduce system bus traffic. In early SMP systems, technology was often limited by bandwidth and power consumption, and there were bottleneck problems in the design. Since then, the introduction of grid architecture has improved scalability issues, although programming complexity needs to be overcome.
“SMP systems allow any processor to execute any task, regardless of the location of the task’s data, as long as the task is not being executed by any other processor in the system.”
Among the early multiprocessor systems, the Burroughs B5000 in 1961 became the first production system, although it was still asymmetric in operation. With the introduction of the Burroughs D825 in 1962, the concept of SMP gradually took shape. IBM's System/360 series of computers also launched a dual-processor computing system, realizing the application of SMP architecture. As major companies entered this field, SMP systems gradually evolved and became mainstream.
SMP is widely used in time-sharing and server systems, which can support multiple processes running in parallel without modifying the application. In personal computers, SMP's usefulness is lessened because many applications have not yet been modified for multithreading. In order to take advantage of SMP, multithreaded programming becomes an important consideration.
Current SMP system designs allow multiple processors to be tightly coupled, but this also brings challenges in scalability and performance. While multiprocessor systems can increase throughput, filling the gap in performance optimization will require a carefully designed operating system and efficient software support to maximize the use of the hardware.
"In an SMP environment, when multiple programs are executed simultaneously, the system performance is significantly better than a single-processor system."
Systems using SMPs require different programming techniques than systems using uniprocessors to obtain maximum performance. Because in an SMP system, programs can run using multiple processors simultaneously. This not only improves multi-tasking capabilities, but also improves the smoothness of program operation. As the program improves, it will be able to better balance the workload.
As computing demands increase, new architectures such as NUMA (Non-Uniform Memory Access) emerge, which allow processors to access local memory more quickly and reduce reliance on shared memory. While NUMA may provide more efficient data access in some environments, the cost of moving data from one processor to another is relatively high when performing workload balancing.
From modular early computer systems to modern multi-processor architectures that strive for efficiency, the evolution of SMP is undoubtedly an important part of technological progress. As technology continues to advance, what new technologies will challenge and improve our understanding of multi-processor collaboration in the future?