Method and system for reducing mapping table size in a storage device

US8954656B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-8954656-B2
Application numberUS-201313773946-A
CountryUS
Kind codeB2
Filing dateFeb 22, 2013
Priority dateDec 20, 2012
Publication dateFeb 10, 2015
Grant dateFeb 10, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US8954656B2 cover?
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…
Who is the assignee on this patent?
Thomas Nicholas James, Sandisk Technologies Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0246. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 10 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).