SYSTEM INCLUDING A FINE-GRAINED MEMORY AND A LESS-FINE-GRAINED MEMORY
3 Assignments
0 Petitions
Accused Products
Abstract
A data processing system includes one or more nodes, each node including a memory sub-system. The sub-system includes a fine-grained, memory, and a less-fine-grained (e.g., page-based) memory. The fine-grained memory optionally serves as a cache and/or as a write buffer for the page-based memory. Software executing on the system uses a node address space which enables access to the page-based memories of all nodes. Each node optionally provides ACID memory properties for at least a portion of the space. In at least a portion of the space, memory elements are mapped to locations in the page-based memory. In various embodiments, some of the elements are compressed, the compressed elements are packed into pages, the pages are written into available locations in the page-based memory, and a map maintains an association between the some of the elements and the locations.
141 Citations
143 Claims
-
1-42. -42. (canceled)
-
43. A memory system comprising:
-
a non-volatile memory comprising a plurality of pages, where units of the memory smaller than one of the pages of the memory are not independently writable, and where each of the pages of the memory comprises a respective user-accessible portion; a map configured to associate respective element identifiers of each of a plurality of elements with a respective physical location of the element in the memory, where the respective physical location comprises an address of a respective one of the pages of the memory and a respective offset within the respective page of the memory; a coalescing buffer comprising a plurality of pages, a size of each of the pages of the coalescing buffer being sufficient to contain the respective user-accessible portion of one of the pages of the memory; wherein the memory system is configured to write a first one of the elements to the memory by storing the first element in a first portion of a particular one of the pages of the coalescing buffer, copying the particular page of the coalescing buffer to a particular one of the pages of the memory, and updating the map so that the address of the respective page of the respective physical location of the first element is an address of the particular page of the memory, and so that the respective offset of the respective physical location of the first element is according to the first portion of the particular page of the coalescing buffer; and wherein the memory system is further configured, subsequent to the storing of the first element in the particular page of the coalescing buffer and prior to the copying of the particular page of the coalescing buffer to the particular page of the memory, to store a second one of the elements in a second portion of the particular page of the coalescing buffer, the second element different from the first element, the second portion separate from the first portion. - View Dependent Claims (44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81)
-
-
82-118. -118. (canceled)
-
119. A method comprising:
-
coalescing a first one of a plurality of logical partitions stored in a first one of a plurality of pages of a non-volatile, less-fine-grained memory and a second one of the logical partitions stored in a second one of the pages of the less-fine-grained memory into separate regions in a particular page of a write buffer in a volatile, fine-grained memory, where each of the pages of the less-fine-grained memory is enabled to store a respective two or more of the logical partitions, and where a minimum writable unit of the less-fine-grained memory is one of the pages of the less-fine-grained memory; writing, subsequent to the coalescing, the particular page of the write buffer to a third one of the pages of the less-fine-grained memory, where the first page, the second page, and the third page are all different ones of the pages of the less-fine-grained memory; and maintaining a map comprising a plurality of entries, each of the entries associating a respective one of a plurality of elements with a respective one of the logical partitions of a respective one of the pages of the less-fine-grained memory, and where prior to the writing, a first one of the elements is associated with the first logical partition via a first one of the entries of the map, and a second one of the elements is associated with the second logical partition via a second one of the entries of the map. - View Dependent Claims (120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143)
-
Specification