US20230025642A1 - Memory device equipped with data protection scheme - Google Patents

Memory device equipped with data protection scheme Download PDF

Info

Publication number
US20230025642A1
US20230025642A1 US17/956,046 US202217956046A US2023025642A1 US 20230025642 A1 US20230025642 A1 US 20230025642A1 US 202217956046 A US202217956046 A US 202217956046A US 2023025642 A1 US2023025642 A1 US 2023025642A1
Authority
US
United States
Prior art keywords
nonvolatile memory
memory
parity
auxiliary
parity information
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
US17/956,046
Inventor
Paolo Amato
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Priority to US17/956,046 priority Critical patent/US20230025642A1/en
Assigned to MICRON TECHNOLOGY, INC. reassignment MICRON TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AMATO, PAOLO
Publication of US20230025642A1 publication Critical patent/US20230025642A1/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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/061Improving I/O performance
    • 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
    • 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/0656Data buffering arrangements
    • 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
    • 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/068Hybrid storage device
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes

Definitions

  • the present disclosure relates to memory devices and more particularly to a memory device equipped with data protection scheme.
  • Nonvolatile memories retain their contents when power is switched off, making them good choices for storing information that is to be retrieved after a system power-cycle.
  • Memory devices including nonvolatile flash memories, such as NAND memories, need a data protection scheme to protect data from system failure, providing for a possibility of rebuilding lost or corrupted data.
  • ECC Error Correction Code
  • RAIN Redundant Array of Independent NAND
  • the controller of the memory devices usually accumulates partial parities into a dedicated buffer, so that there is the need to find a trade-off between SRAM size and write performance impact.
  • FIG. 1 is a high-level block diagram of the memory device according to the present disclosure
  • FIG. 2 is a more detailed high-level block diagram of the memory device according to an embodiment the present disclosure
  • FIG. 3 illustrates a traditional parity calculation
  • FIG. 4 illustrates a parity calculation according to the present disclosure
  • FIG. 5 illustrates logic for calculating parity in a memory device using an auxiliary nonvolatile memory to accumulate parity according to the present disclosure
  • FIG. 6 schematically shows a write path implemented by the memory device according to the present disclosure
  • FIG. 7 schematically shows a write path implemented by the memory device according to an embodiment of the present disclosure
  • FIG. 8 is a table illustrating a command implemented by the memory device according to the present disclosure.
  • FIG. 9 is a flow diagram illustrating steps of a method according to the present disclosure.
  • an example memory device comprises a hybrid memory portion including a main nonvolatile memory and an auxiliary nonvolatile memory, and a controller configured to store data information in the main nonvolatile memory, wherein the controller is configured to accumulate temporary parity information in the auxiliary nonvolatile memory, the parity information being associated with the data information stored in the main nonvolatile memory, and wherein, when the parity information accumulated into the auxiliary nonvolatile memory is complete, the controller is further configured to transfer the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory.
  • an example apparatus of the present disclosure comprises a host device and a memory device apt to communicate with the host device, the memory device comprising a hybrid memory portion including a main nonvolatile memory and an auxiliary nonvolatile memory, and a controller configured to store data information into the main nonvolatile memory, the controller including a front-end for interfacing with the host and a back-end for interfacing with the hybrid memory portion, wherein the back-end is structured into a first portion adapted to interface with the main nonvolatile memory and a second portion adapted to interface with the auxiliary nonvolatile memory, wherein the controller comprises a parity engine arranged to connect the first portion of the back-end with the second portion of the back-end and configured to accumulate temporary parity information in the auxiliary nonvolatile memory, said parity information being associated with the data information stored in the main nonvolatile memory, and wherein, when the parity information accumulated into the auxiliary nonvolatile memory is complete, the parity engine is configured to transfer the complete parity information from
  • the present disclosure also relates to a method for operating a memory device, comprising the steps of storing data information in a main nonvolatile memory, accumulating temporary parity information in an auxiliary nonvolatile memory, said parity information being associated with the data information stored in the main nonvolatile memory, and when the parity information is complete, transferring the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory.
  • Nonvolatile memories retain their contents when power is switched off, making them good choices for storing information that is to be retrieved after a system power-cycle.
  • a Flash memory is a type of nonvolatile memory that retains stored data and is characterized by a very fast access time. Moreover, it can be erased in blocks instead of one byte at a time.
  • Each erasable block of memory comprises a plurality of nonvolatile memory cells arranged in a matrix of rows and columns. Each cell is coupled to an access line and/or a data line. The cells are programmed and erased by manipulating the voltages on the access and data lines.
  • FIG. 1 is a schematic block diagram of a memory device 100 according to the present disclosure.
  • the memory device 100 comprises a memory controller 110 and a hybrid memory portion 120 including a main nonvolatile memory 121 (herein referred to also as nonvolatile memory chip) for data storage.
  • a main nonvolatile memory 121 herein referred to also as nonvolatile memory chip
  • the main nonvolatile memory 121 comprises a plurality of NAND dies 121 ′.
  • Each NAND die 121 ′ may comprise one or more Plane data structures.
  • Each Plane data structure may comprise one or more Block data structures.
  • Each Block may comprise multiple Physical Rows.
  • Each Physical Row may comprise multiple Page data structures.
  • all the Planes may be active simultaneously.
  • a single read access in a NAND system may involve one Page per Plane, where pages may be read simultaneously.
  • An erase operation in a NAND memory system may involve one Block per Plane, where Blocks are also erased simultaneously.
  • the controller 110 can include an embedded firmware and is adapted to manage and control the operation of the hybrid memory portion 120 .
  • the controller 110 may be coupled to hybrid memory portion 120 through buses 130 ′, 130 ′′. More in particular, the controller 110 is configured to store data information in the main nonvolatile memory 121 .
  • An operating system OS and one or more applications may be executed on the controller 110 .
  • the OS of the controller 110 may request memory in the hybrid memory portion 120 on behalf of the one or more applications.
  • the controller 110 may be a system-on-chip (SOC) performing memory operations on the hybrid memory portion 120 .
  • SOC system-on-chip
  • the memory device 100 can also comprise other components, such as processor units coupled to the controller 110 , antennas, connection means (not shown), and the like.
  • the controller 110 is responsible for interfacing the hybrid memory portion 120 with a host device 140 and for the programming of the memory device 100 .
  • the controller 110 is configured to communicate with the host device 140 and to exchange data information therewith.
  • the host device 140 is a mobile phone and the memory device 100 is a Universal Flash Storage (UFS) for data storage of said mobile phone.
  • UFS Universal Flash Storage
  • Memory devices including flash memories, such as NAND memories, need a data protection scheme to protect data information from system failure.
  • RAIN Redundant Array of Independent NAND
  • WL word line
  • PFs program failures
  • UECC normal Uncorrectable ECC
  • LP lower page
  • APL asynchronous-power-loss
  • the hybrid the memory portion 120 comprises, in addition to the main nonvolatile memory 121 an auxiliary nonvolatile memory 122 , and the controller 110 is configured to accumulate in this auxiliary nonvolatile memory 122 temporary parity information associated with the data information stored in the main nonvolatile memory 121 .
  • the controller 210 comprises a parity engine 250 configured to store the temporary parity information in the auxiliary nonvolatile memory 222 of the hybrid memory portion 220 .
  • the auxiliary nonvolatile memory 222 is therefore able to accumulate parity values when directed by a command from the controller 210 , in particular from the parity engine 250 .
  • the parity engine 250 will be referred to also as parity module or RAIN engine.
  • memory parity calculation and storage schemes protect data information by using the controller 210 (in particular the parity engine 250 ) to calculate parity values, and then writing the generated parity values to the auxiliary nonvolatile memory 222 of the memory portion 220 .
  • controller 210 of the present disclosure is structured and programmed in such a way that system overhead during read and write operations to calculate and store parity are avoided, and a great efficiency is achieved.
  • the auxiliary nonvolatile memory 222 of the memory portion 220 is a 3D X Point (3DXP) memory.
  • the auxiliary nonvolatile memory 222 can also be a Phase Change Memory (PCM) or also a Chalcogenide-based memory or Self-Selecting Memory.
  • PCM Phase Change Memory
  • the auxiliary nonvolatile memory function may also be provided by any other known or emerging technology memory type, such as Ferroelectric RAM (FeRAM), Spin Transfer Torque Magnetic RAM (STTMRAM).
  • the requirements of the auxiliary nonvolatile memory 222 are low latency, bit alterability (for example for implementing embedded commands) and high density of the memory (e.g. at the giga level).
  • the 3DXP memory is the best candidate to act as auxiliary nonvolatile memory 222 .
  • the controller 210 comprises a front-end FE configured to interface with the host device 240 , a middle-end ME, and a back-end BE configured to interface with the hybrid memory portion 220 , wherein the back-end BE is structured into a first portion BE 1 adapted to interface with the main nonvolatile memory 221 and a second portion BE 2 adapted to interface with the auxiliary nonvolatile memory 222 , such portions communicating via suitable buses.
  • the memory device 200 may comprise other components, such as analog blocks 260 and other peripherals without limiting the scope of the disclosure.
  • a volatile SRAM is included as in any traditional microcontroller.
  • the main nonvolatile memory may be configured to implement a low-density parity-check (LDPC) code as error correction code
  • the auxiliary nonvolatile memory may be configured to implement a BCH code for encoding/decoding.
  • LDPC low-density parity-check
  • auxiliary nonvolatile memory 222 The possibility to accumulate temporary parity information in the auxiliary nonvolatile memory 222 is therefore advantageous because such memory is very reliable does not need RAIN protection and no trade-of trade-offs between SRAM size and write performance impact has to be found.
  • the auxiliary nonvolatile memory 222 is therefore used as a RAM of the traditional solution but it is nonvolatile (and thus temporary parity information therein is maintained also in case of power loss) and has very low latency time.
  • the efficient use of the auxiliary nonvolatile memory as a buffer is possible thanks to an improved architecture of the controller, as it will be disclosed below.
  • FIG. 3 illustrates the parity calculation for a traditional memory device, comprising a NAND flash memory.
  • a traditional memory device comprising a NAND flash memory.
  • scaling nodes of NAND Flash technology under 20 nm deteriorates the reliability of the memory in such a way that the probability of on-field Word-Line (WL) shorts are not negligible.
  • WL-WL shorts a well-known method to contain the loss-data problem caused by WL-WL shorts is RAIN, which stores the parity Exclusive Or (XOR) sum of independent NAND pages of a memory stripe area, so that in an event of failure, the lost data in the WL-WL short may be recovered.
  • RAIN which stores the parity Exclusive Or (XOR) sum of independent NAND pages of a memory stripe area
  • the parity calculation is typically performed by accumulating intermediate parity values into a dedicated buffer, therefore having an impact on the performances of the RAM or SRAM.
  • the XOR program is executed by summing all of the memory page structures to be protected.
  • the parity P is calculated as:
  • D 1 , D 2 , . . . , D n are the data of the n pages (e.g., D i is the data of page i).
  • a multi-page RAIN is adopted, wherein the parity is calculated by the controller and then accumulated in a dedicated buffer before being written in the NAND, as shown in FIG. 3 .
  • a trade-offs between SRAM size and write performance impact has to be found, so that, for instance, 348 kB of SRAM size has an impact of 7%, 640 kB of SRAM size has an impact of 3.5%, and 4.6 MB of SRAM size has potentially no impact.
  • partial parity has to be saved and restored at power cycles, and after power loss, partial parities have to be rebuilt in SRAM, leading to reliability weakness: if there is a page read failure during this operation there is no RAIN protection. This traditional method has a very strong impact on the RAM performances.
  • the parity is calculated via the controller (specifically via the parity engine 450 ) according to the above formulas, and then temporary parity is accumulated in the auxiliary nonvolatile memory 422 while data information is stored in the main nonvolatile memory 421 . Parity information is transferred from auxiliary memory 422 to main nonvolatile memory 421 when it is complete, obtaining many advantages, as it will be described in more details below.
  • FIG. 5 illustrates logic for calculating parity in a memory device 500 using an auxiliary nonvolatile memory 522 to accumulate parity.
  • pages D1-D8 are summed by summers S1-S7 to produce a parity P for pages D1-D8 according to Equation 1 above. Pages D1-D8 are written to the main nonvolatile memory 521 and the new parity P is written to the auxiliary nonvolatile memory 522 .
  • missing or corrupted data recovery of page D2 may comprise reading undamaged data pages D1 and D3-D8 from the main nonvolatile memory 521 and the parity value P from the auxiliary nonvolatile memory 522 .
  • Page recovery is performed by the controller 510 by comparing the partially recalculated parity value with the stored parity value according to Equation 2 in order to restore the original data page D2.
  • the controller comprises the parity engine which accumulates temporary partial parity information in the auxiliary nonvolatile memory, the parity information being associated with the data information stored in the main nonvolatile memory. Then, only when the parity information is complete, the parity engine is further configured to transfer the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory, so that the parity is recalled only when it is complete and has to be sent to the main nonvolatile memory, i.e. to the NAND.
  • the parity engine in response to the completion of the accumulated parity, is arranged to connect the main nonvolatile memory and the auxiliary nonvolatile memory for the transfer of the total accumulated parity, greatly simplifying the operation of the controller.
  • the controller 610 comprises a front-end FE configured to interface with the host device 640 and a back-end BE configured to interface with the hybrid memory portion 620 , wherein the back-end is structured into a first portion BE 1 adapted to interface with the main nonvolatile memory 621 and a second portion BE 2 adapted to interface with the auxiliary nonvolatile memory 622 .
  • the parity engine 650 lies at the intersection of the first portion BE 1 of the back-end (i.e. the NAND back-end) and the second portion BE 2 of the back-end (i.e. the auxiliary nonvolatile memory back-end).
  • the parity engine 650 is arranged to connect the first portion BE 1 of the back-end with the second portion BE 2 of theback end for the transfer of the complete parity information from the auxiliary nonvolatile memory 622 to the main nonvolatile memory 621 . This improves the performances of the controller, as data are not accumulated in the RAM anymore, and the same time simplifying the operation of said controller.
  • the controller 610 is configured to store the data information in the main nonvolatile memory 621 simultaneously with the accumulation of the temporary parity information in the auxiliary nonvolatile memory 621 .
  • the architecture of the controller allows for a simultaneous write operation in the main nonvolatile memory and read operation in the auxiliary nonvolatile memory.
  • the auxiliary nonvolatile memory is thus efficiently used to accumulate the temporary parity information, so that basically no space of the SRAM is used (only 32 kB are used to perform the accumulation of the temporary parity) and no RAIN buffer is used (since the auxiliary nonvolatile memory is used as a buffer).
  • the controller may also be configured to save the complete parity information into the auxiliary nonvolatile memory, so as to save space in the main nonvolatile memory, even if, especially in mobile application, it is preferred to transfer and save the complete parity to the main NAND memory.
  • the controller is configured to select whether to write the data information directly into the auxiliary nonvolatile memory, without accumulating parity information or to write the data information into the main nonvolatile memory, while accumulating parity information and transfer the parity from the auxiliary nonvolatile memory to the main nonvolatile memory once said parity is complete.
  • the first option i.e. a direct write in the auxiliary memory, could be useful for small chunk, while for large chunk it is preferable to write data information in the main nonvolatile memory.
  • the controller 710 comprises a volatile cache 711 where data information are accumulated before being written into the hybrid memory portion 720 , and then, based on the data, the controller 710 selects the proper data path.
  • the controller of the memory device is configured to accumulate the temporary parity in the nonvolatile auxiliary memory, the parity being sent to the main NAND memory chip once it is completed.
  • traditional multipage RAIN in which the parity is written in a dedicated RAIN buffer of the SRAM, is avoided and only ⁇ 32 kB of the SRAM are now used for accumulating parity, due to the support of the auxiliary nonvolatile memory.
  • This has no impact on write performance and no save/load operation at power cycles need to be performed, as the parity is accumulated in a nonvolatile memory, which can be chosen so as to be extremely reliable and not in the RAM. Moreover, there is no consequence due power loss and data can always be efficiently recovered.
  • the operation of the controller is extremely improved because the RAIN engine is arranged at the intersection of main NAND memory and the auxiliary nonvolatile memory back-end, so that the controller writes the total parity in the NAND only when the accumulated parity is complete. In this way, the data in the nonvolatile memory is recalled only when it is needed.
  • the parity engine is configured to transfer data from the two nonvolatile memories when parity is complete and not each time the parity is to be updated.
  • the controller architecture is therefore suitably modified so that the auxiliary nonvolatile memory is efficiently used a SRAM buffer, without impact on the system performances.
  • the present disclosure also provides for a further optimization of the memory controller, achieving an even more reduced system overhead during memory write and read operations respectively.
  • this second step of optimization provides for accumulating the parity calculation in the auxiliary nonvolatile memory itself by superimposing new (i.e. updated) parity data over old previously calculated parity information (or on empty memory locations in case no previous parity information is available).
  • This introduces a new internal self-accumulating parity program component in the auxiliary nonvolatile memory for reducing time and power consumption by eliminating unnecessary reading and writing between the controller and the auxiliary nonvolatile memory. Execution of this internal program component is realized by introducing a new command in the auxiliary nonvolatile memory.
  • the program command is an “XOR program” command.
  • a second address may be input with the command for storing the result of the XOR computation at a second address (e.g., read at the first address, and write at second address).
  • a program internal to the hybrid memory portion for computing and storing an XOR result of read data and input data is performed, e.g., by reading data stored at the input address, computing the XOR of the read data and the input data according to an XOR Program rule, and writing the result in memory.
  • the memory chip is suitably modified so that the self-Accumulating Exclusive OR Program accumulates the parity result in memory cells internal to the auxiliary nonvolatile memory system itself without intervention by the external controller.
  • the program is thus directly executed by the memory chip after receiving a program command.
  • the hybrid memory portion is configured to execute an internal program in response to a program command from the controller, wherein the auxiliary nonvolatile memory, based on said internal program, is configured to store the parity information by overwriting old parity information with new parity information according to an Exclusive OR (XOR) program rule, wherein the auxiliary nonvolatile memory is apt to execute said internal command to overwrite or keep the old parity information without intervention from the controller, wherein the previous parity information is associated with first data information stored in the main nonvolatile memory and the updated parity information is associated with second data information different from the first data information.
  • XOR Exclusive OR
  • the updated parity information is included in an accumulated parity sum of data stored in the memory system for recovering an original data from a corrupted data in the memory system.
  • the memory portion is configured to overwrite the old parity information stored in the auxiliary nonvolatile memory with the new parity information regardless of a value of the old parity information if the new parity information has a first value, or to keep the old parity information at a same value if the new parity information has a second value, the second value being different from the first value.
  • This new modification to the memory chip allows achieving reduced system overhead during memory write and read operations in the memory system and to reduce time and power consumption.
  • a 16 KB NAND page has a 4 planes per page architecture. Parity is a 16 KB vector calculated as
  • the stripe dimension is equal to a number of NAND die in the nonvolatile memory multiplied by the number of planes in each NAND device, while D i is the 16 KB page of the i-th plane.
  • the parity sum is an exclusive logic sum (XOR)
  • the lost data is the XOR of the saved parity with the parity calculated excluding the irretrievable page D i ).
  • the traditional program rule is modified inside the memory portion to create an XOR program rule for supporting a Self-Accumulating Exclusive OR Program.
  • the Traditional Program Rule is shown in Table of FIG. 8 , which is replaced by the new program rule, shown in the same Table of FIG. 8 .
  • the XOR Program Rule allows the execution of the self-accumulating parity program to occur directly in the auxiliary nonvolatile memory, producing time and power savings in both partial write events and in the second XOR evaluation operation.
  • the modified XOR Program Rule replaces the Traditional Program Rule shown, using temporary storage areas for calculations. In this way, the self-Accumulating Exclusive OR Program establishes a new program command in the auxiliary memory system, that uses the XOR Program Rule of FIG. 8 rather than the Traditional Program Rule.
  • Read and write performance conditions are determined by the characteristics of two channels shared by multiple NAND devices and one auxiliary memory memory system with serialized transmission of data, and independent NAND and auxiliary memory planes that can be written and read in parallel.
  • Self-Accumulating Exclusive OR Program system methodology begins by receiving the specific command. Then parity is accumulated in the auxiliary memory according to Equation 1 and the new XOR Program Rule of the table of FIG. 8 , by superimposing previously stored parity information with new parity information.
  • a 0 value is superimposed in the auxiliary memory system's internal parity storage memory cell.
  • a Reset operation is performed, wherein a reset operation refers to the operation of programming a bit to 0.
  • a previously stored parity bit has a value of 1 and a new parity bit value is also equal to 1
  • no new parity bit value is superimposed in an internal storage memory cell of the auxiliary memory system's parity value (e.g., it remains at 1).
  • these operations cannot be performed directly in the auxiliary memory.
  • Self-Accumulating Parity for Memory uses the new XOR program rule.
  • the effect of the new XOR Program Rule is to realize an XOR operation directly in the memory device, saving time as well as power during partial writes and during the second operation of the RAIN XOR evaluation that sums parities for even and odd pages, while read accesses by the controller are eliminated entirely.
  • Each memory cell is pulsed according to the new XOR Program Rule.
  • the new XOR Program Rule causes a reset pulse when the stored bit is equal to 1 and the new bit is also equal to 1.
  • the XOR Program Rule causes a set pulse when the stored bit is equal to 0 and the new bit is equal to 1.
  • the internal memory cell is not pulsed (so it remains at 0 or at 1). Therefore, when a previously stored parity bit has a value of 0 and a new parity bit value is equal to 1, a new parity bit value of 1 is superimposed in the corresponding internal parity memory cell of the auxiliary memory over the previous value of 0.
  • a Set operation is performed, wherein a set operation refers to the operation of programming a bit to 1.
  • a previously stored parity bit has a value of 1 and a new parity bit value is equal to 0, no new parity bit value is superimposed in an internal storage memory cell of the auxiliary memory system's parity value (e.g., it remains at 1).
  • a previously stored parity bit has a value of 1 and a new parity bit value is also equal to 1
  • parity bit value of 0 is superimposed in the auxiliary memory system's internal parity storage memory cell.
  • a Reset operation is performed, wherein a reset operation refers to the operation of programming a bit to 0.
  • an auxiliary memory element is programmed to accumulate and store a parity sum by setting and resetting previously stored parity bit values according to conditions defined by an Exclusive Or (XOR) truth table, shown in FIG. 8 , without intervention of the controller.
  • XOR Exclusive Or
  • Each newly calculated bit value is superimposed in the corresponding final internal bit storage location, (e.g., the parity memory cell) of the auxiliary memory system.
  • This internal read for XORing the current content of a page with a new data pattern has the great advantage that the reading of partial parities from the auxiliary nonvolatile memory is avoided.
  • a reduced system overhead during write operations is obtained.
  • the controller generates time and power overhead by reading the previous parity stored in the auxiliary memory.
  • the existing parity data stored in the auxiliary memory may be up-dated at each partial write operation directly with the parity of page, or pages, written (for example directly with input data written in a single page Dk of NAND flash).
  • Self-Accumulating Exclusive OR Program methodology eliminates reading of the previous parity stored in the auxiliary memory by the controller, eliminating the time and energy overhead during partial write operations.
  • a method 900 for operating a memory device comprises the step 910 of storing data information in a main nonvolatile memory, a step 920 of accumulating temporary parity information in an auxiliary nonvolatile memory, said parity information being associated with the data information stored in the main nonvolatile memory, and a final step 930 of transferring, when the parity information is complete, the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory.
  • Coupled may include electrically coupled, directly coupled, and/or directly connected with no intervening elements (e.g., by direct physical contact) or indirectly coupled and/or connected with intervening elements.
  • the term coupled may further include two or more elements that co-operate or interact with each other (e.g., as in a cause and effect relationship).

