US20160313936A1 - Double writing map table entries in a data storage system to guard against silent corruption - Google Patents

Double writing map table entries in a data storage system to guard against silent corruption Download PDF

Info

Publication number
US20160313936A1
US20160313936A1 US15/199,067 US201615199067A US2016313936A1 US 20160313936 A1 US20160313936 A1 US 20160313936A1 US 201615199067 A US201615199067 A US 201615199067A US 2016313936 A1 US2016313936 A1 US 2016313936A1
Authority
US
United States
Prior art keywords
data
location
physical
volatile memory
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US15/199,067
Inventor
Justin Jones
Andrew J. Tomlin
Rodney N. Mullendore
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Skyera LLC
Original Assignee
Western Digital Technologies Inc
Skyera LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc, Skyera LLC filed Critical Western Digital Technologies Inc
Priority to US15/199,067 priority Critical patent/US20160313936A1/en
Publication of US20160313936A1 publication Critical patent/US20160313936A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Definitions

  • Apparatuses and methods consistent with the present inventive concept relate to data storage systems, and more particularly to double writing of map table entries in a data storage system to avoid silent corruption.
  • Map table entries may be stored in volatile memory such as dynamic random access memory (DRAM).
  • DRAM dynamic random access memory
  • map table entries are susceptible to silent corruption.
  • FIG. 1 is a block diagram illustrating a data storage system according to an example embodiment of the present inventive concept
  • FIG. 2 is a diagram illustrating a relationship between a map table and a physical memory
  • FIG. 3 is a diagram illustrating an occurrence of silent corruption in a map table
  • FIG. 4 is a flowchart illustrating a method for writing data in a storage device according to an example embodiment of the present inventive concept
  • FIG. 5 is a diagram illustrating detection of a map table error according to an example embodiment of the present inventive concept
  • FIG. 6 is a flow chart illustrating a method for writing data in a storage device after a memory read according to an example embodiment of the present inventive concept
  • FIGS. 7A and 7B are diagrams illustrating a relationship between a map table and a physical memory a method for writing data in a storage device after a memory read according to an example embodiment of the present inventive concept.
  • Example embodiments of the present inventive concept provide a method of guarding against silent corruption in a data storage system.
  • FIG. 1 is a block diagram illustrating a data storage system according to an example embodiment of the present inventive concept.
  • the data storage system 100 may include a host 120 and a data storage device (DSD) such as a solid-state drive (SSD) 110 .
  • the SSD 110 may include a control unit 130 , a volatile memory 140 , for example, but not limited to, a plurality of dynamic random access memory (DRAM) devices or other volatile memory, and a non-volatile memory 150 , for example, but not limited to, a non-volatile semiconductor memory (NVSM).
  • the NVSM may be, for example, but not limited to, NAND flash memory devices, NOR flash memory devices, or other NVSM memory devices.
  • the host 120 may issue data read and write commands to the SSD 110 .
  • the volatile memory 140 may store a map table.
  • a DSD is generally a device that electronically stores data, so in other embodiments, the DSD may additionally include other types of memory such as rotational magnetic media (e.g., a solid-state hybrid drive (SSHD)).
  • rotational magnetic media e.g., a solid-state hybrid drive (SSHD)
  • FIG. 2 is a diagram illustrating a relationship between a map table and a non-volatile physical memory.
  • the map table 210 may be arranged in the volatile memory 140 with memory locations 215 assigned according to a consecutive order (e.g., according to L-page address) and each memory location 215 may contain an entry of a physical address 230 of a physical memory location 225 in non-volatile memory 150 that holds data corresponding to a logical address of the data (L-page) 235 .
  • the entries in the memory locations 215 in the map table 210 may be indexed at least in part according to the L-page 235 . Referring to FIG.
  • data corresponding to L-page0 may be stored at a physical memory location 225 in the non-volatile memory 150 having a physical address 230 aaa
  • data corresponding to L-page1 may be stored at a physical memory location 225 in the non-volatile memory 150 having a physical address 230 address bbb
  • the map table 210 acts as a set of pointers to the physical memory locations 225 of L-page data in the non-volatile memory 150 .
  • the new data will be written to a new physical memory location 225 in the non-volatile memory 150 .
  • the entries in the memory locations 215 in the map table 210 for the updated L-page data must also be updated to refer to the physical addresses 230 of the new physical memory locations 225 of the data in the non-volatile memory 150 .
  • FIG. 3 is a diagram illustrating an occurrence of silent corruption in a map table.
  • Silent corruption occurs when an update to the map table 210 is written to the wrong map table entry.
  • FIGS. 1, 2, and 3 an example scenario is described which involves a new write to L-page address 4001.
  • the entry in the memory location 215 a i.e., the E-page location
  • the update was erroneously written to the map table entry in the memory location 215 b corresponding to L-page C001 in the L-page indexed map table 210 . This could be caused by a bit flip in the L-page address 4001 to C0001.
  • the map table entry in the memory location 215 a corresponding to L-page 4001 points to stale data stored at the old physical address in the non-volatile memory 150 .
  • This is an undetectable problem because on the next request for L-page 4001 by the host 120 , no mechanism exists to determine that the map table entry in the memory location 215 b corresponding to L-page 4001 is stale.
  • the entry in the memory location 215 of the physical address 230 for the physical memory location 225 in the non-volatile memory 150 is written with error detection code information 216 , for example, but not limited to, cyclic redundancy code (CRC), a hash value, etc., appended to the entry.
  • error detection code information 216 is determined based at least in part on the L-page address 235 of the data stored at the physical memory location 225 in the non-volatile memory 150 .
  • Some embodiments of the present inventive concept provide a double writing procedure to write each map table update twice to guard against the undetectable problem of silent corruption where an update to an entry is erroneously written to an incorrect location leaving the intended location pointing to stale data.
  • the updated data is written to a different physical memory location 225 in non-volatile memory 150 than the original data.
  • the updated data may be data received from a host 120 or may be data read from a physical address 230 of a physical memory location 225 in the non-volatile memory 150 , for example during garbage collection.
  • the new physical address 230 corresponding to the updated data at the L-page 235 should be written to the map table 210 . In one embodiment, this is performed at least twice. First, the new physical address 230 is written to the map table entry in the memory location 215 corresponding to the L-page 235 for the data that was updated. Then, the same new physical address 230 is written a second time to the same map table entry in the memory location 215 .
  • FIG. 4 is a flowchart illustrating a method for writing data in a storage device according to an example embodiment of the present inventive concept.
  • the control unit 130 may be configured to receive data for an L-page 235 c from a host 120 ( 410 ), and write the data to a physical memory location 225 c at a physical address yyy 230 c in the non-volatile memory 150 ( 420 ).
  • the control unit 130 may be configured to write for a first time the physical address yyy 230 c of the physical memory location 225 c containing the data corresponding to the L-page 235 c to the entry in the memory location 215 c in the map table 210 corresponding to the L-page 235 c ( 430 ).
  • the control unit 130 may be further configured to write for a second time the physical address yyy 230 c to the entry in the memory location 215 c, thereby reducing the chance of silent corruption.
  • FIG. 5 is a diagram illustrating detection of a map table error according to an example embodiment of the present inventive concept. As illustrated in FIG. 5 , if one update attempt writes to the incorrect entry in the memory location 215 b in the map table 210 but the second update attempt writes to the correct entry in the memory location 215 a in the map table 210 , the intended entry in the memory location 215 a in the map table 210 will have been correctly updated.
  • the update to the incorrect entry in the memory location 215 b in the map table 210 is detectable by the error detection code 216 b, for example, a CRC mismatch due to the fact that the CRC is L-page value seeded, and an error will be reported when the incorrectly updated entry in the memory location 215 b in the map table 210 is subsequently read.
  • example embodiments of the present inventive concept reduce the probability of map table errors resulting from update errors, and mitigate the undetectable silent corruption problem.
  • FIG. 6 is a flow chart illustrating a method for writing data in a storage device after a memory read according to an example embodiment of the present inventive concept.
  • FIGS. 7A and 7B are diagrams illustrating a relationship between a map table and a physical memory a method for writing data in a storage device after a memory read according to an example embodiment of the present inventive concept.
  • the control unit 130 may be configured to read data corresponding to an L-page 235 c from a first physical location 225 c at a first physical address yyy 230 c in the non-volatile memory 150 ( 610 ), and to subsequently write the data corresponding to the L-page 235 c to a second physical memory location 225 d at a second physical address www 230 d in the non-volatile memory 150 ( 620 ).
  • the control unit 130 may be further configured to modify the data that was read before subsequently writing the data to the second physical memory location 225 d.
  • the control unit 130 may be configured to write for a first time the second physical address www 230 d of the second physical memory location 225 d containing the subsequently written data corresponding to the L-page 235 c to the entry in the memory location 215 c ( 630 ).
  • the control unit 130 may be further configured to write for a second time the second physical address www 230 d to the entry in the memory location 215 c ( 640 ), thereby reducing the chance of silent corruption.
  • Solid-state memory may comprise a wide variety of technologies, such as flash integrated circuits, Phase Change Memory (PC-RAM or PRAM), Programmable Metallization Cell RAM (PMC-RAM or PMCm), Ovonic Unified Memory (OUM), Resistance RAM (RRAM), NAND memory, NOR memory, EEPROM, Ferroelectric Memory (FeRAM), MRAM, or other discrete NVM (non-volatile solid-state memory) chips.
  • PC-RAM or PRAM Phase Change Memory
  • PMC-RAM or PMCm Programmable Metallization Cell RAM
  • OFUM Ovonic Unified Memory
  • RRAM Resistance RAM
  • NAND memory NAND memory
  • NOR memory NOR memory
  • EEPROM Ferroelectric Memory
  • FeRAM Ferroelectric Memory
  • MRAM Magnetoelectric Memory
  • other forms of storage for example, but not limited to, DRAM or SRAM, battery backed-up volatile DRAM or SRAM devices, EPROM, EEPROM memory, etc., may additionally or alternatively be used.
  • various components illustrated in the figures may be implemented as software and/or firmware on a processor, ASIC/FPGA, or dedicated hardware.
  • the features and attributes of the specific example embodiments disclosed above may be combined in different ways to form additional embodiments, all of which fall within the scope of the present disclosure.

