Why In-Order?

Ever since the Pentium Pro, desktop PC microprocessors have implemented Out of Order (OoO) execution architectures in order to improve performance.  We’ve explained the idea in great detail before, but the idea is that an Out-of-Order microprocessor can reorganize its instruction stream in order to best utilize its execution resources.  Despite the simplicity of its explanation, implementing support for OoO dramatically increases the complexity of a microprocessor, as well as drives up power consumption. 

In a perfect world, you could group a bunch of OoO cores on a single die and offer both excellent single threaded performance, as well as great multi-threaded performance.  However, the world isn’t so perfect, and there are limitations to how big a processor’s die can be.  Intel and AMD can only fit two of their OoO cores on a 90nm die, yet the Xbox 360 and PlayStation 3 targeted 3 and 9 cores, respectively, on a 90nm die; clearly something has to give, and that something happened to be the complexity of each individual core. 

Given a game console’s 5 year expected lifespan, the decision was made (by both MS and Sony) to favor a multi-core platform over a faster single-core CPU in order to remain competitive towards the latter half of the consoles’ lifetime. 

So with the Xbox 360 Microsoft used three fairly simple IBM PowerPC cores, while Sony has the much publicized Cell processor in their PlayStation 3.  Both will perform absolutely much slower than even mainstream desktop processors in single threaded game code, but the majority of games these days are far more GPU bound than CPU bound, so the performance decrease isn’t a huge deal.  In the long run, with a bit of optimization and running multi-threaded game engines, these collections of simple in-order cores should be able to put out some fairly good performance. 

Does In-Order Matter?

As we discussed in our Cell article, in-order execution makes a lot of sense for the SPEs.  With in-order execution as well as a small amount of high speed local memory, memory access becomes quite predictable and code is very easily scheduled by the compiler for the SPEs.  However, for the PPE in Cell, and the PowerPC cores in Xenon, the in-order approach doesn’t necessarily make a whole lot of sense.  You don’t have the advantage of a cacheless architecture, even though you do have the ability to force certain items to remain untouched by the cache.  More than anything having an in-order general purpose core just works to simplify the core, at the expense of depending quite a bit on the compiler, and the programmer, to optimize performance. 

Very little of modern day games is written in assembly, most of it is written in a high level language like C or C++ and the compiler does the dirty work of optimizing the code and translating it into low level assembly.  Compilers are horrendously difficult to write; getting a compiler to work is a pretty difficult job in itself, but getting one to work well, regardless of what the input code is, is nearly impossible. 

However, with a properly designed ISA and a good compiler, having an in-order core to work on is not the end of the world.  The performance you lose by not being able to extract the last bit of instruction level parallelism is made up by the fact that you can execute far more threads per clock thanks to the simplicity of the in-order cores allowing more to be packed on a die.  Unfortunately, as we’ve already discussed, on day one that’s not going to be much of an advantage. 

The Cell processor’s SPEs are even more of a challenge, as they are more specialized hardware only suitable to executing certain types of code.  Keeping in mind that the SPEs are not well suited to running branch heavy code, loop unrolling will do a lot to improve performance as it can significantly reduce the number of branches that must be executed.  In order to squeeze the absolute maximum amount of performance out of the SPEs, developers may be forced to hand code some routines as initial performance numbers for optimized, compiled SPE code appear to be far less than their peak throughput. 

While the move to in-order architectures won’t cause game developers too much pain with good compilers at their disposal, the move to multi-threaded game development and optimizing for the Cell in general will be much more challenging. 

Xenon vs. Cell How Many Threads?
Comments Locked

93 Comments