Abstract

The present disclosure relates to a memory device comprising a hybrid memory portion in turn comprising a main nonvolatile memory and an auxiliary nonvolatile memory, and a controller configured to store data information in the main nonvolatile memory. The controller of the present disclosure comprises a parity engine configured to accumulate temporary parity information in the auxiliary nonvolatile memory, the parity information being associated with the data information stored in the main nonvolatile memory; when the parity information accumulated in the auxiliary nonvolatile memory is complete, the parity engine is further configured to transfer the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory. A related apparatus and a related method are also disclosed.

Description

    PRIORITY INFORMATION
  • This application is a Continuation of U.S. application Ser. No. 16/959,549, filed on Jul. 1, 2020, which is a U.S. National Stage Application under 35 U.S.C. § 371 of International Application Number PCT/IB2019/000958, filed on Oct. 9, 2019, the contents of which are incorporated herein by reference.
  • TECHNICAL FIELD
  • The present disclosure relates to memory devices and more particularly to a memory device equipped with data protection scheme.
  • BACKGROUND
  • Memory devices are used in many electronic systems such as mobile phones, personal digital assistants, laptop computers, digital cameras and the like. Nonvolatile memories retain their contents when power is switched off, making them good choices for storing information that is to be retrieved after a system power-cycle.
  • Memory devices including nonvolatile flash memories, such as NAND memories, need a data protection scheme to protect data from system failure, providing for a possibility of rebuilding lost or corrupted data.
  • A known method for protecting data in memory devices is the use of Error Correction Code (ECC), which is however often not enough to recover full data information.
  • Another method to contain the loss-data problem is Redundant Array of Independent NAND (RAIN). RAIN methods store the parity Exclusive Or (XOR) sum of independent NAND, so that in an event of failure, the lost data may be recovered.
  • However, particularly in mobile applications, the controller of the memory devices usually accumulates partial parities into a dedicated buffer, so that there is the need to find a trade-off between SRAM size and write performance impact.
  • When parity is accumulated in the dedicated buffer, there is the need to save and restore partial parity at power-cycles. Moreover, after power loss, partial parities have to be rebuilt, which leads to reliability weakness, and no data protection is possible if a page read failure occurs during this operation.
  • It is therefore desirable to avoid these drawbacks, as well as to improve the operation of the controller of the memory devices, especially when RAIN protection is needed.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a high-level block diagram of the memory device according to the present disclosure;
  • FIG. 2 is a more detailed high-level block diagram of the memory device according to an embodiment the present disclosure;
  • FIG. 3 illustrates a traditional parity calculation;
  • FIG. 4 illustrates a parity calculation according to the present disclosure;
  • FIG. 5 illustrates logic for calculating parity in a memory device using an auxiliary nonvolatile memory to accumulate parity according to the present disclosure;
  • FIG. 6 schematically shows a write path implemented by the memory device according to the present disclosure;
  • FIG. 7 schematically shows a write path implemented by the memory device according to an embodiment of the present disclosure;
  • FIG. 8 is a table illustrating a command implemented by the memory device according to the present disclosure; and
  • FIG. 9 is a flow diagram illustrating steps of a method according to the present disclosure.
  • DETAILED DESCRIPTION
  • With reference to those drawings, systems and methods involving a memory device equipped with data protection scheme will be disclosed herein.
  • More particularly, as it will be described into details in the following, an example memory device comprises a hybrid memory portion including a main nonvolatile memory and an auxiliary nonvolatile memory, and a controller configured to store data information in the main nonvolatile memory, wherein the controller is configured to accumulate temporary parity information in the auxiliary nonvolatile memory, the parity information being associated with the data information stored in the main nonvolatile memory, and wherein, when the parity information accumulated into the auxiliary nonvolatile memory is complete, the controller is further configured to transfer the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory.
  • Moreover, an example apparatus of the present disclosure comprises a host device and a memory device apt to communicate with the host device, the memory device comprising a hybrid memory portion including a main nonvolatile memory and an auxiliary nonvolatile memory, and a controller configured to store data information into the main nonvolatile memory, the controller including a front-end for interfacing with the host and a back-end for interfacing with the hybrid memory portion, wherein the back-end is structured into a first portion adapted to interface with the main nonvolatile memory and a second portion adapted to interface with the auxiliary nonvolatile memory, wherein the controller comprises a parity engine arranged to connect the first portion of the back-end with the second portion of the back-end and configured to accumulate temporary parity information in the auxiliary nonvolatile memory, said parity information being associated with the data information stored in the main nonvolatile memory, and wherein, when the parity information accumulated into the auxiliary nonvolatile memory is complete, the parity engine is configured to transfer the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory
  • The present disclosure also relates to a method for operating a memory device, comprising the steps of storing data information in a main nonvolatile memory, accumulating temporary parity information in an auxiliary nonvolatile memory, said parity information being associated with the data information stored in the main nonvolatile memory, and when the parity information is complete, transferring the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory.
  • Nonvolatile memories retain their contents when power is switched off, making them good choices for storing information that is to be retrieved after a system power-cycle.
  • A Flash memory is a type of nonvolatile memory that retains stored data and is characterized by a very fast access time. Moreover, it can be erased in blocks instead of one byte at a time. Each erasable block of memory comprises a plurality of nonvolatile memory cells arranged in a matrix of rows and columns. Each cell is coupled to an access line and/or a data line. The cells are programmed and erased by manipulating the voltages on the access and data lines.
  • FIG. 1 is a schematic block diagram of a memory device 100 according to the present disclosure.
  • The memory device 100 comprises a memory controller 110 and a hybrid memory portion 120 including a main nonvolatile memory 121 (herein referred to also as nonvolatile memory chip) for data storage.
  • According to an embodiment of the present disclosure, the main nonvolatile memory 121 comprises a plurality of NAND dies 121′.
  • Each NAND die 121′ may comprise one or more Plane data structures. Each Plane data structure may comprise one or more Block data structures. Each Block may comprise multiple Physical Rows. Each Physical Row may comprise multiple Page data structures. In the NAND memory system, all the Planes may be active simultaneously. A single read access in a NAND system may involve one Page per Plane, where pages may be read simultaneously. An erase operation in a NAND memory system may involve one Block per Plane, where Blocks are also erased simultaneously.
  • The controller 110 can include an embedded firmware and is adapted to manage and control the operation of the hybrid memory portion 120. The controller 110 may be coupled to hybrid memory portion 120 through buses 130′, 130″. More in particular, the controller 110 is configured to store data information in the main nonvolatile memory 121.
  • An operating system OS and one or more applications may be executed on the controller 110. The OS of the controller 110 may request memory in the hybrid memory portion 120 on behalf of the one or more applications. In some embodiments, the controller 110 may be a system-on-chip (SOC) performing memory operations on the hybrid memory portion 120.
  • Clearly, the memory device 100 can also comprise other components, such as processor units coupled to the controller 110, antennas, connection means (not shown), and the like.
  • The controller 110 is responsible for interfacing the hybrid memory portion 120 with a host device 140 and for the programming of the memory device 100. In particular, the controller 110 is configured to communicate with the host device 140 and to exchange data information therewith.
  • According to an embodiment, the host device 140 is a mobile phone and the memory device 100 is a Universal Flash Storage (UFS) for data storage of said mobile phone.
  • Memory devices including flash memories, such as NAND memories, need a data protection scheme to protect data information from system failure.
  • A well-known method to contain the loss-data problem and manage on-field defectivity is Redundant Array of Independent NAND (RAIN). RAIN methods store the parity Exclusive Or (XOR) sum of data stored, so that in an event of failure, the lost data may be recovered, as it will be detailed in the following.
  • Usually, there are three kinds of failures that can be tackled by using RAIN, namely word line (WL) corruption due to program failures (PFs), normal Uncorrectable ECC (UECC), and lower page (LP) corruption due to asynchronous-power-loss (APL).
  • Advantageously according to the disclosure, the hybrid the memory portion 120 comprises, in addition to the main nonvolatile memory 121 an auxiliary nonvolatile memory 122, and the controller 110 is configured to accumulate in this auxiliary nonvolatile memory 122 temporary parity information associated with the data information stored in the main nonvolatile memory 121.
  • More particularly, referring now to memory device 200 of FIG. 2 (corresponding to the memory device 100 of FIG. 1 ), the controller 210 comprises a parity engine 250 configured to store the temporary parity information in the auxiliary nonvolatile memory 222 of the hybrid memory portion 220. The auxiliary nonvolatile memory 222 is therefore able to accumulate parity values when directed by a command from the controller 210, in particular from the parity engine 250. In the following, the parity engine 250 will be referred to also as parity module or RAIN engine.
  • In other words, according to the present disclosure, memory parity calculation and storage schemes protect data information by using the controller 210 (in particular the parity engine 250) to calculate parity values, and then writing the generated parity values to the auxiliary nonvolatile memory 222 of the memory portion 220.
  • Advantageously, the controller 210 of the present disclosure is structured and programmed in such a way that system overhead during read and write operations to calculate and store parity are avoided, and a great efficiency is achieved.
  • According to an embodiment of the present disclosure, the auxiliary nonvolatile memory 222 of the memory portion 220 is a 3D X Point (3DXP) memory. The auxiliary nonvolatile memory 222 can also be a Phase Change Memory (PCM) or also a Chalcogenide-based memory or Self-Selecting Memory. However, the auxiliary nonvolatile memory function may also be provided by any other known or emerging technology memory type, such as Ferroelectric RAM (FeRAM), Spin Transfer Torque Magnetic RAM (STTMRAM).
  • In general, the requirements of the auxiliary nonvolatile memory 222 are low latency, bit alterability (for example for implementing embedded commands) and high density of the memory (e.g. at the giga level). In this respect, the 3DXP memory is the best candidate to act as auxiliary nonvolatile memory 222.
  • According to an embodiment of the disclosure, the controller 210 comprises a front-end FE configured to interface with the host device 240, a middle-end ME, and a back-end BE configured to interface with the hybrid memory portion 220, wherein the back-end BE is structured into a first portion BE1 adapted to interface with the main nonvolatile memory 221 and a second portion BE2 adapted to interface with the auxiliary nonvolatile memory 222, such portions communicating via suitable buses.
  • Furthermore, the memory device 200 may comprise other components, such as analog blocks 260 and other peripherals without limiting the scope of the disclosure. A volatile SRAM is included as in any traditional microcontroller.
  • According to an embodiment, the main nonvolatile memory may be configured to implement a low-density parity-check (LDPC) code as error correction code, while the auxiliary nonvolatile memory may be configured to implement a BCH code for encoding/decoding.
  • Referring again to the example of FIG. 2 , all the data, before being written in the main nonvolatile memory, pass through a scrambler.
  • The possibility to accumulate temporary parity information in the auxiliary nonvolatile memory 222 is therefore advantageous because such memory is very reliable does not need RAIN protection and no trade-of trade-offs between SRAM size and write performance impact has to be found. The auxiliary nonvolatile memory 222 is therefore used as a RAM of the traditional solution but it is nonvolatile (and thus temporary parity information therein is maintained also in case of power loss) and has very low latency time. The efficient use of the auxiliary nonvolatile memory as a buffer is possible thanks to an improved architecture of the controller, as it will be disclosed below.
  • In order to highlight the advantages of the system and method of the present disclosure, a comparison with the traditional system and method is now performed. FIG. 3 illustrates the parity calculation for a traditional memory device, comprising a NAND flash memory. In such memory system, scaling nodes of NAND Flash technology under 20 nm deteriorates the reliability of the memory in such a way that the probability of on-field Word-Line (WL) shorts are not negligible. As previously mentioned, a well-known method to contain the loss-data problem caused by WL-WL shorts is RAIN, which stores the parity Exclusive Or (XOR) sum of independent NAND pages of a memory stripe area, so that in an event of failure, the lost data in the WL-WL short may be recovered.
  • As shown, the parity calculation is typically performed by accumulating intermediate parity values into a dedicated buffer, therefore having an impact on the performances of the RAM or SRAM. The XOR program is executed by summing all of the memory page structures to be protected. In other words, the parity P is calculated as:

  • P+Σ i=1 n D i =D ji=1(u≠j) n D i  (1)
  • where D1, D2, . . . , Dn are the data of the n pages (e.g., Di is the data of page i).
  • Saving the parity of n pages allows for recovering an original page of data from a page that may have been lost or corrupted. For example, data Dj for page j may be recovered by subtracting the parity sum of all pages except page j from the total parity sum, P, as shown below:

  • D j =P−Σ i=1(i≠j) n D i  (2)
  • Especially in mobile applications, a multi-page RAIN is adopted, wherein the parity is calculated by the controller and then accumulated in a dedicated buffer before being written in the NAND, as shown in FIG. 3 . As previously mentioned, a trade-offs between SRAM size and write performance impact has to be found, so that, for instance, 348 kB of SRAM size has an impact of 7%, 640 kB of SRAM size has an impact of 3.5%, and 4.6 MB of SRAM size has potentially no impact. Moreover, partial parity has to be saved and restored at power cycles, and after power loss, partial parities have to be rebuilt in SRAM, leading to reliability weakness: if there is a page read failure during this operation there is no RAIN protection. This traditional method has a very strong impact on the RAM performances.
  • According to the present disclosure, the above-mentioned drawbacks are overcome. As shown in FIG. 4 , in the memory device 400 (corresponding to the memory devices 100 and 200 of FIGS. 1 and 2 ) the parity is calculated via the controller (specifically via the parity engine 450) according to the above formulas, and then temporary parity is accumulated in the auxiliary nonvolatile memory 422 while data information is stored in the main nonvolatile memory 421. Parity information is transferred from auxiliary memory 422 to main nonvolatile memory 421 when it is complete, obtaining many advantages, as it will be described in more details below.
  • FIG. 5 illustrates logic for calculating parity in a memory device 500 using an auxiliary nonvolatile memory 522 to accumulate parity. In a logical representation of a RAIN parity value calculation and storage operation 500 a, pages D1-D8 are summed by summers S1-S7 to produce a parity P for pages D1-D8 according to Equation 1 above. Pages D1-D8 are written to the main nonvolatile memory 521 and the new parity P is written to the auxiliary nonvolatile memory 522. Then, in a logical representation of a RAIN parity data restoration operation 500 b, missing or corrupted data recovery of page D2 may comprise reading undamaged data pages D1 and D3-D8 from the main nonvolatile memory 521 and the parity value P from the auxiliary nonvolatile memory 522. Page recovery is performed by the controller 510 by comparing the partially recalculated parity value with the stored parity value according to Equation 2 in order to restore the original data page D2.
  • All the operations are performed in the controller of the memory device. As previously mentioned, advantageously, the controller according to the present disclosure comprises the parity engine which accumulates temporary partial parity information in the auxiliary nonvolatile memory, the parity information being associated with the data information stored in the main nonvolatile memory. Then, only when the parity information is complete, the parity engine is further configured to transfer the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory, so that the parity is recalled only when it is complete and has to be sent to the main nonvolatile memory, i.e. to the NAND.
  • In other words, in response to the completion of the accumulated parity, the parity engine is arranged to connect the main nonvolatile memory and the auxiliary nonvolatile memory for the transfer of the total accumulated parity, greatly simplifying the operation of the controller.
  • Referring now to data path of the memory device 600 FIG. 6 (corresponding to the memory devices 100, 200, 400 and/or 500), the controller 610 comprises a front-end FE configured to interface with the host device 640 and a back-end BE configured to interface with the hybrid memory portion 620, wherein the back-end is structured into a first portion BE1 adapted to interface with the main nonvolatile memory 621 and a second portion BE2 adapted to interface with the auxiliary nonvolatile memory 622.
  • More in particular, advantageously according to the new controller configuration, the parity engine 650 lies at the intersection of the first portion BE1 of the back-end (i.e. the NAND back-end) and the second portion BE2 of the back-end (i.e. the auxiliary nonvolatile memory back-end). In this way, the parity engine 650 is arranged to connect the first portion BE1 of the back-end with the second portion BE2 of theback end for the transfer of the complete parity information from the auxiliary nonvolatile memory 622 to the main nonvolatile memory 621. This improves the performances of the controller, as data are not accumulated in the RAM anymore, and the same time simplifying the operation of said controller.
  • In an embodiment, due to the improved architecture of the controller, the controller 610 is configured to store the data information in the main nonvolatile memory 621 simultaneously with the accumulation of the temporary parity information in the auxiliary nonvolatile memory 621. Moreover, the architecture of the controller allows for a simultaneous write operation in the main nonvolatile memory and read operation in the auxiliary nonvolatile memory.
  • As previously stated, the auxiliary nonvolatile memory is thus efficiently used to accumulate the temporary parity information, so that basically no space of the SRAM is used (only 32 kB are used to perform the accumulation of the temporary parity) and no RAIN buffer is used (since the auxiliary nonvolatile memory is used as a buffer). In an embodiment, the controller may also be configured to save the complete parity information into the auxiliary nonvolatile memory, so as to save space in the main nonvolatile memory, even if, especially in mobile application, it is preferred to transfer and save the complete parity to the main NAND memory.
  • In an embodiment, as shown in FIG. 7 , based on the dimension and/or type of the data information to be written in the hybrid memory portion, the controller is configured to select whether to write the data information directly into the auxiliary nonvolatile memory, without accumulating parity information or to write the data information into the main nonvolatile memory, while accumulating parity information and transfer the parity from the auxiliary nonvolatile memory to the main nonvolatile memory once said parity is complete. The first option, i.e. a direct write in the auxiliary memory, could be useful for small chunk, while for large chunk it is preferable to write data information in the main nonvolatile memory.
  • More in particular, in the memory device 700 (corresponding to device 100, 200, 400, 500 and/or 600) of FIG. 7 , the controller 710 comprises a volatile cache 711 where data information are accumulated before being written into the hybrid memory portion 720, and then, based on the data, the controller 710 selects the proper data path.
  • Summing up, according to the present disclosure, the controller of the memory device is configured to accumulate the temporary parity in the nonvolatile auxiliary memory, the parity being sent to the main NAND memory chip once it is completed. In this way, traditional multipage RAIN, in which the parity is written in a dedicated RAIN buffer of the SRAM, is avoided and only ˜32 kB of the SRAM are now used for accumulating parity, due to the support of the auxiliary nonvolatile memory. This has no impact on write performance and no save/load operation at power cycles need to be performed, as the parity is accumulated in a nonvolatile memory, which can be chosen so as to be extremely reliable and not in the RAM. Moreover, there is no consequence due power loss and data can always be efficiently recovered.
  • The operation of the controller is extremely improved because the RAIN engine is arranged at the intersection of main NAND memory and the auxiliary nonvolatile memory back-end, so that the controller writes the total parity in the NAND only when the accumulated parity is complete. In this way, the data in the nonvolatile memory is recalled only when it is needed. In other words, the parity engine is configured to transfer data from the two nonvolatile memories when parity is complete and not each time the parity is to be updated. The controller architecture is therefore suitably modified so that the auxiliary nonvolatile memory is efficiently used a SRAM buffer, without impact on the system performances.
  • The present disclosure also provides for a further optimization of the memory controller, achieving an even more reduced system overhead during memory write and read operations respectively.
  • In particular, this second step of optimization provides for accumulating the parity calculation in the auxiliary nonvolatile memory itself by superimposing new (i.e. updated) parity data over old previously calculated parity information (or on empty memory locations in case no previous parity information is available). This introduces a new internal self-accumulating parity program component in the auxiliary nonvolatile memory for reducing time and power consumption by eliminating unnecessary reading and writing between the controller and the auxiliary nonvolatile memory. Execution of this internal program component is realized by introducing a new command in the auxiliary nonvolatile memory. In one embodiment, the program command is an “XOR program” command.
  • In particular, when the command “XOR program” is received (for example from the controller) with address and input data parameters, stored data is read at the input address and an XOR operation of the read data and new input data is performed and the results of the computation are written into memory, typically at same location of the input address received with XOR program command. However, a second address may be input with the command for storing the result of the XOR computation at a second address (e.g., read at the first address, and write at second address).
  • When the XOR command is received in operation, a program internal to the hybrid memory portion for computing and storing an XOR result of read data and input data is performed, e.g., by reading data stored at the input address, computing the XOR of the read data and the input data according to an XOR Program rule, and writing the result in memory.
  • In this case, the memory chip is suitably modified so that the self-Accumulating Exclusive OR Program accumulates the parity result in memory cells internal to the auxiliary nonvolatile memory system itself without intervention by the external controller. The program is thus directly executed by the memory chip after receiving a program command.
  • In other words, the hybrid memory portion is configured to execute an internal program in response to a program command from the controller, wherein the auxiliary nonvolatile memory, based on said internal program, is configured to store the parity information by overwriting old parity information with new parity information according to an Exclusive OR (XOR) program rule, wherein the auxiliary nonvolatile memory is apt to execute said internal command to overwrite or keep the old parity information without intervention from the controller, wherein the previous parity information is associated with first data information stored in the main nonvolatile memory and the updated parity information is associated with second data information different from the first data information.
  • The updated parity information is included in an accumulated parity sum of data stored in the memory system for recovering an original data from a corrupted data in the memory system.
  • More in particular, the memory portion is configured to overwrite the old parity information stored in the auxiliary nonvolatile memory with the new parity information regardless of a value of the old parity information if the new parity information has a first value, or to keep the old parity information at a same value if the new parity information has a second value, the second value being different from the first value.
  • This new modification to the memory chip allows achieving reduced system overhead during memory write and read operations in the memory system and to reduce time and power consumption.
  • In one exemplary embodiment, a 16 KB NAND page has a 4 planes per page architecture. Parity is a 16 KB vector calculated as

  • P=Σ i=1 D i  (3)
  • where n=16 is the number of pages that are readable or programmable at a time. In other words, the stripe dimension is equal to a number of NAND die in the nonvolatile memory multiplied by the number of planes in each NAND device, while Di is the 16 KB page of the i-th plane. Because the parity sum is an exclusive logic sum (XOR), it is possible to retrieve lost data Di, caused by a failure on the j-th page, by means of subtraction:

  • D ji=1(i≠j) D i −P  (4)
  • Thus, it is also possible to write;

  • D ji=1(i≠j) D i +P   (5)
  • (i.e. the lost data is the XOR of the saved parity with the parity calculated excluding the irretrievable page Di).
  • The traditional program rule is modified inside the memory portion to create an XOR program rule for supporting a Self-Accumulating Exclusive OR Program. The Traditional Program Rule is shown in Table of FIG. 8 , which is replaced by the new program rule, shown in the same Table of FIG. 8 .
  • The XOR Program Rule according to the present disclosure allows the execution of the self-accumulating parity program to occur directly in the auxiliary nonvolatile memory, producing time and power savings in both partial write events and in the second XOR evaluation operation. The modified XOR Program Rule replaces the Traditional Program Rule shown, using temporary storage areas for calculations. In this way, the self-Accumulating Exclusive OR Program establishes a new program command in the auxiliary memory system, that uses the XOR Program Rule of FIG. 8 rather than the Traditional Program Rule.
  • Read and write performance conditions are determined by the characteristics of two channels shared by multiple NAND devices and one auxiliary memory memory system with serialized transmission of data, and independent NAND and auxiliary memory planes that can be written and read in parallel.
  • As previously mentioned, Self-Accumulating Exclusive OR Program system methodology begins by receiving the specific command. Then parity is accumulated in the auxiliary memory according to Equation 1 and the new XOR Program Rule of the table of FIG. 8 , by superimposing previously stored parity information with new parity information.
  • More in particular, according to the traditional program rule, when a previously stored parity bit has a value of 0 and a new parity bit value is also equal to 0, no new parity bit value is superimposed in an internal storage memory cell of the auxiliary memory system's parity value. When a previously stored parity bit has a value of 0 and a new parity bit value is equal to 1, a new parity bit value of 1 is superimposed in the corresponding internal parity memory cell of the auxiliary memory system over the previous value of 0. In other words, a Set operation is performed, wherein a Set operation refers to the operation of programming a bit to 1.
  • When a previously stored parity bit has a value of 1 and a new parity bit value is equal to parity bit value of 0, a 0 value is superimposed in the auxiliary memory system's internal parity storage memory cell. In other words, a Reset operation is performed, wherein a reset operation refers to the operation of programming a bit to 0. When a previously stored parity bit has a value of 1 and a new parity bit value is also equal to 1, no new parity bit value is superimposed in an internal storage memory cell of the auxiliary memory system's parity value (e.g., it remains at 1). However, these operations cannot be performed directly in the auxiliary memory.
  • Rather than the Traditional Program rule, Self-Accumulating Parity for Memory uses the new XOR program rule. The effect of the new XOR Program Rule is to realize an XOR operation directly in the memory device, saving time as well as power during partial writes and during the second operation of the RAIN XOR evaluation that sums parities for even and odd pages, while read accesses by the controller are eliminated entirely.
  • Each memory cell is pulsed according to the new XOR Program Rule. In contrast to the Traditional Program Rule, the new XOR Program Rule causes a reset pulse when the stored bit is equal to 1 and the new bit is also equal to 1. The XOR Program Rule causes a set pulse when the stored bit is equal to 0 and the new bit is equal to 1. In the remaining two cases where the new bit is equal to 0, the internal memory cell is not pulsed (so it remains at 0 or at 1). Therefore, when a previously stored parity bit has a value of 0 and a new parity bit value is equal to 1, a new parity bit value of 1 is superimposed in the corresponding internal parity memory cell of the auxiliary memory over the previous value of 0. In other words, a Set operation is performed, wherein a set operation refers to the operation of programming a bit to 1. When a previously stored parity bit has a value of 1 and a new parity bit value is equal to 0, no new parity bit value is superimposed in an internal storage memory cell of the auxiliary memory system's parity value (e.g., it remains at 1). When a previously stored parity bit has a value of 1 and a new parity bit value is also equal to 1, parity bit value of 0 is superimposed in the auxiliary memory system's internal parity storage memory cell. In other words, a Reset operation is performed, wherein a reset operation refers to the operation of programming a bit to 0. When a previously stored parity bit has a value of 0 and a new parity bit value is also equal to 0, no new parity bit value is superimposed in an internal storage memory cell of the auxiliary memory system's parity value (e.g., it remains at 0).
  • Thus, an auxiliary memory element is programmed to accumulate and store a parity sum by setting and resetting previously stored parity bit values according to conditions defined by an Exclusive Or (XOR) truth table, shown in FIG. 8 , without intervention of the controller. Each newly calculated bit value is superimposed in the corresponding final internal bit storage location, (e.g., the parity memory cell) of the auxiliary memory system.
  • This internal read for XORing the current content of a page with a new data pattern has the great advantage that the reading of partial parities from the auxiliary nonvolatile memory is avoided.
  • More in particular, a reduced system overhead during write operations is obtained. In fact, during partial (or intermediate) write operations, the controller generates time and power overhead by reading the previous parity stored in the auxiliary memory. On the contrary, using the new Self-Accumulating Exclusive OR Program methodology, the existing parity data stored in the auxiliary memory may be up-dated at each partial write operation directly with the parity of page, or pages, written (for example directly with input data written in a single page Dk of NAND flash). Self-Accumulating Exclusive OR Program methodology eliminates reading of the previous parity stored in the auxiliary memory by the controller, eliminating the time and energy overhead during partial write operations.
  • Finally, according to the present disclosure, a method 900 for operating a memory device, comprises the step 910 of storing data information in a main nonvolatile memory, a step 920 of accumulating temporary parity information in an auxiliary nonvolatile memory, said parity information being associated with the data information stored in the main nonvolatile memory, and a final step 930 of transferring, when the parity information is complete, the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory.
  • In the preceding detailed description, reference is made to the accompanying drawings that form a part hereof, and in which is shown, by way of illustration, specific examples. In the drawings, like numerals describe substantially similar components throughout the several views. Other examples may be utilized, and structural, logical and/or electrical changes may be made without departing from the scope of the present disclosure. In addition, as will be appreciated, the proportion and the relative scale of the elements provided in the figures are intended to illustrate the embodiments of the present disclosure and should not be taken in a limiting sense.
  • As used herein, “a,” “an,” or “a number of” something can refer to one or more of such things. A “plurality” of something intends two or more. As used herein, the term “coupled” may include electrically coupled, directly coupled, and/or directly connected with no intervening elements (e.g., by direct physical contact) or indirectly coupled and/or connected with intervening elements. The term coupled may further include two or more elements that co-operate or interact with each other (e.g., as in a cause and effect relationship).
  • Although specific examples have been illustrated and described herein, those of ordinary skill in the art will appreciate that an arrangement calculated to achieve the same results can be substituted for the specific embodiments shown. This disclosure is intended to cover adaptations or variations of one or more embodiments of the present disclosure. It is to be understood that the above description has been made in an illustrative fashion, and not a restrictive one. The scope of one or more examples of the present disclosure should be determined with reference to the appended claims, along with the full range of equivalents to which such claims are entitled.

