EFFICIENTLY PURGING NON-ACTIVE BLOCKS IN NVM REGIONS USING VIRTBLOCK ARRAYS
First Claim
1. A method for purging non-active blocks in a non-volatile random access memory (NVM) region of an NVM device, the method comprising:
- maintaining, by a host system in the NVM device, a pointer entry for each allocated data block of the NVM region, wherein page table entries of the NVM region that refer to the allocated data block include pointers to the pointer entry, and wherein the pointer entry includes a pointer to the allocated data block;
determining, by the host system, that a subset of the allocated data blocks of the NVM region are non-active blocks that are not referred to by a running point of the NVM region; and
purging, by the host system, the non-active blocks from the NVM device to a mass storage device, the purging comprising updating the pointer entry for each non-active block to point to a storage location of the non-active block on the mass storage device.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques for efficiently purging non-active blocks in an NVM region of an NVM device using virtblocks are provided. In one set of embodiments, a host system can maintain, in the NVM device, a pointer entry (i.e., virtblock entry) for each allocated data block of the NVM region, where page table entries of the NVM region that refer to the allocated data block include pointers to the pointer entry, and where the pointer entry includes a pointer to the allocated data block. The host system can further determine that a subset of the allocated data blocks of the NVM region are non-active blocks and can purge the non-active blocks from the NVM device to a mass storage device, where the purging comprises updating the pointer entry for each non-active block to point to a storage location of the non-active block on the mass storage device.
-
Citations
21 Claims
-
1. A method for purging non-active blocks in a non-volatile random access memory (NVM) region of an NVM device, the method comprising:
-
maintaining, by a host system in the NVM device, a pointer entry for each allocated data block of the NVM region, wherein page table entries of the NVM region that refer to the allocated data block include pointers to the pointer entry, and wherein the pointer entry includes a pointer to the allocated data block; determining, by the host system, that a subset of the allocated data blocks of the NVM region are non-active blocks that are not referred to by a running point of the NVM region; and purging, by the host system, the non-active blocks from the NVM device to a mass storage device, the purging comprising updating the pointer entry for each non-active block to point to a storage location of the non-active block on the mass storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer readable storage medium having stored thereon program code executable by a host system, the program code embodying a method for purging non-active blocks in a non-volatile random access memory (NVM) region of an NVM device, the method comprising:
-
maintaining, in the NVM device, a pointer entry for each allocated data block of the NVM region, wherein page table entries of the NVM region that refer to the allocated data block include pointers to the pointer entry, and wherein the pointer entry includes a pointer to the allocated data block; determining that a subset of the allocated data blocks of the NVM region are non-active blocks that are not referred to by a running point of the NVM region; and purging the non-active blocks from the NVM device to a mass storage device, the purging comprising updating the pointer entry for each non-active block to point to a storage location of the non-active block on the mass storage device. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A host system comprising:
-
a non-volatile random access memory (NVM) device; a mass storage device; a processor; and a non-transitory computer readable medium having stored thereon program code that, when executed, causes the processor to; maintain, in the NVM device, a pointer entry for each allocated data block of an NVM region, wherein page table entries of the NVM region that refer to the allocated data block include pointers to the pointer entry, and wherein the pointer entry includes a pointer to the allocated data block; determine that a subset of the allocated data blocks of the NVM region are non-active blocks that are not referred to by a running point of the NVM region; and purge the non-active blocks from the NVM device to the mass storage device, the purging comprising updating the pointer entry for each non-active block to point to a storage location of the non-active block on the mass storage device. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification