Forgive me for barging in midstream ... but ..... 

The reasons go deeper but I have not (as of yet) seen any 'official
public' documentation so I cannot comment on it.  

$MVCL - Move more than 256 bytes of storage

z/OS V1R11.0 JES2 Macros z/OS V1R10.0-V1R11.0
SA22-7536-09

Use $MVCL to generate a MVC (move character) instruction when you need to
move more than 256 bytes of storage. Use this macro instruction in high
performance areas because multiple MVCs (as created by this macro) are
faster than using an MVCL instruction.

Jim Thomas
617-233-4130             (mobile)
636-294-1014                (res)
[email protected] (Email)


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Rob Scott
Sent: Tuesday, May 31, 2011 6:22 PM
To: [email protected]
Subject: Re: What is the current feeling for MVC loop vs. MVCL?

One minor thing to remember that if you are dealing with lengths that are
not a multiple of 256 bytes, then the MVC loop method is going to have to
drop thru to an executed move for those remaining bytes.  This means that
you need addressability to that target of the execute instruction and
depending on the environment where your code is executing that might be a
non-trivial or non-desirable exercise. 

Dropping through to an actual  "MVCL" to move those last remaining bytes
might be a way to avoid the "EX    Rx,MOVE_LAST_BIT"  :-)   

Rob Scott
Lead Developer
Rocket Software
275 Grove Street * Newton, MA 02466-2272 * USA
Tel: +1.617.614.2305
Email: [email protected]
Web: www.rocketsoftware.com


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Charles Mills
Sent: 31 May 2011 23:24
To: [email protected]
Subject: Re: What is the current feeling for MVC loop vs. MVCL?

Wow! Man do I stand corrected!

Sounds like an MVC loop is well worth the bother in anything where
performance *truly* matters.

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Andy Coburn
Sent: Tuesday, May 31, 2011 3:10 PM
To: [email protected]
Subject: Re: What is the current feeling for MVC loop vs. MVCL?

The following is a snip from a program which I just ran on our Z10 whose
characteristics are shown last below. The program first moved 65536 bytes
from one location to another using MVCL and did this 1 million times. You'll
see it took ~56 seconds. Then the same number of bytes were moved using 1
million MVC loops. This took ~8 seconds. Finally, the same number of bytes
were moved 1 million times using MVCLE.

I have run this program on every CEC that I have had available to me and the
results are always relatively the same although the actual numbers change. 

MVCL has some extraordinarily useful functions: Truncation, padding and
returning addresses and lengths after MVCL. Each of these would have to be
done manually if a MVC loop were used and these instructions would have to
be added into the total time for MVC loops. And, yes, I wrote a MVCL macro.
But once one tries to support the case where bits 8 through 31 of  R1+1 and
R2+1 are not equal the macro gets very big and very awkward. And the 
R2+macro
would have to return the 4 registers with contents the same as MVCL would.

   


1 MILLION MVCL INSTRUCTIONS  IN SECONDS      55.961093
1 MILLION MVC LOOPS          IN SECONDS       8.389260
1 MILLION MVCLE INSTRUCTIONS IN SECONDS     115.548643


OPERATING SYSTEM= HBB7770SP7.1.2 HBB7770                                
CPU ID FROM STIDP: TYPE=2098 VERSION=00 SERIAL=00XXXX                   
EXECUTION ENVIRONMENT: LPAR=YES VM=NO                                   
CPU ID FROM STSI: MANUF=IBM TYPE=2098 MODEL=R03 SERIAL=00000000000XXXXX 
VERSION CODE FROM CONVERSION TABLE=                                     
ROLLING 4-HOUR AVERAGE UTILIZATION IS 23 MSUS                           
LPAR XXXX IS UNCAPPED IN A 89 MSU CEC                                   
ADJ FACTOR 1946 ACCUM WEIGHT 6385225 TIMES ACCUM 23219                  
LPAR_NAME=XXXX LPAR_ID=0003 LPAR_SIZE=89 CEC_SIZE=89 ARCH=Z/ARCHITECTURE

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email
to [email protected] with the message: GET IBM-MAIN INFO Search the
archives at http://bama.ua.edu/archives/ibm-main.html

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html



-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1375 / Virus Database: 1509/3671 - Release Date: 05/31/11

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to