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
