Browse Prior Art Database

Dense Shared Segment Table for Efficient Support of Large Shared Memory

IP.com Disclosure Number: IPCOM000011567D
Original Publication Date: 2003-Mar-05
Included in the Prior Art Database: 2003-Mar-05
Document File: 2 page(s) / 39K

Publishing Venue

IBM

Abstract

When a process with a large address space is dispatched, cache and translation misses are incurred as per-process virtual memory translation tables are referenced, causing a significant performance penalty. For segment-based virtual memory systems, we propose a dense segment table that can be shared amongst processes. This dense shared segment table significantly reduces the memory footprint of translation tables that must be referenced at process dispatch and thus results in fewer cache and translation misses.

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

Page 1 of 2

Dense Shared Segment Table for Efficient Support of Large Shared Memory

When a 64-bit process with a large address space is dispatched, the operating

system incurs a significant number of cache misses as per-process virtual memory

translation tables are referenced. This can incur a significant amount of overhead

at each process dispatch on a system with a large number of processes.

On segment-based virtual memory systems, one solution to reduce these cache

misses is to have processes that map the same shared memory region share the

same set of virtual mappings to the segments comprising the shared memory region.

Thus, processes that map the same shared memory region will all use the same

segment table rather than each process using its own segment table to map the

segments for the shared memory region. Using one shared table rather than

multiple independent tables increases the likelihood that the shared table will

stay in the cache, vastly improving the performance of references to the table.

Thus, at process dispatch, when the operating system is making numerous

references to this shared segment table, significantly fewer translation and

cache misses are incurred. Translation misses typically take many cycles to

resolve. The resolution may take place via dedicated hardware or via software.

For applications with many processes that reference the same large shared

memory regions (i.e. database applications), this performance improvement at

each process dispatch can result in a significant overall performance improvement

of the system.

On segment-based virtual memory systems, each process has a table that maps segment identifiers in its address space (effective address space) to segment identifiers in the system-wide virtual memory address space. Normally, when a process is first dispatched and makes a reference to a shared memory region, the operating system searches through the process's segment table...