Implementing a multiprocessing system involves more than just buying a second
processor. You'll need to outfit your SMP motherboard with a special chip that
will manage the various functions of all processors simultaneously. The
processors you use will also need to be SMP-friendly.
Some of the complex functions that multiprocessing necessitates are worth
looking at. In order for two processors to not get ahead of each other and start
generating data that renders either of them out-of-date, multiprocessing depends
on something called cache coherency. As one processor digs into its cached
memory to retrieve a piece of information, the other processor checks that it
hasn't updated that particular item without the other processor's knowledge. If
it has, then it supplies the latest data. This cache coherency prevents data
from becoming corrupted as two or more processors work more or less separately
on one task.
Another feature that makes multiprocessing work better is referred to as bus
arbitration. In order to access memory that's deeper than the processor's cache
-- i.e., the RAM or the computer's hard drive -- the processor must go through
something called the system bus. When more than one processor is operating,
however, a squabble can arise over which processor gets to use the bus first.
Bus arbitration assigns different voltages to pins on the processors, which in
turn determine which processor is active and which is inactive. The active
processor gets dibs on the bus. And this active/inactive status switches
randomly between the processors, so nobody gets upset.
At the end of the day, multiprocessing is a neat concept, but for at-home
computer-users, it hardly pays off. Doubling your processor does not necessarily
double your speed, unless you're constantly using applications that benefit from
dual processors. For most at-home users, this is not the case. For them, given
the cost of all the necessary upgrades, you're better off investing in a typing
course to speed up your keyboard skills than shelling out for this kind of