Preparing the minipage layout can be done in both static and
dynamic fashion.
Static layout may divide each memory page into k minipages of
equal size.
This way, it is easy to calculate the minipage borders when a
fault occurs.
Static layout may therefore be appropriate for general purpose caching
and global memory systems, in order to reduce the page size by a fixed
factor [10].
In the dynamic layout each allocation in the shared memory defines its own
minipage according to the allocation size, and this minipage is
associated with its own vpage.
The system should therefore store and maintain a minipage-table (MPT)
with the appropriate
pair specified for each
minipage.
Large allocations should still reside in a contiguous region of addresses.
MILLIPAGE design is based on the dynamic layout; it is this option on which we focus in the rest of this paper.