On Wed, 14 Jan 2015 16:51:52 -0800, Tom Ross wrote: >Also, does everyone realize that AMODE 64 code will run slower than AMODE 31 >code?
I have been puzzling over this since I first read it yesterday. It is difficult for me to understand why the processor would be significantly slower when running AMODE 64. Certainly a program that does nothing but a very large number of L and ST instructions widely dispersed across memory would run a little faster than an equivalent program that does an equal number of LG and STG instructions would access twice as much memory and that could result in more cache misses, hence increased CPU time. Perhaps there are other situations that could cause an increase in CPU time. There is another factor, though, that makes this understandable, to me at least. The last I heard, the only way that LE enabled programs would run AMODE 64 is with XPLINK 64 program linkage. When one program calls another using XPLINK linkage that is already initialized, the linkage is a little faster than standard linkage. However, when an XPLINK program calls a non-xplink program, the linkage is MUCH slower. Why does this matter? Any time a system service must be called that will use standard linkage, LE must switch between XPLINK and non-XPLINK. One such system service involves I/O. GET and PUT are called using standard linkage, so any XPLINK program that does lots of GETs and/or PUTs will suffer from additional linkage overhead. -- Tom Marchant ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