Abstract

A method for writing data in a data storage device includes: writing data to a physical memory location in a non-volatile memory; writing, for a first time, to a location in a volatile memory corresponding to a logical address of the data, a physical address of the physical memory location of the non-volatile memory containing the data; and writing, for a second time, to the location in the volatile memory corresponding to the logical address of the data, the address of the physical memory location of the non-volatile memory containing the data. The physical address of the physical memory location is written with appended error detection code information, and the error detection code information is determined based on the logical address of the data.

Description

    CROSS-REFERENCE TO RELATED APPLICATION(S)
  • This application is a continuation application of U.S. patent application Ser. No. 14/250,212, filed Apr. 10, 2014, which claims the benefit of U.S. provisional application No. 61/943,780 filed Feb. 24, 2014, the disclosures of which are hereby incorporated in their entireties by reference.
  • BACKGROUND
  • 1. Technical Field
  • Apparatuses and methods consistent with the present inventive concept relate to data storage systems, and more particularly to double writing of map table entries in a data storage system to avoid silent corruption.
  • 2. Related Art
  • Any data storage device that uses address indirection relies on a map table to point to a physical location of a latest copy of data at various logical page (L-page) addresses. Thus, the map table serves an important function of maintaining a logical-to-physical correspondence of stored data. Map table entries may be stored in volatile memory such as dynamic random access memory (DRAM). However, map table entries are susceptible to silent corruption.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Aspects and features of the present inventive concept will be more apparent by describing example embodiments with reference to the accompanying drawings, in which:
  • FIG. 1 is a block diagram illustrating a data storage system according to an example embodiment of the present inventive concept;
  • FIG. 2 is a diagram illustrating a relationship between a map table and a physical memory;
  • FIG. 3 is a diagram illustrating an occurrence of silent corruption in a map table;
  • FIG. 4 is a flowchart illustrating a method for writing data in a storage device according to an example embodiment of the present inventive concept;
  • FIG. 5 is a diagram illustrating detection of a map table error according to an example embodiment of the present inventive concept;
  • FIG. 6 is a flow chart illustrating a method for writing data in a storage device after a memory read according to an example embodiment of the present inventive concept and
  • FIGS. 7A and 7B are diagrams illustrating a relationship between a map table and a physical memory a method for writing data in a storage device after a memory read according to an example embodiment of the present inventive concept.
  • DETAILED DESCRIPTION
  • While certain embodiments are described, these embodiments are presented by way of example only, and are not intended to limit the scope of protection. The methods and systems described herein may be embodied in a variety of other forms. Furthermore, various omissions, substitutions, and changes in the form of the example methods and systems described herein may be made without departing from the scope of protection.
  • Overview
  • Example embodiments of the present inventive concept provide a method of guarding against silent corruption in a data storage system.
  • FIG. 1 is a block diagram illustrating a data storage system according to an example embodiment of the present inventive concept. The data storage system 100 may include a host 120 and a data storage device (DSD) such as a solid-state drive (SSD) 110. The SSD 110 may include a control unit 130, a volatile memory 140, for example, but not limited to, a plurality of dynamic random access memory (DRAM) devices or other volatile memory, and a non-volatile memory 150, for example, but not limited to, a non-volatile semiconductor memory (NVSM). The NVSM may be, for example, but not limited to, NAND flash memory devices, NOR flash memory devices, or other NVSM memory devices. The host 120 may issue data read and write commands to the SSD 110. The volatile memory 140 may store a map table. A DSD is generally a device that electronically stores data, so in other embodiments, the DSD may additionally include other types of memory such as rotational magnetic media (e.g., a solid-state hybrid drive (SSHD)).
  • FIG. 2 is a diagram illustrating a relationship between a map table and a non-volatile physical memory. As illustrated in FIGS. 1 and 2, the map table 210 may be arranged in the volatile memory 140 with memory locations 215 assigned according to a consecutive order (e.g., according to L-page address) and each memory location 215 may contain an entry of a physical address 230 of a physical memory location 225 in non-volatile memory 150 that holds data corresponding to a logical address of the data (L-page) 235. The entries in the memory locations 215 in the map table 210 may be indexed at least in part according to the L-page 235. Referring to FIG. 2, data corresponding to L-page0 may be stored at a physical memory location 225 in the non-volatile memory 150 having a physical address 230 aaa, data corresponding to L-page1 may be stored at a physical memory location 225 in the non-volatile memory 150 having a physical address 230 address bbb, etc. Thus, the map table 210 acts as a set of pointers to the physical memory locations 225 of L-page data in the non-volatile memory 150. Each time L-page data is updated, the new data will be written to a new physical memory location 225 in the non-volatile memory 150. Accordingly, the entries in the memory locations 215 in the map table 210 for the updated L-page data must also be updated to refer to the physical addresses 230 of the new physical memory locations 225 of the data in the non-volatile memory 150.
  • FIG. 3 is a diagram illustrating an occurrence of silent corruption in a map table. Silent corruption occurs when an update to the map table 210 is written to the wrong map table entry. Referring to FIGS. 1, 2, and 3, an example scenario is described which involves a new write to L-page address 4001. In this example, the entry in the memory location 215 a (i.e., the E-page location) in the map table 210 in the volatile memory 140 corresponding to data for L-page 4001 should have been updated. However, the update was erroneously written to the map table entry in the memory location 215 b corresponding to L-page C001 in the L-page indexed map table 210. This could be caused by a bit flip in the L-page address 4001 to C0001. Hence, the map table entry in the memory location 215 a corresponding to L-page 4001 points to stale data stored at the old physical address in the non-volatile memory 150. This is an undetectable problem because on the next request for L-page 4001 by the host 120, no mechanism exists to determine that the map table entry in the memory location 215 b corresponding to L-page 4001 is stale.
  • In the map table 210, the entry in the memory location 215 of the physical address 230 for the physical memory location 225 in the non-volatile memory 150 is written with error detection code information 216, for example, but not limited to, cyclic redundancy code (CRC), a hash value, etc., appended to the entry. The error detection code information 216 is determined based at least in part on the L-page address 235 of the data stored at the physical memory location 225 in the non-volatile memory 150. However, a check of the error detection code information 216 a in the map table entry in the memory location 215 a corresponding to the stale data at L-page 4001 will evaluate correctly since the error detection code information 216 a is seeded with the value of L-page 4001. Accordingly, the stale data will be passed to the host 120 undetected. The undetectable the stale data problem is termed “silent corruption” of data. Note that, however, the error detection code information 216 b is effective in triggering an error condition, since error detection code information 216 b is generated based on L-page 4001, but it is written in the entry for L-page C001 which will generate a mismatch.
  • Double Writing Map Table Entries
  • Some embodiments of the present inventive concept provide a double writing procedure to write each map table update twice to guard against the undetectable problem of silent corruption where an update to an entry is erroneously written to an incorrect location leaving the intended location pointing to stale data.
  • As discussed above, when data corresponding to an L-page 235 is updated, the updated data is written to a different physical memory location 225 in non-volatile memory 150 than the original data. The updated data may be data received from a host 120 or may be data read from a physical address 230 of a physical memory location 225 in the non-volatile memory 150, for example during garbage collection. In either case, the new physical address 230 corresponding to the updated data at the L-page 235 should be written to the map table 210. In one embodiment, this is performed at least twice. First, the new physical address 230 is written to the map table entry in the memory location 215 corresponding to the L-page 235 for the data that was updated. Then, the same new physical address 230 is written a second time to the same map table entry in the memory location 215.
  • By writing twice, the chance of silent corruption is reduced. Given that the probability of writing an update to the wrong location in the map table is 1/P, the probability of writing an update to the wrong location twice becomes 1/P×1/P=1/P2.
  • If both update attempts write to the same correct L-page indexed location of the map table 210 no problem is caused and a subsequent read at that L-page 235 would return the correct data.
  • FIG. 4 is a flowchart illustrating a method for writing data in a storage device according to an example embodiment of the present inventive concept. Referring to FIGS. 1, 2, and 4, the control unit 130 may be configured to receive data for an L-page 235 c from a host 120 (410), and write the data to a physical memory location 225 c at a physical address yyy 230 c in the non-volatile memory 150 (420).
  • The control unit 130 may be configured to write for a first time the physical address yyy 230 c of the physical memory location 225 c containing the data corresponding to the L-page 235 c to the entry in the memory location 215 c in the map table 210 corresponding to the L-page 235 c (430). The control unit 130 may be further configured to write for a second time the physical address yyy 230 c to the entry in the memory location 215 c, thereby reducing the chance of silent corruption.
  • FIG. 5 is a diagram illustrating detection of a map table error according to an example embodiment of the present inventive concept. As illustrated in FIG. 5, if one update attempt writes to the incorrect entry in the memory location 215 b in the map table 210 but the second update attempt writes to the correct entry in the memory location 215 a in the map table 210, the intended entry in the memory location 215 a in the map table 210 will have been correctly updated. The update to the incorrect entry in the memory location 215 b in the map table 210 is detectable by the error detection code 216 b, for example, a CRC mismatch due to the fact that the CRC is L-page value seeded, and an error will be reported when the incorrectly updated entry in the memory location 215 b in the map table 210 is subsequently read.
  • Thus, example embodiments of the present inventive concept reduce the probability of map table errors resulting from update errors, and mitigate the undetectable silent corruption problem.
  • FIG. 6 is a flow chart illustrating a method for writing data in a storage device after a memory read according to an example embodiment of the present inventive concept. FIGS. 7A and 7B are diagrams illustrating a relationship between a map table and a physical memory a method for writing data in a storage device after a memory read according to an example embodiment of the present inventive concept.
  • Referring to FIGS. 1, 6, 7A, and 7B, the control unit 130 may be configured to read data corresponding to an L-page 235 c from a first physical location 225 c at a first physical address yyy 230 c in the non-volatile memory 150 (610), and to subsequently write the data corresponding to the L-page 235 c to a second physical memory location 225 d at a second physical address www 230 d in the non-volatile memory 150 (620). The control unit 130 may be further configured to modify the data that was read before subsequently writing the data to the second physical memory location 225 d.
  • The control unit 130 may be configured to write for a first time the second physical address www 230 d of the second physical memory location 225 d containing the subsequently written data corresponding to the L-page 235 c to the entry in the memory location 215 c (630). The control unit 130 may be further configured to write for a second time the second physical address www 230 d to the entry in the memory location 215 c (640), thereby reducing the chance of silent corruption.
  • While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the protection. The methods and systems described herein may be embodied in a variety of other forms. Various omissions, substitutions, and/or changes in the form of the example methods and systems described herein may be made without departing from the spirit of the protection.
  • The example embodiments disclosed herein can be applied to solid state drives, hybrid hard drives, and the like. Solid-state memory may comprise a wide variety of technologies, such as flash integrated circuits, Phase Change Memory (PC-RAM or PRAM), Programmable Metallization Cell RAM (PMC-RAM or PMCm), Ovonic Unified Memory (OUM), Resistance RAM (RRAM), NAND memory, NOR memory, EEPROM, Ferroelectric Memory (FeRAM), MRAM, or other discrete NVM (non-volatile solid-state memory) chips. In addition, other forms of storage, for example, but not limited to, DRAM or SRAM, battery backed-up volatile DRAM or SRAM devices, EPROM, EEPROM memory, etc., may additionally or alternatively be used. As another example, various components illustrated in the figures may be implemented as software and/or firmware on a processor, ASIC/FPGA, or dedicated hardware. Also, the features and attributes of the specific example embodiments disclosed above may be combined in different ways to form additional embodiments, all of which fall within the scope of the present disclosure.
  • Although the present disclosure provides certain example embodiments and applications, other embodiments that are apparent to those of ordinary skill in the art, including embodiments which do not provide all of the features and advantages set forth herein, are also within the scope of this disclosure. Accordingly, the scope of the present disclosure is intended to be defined only by reference to the appended claims.

