What is the difference between multiple CPU processors (ie: Pentium D) and multicore processors (ie: Core 2 duo)?
migrated from stackoverflow.com Mar 20 '11 at 15:46
This question came from our site for professional and enthusiast programmers.
Multiple CPU processors (like the Pentium D) are literally just two distinct CPUs (two dies) that just happen to share the same physical package.
So, instead of having 2 CPUs in 2 sockets, you have 2 CPUs that just happen to fit in one socket together. Basically, there's no difference between having, say, 2 physical early-generation Xenon CPUs (each in their own socket) and a single Pentium D. (Note: This is very much a simplification.)
Multi-core CPU processors (like the the Core 2 series) are two processing units that share the same die (silicon substrate).
So, the multiple CPU processors are like having 2 CPUs which are just conveniently packaged together, whereas the multi-core CPU processors are 2 CPUs on the same chip.
If this seems like a subtle distinction, that's because it is.
Of course, there's more to it than that - for one thing, having the two CPUs on the same die is more efficient (both power-consumption-wise as well as instruction-wise, due to a different internal design). Additionally, having the CPU cores on the same die means they can share things like L1 cache, whereas when the two CPUs are physically separate dies, they each have to have their own cache.
It gets even more complicated when you throw quad-core chips into the mix, because they are 2 dual-core chips which just happen to share the same physical packaging... kind of like the Pentium D. But that's a digression for another day.
The difference is really all down to busses.
A dual-core CPU is like having two CPUs inside one chip. But, they both have to access the motherboard resources through the one set of pins. Granted, the number of pins is pretty huge these days compared with the older CPUs.
Having two (or more) separate CPUs has the advantage that each CPU has direct access to the motherboard resources through its own set of pins.
While not a massive difference in speed, for memory or IO intensive operations (not CPU bound) the dual CPU model is marginally faster.
The questions is pretty unclear, but one thing you may be thinking about is Hyper-Threading. Many Pentium D processors are actually single-core, but appear to Windows to support 2 threads, or 2 virtual CPUS.
With Hyper-Threading, there is one 1 CPU but it can maintain the state of two threads at the same time such that when one thread is waiting for a long process, like waiting for the HDD or a memory operation, the other thread can execute. This can allow a single-core CPU to be up to 30% more efficient with multi-threaded code due to being able to execute more commands instead of stalling and waiting on long operations.