> <begin extract>
> AMODE does not affect performance.  Can you explain which instructions
> you think are faster than some functional equivalent, and why you
> think they are faster?
> </end extract>
> 
> and it may be that what we have here is a misunderstanding of my
> language.  Let me begin with a little history.  On System/360 models
> above the model 30, L was faster than LH because they had  [at least]
> four-byte fetch widths and had to 'throw away' half of what they
> fetched for LH.
> 
> In my experience, and I have made many measurements, the same
> principle continues to apply mutatis mutandis today.
> 
> I, for example, have a pair of assembly-language glb-seeking binary
> search routines
> that search the same table of quadword elements.  One of these
> routines is AMODE(31) and one AMODE(64).    The table---The same
> assembled table is always used---contains 63 elements.   The usual 127
> searches are performed, each 256 times.  In the upshot the AMODE(64)
> routine is measurably, 2.1201%, faster.
> 
> I have performed similar tests using searches of ordered lists of
> 10(10)200 elements.  They are more addressing-intensive, and the
> superiority of the AMODE(64) routine increases almost linearly with
> table size, from 2.0897% for a list of 10 elements to 2.3311% for a
> list of 200 elements.
> 
> Now it may be that what you mean by "AMODE does not affect
> performance" is different from what I mean.  If so, I should be
> pleased to have you clarify the ways in which our uses of this word
> are different.

 From a hardware design engineer:
<quote>
All hardware instructions perform at the same speed in 64-bit mode or 
31-bit mode.  I assume the AMODE(31) and AMODE(64) he is referring to
only affects the addressing mode, but the exact same instruction 
sequences are used in both cases. If different code sequences are being
used, then all bets are off.  My first statement applies to the 
exact same code sequence in 64-bit addressing mode versus 31-bit
addressing mode. A few millicoded instructions do have slightly 
different path lengths depending on addressing mode, but even that
is not common.
<endquote>

  If you can send me the listings of the exact code that you are
measuring, I might be able to analyze the difference that
you are measuring.

  There certainly have been cases over the years where 
some processors required extra cycles to perform operand extension,
especially when involves sign bit propagation.  For specific
instructions on a specific processor, I can ask the engineers if
that is the case (as long as it is a recent enough processor that 
the engineers are still here). 
 
Jim Mulder   z/OS System Test   IBM Corp.  Poughkeepsie,  NY

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to