Logical to virtual and virtual to physical translation in storage class memory

US11675707B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11675707-B2
Application numberUS-202117214120-A
CountryUS
Kind codeB2
Filing dateMar 26, 2021
Priority dateJan 7, 2020
Publication dateJun 13, 2023
Grant dateJun 13, 2023

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 memory system and method for storing data in one or more storage chips includes: one or more memory cards each having a plurality of storage chips, and each chip having a plurality of dies having a plurality of memory cells; a memory controller comprising a translation module, the translation module further comprising: a logical to virtual translation table (LVT) having a plurality of entries, each entry in the LVT configured to map a logical address to a virtual block address (VBA), where the VBA corresponds to a group of the memory cells on the one or more memory cards, wherein each entry in the LVT further includes a write wear level count to track the number of writing operations to the VBA, and a read wear level count to track the number of read operations for the VBA mapped to that LVT entry.

First claim

Opening claim text (preview).

What is claimed is: 1. A system for reading data from one or more memory cards, each memory card having a plurality of storage chips, and each storage chip having a plurality of dies having a plurality of memory cells, the system comprising: one or more programmable readable storage media; and programming instructions stored on the one or more programmable readable storage media for execution by at least one processor, the programming instructions when executed by the at least one processor configure the system to: issue a request for data located on the one or more memory cards; look up a logical address for the requested data in a logical to virtual translation table (LVT) having a plurality of entries, each entry in the LVT mapping a logical address to a virtual block address (VBA), where the VBA corresponds to a group of memory cells in the one or more memory cards; in response to locating the logical address of the requested data in an entry in the LVT, check that LVT entry to determine whether the data is located in a Drift Buffer; in response to determining the data is located within the Drift Buffer, read the requested data from the Drift Buffer; and in response to determining the data is not located in the Drift Buffer, obtain the VBA from the LVT entry corresponding to the logical address of the requested data and read the requested data in the memory card corresponding to the VBA. 2. The system of claim 1 , further comprising programming instructions that when executed by the at least one processor configure the system to: update, in response to reading the requested data from the memory card, a read level count field in the LVT. 3. The system of claim 2 , further comprising programming instructions that when executed by the at least one processor configure the system to: compare the read level count in the LVT entry to a read level threshold field in the LVT entry, and in response to the read level count being equal to or exceeding the read level threshold, write the data to be read to a new location on the one or more memory cards with a different VBA. 4. The system of claim 3 , further comprising programming instructions that when executed by the at least one processor configure the system to: in response to writing the data to be read to a new location on the one or more memory cards with a different VBA, update the LVT with the different VBA. 5. The system of claim 4 , further comprising programming instructions that when executed by the at least one processor configure the system to: update the VBA in a corresponding LVT entry in response to data being removed from the Drift Buffer. 6. The system of claim 1 , further comprising programming instructions that when executed by the at least one processor configure the system to: move, in response to reading data from the Drift buffer, an entry to a head of the Drift Buffer. 7. A system of writing data to one or more memory cards, each memory card having a plurality of storage chips, and each storage chip having a plurality of dies having a plurality of memory cells, the system comprising: one or more programmable readable storage media; and programming instructions stored on the one or more programmable readable storage media for execution by at least one processor, the programming instructions when executed by the at least one processor configure the system to: issue a request to write the data to the one or more memory cards; obtain an available virtual block address (VBA) from a VBA Free List, wherein the VBA corresponds to a group of memory cells in the one or more memory cards; write the data to the memory card location corresponding to an available VBA obtained from the VBA Free List; write the data to an entry in a Drift Buffer; write the VBA of the available VBA and a corresponding logical address of that available VBA to an entry in a Drift Table that corresponds to the entry in the Drift Buffer. 8. The system of claim 7 , further comprising programming instructions that when executed by the at least one processor configure the system to: write a corresponding logical to virtual translation table (LVT) entry with the available VBA. 9. The method of claim 7 , further comprising programming instructions that when executed by the at least one processor configure the system to: write into a logical to virtual translation table (LVT) entry corresponding to the VBA that corresponds to the location on the memory card to which the data is written, a drift table index identifying a Drift Table entry corresponding to the Drift Buffer entry to which the data is written, and set a bit to identify the data is in the Drift Buffer. 10. A method for storing data in a memory system, the memory system comprising: one or more memory cards, each memory card having a plurality of storage chips, and each storage chip having a plurality of dies having a plurality of memory cells; and a memory controller comprising a translation module, the translation module having a logical to virtual translation table (LVT) having a plurality of entries, each entry in the LVT configured to map a logical address to a virtual block address (VBA), where the VBA corresponds to a group of the memory cells on the one or more memory cards, the method comprising: tracking at least one of a group consisting of a number of writing operations to the VBA mapped to that LVT entry, a number of read operations for the VBA mapped to that LVT entry, and combinations thereof. 11. The method of claim 10 , further comprising: programming a write wear level threshold in the LVT corresponding to the maximum number of writing operations to a VBA, and in response to a write operation exceeding the write level threshold in an LVT entry, moving the data in the memory card corresponding to the LVT entry that exceeds the write wear level threshold to a new location on the memory card with a different VBA. 12. The method of claim 11 , further comprising obtaining a new VBA from a VBA Free List identifying VBAs available to write data based upon the wear level count. 13. The method of claim 10 , further comprising programming a read wear level count threshold in the LVT corresponding to a maximum number of reading operations of a VBA, and in response to a read operation exceeding the read level threshold in a LVT entry, writing the data in the memory card corresponding to the LVT entry that exceeds the read level threshold to a new location on the memory card with a different VBA. 14. The method of claim 13 , further comprising obtaining, in response to a read operation exceeding the read level threshold for a LVT entry, a new VBA from a VBA Free List identifying the VBAs available to receive write data, and writing the data in the memory card corresponding to the LVT entry that exceeds the read level threshold to the new VBA. 15. The method of claim 14 , further comprising obtaining, in response to a read operation exceeding the read level threshold, a new VBA from the VBA Free List based upon the wear level count. 16. The method of claim 10 , further comprising writing, in response to writing data to a VBA on the one or more memory cards, the data to an entry in a Drift Buffer having a plurality of entries to temporarily store data, and further writing the VBA and the corresponding logical address into an entry in a Drift Table indexed to a corresponding entry in the Drift Buffer, wherein each entry in the Drift Table maps a Drift Buffer Index to a VBA. 17. The method of claim 16 , further comprising reading data from the Drift Buffer in response to the data

Assignees

Inventors

Classifications

  • Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically · CPC title

  • in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00) · CPC title

  • Protection of memory contents; Detection of errors in memory contents · CPC title

  • Multilevel memory comprising counting devices · CPC title

  • for self repair · 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 US11675707B2 cover?
A memory system and method for storing data in one or more storage chips includes: one or more memory cards each having a plurality of storage chips, and each chip having a plurality of dies having a plurality of memory cells; a memory controller comprising a translation module, the translation module further comprising: a logical to virtual translation table (LVT) having a plurality of entries…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/1009. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 13 2023 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).