Vandreal :
palladin9479 :
Deus Gladiorum :
That's a lot to take in, and though that last portion is a bit dense, I can understand a bit of it. The last portion doesn't truly answer my question, as I still don't really know the inherent differences between logical and physical cores but really, this all just confirms that in order to truly understand the differences I'm going to have to study quite a bit. Analogies oversimplify, and in a topic like this where things are extremely complex there's a great deal that can be left out.
I understand the difference between 32 bit and 64 bit, that a 64 bit CPU can process a number up to 2^64 - 1, while a 32 bit can only process a number up to 2^32 - 1. I think I understand floating points a bit better now. So essentially they're decimals that don't terminate? So the ALU is used to process numbers that are static, while the FPU does the same job as the ALU, just applied to floating points, i.e. numbers that may not terminate?
I suppose I'll just have to continue studying in computer science in order to do so.
That's essentially correct about the FPU part, 8087 has 80-bit precision which is much greater then the 16/32-bit provided by the early processors. Modern CPU's can do 64-bit operations which is typically "good enough" for precision but not speed. SIMD instructions can do 32, 64, 128 and 256 bits of precision while also working on multiple values at once and thus are the preferred method to use.
What we've been trying to say is that there is no such thing as a "logical" core, it's a fictitious creation by people who didn't understand how CPU's process data and wanted to explain why their device manager listed eight CPU's for the i7 when their CPU said it was four cores. The explanation is very simple, much simpler the all those analogies. Physical cores are what your CPU has, the CPU receives instructions from the OS by the use of external registers (AX/BX/SI/IP/ect..) and CPU stack. In order to facilitate faster CPU throughput Intel chose to create two separate external register stacks for each of it's HT cores. This has the result of the OS seeing all eight register stacks and thus believing they are all CPU's and scheduling instructions on them.
So if you absolutely have to use the physical / virtual concept, then physical is what you have, virtual is what your OS see's / thinks you have.
So, then how many actual cores are on the AMD fx 8350 processor? I currently have a fx 6100 and my os states it has 3 cores/ 6 logical processors. I understand "logical processors" is just a label; but would this still be the case with the 8350 (just like the i7) 4 cores/ 2 stacks per core?
I actually got a one day ban for my last answer so I will be careful about how I elaborate on the Mod's "technically accurate but not very simple" answer. The fact is that there are only 3 complete cores on your FX6100, but there are two of certain items within that core, so you feed it two streams of information. You could look at it as 6 cores that share certain parts (like FP units) or 3 cores that have two of certain parts (like integer units).
On the other hand, in the Intel realm there are also two 'assembly lines' (register stacks), but one robotic hand that works on both, switching from one to the other when appropriate (There is only one FP, and one Integer unit per core, despite it having two threads for example. The FP and Integer units actually do math, where as the register stack arranges the data to be processed with the processing and type needed to do it then sends it on it's way to whatever units carry out those actions). This means at any point in which a program has to fetch data from RAM or otherwise wait, your core can continue to process data on the other assembly line coming into it whilst it waits. That same waiting period is why it works well when AMD has only one of certain processing units on its CPU, because it can work on the other thread during the time it would usually spend waiting.
In the intel example there is very definitely one core being fed two threads of instructions.
This is also why games like BF4 run so well on AMD chips. Because the consoles they were optimized for had two integer units, and Intel doesn't have two integer units, allowing an AMD chip like a 8350 to match a 4770k for a fraction of the price and play BF4 at competitive speeds because BF4 was optimized to use the Integer unit a lot. AMD has worse actual FP units than Intel however, so it will fall over in all non-AMD optimized games to that same Intel tech.
Note to Paladin:
Please don't ban me again for using an analogy. Some people don't understand the nature of a register stack, and if you think about it, SIMD, bit precision, and those other additions made to your information were very knowledge dense for what was a somewhat simple concept when only loosely explained.