Claims (18)

1. A memory device, comprising:
a hybrid memory portion including a main nonvolatile memory and an auxiliary nonvolatile memory; and
a controller, comprising:
a front-end configured to interface with a host device; and
a back-end configured to interface with the hybrid memory portion,
wherein the back-end is structured into a first portion adapted to interface with the main nonvolatile memory and a second portion adapted to interface with the auxiliary nonvolatile memory; and
wherein the controller is configured to:
store data information in the main nonvolatile memory;
accumulate parity information in the auxiliary nonvolatile memory, the parity information associated with the data information stored in the main nonvolatile memory; and
responsive to completion of accumulating the parity information into the auxiliary nonvolatile memory, transfer the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory.
2. The memory device of claim 1, wherein the accumulated parity information is a Redundant Array of Independent NAND (RAIN) parity calculated by an Exclusive OR (XOR) program.
3. The memory device of claim 1, wherein the controller is configured to store the data information in the main nonvolatile memory simultaneously with the accumulation of the parity information in the auxiliary nonvolatile memory.
4. The memory device of claim 1, wherein the controller is configured to save the complete parity information into the auxiliary nonvolatile memory.
5. The memory device of claim 1, wherein the main nonvolatile memory comprises a plurality of NAND dies.
6. The memory device of claim 1, wherein the auxiliary nonvolatile memory is a 3D X Point (3DXP) memory.
7. The memory device of claim 1, wherein the auxiliary nonvolatile memory is a phase change memory (PCM) or a chalcogenide memory.
8. The memory device of claim 1, wherein the main nonvolatile memory is configured to implement a low-density parity-check (LDPC) code.
9. The memory device of claim 1, wherein the auxiliary nonvolatile memory is configured to implement a Bose-Chaudhuri-Hocquenghem (BCH) code.
10. The memory device of claim 1, comprising the controller configured to select whether to write the data information directly into the auxiliary nonvolatile memory without accumulating parity information or to write the data information into the main nonvolatile memory while accumulating parity information based on a dimension of the data information to be written in the hybrid memory portion, a type of the data information to be written in the hybrid memory portion, or a combination thereof.
11. The memory device of claim 1, comprising:
the hybrid memory portion configured to execute an internal program in response to a program command from the controller;
the auxiliary nonvolatile memory configured to:
store, based on the internal program, the parity information by overwriting old parity information with new parity information according to an Exclusive OR (XOR) program rule; and
execute the internal command to overwrite or keep the old parity information without intervention from the controller,
wherein the previous parity information is associated with first data information stored in the main nonvolatile memory and the updated parity information is associated with second data information different from the first data information.
12. A method for operating a memory device, comprising:
storing data information in a main nonvolatile memory, the main non-volatile memory interfacing with a first portion of a back-end of a controller that interfaces with a hybrid memory portion of the memory device;
accumulating parity information in an auxiliary nonvolatile memory, the auxiliary non-volatile memory interfacing with a second portion of the back-end of the controller, and the parity information associated with the data information stored in the main nonvolatile memory;
responsive to completion of accumulating the parity information, transferring the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory; and
connecting the first portion of the back-end of the controller with the second portion of the back end of the controller to transfer the complete parity information from the auxiliary non-volatile memory to the main non-volatile memory.
13. The method of claim 12, comprising simultaneously storing data information in the main nonvolatile memory and accumulating parity information in the auxiliary nonvolatile memory.
14. The method of claim 12, comprising selecting, based on the dimension of data to be written, type of data information—to be written, or a combination thereof, whether to write the data information into the auxiliary nonvolatile memory without accumulating parity information or to write the data information into the main nonvolatile memory while accumulating parity information.
15. The method of claim 12, comprising:
executing, in a memory portion of the memory device, an internal program in response to a program command from a controller, wherein executing the internal program comprises:
the auxiliary nonvolatile memory storing, based on the internal program, the parity information by overwriting old parity information with new parity information according to an Exclusive OR (XOR) program rule; and
the auxiliary nonvolatile memory overwriting or keeping the old parity information without intervention from the controller responsive to the memory system receiving the program command, wherein:
the previous parity information is associated with first data information stored in the main nonvolatile memory; and
the new parity information is associated with second data information different from the first data information, the new parity information included in an accumulated parity sum of data stored in the memory portion for recovering an original data from a corrupted data.
16. The method of claim 15, comprising:
overwriting the old parity information stored in the auxiliary nonvolatile memory—with the new parity information regardless of a value of the old parity information responsive to the new parity information having a first value; and
keeping the old parity information at a same value responsive to the new parity information having a second value different from the first value.
17. The method of claim 12, comprising:
passing the data information saved into the main nonvolatile memory through a data scrambler; and
passing the data information and the accumulated complete parity information through a low-density parity-check (LDPC) encoder in the main nonvolatile memory.
18. A memory apparatus comprising:
a host device; and
a memory device coupled to the host device, the memory device comprising:
a hybrid memory portion including a main nonvolatile memory and an auxiliary nonvolatile memory; and
a controller configured to store data information into the main nonvolatile memory, and comprising:
a front-end for interfacing with the host device;
a back-end for interfacing with the hybrid memory portion and structured into a first portion configured to interface with the main nonvolatile memory and a second portion configured to interface with the auxiliary nonvolatile memory; and
a parity engine configured to:
connect the first portion of the back-end with the second portion of the back-end;
accumulate parity information in the auxiliary nonvolatile memory, the parity information associated with the data information stored in the main nonvolatile memory; and
responsive to completion of accumulation of the parity information into the auxiliary nonvolatile memory, transfer the complete parity information from the auxiliary nonvolatile memory to the main nonvolatile memory via the connected first portion of the back-end and the second portion of the back-end.
US17/956,046 2019-10-09 2022-09-29 Memory device equipped with data protection scheme Abandoned US20230025642A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/956,046 US20230025642A1 (en) 2019-10-09 2022-09-29 Memory device equipped with data protection scheme

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/IB2019/000958 WO2021069942A1 (en) 2019-10-09 2019-10-09 Memory device equipped with data protection scheme
US202016959549A 2020-07-01 2020-07-01
US17/956,046 US20230025642A1 (en) 2019-10-09 2022-09-29 Memory device equipped with data protection scheme

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
US16/959,549 Continuation US11461020B2 (en) 2019-10-09 2019-10-09 Memory device equipped with data protection scheme
PCT/IB2019/000958 Continuation WO2021069942A1 (en) 2019-10-09 2019-10-09 Memory device equipped with data protection scheme

