Memory performance evaluation using address mapping information
US-2024394164-A1 · Nov 28, 2024 · US
US8954656B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-8954656-B2 |
| Application number | US-201313773946-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 22, 2013 |
| Priority date | Dec 20, 2012 |
| Publication date | Feb 10, 2015 |
| Grant date | Feb 10, 2015 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method and system are disclosed for handling logical-to-physical mapping and reducing mapping table size. The method includes the storage device storing in fast access memory, such as DRAM, only the physical location of a primary cluster in each cluster group, and then writing location information for remaining clusters in a cluster group into the header of the data for the primary cluster of the cluster group in non-volatile memory. The system includes a storage device having volatile memory, non-volatile memory and a controller in communication with the volatile and non-volatile memory that is configured to carry out the method noted above.
Opening claim text (preview).
What is claimed is: 1. A method of managing a memory device comprising: in a memory device having a non-volatile memory, a volatile memory and a controller in communication with the non-volatile memory and the volatile memory, the controller: maintaining an index table in the volatile memory, the index table configured to store a predetermined number of index entries where each of the predetermined number of index entries is associated with a cluster group, each cluster group having a fixed plurality of clusters, wherein each cluster group comprises a predetermined number of logically contiguous clusters and each of the predetermined number of index entries is configured to contain physical address information for only one cluster of the cluster group associated with that index entry; receiving data in a data write command, the received data associated with a particular cluster; determining a physical location in the non-volatile memory for storing the particular cluster; identifying in the index table an index entry associated with the particular cluster; storing in the volatile memory an address of the physical location for the particular cluster in the identified index entry; storing in the physical location in the non-volatile memory the received data for the particular cluster; and storing, in a header of the received data stored at the physical location, location information of each of a remainder of the fixed plurality of clusters in the cluster group associated with the identified index entry, whereby the identified index entry in the volatile memory contains the address of the physical location of only the particular cluster in the cluster group, and the header of the received data at the physical location contains location information for the remainder of the fixed plurality of clusters in the cluster group associated with the identified index entry. 2. The method of claim 1 , wherein storing the received data and storing location information of each of the remainder of the fixed plurality of clusters in the cluster group is performed in a single write operation to the physical location. 3. The method of claim 1 , wherein storing the address of the physical location comprises replacing any prior cluster address in the identified index entry with the address of the physical location. 4. The method of claim 1 , wherein the index table is a fixed-size table. 5. The method of claim 1 , wherein the received data comprises data associated with a plurality of clusters having logical addresses associated with a particular index entry, and wherein storing the address of the physical location comprises: storing in the volatile memory the address of the physical location of data for a most recently received one of the clusters associated with the particular index entry; storing in the non-volatile memory at the address the data of the most recently received one of the clusters associated with the particular index entry and storing location information for all other data groups in the cluster group associated with the particular index entry in a header of the data stored at the address. 6. The method of claim 1 , wherein the predetermined number of logically contiguous clusters is 2. 7. The method of claim 1 , further comprising: receiving a read command identifying a requested cluster; determining a cluster group association for the requested cluster; retrieving from the index table in the volatile memory a physical location in the non-volatile memory of one cluster in the determined cluster group, wherein the one cluster is not the requested cluster; retrieving data from the retrieved physical location; and determining location information for the requested cluster from a header of the retrieved data. 8. The method of claim 1 , wherein the location information stored in the header comprises at least one pointer. 9. The method of claim 1 , further comprising: storing, in the identified index entry in the volatile memory, an indication of whether each of the clusters in the cluster group associated with the identified index entry are associated with currently valid data. 10. The method of claim 9 , further comprising the controller determining whether a second index entry associated with a second cluster group is empty and, when the second index entry is determined to be empty, storing an address of a physical location of another of the clusters in the cluster group associated with the identified index entry in the second index entry. 11. A memory device comprising: a non-volatile memory; a volatile memory; and a controller in communication with the non-volatile memory and the volatile memory, wherein the controller is configured to: maintain an index table in the volatile memory, the index table sized to store a predetermined number of index entries where each of the predetermined number of index entries is associated with a cluster group, each cluster group comprising a predetermined number of logically contiguous clusters and each of the predetermined number of index entries is configured to contain physical address information for only one cluster of the cluster group associated with that index entry; receive data in a data write command, the received data associated with a particular cluster; determine a physical location in the non-volatile memory for storing the particular cluster; identify in the index table an index entry associated with the particular cluster; store in the volatile memory an address of the physical location for the particular cluster in the identified index entry; store in the physical location in the non-volatile memory the received data for the particular cluster; and store, in a header of the received data stored at the physical location, location information of each of a remainder of the clusters in the cluster group associated with the identified index entry, whereby the identified index entry in the volatile memory contains the address of the physical location of only the particular cluster in the cluster group, and the header of the received data at the physical location contains location information for the remainder of the clusters in the cluster group associated with the identified index entry. 12. The memory device of claim 11 , wherein the controller is configured to store the received data and store location information of each of the remainder of the clusters in the cluster group in a single write operation to the physical location. 13. The memory device of claim 11 , wherein the controller is further configured to store the address of the physical location by replacing any prior cluster address in the identified index entry with the address of the physical location. 14. The memory device of claim 11 , wherein the index table is a fixed-size table. 15. The memory device of claim 11 , wherein the received data comprises data associated with a plurality of clusters having logical addresses associated with a particular index entry, and wherein to store the address of the physical location the controller is configured to: store, in the volatile memory, the address of the physical location of data for a most recently received one of the clusters in the cluster group associated with the particular index entry; store, in the non-volatile memory at the address, the data of the most recently received one of the clusters in the cluster group associated with the particular index entry; and store location information for all other clusters in the cluster group associated with the particular index entry in a header of the data stored at the address.
Performance improvement · CPC title
Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks · CPC title
management of metadata or control data · CPC title
in block erasable memory, e.g. flash memory · CPC title
Digital input from, or digital output to, record carriers {, e.g. RAID, emulated record carriers or networked record carriers} · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.