[SOLVED] Need explanation on AMD A10-5800K, is it not a real quad core?

Solution
https://www.notebookcheck.net/AMD-A-Series-Desktop-AMD-A10-5800K-Processor.91970.0.html

here they say this cpu is not a real quad core, is this true?
Is this a worthless cpu to buy nowadays?
It's because it's based on the Bulldozer family of CPUs. AMD stirred up controversy in claiming that Bulldozer processors were made up of "modules" and that each module had two "CPU core." The problem is they counted the "CPU core" as just the integer execution unit. There are two of them, but there's still one floating-point unit and one instruction decoder/dispatcher:
AMD_Bulldozer_block_diagram_%28CPU_core_block%29.png

Compare this to a core on Zen based processors...
https://www.notebookcheck.net/AMD-A-Series-Desktop-AMD-A10-5800K-Processor.91970.0.html

here they say this cpu is not a real quad core, is this true?
Is this a worthless cpu to buy nowadays?
It's because it's based on the Bulldozer family of CPUs. AMD stirred up controversy in claiming that Bulldozer processors were made up of "modules" and that each module had two "CPU core." The problem is they counted the "CPU core" as just the integer execution unit. There are two of them, but there's still one floating-point unit and one instruction decoder/dispatcher:
AMD_Bulldozer_block_diagram_%28CPU_core_block%29.png

Compare this to a core on Zen based processors:
600px-Zen_microarchitecture.svg.png
 
Solution
...
The problem is they counted the "CPU core" as just the integer execution unit. There are two of them, but there's still one floating-point unit and one instruction decoder/dispatcher:
...
That's the essence of the whole controversy. Some people say that because the modules share resources they're not really a 4 core CPU but a 2 core CPU. That seems specious to me since all multi-core CPU's share resources to some degree...if nothing else some caches are shared for instance. That's why the Windows' scheduler was changed to be aware of CPU architecture so not to move processes to cores with unshared resources and introduce unnecessary lag.

At any rate, as with most controversies it comes down to poorly defined terms. Some just define it differently than others.

But that's all immaterial now: to OP's question I agree it's a poor CPU choice for serious content creation involving video editing and rendering. It's way outdated and was a weak 4 core CPU even in its time. It was really only ever suitable for light 720p/1080p gaming (it did have a fairly good iGPU for the time) and desktop office apps (email, word processing, spreadsheet, etc.). That made it a darling for inexpensive pre-builts targeting business and home users, but never content creators, graphic artists or serious gamers.
 
Last edited:
That's the essence of the whole controversy. Some people say that because the modules share resources they're not really a 4 core CPU but a 2 core CPU. That seems specious to me since all multi-core CPU's share resources to some degree...if nothing else some caches are shared for instance.
The problem with going down this route is this allows SMT to be considered multi-core as well, even though at the minimum the only thing that's unique are registers needed to contain state information. I don't think any computer scientist is going to seriously consider a processor with SMT as a "multi-core" one.

That's why the Windows' scheduler was changed to be aware of CPU architecture so not to move processes to cores with unshared resources and introduce unnecessary lag.
I'm willing to bet Windows's scheduler was already built for this... for the Server editions. x86 based multi-processor systems were a thing since the mid 90s at least.

At any rate, as with most controversies it comes down to poorly defined terms. Some just define it differently than others.
That's pretty much it. Or more like there wasn't really a definition with enough legal weight that marketing could do anything they want.
 
.... I don't think any computer scientist is going to seriously consider a processor with SMT as a "multi-core" one.
...
I can't believe they would either. Aside from the decode/dispatch portion I recall a lot of the argument for declaring a Bulldozer module one core was due to the floating point unit being shared. Well, by that logic 8080's all the way up to 80386's should no longer be considered even a one-core CPU because they had no FP unit; they had to be added as an "X87" math co-processor accessory.
 
Last edited:
I can't believe they would either. Aside from the decode/dispatch portion I recall a lot of the argument for declaring a Bulldozer module one core was due to the floating point unit being shared. Well, by that logic 8080's all the way up to 80386's should no longer be considered even a one-core CPU because they had no FP unit; they had to be added as an "X87" math co-processor accessory.
The way I see it, a CPU core is a processing unit you can isolate by itself and it would be able to function in the same system, with the caveat that anything in the uncore (like memory controller, PCIe controller, etc) is still there. That is, I should be able to take what you've identified as the "cores", remove everything but one, connect it to the communication backbone, and it'll still work.

You couldn't do that with Bulldozer's "cores" because you don't have any of the other steps in the CPU execution pipeline to make it work.
 
I'm willing to bet Windows's scheduler was already built for this... for the Server editions. x86 based multi-processor systems were a thing since the mid 90s at least.

Wasn't fixed till a later windows 7 patch and Ryzen wasn't optimized till later on win 10 I think. Linux handled dispatching a different way. I read a white paper on it and there are drawbacks and benefits to each approach.

There are still task swap out on a regular basis cross CCX's under windows 10. I run Folding@Home as my only background task on my NAS and it runs 3/8ths of the cores. They swap back and forth between CCX's constantly.
 
  • Like
Reactions: hotaru.hino
.....
There are still task swap out on a regular basis cross CCX's under windows 10. I run Folding@Home as my only background task on my NAS and it runs 3/8ths of the cores. They swap back and forth between CCX's constantly.

I wonder how much of that is due to poorly optimized FahCore code. I've seen a lot of criticism of poor optimizing on AMD hardware, especially the GPU compute modules.