Learn something new every day
More Info... by email
Symmetric multiprocessing (SMP) is a type of computer architecture in which two or more central processing units (CPUs) share a common link to the same memory. It was originally developed in the 1960s and has been used in various configurations since. Any processor in an SMP system can access and run software from any portion of the shared memory. The popularity of this setup has fluctuated over the year as technology has evolved and marketplaces have changed, but it is still among the most common form of multiprocessor technologies.
SMP originated in the early 1960s as a way to connect multiple processors over a high-speed connection and enable them to have access to the same set of memory modules. Since the memory is shared among processors, SMP hardware can be cheaper than other technologies which may dedicate memory to each processor. Many variations of this setup have been used, with some using a simple crossbar to connect two processors, while others employed more sophisticated interconnects between as many as 32 processors. Any symmetric multiprocessing system can be held back by the speed and capacity of this interconnect; a system with 32 processors will not necessarily be 32 times faster because the common link between these processors and the system memory can become congested.
One key advantage that symmetric multiprocessing has over other techniques is that an SMP system more or less treats all of its processors equally, thus giving each the same quality of access to other computer hardware. This means that any processor in the system can read and execute instructions from software programs regardless of where those programs reside in the computer’s memory. Many software programs are now split into smaller chunks known as threads; when these programs are run on an SMP system, each processor can run a thread of the program, thereby further increasing overall performance. User-level software doesn’t need to be modified to run on a system that supports symmetric multiprocessing, but the underlying operating system must support the technology.
The popularity of symmetric multiprocessing has waned and waxed over the years as other techniques have been developed and new architectures have been explored. Publicity about the technology’s possible impact on computing emerged in the early 1990s; a number of companies, most notably Sequent Computer Systems, began to specialize in building high-end SMP systems. Sequent, which was acquired by IBM in 1999, was praised for its designs but was never able to effectively compete with the giants of the computer industry. Newer multiprocessing techniques like non-uniform memory access (NUMA) have partially supplanted SMP in high-end systems.
Computer makers have experimented with symmetric multiprocessing in consumer-level hardware over the years; outside of expensive enthusiast hardware, however, most personal computers lack the technology. New techniques to make single-CPU systems more efficient, such as simultaneous multithreading or “hyperthreading,” along with the rise of multicore technology have increased the performance of computers without the added cost of SMP. It is, however, possible to combine these technologies, and the most powerful desktop computers may include multiple multicore processors connected through SMP, thus creating a system with massive amounts of computational power.
Isn't a multicore CPU designed to do the same thing as symmetric multiprocessing? The main difference seems to be that you've got individual cores embedded in one CPU instead of separate CPUs. Still, the theory seems about the same -- the cores all have access to system memory and the bottleneck is in the memory.
Oh, and one more thing -- modern, multicore CPUs require a lot of memory to run efficiently, just as SMP systems do.