A8-6600k only has 2 Core and 2 Logical Processors

1991ATServerTower

Distinguished
May 6, 2013
141
4
18,715
*sigh*

The processor physically has:

4 Full Integer Units (ALUs)
2 Full Floating Point Units (FPUs)

They are stuck together in a "module" like so,

Core 1 / Core 2: ALU/ALU/FPU
Core 3 / Core 4: ALU/ALU/FPU

Microsoft lacks the ability to program for this hardware design correctly, so MICROSOFT PRETENDS that it's a dual core processor with hyperthreading. This is to avoid sending too many FPU threads to a core that is already busy, because there are only 2 FPUs rather than 4.

Most itensive stuff will use the ALUs and truly, if you look back to the 286 processor, the ALU actually IS the whole "core" and the rest of the things included, such as an FPU, are "co-processors".
 

KevinHizon

Honorable
Sep 13, 2013
11
0
10,510
So basically the a8-6600k have only 2 main cores and does not function like Intel Core 2 Quad..? or any intel with 4 cores?
 

1991ATServerTower

Distinguished
May 6, 2013
141
4
18,715


No. It has 4 cores and Microsoft is stupid.
 

KevinHizon

Honorable
Sep 13, 2013
11
0
10,510



So PerformanceTest 8.0 is stupid too they should update their product to show real information. So even though I don't see the 2 other cores they are literally working right?
 

1991ATServerTower

Distinguished
May 6, 2013
141
4
18,715

DieShot.jpg


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...
 

KevinHizon

Honorable
Sep 13, 2013
11
0
10,510
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...


wow.. Your answer explained everything. I feel bad I thought my Intel quad core 2.6 Ghz is stronger than this one when I see the information Microsoft provided me it makes me feel bad 'cause I do a lot of work in processing such a making and editing short video (it's my hobby) . And I used a lot of software and played a lot of games. This processor is the best I can afford. Thank you..