First, while they are functionally similar, MVCL and MVCLE are very
different instructions.

MVCL is interruptible and all but certain to be interrupted after
every circa 4 Kibyte block is moved.  MVCLE  is what I shall call a
trivially interative (TI) instruction.  Branching back  to it
conditionally following its execution suffices to complete a move,
with the hardware doing the necessary housekeeping.

On the plausible assumption that 'most' moves do not require padding,
the designers of these two instructions have overloaded the use they
make of padding-byte values.  Its value is, of course, the one used in
padding operations when they are required; but it is also used to
specify 'options'.  If, for example, a padding-byte value of x'b1' is
specified move operations appear to other CPs and to channel programs
to be strictly left-to-right, low-to-high address, ones.  There is a
sometimes measurable but small performance penalty for doing so.

In general padding-byte values do not appear to affect performance
much,  My numbers suggest, desirably but still oddly, that blank
(x'40') or nul (x'00') padding-byte values confer a small, not always
statistically significant performance advantage.  If this advantage is
real, Why? is obvious; but How? is not, at least to me.

Predictably, moves for which 1) the source address is DW-aligned, 2)
the target address is DW-aligned, and 3) the number of bytes moved is
a DW multiple exhibit the best performance.  (I also tried making all
three values QW multiples, but doing so did not seem to improve
performance.  I have, however, kept this test in hand.  It may do in
the future.)

I do not myself currently make much use of MVCL.  MVCLE yields better
performance for me.

Worth noting is that performance tests need to be repeated
periodically.  Millicode-based instructions are moving targets.
Relative performance can also, of course, be model-dependent.

John Gilmore, Ashland, MA 01721 - USA

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

Reply via email to