Publications (1)

Publication Number Publication Date
US20230025642A1 true US20230025642A1 (en) 2023-01-26

Family

ID=75437216

Family Applications (2)

Application Number Title Priority Date Filing Date
US16/959,549 Active 2040-01-13 US11461020B2 (en) 2019-10-09 2019-10-09 Memory device equipped with data protection scheme
US17/956,046 Abandoned US20230025642A1 (en) 2019-10-09 2022-09-29 Memory device equipped with data protection scheme

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US16/959,549 Active 2040-01-13 US11461020B2 (en) 2019-10-09 2019-10-09 Memory device equipped with data protection scheme

Country Status (7)

Country Link
US (2) US11461020B2 (en)
EP (1) EP4042282A4 (en)
JP (1) JP2022550983A (en)
KR (1) KR20220062662A (en)
CN (1) CN114503082B (en)
TW (1) TWI765368B (en)
WO (1) WO2021069942A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481141B1 (en) * 2021-04-26 2022-10-25 Micron Technology, Inc. Secure self-purging memory partitions
US11921581B1 (en) * 2022-08-15 2024-03-05 Micron Technology, Inc. Read recovery including low-density parity-check decoding

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150363263A1 (en) * 2014-06-12 2015-12-17 HGST Netherlands B.V. ECC Encoder Using Partial-Parity Feedback
US20160085625A1 (en) * 2014-09-19 2016-03-24 Micron Technology, Inc. Self-accumulating exclusive or program
US20160196216A1 (en) * 2015-01-02 2016-07-07 Samsung Electronics Co., Ltd. Mapping table managing method and associated storage system
US20190114225A1 (en) * 2017-10-18 2019-04-18 Western Digital Technologies, Inc. Dynamically assigning data latches
US10437670B1 (en) * 2018-05-24 2019-10-08 International Business Machines Corporation Metadata hardening and parity accumulation for log-structured arrays
US11099986B2 (en) * 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271678A (en) * 1994-03-30 1995-10-20 Toshiba Corp Data processor with error detecting and correcting function
JP2000215073A (en) * 1999-01-26 2000-08-04 Nec Corp Electronic disk drive and its vertical parity storing method
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
CN100414489C (en) 2005-09-02 2008-08-27 普安科技股份有限公司 Parity engine for use in storage virtualization controller and method of generating data by parity engine
US8543758B2 (en) 2011-05-31 2013-09-24 Micron Technology, Inc. Apparatus including memory channel control circuit and related methods for relaying commands to logical units
KR101938210B1 (en) * 2012-04-18 2019-01-15 삼성전자주식회사 Operating method of memory systme including nand flash memory, variable resistance memory and controller
US8955188B2 (en) * 2012-04-19 2015-02-17 Agri-Fab, Inc. Sweeper drive assembly
KR101925383B1 (en) * 2012-07-23 2018-12-05 삼성전자주식회사 Nonvolatile memory device and data managing method thereof
US9335954B2 (en) 2012-09-10 2016-05-10 Texas Instruments Incorporated Customizable backup and restore from nonvolatile logic array
JP2015018451A (en) 2013-07-11 2015-01-29 株式会社東芝 Memory controller, storage device, and memory control method
WO2015008375A1 (en) 2013-07-19 2015-01-22 株式会社日立製作所 Storage device, and storage control method
CN104601178B (en) 2013-10-30 2018-02-02 群联电子股份有限公司 Coding/decoding method, decoding circuit, memory storage apparatus and control circuit unit
US20160179611A1 (en) 2014-12-23 2016-06-23 Thuyen Le Low overhead error checking and correction apparatus and method
TWI605457B (en) 2016-11-16 2017-11-11 群聯電子股份有限公司 Data writing mehod, memory control circuit unit and memory storage device
US10437674B1 (en) 2017-06-01 2019-10-08 Seagate Technology Llc Variable parity sectors

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150363263A1 (en) * 2014-06-12 2015-12-17 HGST Netherlands B.V. ECC Encoder Using Partial-Parity Feedback
US20160085625A1 (en) * 2014-09-19 2016-03-24 Micron Technology, Inc. Self-accumulating exclusive or program
US20160196216A1 (en) * 2015-01-02 2016-07-07 Samsung Electronics Co., Ltd. Mapping table managing method and associated storage system
US20190114225A1 (en) * 2017-10-18 2019-04-18 Western Digital Technologies, Inc. Dynamically assigning data latches
US10437670B1 (en) * 2018-05-24 2019-10-08 International Business Machines Corporation Metadata hardening and parity accumulation for log-structured arrays
US11099986B2 (en) * 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents

Also Published As

Publication number Publication date
TWI765368B (en) 2022-05-21
US11461020B2 (en) 2022-10-04
KR20220062662A (en) 2022-05-17
WO2021069942A1 (en) 2021-04-15
US20220004325A1 (en) 2022-01-06
EP4042282A4 (en) 2023-07-26
TW202134862A (en) 2021-09-16
CN114503082A (en) 2022-05-13
JP2022550983A (en) 2022-12-06
CN114503082B (en) 2024-01-30
EP4042282A1 (en) 2022-08-17

Similar Documents

Publication Publication Date Title
US10754725B2 (en) Self-accumulating exclusive or program
US11243709B2 (en) Data storage apparatus and operating method thereof
US20230025642A1 (en) Memory device equipped with data protection scheme
US9152512B2 (en) Apparatus and methods for providing data integrity
US9058288B2 (en) Redundant storage in non-volatile memory by storing redundancy information in volatile memory
KR102571747B1 (en) Data storage device and operating method thereof
US20120311381A1 (en) Apparatus and methods for providing data integrity
US9335955B2 (en) Nonvolatile memory device and related data management method
US9208901B2 (en) Memory buffer having accessible information after a program-fail
US10133645B2 (en) Data recovery in three dimensional non-volatile memory array after word line short
US11663081B2 (en) Storage system and method for data recovery after detection of an uncorrectable error
US10229000B2 (en) Erasure codes to prevent lower page corruption in flash memory
US11373709B2 (en) Memory system for performing a read operation and an operating method thereof
US20240070062A1 (en) Nonvolatile memory, memory system, and control method of nonvolatile memory
US11763905B2 (en) Storage system and method for data protection during power loss
US20230126507A1 (en) Apparatus and method for programming data in a memory device
US20230195566A1 (en) Memory device crossed matrix parity
US11550657B1 (en) Efficient programming schemes in a nonvolatile memory
JP2010128697A (en) Memory system
JP5908106B2 (en) Device and method for storing validity mask and operating device
US20230376230A1 (en) Data storage with parity and partial read back in a redundant array
US20230195567A1 (en) Memory device crossed matrix parity
CN115826850A (en) Flash memory/SCM (Single chip multiple Access) hybrid array method, device and equipment based on data reference rate
CN114528145A (en) Storage system, operation method and controller

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICRON TECHNOLOGY, INC., IDAHO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AMATO, PAOLO;REEL/FRAME:061255/0275

Effective date: 20200930

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

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