The long awaited Bulldozer cores are finally here for consumers but are they worth the wait?
Bulldozer. Since its initial unveiling and placement on the roadmap many have called the Bulldozer architecture the savior of AMD, the processor that would finally turn the tide back against Intel and its dominance in the performance desktop market. After quite literally YEARS of waiting we have finally gotten our hands on the Bulldozer processors, now called the AMD FX series of CPUs, and can report on our performance and benchmarking of the platform.
With all of the leaks surrounding the FX processor launch you might be surprised by quite a bit of our findings – both on the positive and the negative side of things. With all of the news in the past weeks about Bulldozer, now we can finally give you the REAL information.
- Bulldozer First Release and the State of 32nm AMD Parts
- AMD Bulldozer Processor hits 8.429 GHz – New World Record!
- AMD Bulldozer FX Processor Benchmarks Leaked
Before we dive right into the performance part of our story I think it is important to revisit the Bulldozer architecture and describe what makes it different than the Phenom II architecutre as well as Intel’s Sandy Bridge design. Josh wrote up a great look at the architecture earlier in the year with information that is still 100% pertinent and we recount much of that writing here. If you are comfortable with the architeture design points, then feel free to skip ahead to the sections you are more interested in – but I recommend highly you give the data below a look first.
The below text was taken from Bulldozer at ISSCC 2011 – The Future of AMD Processors.
Bulldozer Architecture Revisited
Bulldozer brings very little from the previous generation of CPUs, except perhaps the experience of the engineers working on these designs. Since the original Athlon, the basic floor plan of the CPU architecture AMD has used is relatively unchanged. Certainly there were significant changes throughout the years to keep up in performance, but the 10,000 foot view of the actual decode, integer, and floating point units were very similar throughout the years. TLB’s increasing in size, more instructions in flight, etc. were all tweaked and improved upon. Aspects such as larger L2 caches, integrated memory controllers, and the addition of a shared L3 cache have all brought improvements to the architecture. But the overall data flow is very similar to that of the original Athlon introduced 14 years ago.
As covered in our previous article about Bulldozer, it is a modular design which will come in several flavors depending on the market it is addressing. The basic building block of the Bulldozer core is a 213 million transistor unit which features 2 MB of L2 cache. This block contains the fetch and decode unit, two integer execution units, a shared 2 x 128 bit floating point/SIMD unit, L1 data and instruction caches, and a large shared L2 unit. All of this is manufactured on GLOBALFOUNDRIES’ 32nm, 11 metal layer SOI process. This entire unit, plus 2 MB of L2 cache, is contained in approximately 30.9 mm squared of die space.
It is well known that Bulldozer embraces the idea of “CMT”, or chip multi-threading. While Intel supports SMT on their processors, it is not the most efficient way of doing things. SMT sends two threads to the same execution unit, in an attempt to maximize the work being done by that unit. Essentially fewer cycles are wasted waiting for new instructions or resultant data. AMD instead chose to implement multi-threading in a different way. For example, a Bulldozer core comprised of four modules will have eight integer execution units, and four shared 2 x 128 bit floating point/SIMD units. This allows the OS to see the chip as an eight core unit.
CMT maximizes die space and threading performance seemingly much better than SMT (it scales around 1.8x that of a single core, as compared to 1.3x that using SMT), and CMP (chip multi-processor- each core may not be entirely utilized, and the die cost of replicating entire cores is much higher than in CMP). This balance of performance and die savings is the hallmark of the Bulldozer architecture. AMD has gone through and determined what structures can be shared, and what structures need to be replicated in each module. CMT apparently only increases overall die space by around 5% in a four module unit.
A closer look at the units reveals some nice details. Note the dual MMX (SIMD-Integer) units in the FP/SIMD block. A lot of work has been done on the front end to adequately feed the three execution units.
Gone is the three pipeline integer unit of the Athlon. Bulldozer uses a new four pipeline design which further divides the workloads being asked of it. These include multiply, divide, and two address generation units. Each integer unit is fed by its own integer scheduler. The decode unit which feeds the integer units and the float unit has also been significantly beefed up. And it had to be. It is now feeding a lot more data to more execution units than ever before. The original Athlon had a decode unit comprised of 3 complex decoders. The new design now features a 4 decode unit, but we are unsure so far how the workload is managed. For example, the Core 2 had a 4 decode unit, three of which were simple decode, and the fourth was a complex. My gut feeling here is that we are probably looking at three decoders which can handle 80 to 90% of the standard instructions, while the fourth will handle the more complex instructions which would need to be converted to more than one macro-op. While this sounds familiar to the Core 2 architecture, it does not necessarily mean the same thing. It all depends on the complexity of the macro-ops being sent to the execution units, and how those are handled.
The floating point unit is also much more robust than it used to be. The Phenom had a single 128 bit unit per core, and Bulldozer now has it as 2 x 128 bit units. It can combine those units when running AVX and act as a single 256 bit unit. There are some performance limitations there as compared to the Intel CPUs which support AVX, and in those cases Intel should be faster. However, AVX is still very new, and very unsupported. AMD will have an advantage here over Intel when running SSE based code. It can perform 2 x 128 bit operations, or up to 4 x 64 bit operations. Intel on the other hand looks to only support 1 x 128 bit operation and 2 x 64 bit operations. The unit officially supports SSE3, SSE 4.1, SSE 4.2, AVX, and AES. It also supports advanced multiply-add/accumulate operations, something that has not been present in previous generations of CPUs.
In terms of overall performance, a Bulldozer based core should be able to outperform a similarly clocked Intel processor featuring the same number of threads when being fully utilized. Unfortunately for AMD, very few workloads will max out a modern multi-core processor. Intel should have a slight advantage in single threaded/lightly threaded applications. AMD does look to offset that advantage by offering higher clocked processors positioned against the slower clocked Intel units. This could mean that a quad core i7 running at 3.2 GHz would be the price basis for a 4 module Bulldozer running at 3.5 GHz.
Exact specifications have not been released for the individual parts, but we can infer a few things here. First off is the fact that it appears as though each core will utilize 2 MB of L2 cache. This is quite a bit of cache, especially considering that the current Phenom II processors feature 512 KB of L2 cache per core. Something that has allowed this to happen is buried in GLOBALFOUNDRIES 32 nm SOI process. They were apparently able to get the SRAM cell size down significantly from that of the previous 45 nm process, and allow it to also clock quite a bit higher. This should allow more headroom for the individual cores. With the shrink, we should also expect to see at least 8 MB of shared L3 cache, with the ability to potentially clock higher than the 2 GHz we see the current L3 caches running at.