Method and apparatus for memory-mapped input/output
First Claim
1. A method of memory-mapping a block of data, the method comprising the computer-implemented steps of:
- determining that the block of data, which is stored on a non-volatile medium, is to be mapped to a shared memory space;
identifying a page that is available in the shared memory space for storing the block of data;
generating a page map reference for the page that includes a memory address of the page in the shared memory space;
storing the page map reference at a location within a page map;
storing the block of data in the page in the shared memory;
generating an additional reference that is associated with the block of data, wherein;
the additional reference is generated based on the location where the page map reference is stored in the page map; and
the additional reference is not the same as any of the memory address of the page, the page map reference, and the location within the page map; and
providing the additional reference to a process for use in accessing the block of data stored in the page in the shared memory space.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of managing memory mapped input/output (I/O) for a run-time environment is disclosed, in which opaque references are used for accessing information blocks included in files used in a dynamic run-time environment. The information block is stored in a shared memory space of pages that are each aligned on respective boundaries having addresses that are each some multiple of two raised to an integer power. The opaque reference used for the dynamic run-time environment includes at least an index, or page number reference into a page map of references to the pages of the shared memory space, and an offset value indicating an offset into the referenced page for the beginning of the storage of the information block. Control bits of the opaque reference indicate information such as the mapping mode, e.g., read-only, read-write, or private. Pages which are modified by a process may be written back to a backing store of the file based on control bits which indicate that a page has been modified.
-
Citations
27 Claims
-
1. A method of memory-mapping a block of data, the method comprising the computer-implemented steps of:
-
determining that the block of data, which is stored on a non-volatile medium, is to be mapped to a shared memory space; identifying a page that is available in the shared memory space for storing the block of data; generating a page map reference for the page that includes a memory address of the page in the shared memory space; storing the page map reference at a location within a page map; storing the block of data in the page in the shared memory; generating an additional reference that is associated with the block of data, wherein; the additional reference is generated based on the location where the page map reference is stored in the page map; and the additional reference is not the same as any of the memory address of the page, the page map reference, and the location within the page map; and providing the additional reference to a process for use in accessing the block of data stored in the page in the shared memory space. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable storage medium carrying one or more sequences of instructions for memory-mapping a block of data, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
determining that the block of data, which is stored on a non-volatile medium, is to be mapped to a shared memory space; identifying a page that is available in the shared memory space for storing the block of data; generating a page map reference for the page that includes a memory address of the page in the shared memory space; storing the page map reference at a location within a page map; storing the block of data in the page in the shared memory; generating an additional reference that is associated with the block of data, wherein;
the additional reference is generated based on the location where the page map reference is stored in the page map; andthe additional reference is not the same as any of the memory address of the page, the page map reference, and the location within the page map; and providing the additional reference to a process for use in accessing the block of data stored in the page in the shared memory space. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus for memory-mapping a block of data, comprising:
-
means for determining that the block of data, which is stored on a non-volatile medium, is to be mapped to a shared memory space; means for identifying a page that is available in the shared memory space for storing the block of data; means for generating a page map reference for the page that includes a memory address of the page in the shared memory space; means for storing the page map reference at a location within a page map; means for storing the block of data in the page in the shared memory; means for generating an additional reference that is associated with the block of data, wherein; the additional reference is generated based on the location where the page map reference is stored in the page map; and the additional reference is not the same as any of the memory address of the page, the page map reference, and the location within the page map; and means for providing the additional reference to a process for use in accessing the block of data stored in the page in the shared memory space. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
Specification