In asymmetric multiprocessing the program tasks (or threads) are strictly divided by type between processors and typically, each processor has its own memory address space. These features make asymmetric multiprocessing difficult to implement. The two figures below are two examples of asymmetric multiprocessor configurations.
The PS/2 Server 195 and Server 295 were examples of servers using asymmetric multiprocessing.
Asymmetric Multiprocessing Example 1
This configuration has multiple memory units with some of those not shared by all processors.
Asymmetric Multiprocessing Example 2
This configuration has one processor doing all I/O.
Symmetric multiprocessing (SMP) is the most common configuration
of multiple processors. A typical SMP configuration has the following items:
It is symmetrical because the view from any processor of the rest of the system is exactly the same. The display below shows a typical implementation of SMP.
A Typical SMP Configuration
SMP is easier to implement in operating systems and is the method used most often in operating systems that support multiple processors. Operating systems that support SMP include:
If one processor fails, the others may still function.
A reboot will still be required due to the fact that the design of an SMP
configuration has every other component shared, including memory.
If a processor fails, then it will invariably leave the memory in an unpredictable
state, which could cause more problems for the remaining CPUs. Depending
on the implementation of SMP on a server, the failed processor may or may
not have to be physically removed before the system can restart.
It has the ability to eat (process) twice as much food (data) as a normal single-headed dog. However, to maximize the advantage of having two heads, it needs to have a throat (bus), stomach (disk) and digestive system (network) large enough to handle the output of the two heads. The alternative is for the heads to not eat as fast or to wait (wait state) for there to be sufficient swallowing capacity (bandwidth). If more heads were to be added, then the dog could eat a lot faster, but if the rest of the dog couldn't handle the throughput, then the heads would have to wait even more and the benefits of the extra heads would not be realized (and if the dog's owner can't feed it fast enough, he may get his hand bitten off).
The point is that for SMP machines to be effective, the other subsystems have to have sufficient bandwidth to keep up with the multiple processors. For example, the IBM PC Server 720 implements a memory bus that has a bandwidth of 400 MBps. The IBM Streamer family of LAN adapters can process data from the network at the speed of the media without placing an extra burden on the CPUs. An IBM RAID subsystem utilizing data striping can provide very high bandwidth in SMP environments. These factors are very important when evaluating SMP systems.
The IBM PC Server 320, 325, 330, 520, 704 and 720 support SMP.
The Server 320 and 520 offer two-way SMP using a shared cache design. This design has one cache memory, which is accessed by the two processors.
The Server 720 uses a design where each processor has its own 512 KB (166 MHz models) or 2 MB (200 MHz models) cache.
The Server 325, 330 and 704 also use an independent cache design. However, the cache is integrated into the Pentium Pro processor. Refer to Cache for further information about the SMP designs of IBM servers and discussions of these alternatives in cache design.