I've heard it compared to, over-and-over again, stated by people that having a dual-core processor is the same as having two processors and the same as the cores increase. But, I doubt this. Besides the obvious cache issue, how different is a 2.0 dual-core CPU from having two 1.0 uni-core CPU's?
CRGreathouse
Nov6-08, 10:24 AM
I've heard it compared to, over-and-over again, stated by people that having a dual-core processor is the same as having two processors and the same as the cores increase. But, I doubt this. Besides the obvious cache issue, how different is a 2.0 dual-core CPU from having two 1.0 uni-core CPU's?
Some multicore processors have shared caches, some have different caches for each core.
Aside from cache, the main difference is that two cores can pass information between themselves faster than two independent processors could.
-Job-
Nov9-08, 03:30 AM
With a multicore CPU you're sharing one socket across multiple cores which may mean less throughput.
Enthalpy
Nov12-08, 08:35 PM
Less throughput...
With several sockets, you'd have more throughput IF each processor had its own RAM, which isn't generally the case in PC nor servers.
Few servers have been built with one RAM per processor. And then, communication between them needs special channels. Also, Windows isn't optimised for this architecture (but other OS certainly are!). Newer Windows (Server 2k8 I think) are designed for it.
michinobu
Nov19-08, 08:47 PM
Less throughput...
With several sockets, you'd have more throughput IF each processor had its own RAM, which isn't generally the case in PC nor servers.
Few servers have been built with one RAM per processor. And then, communication between them needs special channels. Also, Windows isn't optimised for this architecture (but other OS certainly are!). Newer Windows (Server 2k8 I think) are designed for it.
Less throughput??? :surprised Are you sure? I'm sure there's always room for another processor, especially when concerning servers. If nothing else, one single processor can do all the scheduling while other processors can provide whatever individual service they are meant to do.
BUT, this isn't what I was asking about. I am not talking about actual multiple, stand-alone processors, but rather those multicore processors. What's the difference between those and the other things?
michinobu
Nov19-08, 08:51 PM
Some multicore processors have shared caches, some have different caches for each core.
Aside from cache, the main difference is that two cores can pass information between themselves faster than two independent processors could.
So, it sounds more like it's ideal for multi-threading since threads oftentimes communicate with each other within the same process? If that is the case, how does this differ from Hyperthreading? I imagine that that a core is more closer to a stand-alone processor than a virtual processor implemented in a Hyperthreaded cpu. To what extent do they differ?
Does this improve throughput with two complete processes which communicate with eachother (likely working toward the same goal) even while having their own individual global variables, heap, and other process-related data?