Xor recovery schemes utilizing external memory

US2020218605A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2020218605-A1
Application numberUS-201916243070-A
CountryUS
Kind codeA1
Filing dateJan 8, 2019
Priority dateJan 8, 2019
Publication dateJul 9, 2020
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 storage device includes a storage controller, non-volatile memory, volatile memory and a communication interface configured to connect to external volatile memory of a host system. The storage controller is configured to receive data from the host system for storing in the non-volatile memory, buffer the data in the volatile memory, obtain parity data corresponding to the buffered data from an external volatile memory within the host system, compute XOR parity data for the buffered data based on the parity data and the buffered data, store the computed XOR parity data on the external volatile memory, and write the data from the host to the non-volatile memory.

First claim

Opening claim text (preview).

What is claimed is: 1 . A storage device comprising: a communication interface configured to connect to a host system; non-volatile memory; volatile memory; and a storage controller associated with the non-volatile memory, the storage controller configured to: receive data from the host system for storing in the non-volatile memory; buffer the data in the volatile memory; obtain parity data corresponding to the buffered data from an external volatile memory within the host system; compute XOR parity data for the buffered data based on the parity data and the buffered data; store the computed XOR parity data on the external volatile memory; and write the data from the host to the non-volatile memory. 2 . The storage device of claim 1 , wherein the storage device caches the computed XOR parity data only in the external volatile memory and not in internal XOR random access memory (XRAM). 3 . The storage device of claim 2 , wherein the storage device does not comprise XRAM. 4 . The storage device of claim 1 , wherein the storage device is a solid state drive. 5 . The storage device of claim 1 , wherein computing the XOR parity data comprises: computing a first set of XOR parity data for each same numbered plane page of each plane and die; and computing a second set of XOR parity data for all pages from a particular plane. 6 . The storage device of claim 1 , wherein the storage controller comprises: a first XOR engine configured to cache parity data on the external volatile memory; and a second XOR engine configured to cache parity data on the external volatile memory. 7 . The storage device of claim 6 , wherein the first XOR engine and the second XOR engine are configured to operate in parallel. 8 . The storage device of claim 7 , wherein the first XOR engine and the second XOR engine obtain parity data from the external volatile memory in parallel. 9 . The storage device of claim 8 , wherein: the first XOR engine performs an XOR calculation in a first dimension; and a second XOR engine performs an XOR calculation in a second dimension. 10 . The storage device of claim 1 , wherein the storage controller is further configured to: determine a firmware tag, a cyclic redundancy check (CRC), and an error correction code (ECC) for the computed XOR parity data stored in the external volatile memory; and store the firmware tag, CRC, and ECC in the external volatile memory in a separate buffer from the computed XOR parity data. 11 . A method of storing parity data on volatile memory external to a storage device, the method comprising: receiving data from a host system for storing in non-volatile memory of the storage device; buffering the data in internal volatile memory of the storage device; obtaining parity data corresponding to the buffered data from an external volatile memory within the host system; computing XOR parity data for the buffered data based on the parity data and the buffered data; storing the computed XOR parity data on the external volatile memory; and writing the data from the host to the non-volatile memory. 12 . The method of claim 11 , wherein the storage device caches the computed XOR parity data only in the external volatile memory and not in internal XOR random access memory (XRAM). 13 . The method of claim 12 , wherein the storage device does not comprise XRAM. 14 . The method of claim 11 , wherein the storage device is a solid state drive. 15 . The method of claim 11 , wherein computing the XOR parity data comprises: computing a first set of XOR parity data for each same numbered plane page of each plane and die; and computing a second set of XOR parity data for all pages from a particular plane. 16 . The method of claim 11 , further comprising: performing a first XOR calculation with a first XOR engine of the storage device in a first dimension; and performing a second XOR calculation with a second XOR engine of the storage device in a second dimension. 17 . The method of claim 16 , wherein the first XOR calculation and the second XOR calculation are performed in parallel. 18 . The method of claim 17 , wherein the first XOR engine and the second XOR engine are configured to obtain parity data from the external volatile memory in parallel. 19 . The method of claim 11 , further comprising: determining a firmware tag, a cyclic redundancy check (CRC), and an error correction code (ECC) for the computed XOR parity data stored in the external volatile memory; and storing the firmware tag, CRC, and ECC in the external volatile memory in a separate buffer from the computed XOR parity data. 20 . A storage device comprising: a communication means configured to connect to a host system; non-volatile memory means; volatile memory means; and processing means associated with the non-volatile memory, the processing means configured to: receive data from the host system for storing in the non-volatile memory means; buffer the data in the volatile memory means; obtain parity data corresponding to the buffered data from an external volatile memory within the host system; compute XOR parity data for the buffered data based on the parity data and the buffered data; store the computed XOR parity data on the external volatile memory; and write the data from the host to the external non-volatile memory.

Assignees

Inventors

Classifications

  • G06F11/108Primary

    Parity data distribution in semiconductor storages, e.g. in SSD · CPC title

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

  • Online error correction · CPC title

  • in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence) · CPC title

  • to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00) · 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 US2020218605A1 cover?
A storage device includes a storage controller, non-volatile memory, volatile memory and a communication interface configured to connect to external volatile memory of a host system. The storage controller is configured to receive data from the host system for storing in the non-volatile memory, buffer the data in the volatile memory, obtain parity data corresponding to the buffered data from a…
Who is the assignee on this patent?
Western Digital Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/108. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jul 09 2020 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).