Originally Posted by CynicalUnicorn
Originally Posted by ShrimpBrime
Lol. another one of "these" threads.
If you have opened up cpu-z and it says you have 8 cores and 8 threads, that's what you have. How do people mistake this>?
Because Task Manager says four cores and eight threads.
There's a very good reason for that too. Bulldozer's design means it takes a fairly significant performance hit if both cores in a module are used simultaneously, depending on the load. So, if it were treated like a "standard" 8-core, then tasks would be assigned to the eight threads more or less at random. If we take four tasks to assign to four threads, then sometimes it acts like a "true" quad-core (one thread per module), and sometimes it acts more like two Hyperthreaded cores (with two threads each in two modules).
So, what's the solution? Treat it like it's Hyperthreaded! A good scheduler will look at an i7 and assign tasks to Core0, Core1, Core2, and Core3 before moving on to the additional threads. Likewise, by treating an FX-8000 chip the same way, tasks are assigned to Module0, Module1, Module2, and Module3, and only after that to the second cores in each.
So is it an 8-core? Yes. Why? Because there is no rigorous definition of what a core actually is
. All this arguing about clusters and whatnot is completely pointless, because it isn't actually relevant to the definition of a core. Is a core a complete processor? Let's say it is. Well... Bulldozer still fits. Integer unit and backend are completely independent, and while the decoder and rest of the front-end are shared, there are multiples. Four decoders in fact. So... If you cut a Bulldozer module in half, you still end up with two complete processors. The FPU isn't necessary, otherwise the early CPUs wouldn't even be CPUs by this definition. I don't think it was until the 386 that Intel even integrated FPUs onto the die.
I get what you are saying. So because AMD shared cache with 2 x86 integer cores, gave it a name module, makes it a quad with 8 threads. It's an interesting thought.
However by definition, an x86 core by design is individual. The Floating point is a feature outside of this design.
AMD also considers the x86 used in bulldozer and PileDriver to be "out of order" X86 core design. Meaning a cpu executes instructions in an order governed by the input data, instead of original order in a program.
x86 stems from 8086 and 8088 processors build back in the 1970's. These same cores are still being built today instead of 16/20 bit we run 32/64bit.
Pipeline introduced in the 386 platform. along with L1 cache.
Now the difference between Hyper threading and AMD's individual modules is quite different. As each Intel core suffers performance while enabling HT, the AMD out of order cores do not. This is also dependent on instruction loads.
We can run programming without AVX. We can run programming without floating point instructions as well.
However none of this is neither here nor there.
When I saw each x86 core had the transistor count of s939 processors, and understanding each cpu integer core is going to be dependent on transistor count to run various other hardware in the system, I knew the CPU was going to be a bust in raw single core performance just from this simple fact.
As each revision gets smaller, it's traditional to implement the space for use of MORE transistors or perhaps longer pipelines like AMD did. The longer PipeLines is where we see the big 8ghz come into play after a good LN2 run.
So with sacrifice to transistor count for including a much longer pipeline, we saw AMD processor frequency greatly increase making base clocks as high as 4.7ghz with a 5ghz turbo boostage.
So depending on how you look at the design of the processor, it's got good things and bad things.
Personally, I like AMD processors. Reasonably priced, overclock like mad, still got Cpu, NB HT and RAM overclocking like it's always been but I (we) get the sacrifice of single core performance. And that's OK!!