Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: IA-64 vs OOOE (attn Taylor, Hyatt)

Author: Robert Hyatt

Date: 21:23:53 02/11/03

Go up one level in this thread


On February 11, 2003 at 23:27:04, Tom Kerrigan wrote:

>On February 11, 2003 at 23:11:09, Charles Roberson wrote:
>
>>
>>  Out-of-order execution is nothing more than the ability to execute
>>instructions in an order different from the serial order in the code.
>>It has nothing to do with branching, but it enables other branching techniques.
>>OOOE is simply:
>>   1) the code has instructions a,b,c,d, in that order
>>   2) if there are no serial dependencies then they can be executed in the
>>       b,d,c,a order.
>>
>>    That is all OOOE is.
>
>I don't see how this is different from what I said. Branches are instructions
>too.
>
>-Tom


What he is saying is that whatever the hardware can do with OOO execution,
the compiler can replicate it by massaging the instruction stream with well-
known optimization tricks.  With the sole exception of register renaming.

The reason OOO execution works so well on Intel is _solely_ based on the
fact that the architecture has almost no registers.  And renaming lets the
hardware expand that number of registers _significantly_ so that the
architecture can do things that other less-register-challenged architectures
can do without OOO execution as a crutch...

IE I can show you code for the Cray that executes an instruction every cycle
that an instruction can execute, yet it is a serial-order execution processor
from the ground-up, but with help from a _really_ good instruction scheduler
pass after the final object code has been generated...  This scheduler can
replicate/hoist instructions as needed to back them up to the point that their
result is ready the cycle it is needed...



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.