Claims (20)

What is claimed is:
1. A method for writing data in a data storage device using a control unit, the method comprising:
writing, by the control unit, data to a physical memory location in a non-volatile memory;
sending, by the control unit, a first update request corresponding to the data to write a physical address of the physical memory location to a location in a table corresponding to a logical address of the data; and
sending, by the control unit, a second update request corresponding to the data to write the physical address of the physical memory location to the location in the table corresponding to the logical address of the data.
2. The method of claim 1, wherein sending the second update request reduces a probability of writing the physical address of the physical memory location to a wrong location in the table.
3. The method of claim 1, wherein the table resides in a volatile memory.
4. The method of claim 1, wherein the table is arranged with memory locations assigned according to a consecutive order.
5. The method of claim 1, wherein the first update request and the second update request cause error detection code information to be appended to the physical address written to the table.
6. The method of claim 5, wherein the error detection code information is determined based on the logical address of the data.
7. The method of claim 5, further comprising detecting incorrect information at a particular location in the table by detecting a mismatch between the error detection code information stored at the particular location and predetermined error detection code information associated with the particular location at the table.
8. The method of claim 1, further comprising reading the data from another physical address of the non-volatile memory prior to writing the data to the physical memory location.
9. The method of claim 8, further comprising modifying the data read from the other physical address of the non-volatile memory prior to writing the data to the physical memory location.
10. The method of claim 1, wherein the non-volatile memory comprises NAND flash memory devices.
11. The method of claim 3, wherein the volatile memory is dynamic random access memory (DRAM).
12. A data storage device, comprising:
a non-volatile memory;
a control unit configured to:
write data to a physical memory location in the non-volatile memory;
send a first update request corresponding to the data to write a physical address of the physical memory location to a location in a table corresponding to a logical address of the data; and
send a second update request corresponding to the data to write the physical address of the physical memory location to the location in the table corresponding to the logical address of the data.
13. The data storage device of claim 12, wherein the second update request reduces a probability of writing the physical address of the physical memory location to a wrong location in the table.
14. The data storage device of claim 12, further comprising a volatile memory configured to maintain the table.
15. The data storage device of claim 12, wherein the first update request and the second update request cause error detection code information to be appended to the physical address written to the table.
16. The data storage device of claim 15, wherein the error detection code information is determined based on the logical address of the data.
17. The data storage device of claim 15, wherein the control unit is configured to detect incorrect information stored at a particular location in the table by detecting a mismatch between the error detection code information stored at the particular location and predetermined error detection code information associated with the particular location at the table.
18. The data storage device of claim 12, wherein the control unit is configured to read the data from another physical address of the non-volatile memory prior to writing the data to the physical memory location.
19. The data storage device of claim 18, wherein the control unit is configured to modify the data read from the other physical address of the non-volatile memory prior to writing the data to the physical memory location.
20. The data storage device of claim 12, wherein the non-volatile memory comprises NAND flash memory devices.
US15/199,067 2014-02-24 2016-06-30 Double writing map table entries in a data storage system to guard against silent corruption Abandoned US20160313936A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/199,067 US20160313936A1 (en) 2014-02-24 2016-06-30 Double writing map table entries in a data storage system to guard against silent corruption

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461943780P 2014-02-24 2014-02-24
US14/250,212 US9384088B1 (en) 2014-02-24 2014-04-10 Double writing map table entries in a data storage system to guard against silent corruption
US15/199,067 US20160313936A1 (en) 2014-02-24 2016-06-30 Double writing map table entries in a data storage system to guard against silent corruption

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/250,212 Continuation US9384088B1 (en) 2014-02-24 2014-04-10 Double writing map table entries in a data storage system to guard against silent corruption

