LBA BITMAP USAGE
First Claim
Patent Images
1. A method for unmapping logical block addresses (“
- LBAs”
) for a system comprising a non-volatile memory (“
NVM”
), the method comprising;
storing mapping statuses of a plurality of LBAs in a bitmap stored in volatile memory;
receiving a request from a file system to unmap a first LBA;
changing a mapping status or the first LBA to unmapped by only updating the bitmap; and
decreasing a validity counter for a super block corresponding to the first LBA.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed for logical block address (“LBA) bitmap usage for a system having non-volatile memory (“NVM”). A bitmap can be stored in volatile memory of the system, where the bitmap can store the mapping statuses of one or more logical addresses. By using the bitmap, the system can determine the mapping status of a LBA without having to access the NVM. In addition, the system can update the mapping status of a LBA with minimal NVM accesses. By reducing the number of NVM accesses, the system can avoid triggering a garbage collection process, which can improve overall system performance.
47 Citations
26 Claims
-
1. A method for unmapping logical block addresses (“
- LBAs”
) for a system comprising a non-volatile memory (“
NVM”
), the method comprising;storing mapping statuses of a plurality of LBAs in a bitmap stored in volatile memory; receiving a request from a file system to unmap a first LBA; changing a mapping status or the first LBA to unmapped by only updating the bitmap; and decreasing a validity counter for a super block corresponding to the first LBA. - View Dependent Claims (2, 3, 4, 5, 6, 7)
- LBAs”
-
8. A system comprising:
-
non-volatile memory (“
NVM”
);volatile memory comprising; a plurality of validity counters associated with a plurality of super blocks of the NVM, a tree comprising a plurality of entries, wherein the tree provides a mapping between a plurality of logical block addresses (“
LBAs”
) and physical addresses of the NVM; anda bitmap for storing mapping statuses of the plurality or LBAs; and memory interface comprising control circuitry operative to; receive a request to unmap a LBA of the plurality of LBAs; consult the bitmap to determine whether the LBA is unmapped; in response to determining that the LBA is not unmapped, unmap the LBA in the bitmap; update at least one of the plurality of validity counters by consulting the tree; and update the tree to reflect the unmapped LBA only if tree memory usage decreases with the update. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20)
-
-
17. A memory interface for accessing index pages in a non-volatile memory (“
- NVM”
), the memory interface comprising control circuitry operative to;receive a request to unmap a logical block address (“
LBA”
) of a plurality of LBAs;unmap the LBA in a bitmap stored in volatile memory; determine whether a tree stored in volatile memory comprises a logical-to-physical mapping corresponding to the LBA; and in response to determining that the tree does not comprise the logical-to-physical mapping corresponding to the LBA, load an index page associated with the LBA from the NVM.
- NVM”
-
21. A method for faster data garbage collection (“
- GC”
), the method comprising;determining to perform garbage collection on a data block of a non-volatile memory (“
NVM”
);loading a block table-of-contents (“
TOC”
) stored in the data block;comparing a bitmap stored in volatile memory with the block TOC; determining a subset of logical addresses of the data block that are mapped based on the comparison; and performing garbage collection for only user data stored in the data block that are associated with the subset of logical addresses. - View Dependent Claims (22, 23, 24, 25, 26)
- GC”
Specification