A method for modeling the performance of memory address translation
mechanism (MATM), comprises: a) receiving an execution profile that
contains a memory address reference stream of an application, a set of
page size mappings, and events about the application's data allocations
and de-allocations; b) translating each memory reference in the input
memory reference stream into a reference to the corresponding data
object, by consulting the memory allocation and de-allocation events, to
provide a data object reference stream; c) translating each data object
reference into a corresponding page reference by consulting the page size
mapping and by modeling the data allocation and de-allocation events in
accordance with the mapping to provide a page reference stream and a
number of pages of each page size that are needed by the respective
mapping; d) using the page reference stream to provide a stream of reuse
distance values; e) determining, for each reference in the reuse distance
value stream, whether the reference results in a hit or a miss reference
to the MATM to provide the number of hits and the number of misses for
each MATM; f) providing the hit and miss values to a cost model to
estimate the number of miss cycles; g) ranking the mappings by their miss
cycle values such that the mapping with the lowest number of miss cycles
has the highest rank.