Publications (1)

Publication Number Publication Date
US20160313936A1 true US20160313936A1 (en) 2016-10-27

Family

ID=56234912

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/250,212 Active 2034-04-24 US9384088B1 (en) 2014-02-24 2014-04-10 Double writing map table entries in a data storage system to guard against silent corruption
US15/199,067 Abandoned US20160313936A1 (en) 2014-02-24 2016-06-30 Double writing map table entries in a data storage system to guard against silent corruption

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US14/250,212 Active 2034-04-24 US9384088B1 (en) 2014-02-24 2014-04-10 Double writing map table entries in a data storage system to guard against silent corruption

Country Status (1)

Country Link
US (2) US9384088B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346286B2 (en) 2017-04-07 2019-07-09 International Business Machines Corporation Problem diagnosis technique of memory corruption based on regular expression generated during application compiling

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9507663B1 (en) * 2015-05-04 2016-11-29 Macronix International Co., Ltd. Memory device and operation method
US9785517B2 (en) * 2015-06-10 2017-10-10 International Business Machines Corporation Rebuilding damaged areas of a volume table using a volume data set
US9633155B1 (en) * 2015-11-10 2017-04-25 International Business Machines Corporation Circuit modification
US10157004B2 (en) * 2016-04-14 2018-12-18 Sandisk Technologies Llc Storage system and method for recovering data corrupted in a host memory buffer
KR20220147292A (en) 2021-04-27 2022-11-03 삼성전자주식회사 Storage device of performing meta data management and method of operating the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US20100131723A1 (en) * 2008-11-21 2010-05-27 Fujitsu Limited Access control apparatus, access control method, and storage apparatus
US8397107B1 (en) * 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
US8578242B1 (en) * 2010-01-29 2013-11-05 Western Digital Technologies, Inc. Data storage device employing seed array for data path protection

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856556B1 (en) 2003-04-03 2005-02-15 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
US7502256B2 (en) 2004-11-30 2009-03-10 Siliconsystems, Inc. Systems and methods for reducing unauthorized data recovery from solid-state storage devices
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7765373B1 (en) 2006-06-27 2010-07-27 Siliconsystems, Inc. System for controlling use of a solid-state storage subsystem
US8108692B1 (en) 2006-06-27 2012-01-31 Siliconsystems, Inc. Solid-state storage subsystem security solution
US7447807B1 (en) 2006-06-30 2008-11-04 Siliconsystems, Inc. Systems and methods for storing data in segments of a storage subsystem
US7509441B1 (en) 2006-06-30 2009-03-24 Siliconsystems, Inc. Systems and methods for segmenting and protecting a storage subsystem
US8161227B1 (en) 2006-10-30 2012-04-17 Siliconsystems, Inc. Storage subsystem capable of programming field-programmable devices of a target computer system
US8549236B2 (en) 2006-12-15 2013-10-01 Siliconsystems, Inc. Storage subsystem with multiple non-volatile memory arrays to protect against data losses
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7685337B2 (en) 2007-05-24 2010-03-23 Siliconsystems, Inc. Solid state storage subsystem for embedded applications
US7685338B2 (en) 2007-05-24 2010-03-23 Siliconsystems, Inc. Solid state storage subsystem for embedded applications
US7685374B2 (en) 2007-07-26 2010-03-23 Siliconsystems, Inc. Multi-interface and multi-bus structured solid-state storage subsystem
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
US8078918B2 (en) 2008-02-07 2011-12-13 Siliconsystems, Inc. Solid state storage subsystem that maintains and provides access to data reflective of a failure risk
US7962792B2 (en) 2008-02-11 2011-06-14 Siliconsystems, Inc. Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem
US7733712B1 (en) 2008-05-20 2010-06-08 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
US8375151B1 (en) 2009-02-12 2013-02-12 Siliconsystems, Inc. Command portal for securely communicating and executing non-standard storage subsystem commands
US8583835B1 (en) 2008-08-06 2013-11-12 Siliconsystems, Inc. Command portal for executing non-standard storage subsystem commands
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US8090899B1 (en) 2009-03-04 2012-01-03 Western Digital Technologies, Inc. Solid state drive power safe wear-leveling
US10079048B2 (en) 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US8254172B1 (en) 2009-09-30 2012-08-28 Western Digital Technologies, Inc. Wear leveling non-volatile semiconductor memory based on erase times and program times
US8243525B1 (en) 2009-09-30 2012-08-14 Western Digital Technologies, Inc. Refreshing non-volatile semiconductor memory by reading without rewriting
US9753847B2 (en) 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8135903B1 (en) 2009-10-30 2012-03-13 Western Digital Technologies, Inc. Non-volatile semiconductor memory compressing data to improve performance
US8261012B2 (en) 2009-10-30 2012-09-04 Western Digital Technologies, Inc. Non-volatile semiconductor memory comprising power fail circuitry for flushing write data in response to a power fail signal
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8316176B1 (en) 2010-02-17 2012-11-20 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8713066B1 (en) 2010-03-29 2014-04-29 Western Digital Technologies, Inc. Managing wear leveling and garbage collection operations in a solid-state memory using linked lists
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US8341339B1 (en) 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8612669B1 (en) 2010-06-28 2013-12-17 Western Digital Technologies, Inc. System and method for performing data retention in solid-state memory using copy commands and validity and usage data
US8447920B1 (en) 2010-06-29 2013-05-21 Western Digital Technologies, Inc. System and method for managing data access in non-volatile memory
US8521972B1 (en) 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US8639872B1 (en) 2010-08-13 2014-01-28 Western Digital Technologies, Inc. Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8638602B1 (en) 2010-09-10 2014-01-28 Western Digital Technologies, Inc. Background selection of voltage reference values for performing memory read operations
US8769190B1 (en) 2010-09-15 2014-07-01 Western Digital Technologies, Inc. System and method for reducing contentions in solid-state memory access
US8788779B1 (en) 2010-09-17 2014-07-22 Western Digital Technologies, Inc. Non-volatile storage subsystem with energy-based performance throttling
US8612804B1 (en) 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US8601313B1 (en) 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8458435B1 (en) 2010-12-20 2013-06-04 Western Digital Technologies, Inc. Sequential write thread detection
US8392635B2 (en) 2010-12-22 2013-03-05 Western Digital Technologies, Inc. Selectively enabling a host transfer interrupt
US8683113B2 (en) 2011-02-04 2014-03-25 Western Digital Technologies, Inc. Concurrently searching multiple devices of a non-volatile semiconductor memory
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US8700951B1 (en) 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US8769232B2 (en) 2011-04-06 2014-07-01 Western Digital Technologies, Inc. Non-volatile semiconductor memory module enabling out of order host command chunk media access
US8751728B1 (en) 2011-04-29 2014-06-10 Western Digital Technologies, Inc. Storage system bus transfer optimization
US8862804B2 (en) 2011-04-29 2014-10-14 Western Digital Technologies, Inc. System and method for improved parity determination within a data redundancy scheme in a solid state memory
US9021178B2 (en) 2011-05-02 2015-04-28 Western Digital Technologies, Inc. High performance path for command processing
US8503237B1 (en) 2011-05-18 2013-08-06 Western Digital Technologies, Inc. System and method for data recovery in a solid state storage device
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8719531B2 (en) 2011-06-14 2014-05-06 Western Digital Technologies, Inc. System and method for performing data retention that incorporates environmental conditions
US8423722B1 (en) 2011-08-26 2013-04-16 Western Digital Technologies, Inc. System and method for high performance command processing in solid state drives
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US8977803B2 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
US8724422B1 (en) 2012-02-29 2014-05-13 Western Digital Technologies, Inc. System and method for charging back-up charge storage element for data storage device using spindle phase switching elements
US9003224B2 (en) 2012-04-25 2015-04-07 Western Digital Technologies, Inc. Managing unreliable memory in data storage systems
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US8788880B1 (en) 2012-08-22 2014-07-22 Western Digital Technologies, Inc. Efficient retry mechanism for solid-state memory failures
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US8972826B2 (en) 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9177638B2 (en) 2012-11-13 2015-11-03 Western Digital Technologies, Inc. Methods and devices for avoiding lower page corruption in data storage devices
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US20140223255A1 (en) 2012-12-18 2014-08-07 Western Digital Technologies, Inc. Decoder having early decoding termination detection
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US20100131723A1 (en) * 2008-11-21 2010-05-27 Fujitsu Limited Access control apparatus, access control method, and storage apparatus
US8397107B1 (en) * 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
US8578242B1 (en) * 2010-01-29 2013-11-05 Western Digital Technologies, Inc. Data storage device employing seed array for data path protection

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346286B2 (en) 2017-04-07 2019-07-09 International Business Machines Corporation Problem diagnosis technique of memory corruption based on regular expression generated during application compiling
US10534694B2 (en) 2017-04-07 2020-01-14 International Business Machines Corporation Problem diagnosis technique of memory corruption based on regular expression generated during application compiling
US10540261B2 (en) 2017-04-07 2020-01-21 International Business Machines Corporation Problem diagnosis technique of memory corruption based on regular expression generated during application compiling
US11263115B2 (en) 2017-04-07 2022-03-01 International Business Machines Corporation Problem diagnosis technique of memory corruption based on regular expression generated during application compiling

