Memory module having volatile and non-volatile memory subsystems and method of operation

US2023385192A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2023385192-A1
Application numberUS-202318325081-A
CountryUS
Kind codeA1
Filing dateMay 29, 2023
Priority dateNov 7, 2013
Publication dateNov 30, 2023
Grant date

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 module comprises dynamic random access memory (DRAM), Flash memory, and a module controller. The module controller is configured to receive data to be transferred from the DRAM to the Flash memory, compute first cyclic redundancy check (CRC) codes for the data, and write the data into the Flash memory. The module controller is further configured to read the data from the Flash memory, compute second CRC codes for the data read from the Flash memory, and transfer the data to the DRAM. The module controller is further configured to compare the second CRC codes with the first CRC codes to determine one or more erroneous data bits in the data read from the Flash memory, read a data segment of the data from the DRAM that include the one or more erroneous data bits, correct the one or more erroneous data bits in the data segment, and write the data segment back into the DRAM.

First claim

Opening claim text (preview).

We claim: 1 . A memory module, comprising: dynamic random access memory (DRAM); Flash memory; a module controller coupled to the DRAM and the Flash memory, the module controller including local memory, wherein the module controller is configurable to: receive data to be transferred from the DRAM to the Flash memory; compute first cyclic redundancy check (CRC) codes for the data; write the data into the Flash memory; read the data from the Flash memory; store the data read from the Flash memory in local memory; transfer the data read from the Flash memory to the DRAM; compute second CRC codes for the data read from the Flash memory and stored in the local memory; compare the second CRC codes with the first CRC codes to determine one or more erroneous data bits in the data read from the Flash memory; read a data segment of the data transferred to the DRAM from the DRAM, the data segment including the one or more erroneous data bits; correct the one or more erroneous data bits in the data segment read from the DRAM; and write the data segment back into the DRAM. 2 . The memory module of claim 1 , wherein the data to be transferred from the DRAM to the Flash memory includes first data bits and the module controller is further configurable to: arrange the first data bits into first data sets, whereby each data bit of the first data bits is assigned to at least two intersecting data sets of the first data sets, each data set of the first data sets including a plurality of data bits from the first data bits, and no two datasets of the first data sets have more than one data bit in common; and compute CRC codes for the data by performing error correction coding on each respective data set of the first data sets to obtain respective CRC codes for the respective data set. 3 . The memory module of claim 2 , wherein the data read from the Flash memory includes second data bits corresponding, respectively, to the first data bits, and the module controller is further configurable to: arrange the second data bits into second data sets, such that the second data sets correspond, respectively, to the first data sets, and data bits in each data set of the first data sets correspond, respectively, to data bits in a corresponding data set of the second data sets; and compute second CRC codes for the data read from the Flash memory by performing error correction coding on each individual data set of the second data sets to obtain individual CRC codes for the individual data set. 4 . The memory module of claim 3 , wherein the module controller is further configurable to: in response to the CRC codes of a particular data set in the second data sets not matching the CRC codes of a corresponding data set of the first data sets, determine at least one intersecting data set of the second data sets, each of the at least one intersecting data set having CRC codes not matching the CRC codes of a corresponding data set of the first data sets and having one data bit in common with the particular data set; determine one or more erroneous data bits in the second data bits based on the particular data set and the at least one intersecting data set. 5 . A method at a memory module comprising dynamic random access memory (DRAM), Flash memory, and a module controller coupled to the DRAM and the Flash memory, comprising: receiving data to be transferred from the DRAM to the Flash memory; computing first cyclic redundancy check (CRC) codes for the data; writing the data into the Flash memory; reading the data from the Flash memory; storing the data read from the Flash memory in local memory; transferring the data read from the Flash memory to the DRAM; computing second CRC codes for the data read from the Flash memory and stored in the local memory; comparing the second CRC codes with the first CRC codes to determine one or more erroneous data bits in the data read from the Flash memory; reading a data segment of the data transferred to the DRAM from the DRAM, the data segment including the one or more erroneous data bits; correcting the one or more erroneous data bits in the data segment read from the DRAM; and writing the data segment back into the DRAM.

Assignees

Inventors

Classifications

  • in block erasable memory, e.g. flash memory · CPC title

  • in hierarchically structured memory systems, e.g. virtual memory systems · CPC title

  • Allocation or management of cache space · CPC title

  • Improving I/O performance · CPC title

  • for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories · 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 US2023385192A1 cover?
A memory module comprises dynamic random access memory (DRAM), Flash memory, and a module controller. The module controller is configured to receive data to be transferred from the DRAM to the Flash memory, compute first cyclic redundancy check (CRC) codes for the data, and write the data into the Flash memory. The module controller is further configured to read the data from the Flash memory, …
Who is the assignee on this patent?
Netlist 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 Thu Nov 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).