My a8-6600k when running passmark benchmark show only 2 cores and 2 logical processors.
This is the picture.
This is the picture.
This is the Trinity die, which is pretty much the same as your Richland die. The right side is the video processor. The left side is the L2 cache and the two "modules" that comprise the 4 "cores" of your processor.
You see, there 2 "modules" physically inside the processor. Inside each module are 2 APUs and 1 FPU. Traditionally, a "CPU Core" is only the APU, thus your processor is 100% physically a "Quad Core Processor".
That software is blatantly WRONG, because there ARE 4 physical cores, regardless of how it treats 2 of them as "logical" rather than physical. Totally misleading...
Windows and some software are telling you misinformation, smply because they are too lazy to explain to you that some software uses a lot of decimal point math (floating point math) and your system only has 2 of those specific "co-processors".
When an operating system handles an FPU instruction it basically does the following to determine what CPU to send it to,
1. Is there a core available?
- Yes? COOL SEND IT THERE!
Now on the CPU, the instruction gets decoded kinda of like so,
1. What is the instruction?
- Decimal (floating point) or Whole Number(integer)?
- Cool, it's a floating point! I should send that to the FPU.
3. Is the core available?
- No, it's already processing a ALU instruction. I need to wait.
And there's the problem!
Because Core 1 and Core 2 share a single FPU, if the OS is dumb and sends an FPU instruction to Core 2, because Core 1 is busy, it doesn't help anything. The FPU for Core 2 is already busy - it's the same damed part as the FPU for Core 1! Instead, the OS should have sent the instruction to Core 3 or Core 4, because their FPU was sitting there doing nothing the whole time.
In Windows, Microsoft decided that the easiest way they could sort of achieve the goal of avoiding this problem was to treat your 4 core CPU as a dual core with hyperthreading. It's a hack and they really should not be calling your CPU a dual core with hyperthreading, because in reality it IS a full 4 core cpu.
So in Windows it works like so,
Physical Core = Core 1
Physical Core = Core 3
Logical Core = Core 2
Logical Core = Core 4
This allows programs that run in Windows to prefer sending information to Core 1 and Core 3, ensuring that they get used first, thus reducing the timers where a FP instruction is sent to a "Core" that doesn't actually have an FPU available at the time.
Hence my *sigh* - the "1 FPU per 2 ALUs" processor design goes back to the 1990s with DEC, so it's neither new nor underhanded nor even strange. The end user, such as yourself, should not be burdened with having to seek this explanation and Microsoft should feel bad for spreading FUD. Almost makes ya wonder how much Intel paid them to do... almost...