Also Published As

Publication number Publication date
US9384088B1 (en) 2016-07-05

Similar Documents

Publication Publication Date Title
US20160313936A1 (en) Double writing map table entries in a data storage system to guard against silent corruption
US8281065B2 (en) Systems and methods for determining the status of memory locations in a non-volatile memory
JP5792380B2 (en) Apparatus and method for providing data integrity
US8839053B2 (en) Error correcting pointers for non-volatile storage
US8341498B2 (en) System and method of data encoding
US9875035B2 (en) Memory system having a read and copy-back operation and method for the same
US8645776B2 (en) Run-time testing of memory locations in a non-volatile memory
US9817752B2 (en) Data integrity enhancement to protect against returning old versions of data
US11204846B2 (en) Memory system and method for operating the same
US8910018B2 (en) Memory with dynamic error detection and correction
US9824007B2 (en) Data integrity enhancement to protect against returning old versions of data
JP2014515537A (en) Apparatus and method for providing data integrity
US11657877B2 (en) Monotonic counters in memories
US10528422B2 (en) Redundant storage of error correction code (ECC) checkbits for validating proper operation of a static random access memory (SRAM)
US20060277359A1 (en) Blank memory location detection mechanism
CN105489242B (en) Data storage device and method of operating the same
US20170186500A1 (en) Memory circuit defect correction
US10289328B2 (en) Memory controller and method for handling host request based on data character
US20130219244A1 (en) Storage device
JP2016018473A (en) Semiconductor storage device, memory controller, and memory controller control method
US10922025B2 (en) Nonvolatile memory bad row management
US9417954B2 (en) Data storage device and method for operating the same
US11216191B2 (en) Storage device and operating method of storage device
US20220254435A1 (en) Semiconductor storage device and error processing method for defective memory cell in the device
US20220334761A1 (en) Memory system having system buffer and method of operating the memory system

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION