• No replies
62 Posts

Pinned topic optimization - zeroing memory 4k boundaries

‏2011-06-08T06:19:18Z |
I read this on IBMMAIN recently - posted by Jim Mulder from IBM Systems Test POK. I compiled
a test program and the C/C++ optimizer used an XC loop. Just a heads up as this hardward
optimization may save lots of cycles clearing memory.

When RSM assigns a frame to a virtual page which is in a first
reference state (which simply means that the page is invalid
at some level in the DAT structure, and there is no copy of
the virtual storage elsewhere (on aux or in the home
object for a DIV map), RSM zeros the frame. This is done
using an MVCL with a source length of zero. On recent
generations of machines, the MVCL millicode recognizes this case
(4K starting boundary, and length is a multiple of 4K)
and uses a hardware operation (which is available only to
millicode) which does a padding store executed in the
storage controller, without bringing the lines into the cache hierarchy.

David Crayford