Originally Posted by bphillips712
Okay so I was running some benchmarks and noticed that Windows seems to think that my FX-4100 is a dual core. I set the system to boot 4 cores, and I initially thought the CPU doubled cores because I overclocked to 4GHz from the stock 3.6, this is what the FX-8xxx does to its cores when overclocked. After looking around and reading mountains of articles and forum posts I am confused. If I'm correct, the FX-4100 is not a true Quad core Processor. It has 4 logical cores but only two controllers. This is nearly the same as a Core i3 with hyperthreading if I'm not mistaken. It would be nice to know for sure, no one person seems to really know what is going on. My question is: Is the FX-4100 a dual core or a quad core? If I were looking for an AMD quad core would I need to get an FX-8350 to have an actual quad core? Any insight into this would be greatly appreciated.
Guess you are not asking in the right place cause I know exactly what is going on, as I am sure many people here do as well.
If Windows 7 reports that you are running a dual core it is because you dont have the Windows update that fixes how Windows regards this newish AMD architecture, and you probably also dont hvae the windows update that better optimizes how Windows schedules tasks across the cores.
Originally Posted by Scorpion49
FX series CPU's share resources by each "module" which is essentially a pair of integer cores that share a single floating point unit.
Not exactly true. Each module consists of two cores like you say. These are integer cores and are where the majority of desktop processing is done. Each module currently has 1 prediction block, 1 fetch block, 1 decode block, and 1 scheduling block. It then splits into individual integer cores. The L2 cache is also shared between cores in a module but each integer core has its own L1 cache. L3 cache is shared between all cores and modules in the processor for inter CPU communication between cores. There is also technically 1 floating point processing unit in a module, however the FP unit is a much larger unit than previous core designs and it can either be used as one large processing area when only 1 taks needs processing or can be split in half and 128-bit processing is available to one core and 128-bit processing is available to the other core at the same time, thus becoming two floating point units of normal size.
A module isnt really just one core or anything like that, the module is a building block of the processor. It is a modular designed architecture where AMD could simply place modules into a new design to get the amount of cores they want. The module is a complete processing unit, that houses two cores on it. it is fully complete by itself for the processing logic of the CPU. The design itself is pretty ingenious, but as is usual with AMD they lack the funding for proper execution of their design, which is why we had so many issues at first. Some of the issues were not enough funding to do proper testing, not being able to afford a large enough team to get things done fast enough, and not a properly developed and tested process node at the foundry to make sure the design could be made properly. IPC had always been designed to take a bit of a hit, but this would be outweighed by clock speed. Unfortunately the target base clock speed of 5GHz and scaling to 6GHz cores was not able to be reached because of issues at Global Foundries. Thus we had far slower cores than planned which resulted in bad performance of the architecture. Another major issue was the testing, not enough time or money to get it done well so we had the major issue of the l2 cache being "thrashed"" by the integer cores where each core would be kicking the other core's data out of cache so both cores were simply fighting each other and end up with nothing and had to make far too many trips out to RAM. RAM is WAY slower than the L2 cache so this caused large performance issues too. This was partly fixed in Piledriver, and will hopefully be fully fixed in Steamroller.
The up and coming "Steamroller" architecture enhancement to the Bulldozer and Piledriver design will mostly change the front end of the CPU, where each core shares fetch and decode blocks. Steamroller will still use the 1 branch prediction block, but with a few enhancements, as well as 1 fetch block, also with a few enhancements. However each core will once again have its own decode and dispatch blocks for their own core. This will help increase throughput of the integer cores. Hopefully the FP unit wont become buggy though, as it will start to be fed by both dispatch blocks.
The design itself of the processor is sort of like Intel's hyper-threading. Originally it was going to be called this sort of thing too and not listed as full cores. However somewhere along the line AMD marketing decided that listing them as higher core counts would be better for sales when n00bs compare processor specs, so this idea was changed. Technically AMD's way of "hyper-threading" is far more advanced and efficient than Intel's way of doing it, but also is far more intensive in the intial R&D and much more costly to implement, which is why Intel went the easiest of the 4 ways to implement hyper-threading. AMD took the hardest route but also the most beneficial to processing.
Either way, they are closer to real cores sine they do have the full proper number of Integer cores so it is best to call them cores for simplicities sake. The best way to talk about processors though is not in cores or module, but threads. I refer to an i7-4770K as an 8-thread processor, the 4670K is a 4-thread design. AMD's FX-4370 is a 4-thread design and its FX-8320 is an 8-thread. Way easier this way and it makes far more sense now that we deal with so completely different processors.Edited by EniGma1987 - 7/19/13 at 12:32pm