Four Cores Out Of Eight
Well, today’ we are going to talk primarily about the junior processors on Bulldozer microarchitecture: FX-8120, FX-6100 and FX-4100. The very first one of the three differs from the previously reviewed FX-8150 only by its lower clock frequency. FX-6100 and FX-4100 seem to be much more interesting products, because they have six and four computational cores inside instead of Bulldozer’s typical eight-core structure.
In fact, the first question that arises when we meet FX-6100 and FX-4100 processors is: what semiconductor die really is inside them. AMD has always been for unification, and this time is also no exception. All FX processors use the same semiconductor die with eight physical cores. The modifications with fewer cores are created by simply disabling certain parts of the die.
However unfortunately for many of us, they no longer use the same approach to disabling parts of the die, as in Phenom II and Athlon II: it is now performed at low-hardware level. You won’t be able to play the same trick on Bulldozer processors: there is absolutely no way to unlock the cores disabled by the manufacturer. In other words, if you are buying, for example, a quad-core processor, you won’t be able to turn it into a six- or eight-core one.
Another frustrating peculiarity is that AMD disables pairs of cores on the per-module basis. Since two cores inside the same module share a lot of resources, including instruction prefetch and decoding units, floating point unit and L2 cache, it would make much more sense from performance standpoint to disable only one core per module. Unfortunately, this approach was not only difficult to implement, but would also make it impossible for AMD to put their defective dies to good use in quad-c and six-core processors. Therefore, this strategy has never been utilized that is why the theoretical performance of the quad-core Bulldozer processors is exactly half of what their fully-functional brother is capable of.
To back up our statements we decided to use a quad-core Bulldozer processor to replicate two possible ways of disabling CPU cores and compare the performance in both cases. In the first case we used a “real” FX-4100 with two modules and four cores, and in the second – an eight-core four-module Bulldozer where we manually disabled one core per module. To ensure that the comparison is fair, we set the clock frequency to 3.6 GHz for both processors. For your reference we also included the performance numbers of a fully-functional eight-core CPU with all cores active and running.
As we have expected, disabling one core per module leads to higher overall performance than in case two of the four modules are completely disabled, although in both cases the number of active cores is formally the same. And I have to stress that the performance difference is more than noticeable and may reach 25% in some cases. This is what you could gain if the microarchitectural resources shared between the cores within one processor module will be allocated fully to one single core. Unfortunately, they never implemented this approach that is why quad-core (and six-core AMD FX processors have the same exact internal organization as their elder brothers, i.e. contain pairs of cores.
The good news is that all CPU modifications in the FX series retain 8 MB of L3 cache. Although the cache itself is segmented and allows us to disable parts of it, even the very junior quad-core Bulldozer modifications have the same L3 cache as the top processors with eight computational cores.