SSE128

AMD Architecture Comparison
K8 Barcelona
SSE Execution Width 64-bit 128-bit
Instruction Fetch Bandwidth 16 bytes/cycle 32 bytes/cycle
Data Cache Bandwidth 2 x 64-bit loads/cycle 2 x 128-bit loads/cycle
L2/Northbridge Bandwidth 64 bits/cycle 128 bits/cycle
FP Scheduler Depth 36 Dedicated x 64-bit ops 36 Dedicated x 128-bit ops

Many of the "major" changes to Barcelona were driven by one significant change: what AMD is calling SSE128. In the K8 architecture AMD can execute two SSE operations in parallel; however the SSE execution units are only 64-bits wide. For 128-bit SSE operations, the K8 had to handle them as two 64-bit operations. This also means that when a 128-bit SSE instruction is fetched, it is first decoded into two micro-ops (one for each 64-bit half of the instruction), thus taking up an extra decode port for a single instruction.

Barcelona widens the execution units that handle SSE operations from 64-bits to 128-bits, so now 128-bit SSE operations don't have to be broken up into two 64-bit operations. This also means that you get more usable decode bandwidth since 128-bit SSE instructions now map to a single micro-op instead of two. The FP scheduler can now handle these 128-bit SSE operations as well.

It's the increase to SSE execution width that drove a number of other changes within the core. Since you effectively have more decode bandwidth when executing 128-bit SSE instructions AMD discovered a new bottleneck: instruction fetch bandwidth. These 128-bit SSE instructions tend to be quite large, and in order to maximize the number decoded in parallel the Barcelona core can now fetch 32-bytes per cycle, up from 16-bytes in K8. The 32B instruction fetch not only benefits SSE code but also seems to benefit integer code as well. Bigger instructions in general will see a performance boost here.

Now that you can fetch and decode more instructions, you need to be able to get more data to the execution core and thus AMD widened the interface between the L1 data cache and Barcelona's SSE registers. Barcelona can now perform two 128-bit SSE loads per cycle from the L1-D cache compared to two 64-bit loads per cycle in K8. AMD then widened the interface between the L2 cache and the memory controller so that now 128-bits can be transferred per cycle, once again to balance out all of the aforementioned changes.

The culmination of the SSE128 improvements is very similar to some of the changes made in the Yonah to Merom transition. Prior to Conroe/Merom, Yonah could not keep up with AMD's K8 when it came to FP/SSE performance. Almost a year and a half ago we did an article where we compared AMD's K8 to Intel's Yonah running at the same clock speed. While Yonah was able to equal the K8's performance in general applications, professional 3D rendering and games, it could not compete when it came to video encoding.

There were a number of SSE performance improvements made to Yonah but it wasn't until Intel's Core 2 processors that Intel was really able to outperform AMD in our video encoding tests. Whether the improvements were due to the single cycle SSE throughput introduced in Core 2 or the wider front end or a combination of both remains to be seen. Although it's difficult to compare specs between two very different architectures, encoding performance is a sore spot for AMD today, and it's something that the SSE128 changes can only help.

The Chip Core Tune-up
Comments Locked

83 Comments

View All Comments

  • R3MF - Thursday, March 1, 2007 - link

    thanks.

    a 2.4GHz Agena on an AM2+ mATX motherboard, sat in a tiny SUGO 03 case sounds like a very tempting proposition later on this year.
  • Macuser89 - Thursday, March 1, 2007 - link

    Is it just me or is this article saying that AMD is copying a lot of intel's advancements. Great in depth article AT.
  • Le Québécois - Thursday, March 1, 2007 - link

    I may be wrong but I think that new CPU or GPU technologies are planned years ahead so for me it look more like they came down to the "same" conclusion on how to improve their CPU. Only Intel did it 1 year before AMD.
  • JarredWalton - Thursday, March 1, 2007 - link

    There are fundamentally only so many ways to improve processor performance, and Intel used most of them with Core 2. That AMD is using similar patterns (more buffers, better branch prediction, wider execution, etc.) isn't at all surprising. Just because the same basic principles are used, however, doesn't mean that at the transistor level there aren't significant differences and challenges to overcome.
  • archcommus - Thursday, March 1, 2007 - link

    Another great article that displays all the reasons why I read AT - lengthy, technical reviews written by educated authors that are interesting to read and to top it off, with no typing errors! I'm sure you guys use voice software to write these mammoths.

    I was waiting for details on Barcelona for so long and this is finally it. I have no doubt that AMD will be up to par with Intel again, but the question is, will this significantly SURPASS Core 2 offerings at the time? I hope so but it's not a definite thing yet.

    The best thing is, I'm a ways into my computer engineering degree now so I can actually understand a lot of these very techincal articles!
  • Le Québécois - Thursday, March 1, 2007 - link

    You said:
    quote:

    ...Barcelona's mid-2007 launch on servers and Q3 '07 launch for desktops...


    But isn't it the same thing?
    I mean mid-2007 is the 1st of july and Q3 also begins with july. Could you be more specific? Maybe the month we can expect them?
  • JarredWalton - Thursday, March 1, 2007 - link

    Q3 means anywhere between July and late September, while mid-2007 means June or July time frame. As the official launch date approaches, we'll refine things where possible.
  • Le Québécois - Thursday, March 1, 2007 - link

    Thank you for your quick reply, as usual.
  • mjrpes3 - Thursday, March 1, 2007 - link

    Any word on when the desktop variant of Barcelona (Agena) will find its way into consumer's hands?
  • puffpio - Thursday, March 1, 2007 - link

    When you refer to DDR3 you call it DDDR3
    unless...there is a DDDR3 I don't know about?

Log in

Don't have an account? Sign up now