Browse Prior Art Database

A method for profiling memory access locality Disclosure Number: IPCOM000012044D
Original Publication Date: 2003-Apr-03
Included in the Prior Art Database: 2003-Apr-03
Document File: 1 page(s) / 36K

Publishing Venue



As the configuration of enterprise servers continues growing larger. more and more systems adopt, implicitly or explicitly, the NUMA (non uniform memory access) architectural model, in which remote memory accesses take much longer to complete than local memory accesses. To achieve high performance, it is important to understand the memory locality characteristics. Memory access locality profiling can provide such information and feed back to software (operating systems and applications) designers for optimizing (physical memory) page allocation and minimizing the amount of remote memory accesses.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 72% of the total text.

Page 1 of 1

A method for profiling memory access locality

Many existing microprocessors include mechanisms to trace the addresses of memory references or to sample the addresses of events pertained to the memory sub-system. Our locality profiling method is based on the built-in support for performance monitoring and the memory mapping information available in the Operating System (OS).

Before we spell out the details of the invention, it is necessary to explain the concept of virtual memory. Virtual Memory Management (VMM) is a layer of software service provided by all modern operating systems. Its purpose is to simplify the software development by presenting a huge (virtual) address space to the program, thus freeing the programmer from the task of managing the physical memory directly. The application program access the memory via virtual address. The operating system and microprocessor translate the virtual address into physical address, a process transparent to the software. The memory addresses supplied by the processor in tracing or event sampling are all virtual addresses. However, the virtual address space is flat and has no notion of locality.

In order to provide the locality characteristics, we need to record both the virtual and physical address when gathering traces or event samples. The physical address can be obtained by looking up the data existing in the VMM on-the-fly. Since each physical address is associated with a particular memory module, whose location...