[Info-vax] Updated VMS Roadmap

John Reagan johnrreagan at earthlink.net
Fri Jan 8 08:25:44 EST 2010


"JF Mezei" <jfmezei.spamnot at vaxination.ca> wrote in message 
news:017f7635$0$11366$c3e8da3 at news.astraweb.com...
> Guy Peleg wrote:
>
>> The migration from 8.3 to 8.3-1H1 is straightforward. Simple VMS
>> upgrade.
>
> Out of curiosity, if one has an IA64 box that requires 8.3-1H1 , would
> running applications *compiled* for 8.3 result in the application not
> making most efficient use of new features in the CPU ?
>
> Or is EPIC, instruction ordering and instruction set pretty much stable
> on IA64, not requiring compilers be updated to make use of new features ?

What new CPU?  Guy just said that V8.3-1H1 is more efficient on the same box 
as compared to V8.3.

As for compiling, the basic machine model for all the recent chips 
(McKinley, Madison, Monticito, Montvale, etc.) are all pretty much the same 
to the compiler.  The speed and cache sizes are different but the underlying 
CPU features (ie, number of adders, etc.) is about the same.  Plus the 
architecture itself requires the compilers to do the right thing.  So 
existing images will work just fine across all the chips I mentioned.

Future chips may have a different CPU model (like more functional units 
which will let them actually do more instructions in parallel).  What that 
*COULD* do is expose a latent bug in the compilers.  For instance, the 
compilers today could generate code that says "these 15 instructions could 
be done in parallel".  In reality on today's chips without 15 adders or 
memory units, etc. will still do those 15 in chunks.  Consider a future chip 
with more adders that actually tries to do more per cycle.  What if the 
compiler was wrong and those 15 instructions actually had a dependency? 
That said, the compilers did lots of testing and validation to prevent such 
things from occuring.

Also future chips might have new instructions of interest to the compilers. 
So far, between McKinley and today, the only sorta interesting instructions 
are the ld16/st16/cmp8xchg16 instructions.  GEM doesn't know how to generate 
those.  Their performance benefits are somewhat suspect in that the 16-byte 
load/stores are not double-register pairs but the single register specified 
in the instruction and the AR.CSD register.  That makes the AR.CSD a real 
bottleneck as you have to constantly move data between a regular integer 
register and the AR.CSD application register.  We decided it wasn't worth 
the effort.  The cmp8xchg16 would have a little more use as a builtin since 
the 16-byte store would be atomic.

If future chips have even more instructions added (like to help with integer 
multiply or division), then I suspect GEM would be extended (along with a 
new keyword for /ARCH) to enable such new instructions.  I have no idea what 
the new instructions would do on older chips.  Depends on where in the 
opcode map they were created.  They might use encodings that would trap on 
older chips or encodings that just are nop's on older chips.

John 





More information about the Info-vax mailing list