Browse Prior Art Database

Compiler And Run-time Hints for Memory Management

IP.com Disclosure Number: IPCOM000099362D
Original Publication Date: 1990-Jan-01
Included in the Prior Art Database: 2005-Mar-14
Document File: 2 page(s) / 88K

Publishing Venue

IBM

Related People

Milenkovic, M: AUTHOR [+2]

Abstract

The idea described below provides for increased efficiency of memory management, page and cache management in particular, by providing compiler and run-time hints about major environmental transitions of the running process.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Compiler And Run-time Hints for Memory Management

       The idea described below provides for increased efficiency
of memory management, page and cache management in particular, by
providing compiler and run-time hints about major environmental
transitions of the running process.

      Consider the use of an array of bits, possibly placed in the
processor status word, to communicate compiler and run-time hints
about process behavior to the run-time system.  The array can be used
by compilers to identify the points of likely major environmental
transitions in a program and to signal such points, via hardware, to
the operating system at run time.  Examples of potential major
transitions include calls to and returns from procedures in which the
processor is likely to spend some time, onset and offset of loops
that require a number of repeated passes, calls to the operating
system, synchronization and/or communication with other programs, and
the like.

      Upon detecting such occurrences, the compiler embeds
instructions for setting of the corresponding hint bits in the
processor status word at run time.  Ideally, the compiler should do
this by means of privileged hint-bit-setting instructions.  In the
classical architectures, however, the same purpose may be
accomplished by dedicating a bit-array in the protected address
space.

      Hardware-generated run-time hints, produced as a side effect of
the described instructions, may be used directly by the cache manager
to (a) mark the "hot" pages belonging to the new environment, and (b)
to mark the "cold" pages belonging to the environment that is being
departed.  In turn, the hot/cold indicators may be used at cache line
(block) replacement times so as to retain the pages likely to be
needed in the cache and to dispose of the items that have likely been
abandoned by the running process.

      Compiler-provided hints also provide dynamic indication of the
behavioral phases of the running process to the operating system.
The operating system may examine these bits at regular intervals or
when processing other interruptions...