Auto-commit memory metadata and resetting the metadata by writing to special address in free space of page storing the metadata
First Claim
1. A method comprising:
- tracking which portions of data stored in a volatile memory buffer are not yet stored in a non-volatile memory medium, the volatile memory buffer associated with hardware configured to ensure that the data stored in the volatile memory buffer becomes stored in the non-volatile memory medium;
maintaining consistency of the data between the volatile memory buffer and the non-volatile memory medium based on the tracked portions of the data;
in response to a trigger, copying at least the portions of the data not yet stored in the non-volatile memory medium to the non-volatile memory medium;
providing metadata indicating which other portions of the data are stored in the non-volatile memory medium, the metadata comprising a bitmask of a first page, the first page comprises a number of bytes, the bitmask comprising a set of bits stored within one eighth of a size of a second page, such that the number of bytes of the first page are represented by the set of bits of the bitmask, the set of bits of the bitmask indicating whether the number of bytes of the first page are stored in the non-volatile memory medium;
providing a clear-all byte at a special address of a host address space for clearing the entire bitmask at once, wherein the special address is located within free space of the second page; and
in response to writing to the clear-all byte, resetting the bitmask.
6 Assignments
0 Petitions
Accused Products
Abstract
Apparatuses, systems, methods, and computer program products are disclosed. A method includes tracking which portions of data stored in a volatile memory buffer are not yet stored in a non-volatile memory medium. A volatile memory buffer may be accessible using memory semantics. A volatile memory buffer may be associated with logic configured to ensure that the data stored in the volatile memory buffer is non-volatile. A method includes maintaining consistency of data between a volatile memory buffer and a non-volatile memory medium based on tracked portions of the data. A method includes copying at least portions of data not yet stored in a non-volatile memory medium to the non-volatile memory medium in response to a trigger.
435 Citations
16 Claims
-
1. A method comprising:
-
tracking which portions of data stored in a volatile memory buffer are not yet stored in a non-volatile memory medium, the volatile memory buffer associated with hardware configured to ensure that the data stored in the volatile memory buffer becomes stored in the non-volatile memory medium; maintaining consistency of the data between the volatile memory buffer and the non-volatile memory medium based on the tracked portions of the data; in response to a trigger, copying at least the portions of the data not yet stored in the non-volatile memory medium to the non-volatile memory medium; providing metadata indicating which other portions of the data are stored in the non-volatile memory medium, the metadata comprising a bitmask of a first page, the first page comprises a number of bytes, the bitmask comprising a set of bits stored within one eighth of a size of a second page, such that the number of bytes of the first page are represented by the set of bits of the bitmask, the set of bits of the bitmask indicating whether the number of bytes of the first page are stored in the non-volatile memory medium; providing a clear-all byte at a special address of a host address space for clearing the entire bitmask at once, wherein the special address is located within free space of the second page; and in response to writing to the clear-all byte, resetting the bitmask. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus comprising:
-
a memory module configured to preserve data in a volatile memory to a non-volatile storage medium of a non-volatile storage device in response to a trigger; a has-been-written module configured to maintain metadata indicating which of the data in the volatile memory is stored in the non-volatile storage medium, the metadata comprising a bitmask of a first page, the first page comprises a number of bytes, the bitmask comprising a set of bits stored within one eighth of a size of a second page, such that the number of bytes of the first page are represented by the set of bits of the bitmask, the set of bits of the bitmask indicating whether the number of bytes of the first page are stored in the non-volatile storage medium, wherein the has-been-written module is configured to provide a clear-all byte at a special address of a host address space for clearing the entire bitmask at once, the special address located within free space of the second page, and to reset the bitmask in response to writing to the clear-all byte; and a destage module configured to transfer only portions of the data not stored in the non-volatile storage medium from the volatile memory to the non-volatile storage medium based on the maintained metadata. - View Dependent Claims (10, 11)
-
-
12. A method comprising:
-
maintaining metadata for data of a volatile memory of a storage device, the metadata and the data of the volatile memory mapped into a virtual address space for an application executing on a host computing device coupled to the storage device, the volatile memory associated with a non-volatile storage medium of the storage device, the metadata comprising a bitmask of a first page, the first page comprises a number of bytes, the bitmask comprising a set of bits stored within one eighth of a size of a second page, such that the number of bytes of the first page are represented by the set of bits of the bitmask, the set of bits of the bitmask indicating whether the number of bytes of the first page are stored in the non-volatile storage medium; providing a clear-all byte at a special address of the virtual address space, for clearing all the metadata at once in response to the application writing to the clear-all byte, wherein the special address is located within free space of the second page; in response to a trigger, storing the data of the volatile memory and the metadata on the non-volatile storage medium; and providing the data of the volatile memory and the metadata from the non-volatile storage medium to the application for processing. - View Dependent Claims (13, 14, 15, 16)
-
Specification