Data Integrity Enhancement to Protect Against Returning Old Versions of Data

US2016147651A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016147651-A1
Application numberUS-201514630557-A
CountryUS
Kind codeA1
Filing dateFeb 24, 2015
Priority dateNov 21, 2014
Publication dateMay 26, 2016
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.

Systems, methods and/or devices are used to enhance data integrity to protect against returning old versions of data. In one aspect, a method includes (1) receiving a write request from a host that specifies write data for a set of logical block addresses, (2) mapping, using a mapping table, the set of logical block addresses to a set of physical addresses, where the mapping table includes a plurality of subsets, and (3) performing operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the set of logical block addresses, including: (a) generating metadata for the subset, the metadata including a version number for the subset, (b) calculating a Cyclic Redundancy Check (CRC) checksum for the subset, and (c) storing the version number for the subset and the CRC checksum for the subset in a version data structure.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method of enhancing data integrity, the method comprising: receiving, at a storage device, a write request from a host, wherein the write request specifies write data for a first set of one or more logical block addresses in a logical address space of the host; mapping, using a mapping table, the first set of one or more logical block addresses associated with the write request to a first set of one or more physical addresses of the storage device, wherein the mapping table includes a plurality of subsets, each subset having entries corresponding to a group of contiguous logical blocks in the logical address space of the host; and performing one or more operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the first set of one or more logical block addresses, including: generating metadata for the subset, the metadata including a version number for the subset; calculating a first Cyclic Redundancy Check (CRC) checksum for the subset; and storing the version number for the subset and the first CRC checksum for the subset in a version data structure. 2 . The method of claim 1 , wherein performing one or more operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the first set of one or more logical block addresses further comprises: in accordance with a determination that at least one entry of the subset is modified: obtaining an updated version number for the subset; calculating an updated CRC checksum for the subset; and storing the updated version number for the subset and the updated CRC checksum for the subset in the version data structure. 3 . The method of claim 2 , wherein obtaining an updated version number for the subset comprises: reading the version number for the subset from the version data structure; and incrementing the version number for the subset. 4 . The method of claim 1 , further comprising: receiving, at the storage device, a read request from the host, wherein the read request specifies a second set of one or more logical block addresses in the logical address space of the host from which to read; mapping, using the mapping table, the second set of one or more logical block addresses associated with the read request to a second set of one or more physical addresses corresponding to one or more physical pages of the storage device; and performing one or more operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the second set of one or more logical block addresses, including: reading the first CRC checksum for the subset from the version data structure; calculating a second CRC checksum for the subset; comparing the second CRC checksum for the subset with the first CRC checksum for the subset; and in accordance with a determination that the second CRC checksum is not equivalent to the first CRC checksum, initiating one or more recovery actions; and in accordance with a determination that, for all the subsets that include at least one entry corresponding to a logical block specified by the second set of one or more logical block addresses, the second CRC checksum is equivalent to the first CRC checksum, returning data from the second set of one or more logical block addresses to the host. 5 . The method of claim 1 , wherein the mapping table is stored independently from the version data structure. 6 . The method of claim 1 , wherein the storage device comprises one or more flash memory devices. 7 . A storage device, comprising: a storage medium; memory distinct from the storage medium, the memory storing a mapping table, the mapping table including information for mapping logical addresses in a logic address space of a host to physical addresses in a physical address space of the storage system; and a storage controller having one or more processors configured to execute instructions in one or more programs, wherein the storage controller is configured to perform operations comprising: receiving, at the storage device, a write request from a host, wherein the write request specifies write data for a first set of one or more logical block addresses in a logical address space of the host; mapping, using the mapping table, the first set of one or more logical block addresses associated with the write request to a first set of one or more physical addresses of the storage device, wherein the mapping table includes a plurality of subsets, each subset having entries corresponding to a group of contiguous logical blocks in the logical address space of the host; and performing one or more operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the first set of one or more logical block addresses, including: generating metadata for the subset, the metadata including a version number for the subset; calculating a first Cyclic Redundancy Check (CRC) checksum for the subset; and storing the version number for the subset and the first CRC checksum for the subset in a version data structure. 8 . The storage device of claim 7 , wherein the storage controller includes a version module and a CRC module for generating the version number for the subset and the first CRC checksum for the subset, and for storing the version number for the subset and the first CRC checksum for the subset in the version data structure. 9 . The storage device of claim 7 , wherein performing one or more operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the first set of one or more logical block addresses further comprises: in accordance with a determination that at least one entry of the subset is modified: obtaining an updated version number for the subset; calculating an updated CRC checksum for the subset; and storing the updated version number for the subset and the updated CRC checksum for the subset in the version data structure. 10 . The storage device of claim 9 , wherein obtaining an updated version number for the subset comprises: reading the version number for the subset from the version data structure; and incrementing the version number for the subset. 11 . The storage device of claim 7 , wherein the storage controller is further configured to perform operations comprising: receiving, at the storage device, a read request from the host, wherein the read request specifies a second set of one or more logical block addresses in the logical address space of the host from which to read; mapping, using the mapping table, the second set of one or more logical block addresses associated with the read request to a second set of one or more physical addresses corresponding to one or more physical pages of the storage device; and performing one or more operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the second set of one or more logical block addresses, including: reading the first CRC checksum for the subset from the version data structure; calculating a second CRC checksum for the subset; comparing the second CRC checksum for the subset with the first CRC checksum for the subset; and in accordance with a determination that the second CRC checksum is not equivalent to the first CRC checksum, initiating one or more recovery actions; and in accordance with a determination that, for all the subsets that include at least one entry corresponding to a logical block specifie

Assignees

Inventors

Classifications

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

  • using page tables, e.g. page table structures · CPC title

  • Reliability improvement, data loss prevention, degraded operation etc · CPC title

  • Logical to physical mapping or translation of blocks or pages · 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 US2016147651A1 cover?
Systems, methods and/or devices are used to enhance data integrity to protect against returning old versions of data. In one aspect, a method includes (1) receiving a write request from a host that specifies write data for a set of logical block addresses, (2) mapping, using a mapping table, the set of logical block addresses to a set of physical addresses, where the mapping table includes a pl…
Who is the assignee on this patent?
Sandisk Entpr Ip Llc
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 May 26 2016 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).