maddogfargo :
gamerk316 :
rolli59 :
gamerk316 :
maddogfargo :
It is a 4 core CPU.
The way they are arranged on the die and whether or not they share cache is irrelevant. It is a computing core that can be individually addressed by an application.
By that definition, the core i3 with Hyperthreading is also a quad core CPU, since the Hyperthreaded cores can be individually addressed by an application. The i7 lineup is henceforce Octo-core CPUs.
Not correct since the AMD has physical 2 cores pair module and Intel I3 only has 2 cores with virtual HT cores.
AMD has one physical core and one logical core per module, same as Intels HTT implementation. The only difference is how many resources are duplicated.
So again: Until someone defines what a "core" is, the OPs question is totally objective. Both CMT and HTT rely on shared resources between cores; at what threshold does one become "Virtual" and one become "Physical"?
Not quite.
HT = logical cores = not real. They are threads added to physical cores through addressing/timing/software optimization techniques that allow you to treat them as separate for workload purposes. It is not unlike the asynchronous shader optimizations you will see in DX12 and up-coming GPUs.
FX CPUs have ALL physical cores. They are not logical. They are actual hardware on the die.
The cores are paired into modules for the purpose of sharing L2 cache. This allows certain affinity optimizations where threaded workloads can benefit from sharing cached data. But they are still individual physical cores that can be given their own individual workloads.
I agree that this is confusing because this is a 'hybrid architecture' when compared to previous designs. But Module =/= core, and physical cores =/= logical/virtual.
Hope that helps.
There is nothing "virtual" about HTT cores. The way HTT works, is you have all the resources necessary to store the processor state duplicated, which means two separate sets of registers. ONLY the execution resources are shared, and they are shared equally. EG, If I run exactly one thread, you will get the same throughput if you assign it to Core 0 and Core 1. It's if you use both that performance is lost, because only one of those cores can access the execution resources at any one time.
This is also the reason why non-HTT aware OS's see HTT enabled chips as having two physical cores, rather then one physical and one logical. The two cores are EXACTLY THE SAME, but only one can access the execution resources at a time. Treating the second core as a logical core is really just a hack to tell the OS that the second core of a group is sharing resources with the first, so the second cores of a group get scheduled differently then the first to maintain overall system performance.
From Wiki:
Hyper-threading works by duplicating certain sections of the processor—those that store the architectural state—but not duplicating the main execution resources. This allows a hyper-threading processor to appear as the usual "physical" processor and an extra "logical" processor to the host operating system (HTT-unaware operating systems see two "physical" processors), allowing the operating system to schedule two threads or processes simultaneously and appropriately. When execution resources would not be used by the current task in a processor without hyper-threading, and especially when the processor is stalled, a hyper-threading equipped processor can use those execution resources to execute another scheduled task.
Compare that to Cluster Multithreading, where the Integer processing resources are duplicated, but the floating point resources are not. That's why BD is actually faster then i7's in pure Integer math, since there's no stalling due to needing to share execution resources, like you would if you were doing FP heavy work.
So again: What is a "core"? I define a core as a unit able to maintain the CPUs architectural state, so by that definition, a FX-4xxx is a quad core CPU. Likewise, the HTT enabled i3's are also quad core CPUs. Others will disagree with this, but unless you define exactly what a core is, the OPs question is open to interpretation.