View All Comments

  • tipoo - Wednesday, August 6, 2014 - link

    That was such bullshit. RSX was worth under 200Gflops, Cell about the same and much harder to extract that much from, Xenos was over 200, Xenon was around 100. Nothing was near the terraflop range except in marketing bullspeak.
  • LanceVance - Saturday, June 25, 2005 - link

    #59

    "Does every xbox game needs to be playable? No."
    "How many of you still play your old games? Market research shows not a lot."

    Backwards compatibility is a feature. It's just like any other feature on a mass market consumer product. Some people value it and others don't.

    You clearly don't value that and won't consider it when making consumer decisions.

    Other people clearly DO value that and you are trying to persuade them not to. That's none of your business. If people value a specific feature they have every right to consider it in their buying behaviors.

    Sorry, I know this post has now gone way off topic from the original article of technical analysis. Beautiful article; but any open forum on such a political topic is doomed to degenerate into this.
  • knitecrow - Saturday, June 25, 2005 - link

    software emulation is difficult and takes a lot of man power to get right.

    The main advantage for microsoft was that they didn't have to stuck with poor business and engineering design choices of the past.

    Does every xbox game needs to be playable? No. I don't care for games like "big rigs"
    I abviously want halo to work, but also the lesser known good titles on xbox ... like Panzer Dargoon Orta, Kingdom Under Fire, Otogi 1 & 2 and so on.

    How many of you still play your old games? Market research shows not a lot.I have an 80+ games library for the xbox. I don't mind.
  • BenSkywalker - Saturday, June 25, 2005 - link

    milomnderbnder21-

    They are flipping consumers off. Sony and Nintendo at this point are both adding costs to their consoles to incorporate hardware to make certain that their systems have full compatability with the prior generation. MS has decided that you and I are not good enough to offer that same assurance. They have decided to save themselves a couple of dollars and render useless all of their games they can't get running on their new platform so they can save a few dollars. They will take a shot at software hacks- if they don't work we are out of luck. They are also stopping production of current gen XBox hardware. I have about thirty games for my XB currently, what do I do with them if my XB dies and they aren't supported by XB360(which there is no assurance they will)? I keep my legacy hardware around, back to my 2600, and my games.
  • Olaf van der Spek - Saturday, June 25, 2005 - link

    > Compared to the built in 5X CAV DVD drive in the Xbox, the hard drive offered much faster performance. With the Xbox 360, the performance demands on the hard drive are lessened, the console now ships with a 12X CAV DVD-DL drive.

    Aren't all read-only DVD drives dual-layer?
  • Starglider - Saturday, June 25, 2005 - link

    I'm a game programmer and I take issue with the statement on page 4 that BSP collision detection benefits from branch prediction. It doesn't; it's one of the rare types of code where the branches are effectively impossible to predict. The algorithm /does/ benefit heavily from speculative execution, but as I understand it neither the XBox360 or the PS3 are capable of this. As such this is one area where PC style processors have an advantage; neither console is going to beat a modern PC at SuperPi.
  • devilzblood - Friday, June 24, 2005 - link

    altho this is my first post at anandtech, i have been reading ur articles from the geforce 3 launch.
    newayz.....im posting here coz im wondering if neone knos this.....what degrees do Anand and Derek hold?? they seem to be such a bank of information, i never thought it was humanly possible to know so much about computers..needless to say im impressed by u people..and all i would like to say about the article is that it was an informative and enjoying read
  • milomnderbnder21 - Friday, June 24, 2005 - link

    #46

    MS is by no means "flipping off it's supporters" with regards to backwards compatibility. They have flat out stated that it is there goal that EVERY Xbox game be compatible on the 360, but they simply cannot guarentee it. In any case, look for a majority of them to be so. And if they can't get everything working, I'm not going to miss outlaw golf on my 360...
  • MDme - Friday, June 24, 2005 - link

    #50

    Sony WILL support 1080p. They are supporting it so that they can BRAG about it. It's all about the hype, even if they only have 1 game supporting it, they will BRAG about it. heck, if you really think about it, if sony played a video (H.264) at 1080p then ran the game at 720p they will still claim, WE HAVE SUPPORT FOR 1080p. It's all marketing. Even X360 can claim this.
  • finbarqs - Friday, June 24, 2005 - link

    bla bla bla, which one is better?

Log in

Don't have an account? Sign up now