How does dual core differer from dual processor?

Diplo

Veteran
What, if any, are the differences between a machine with a dual processor core and one with two separate CPUs? What are the advantages and disadvantages? Will Windows scheduler treat them alike (does Windows "see" them as the same thing?). Just curious...
 
The advantage of AMD's X2 processor (and the new Intel Core Duo AFAIKU) over a traditional two CPU system is that the two cores have an internal communication link. In a traditional setup the communication (using the FSB) between the cores goes like this:

CPU0 --> North Bridge --> CPU1 --> North Bridge --> CPU0. (and vice versa)

With an X2 the communication all inter core communication is on-chip, i e

CPU0 <--> CPU1.

The importance of intercore communication is to ensure cache coherency.

Edit: The Pentium D processors still have to communicate via the FSB, so the only advantage they have over a traditional two socket system is basically a smaller motherboard...
 
That is some innocent questions with rather large answers. There are many different types of implementations that have slightly different characteristics. I will use gross simplifications when explaining, if you want to know more specific I suggest you spend some time (think 100's of hours) with a searchengine or ask a very specific question here, there will probably be more than me that can answer, or you could message me to get my attention again.

Generally, dual core means that the cores are sharing more resources (memory bandwidth, access to northbridge/chipset) but have faster communications between the cores than dual socket/processor systems.
Dual socket/processor systems often share their connection/bus to the northbridge/chipset which means that they share all off-chip resources between themselves, this is limiting the performance as they will have to wait should the other processor already be occupying the bus when it wants to access it (this is the most common Intel implementation).

For example, AMD low end dual core systems (athlon 64 x2, opteron model 165 and higher, but only the 1xx series) have two channels to the memory (one for each core I think) but they share the connection to the chipset, however the chipset connection is quite fast and probably not very limiting for performance.

Intel low end dual core (xeons, P4, yonah) have the memory controller on the northbridge/chipset/MCH and thus share their connection to the fast memory so that whenever (think always :rolleyes:) one core is accessing the memory, the other will have to wait (there are techniques that helps somewhat with this problem, the core will for example just start working on a different instruction stream that is
readily available in the onchip cache). This is severely limiting to performance and higher end 3rd party implementations, bigger than dual socket system solutions, use chipset tricks to (generally) pair off two processors on one bus and have several such buses on the chipset(or chipsets!) to service more cores without incurring such a large penalty - Think Serverworks and IBM (and HP?). Of course, if you were to use dual core systems in such implementations they would be very limited indeed and have a very low performance increase, this is the main point of why AMD is gaining marketshare in the server market imo. - They are simply not nearly as limited because of their ondie memory controllers and core->core (processor->processor) interconnects (HyperTransport, formerly known as lightning data transport, LDT).
So for current Intel systems there is little difference between a two socket (separate cpus) and a dual core system. They do have better (slightly improved) solutions coming up but nothing on their public roadmap is as elegant as AMDs current solution. I think this gives a rough idea of the state of x86 implementations (not counting VIA, which seems to have a solution similar to that of Intel) so I'll give some quick and dirty answers to your questions.

What, if any, are the differences between a machine with a dual processor core and one with two separate CPUs?
Cost of implementation (devellopment, more expensive circuitry for dual socket), faster process/thread switching (core->core datasharing) on dual core, memory limitations (AMD has dedicated bandwidth to each core, can use tricks to even further that advantage - look up NUMA), scaling (ability to build larger systems effectively).

What are the advantages and disadvantages?
Largely answered previously but dual core: cheaper and faster in small systems. dual socket: more expensive, more scalable. dual socket AND dual core: more expensive, more effective use of resources, more scalable.

Will Windows scheduler treat them alike (does Windows "see" them as the same thing?)
Yes. Even Intels HyperThreading is treated as any other core (often stupid though). It may be that highend versions of windows, datacentre etc. are better optimized/(and or) can be patched to be more aware of the topology/properties of the hardware - once again look up NUMA, but I do not know of any specific implementation such as that (still a student!! :D) but it is entirely possible.

EDIT: I forswear any obvious brainfart and such, I didn't get much sleep tonight. Also, checkout the links!


http://www.sandpile.org/
http://endian.net/roadmap.asp
http://www.chip-architect.com/ Rarely updated these days
http://arstechnica.com/index.ars Particulary the forum, not trying to recruit people though!
http://www.digit-life.com/
http://www.mdronline.com/mpf/ ANY freebies that you can get
http://www.mdronline.com In-Stat, same as above just not specifically targeting MPF
http://www.lostcircuits.com/cpu/

There are of course others but I keep my links on an older computer and these are from the top of my head.
 
Last edited by a moderator:
Thanks, maaoouud, that was exactly the kind of info I was hoping for. I shall swat up on those useful links you provided!

On a related question, I know that Microsoft semi-secretly released a patch for Dual core AMD chips to address "decreased performance or unexpected behavior" when power-management (read "Cool'n'Quiet") is enabled. (I say "semi-secretly" because you have to ask Microsoft for the patch, it's not publicly available on their site). I've seen anecdotal evidence this patch stops the Windows Scheduler from bouncing processes from core to core too often and also read that it can help even if Cool'n'Quiet isn't enabled. Am I right in think the patch changes the way the Scheduler works? Are there any problems with it (since Microsoft won't make it public) ? Anybody any more detailed idea of what it exactly does?
 
http://forums.amd.com/index.php?showtopic=64936

This is only really needed if you are going to use cool and quiet I think. I run my processors at full load constantly so I haven't bothered to install it. The patch is not hidden or secret in any way, it's just that few people know about it before they get their hands on a X2/Opteron. And once you've installed it I think you forget all about it, I haven't heard of anyone with problems with it anyhow.
 
Sorry, when I said "secret" I meant that it wasn't available for public download on Microsoft's site, which tends to indicate it's very beta and hasn't been tested much (which is why I was wondering if it could possibly cause problems).
 
i wonder how well a Sequent Symmetry SMP system would do on the best games (properly exploited for UNIXlike platform of course)...

are there any intel/AMD based SMP rigs? (you know like 20 or more CPU's)
 
Back
Top