WO2009134576A1 - Copyback optimization for memory system - Google Patents

Copyback optimization for memory system Download PDF

Info

Publication number
WO2009134576A1
WO2009134576A1 PCT/US2009/039160 US2009039160W WO2009134576A1 WO 2009134576 A1 WO2009134576 A1 WO 2009134576A1 US 2009039160 W US2009039160 W US 2009039160W WO 2009134576 A1 WO2009134576 A1 WO 2009134576A1
Authority
WO
WIPO (PCT)
Prior art keywords
data page
changed
memory
data
register
Prior art date
Application number
PCT/US2009/039160
Other languages
French (fr)
Inventor
Nir Jacob Wakrat
Mark Alan Helm
Original Assignee
Apple 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 Apple Inc. filed Critical Apple Inc.
Priority to AT09739378T priority Critical patent/ATE535866T1/en
Priority to KR1020107026742A priority patent/KR101225924B1/en
Priority to ES09739378T priority patent/ES2378371T3/en
Priority to CN2009801252990A priority patent/CN102077176B/en
Priority to KR1020127013247A priority patent/KR101471262B1/en
Priority to EP09739378A priority patent/EP2297642B1/en
Priority to JP2011507514A priority patent/JP5192587B2/en
Publication of WO2009134576A1 publication Critical patent/WO2009134576A1/en
Priority to HK11109601.9A priority patent/HK1155530A1/en
Priority to HK11112791.3A priority patent/HK1158344A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • 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

Definitions

  • Flash memory is a type of electrically erasable programmable read-only memory (EEPROM). Because flash memories are non-volatile and relatively dense, they are used to store files and other persistent objects in handheld computers, mobile phones, digital cameras, portable music players, and many other devices in which other storage solutions (e.g., magnetic disks) are inappropriate.
  • EEPROM electrically erasable programmable read-only memory
  • flash memories are non-volatile and relatively dense, they are used to store files and other persistent objects in handheld computers, mobile phones, digital cameras, portable music players, and many other devices in which other storage solutions (e.g., magnetic disks) are inappropriate.
  • EEPROM electrically erasable programmable read-only memory
  • data page change indicators are used to manage transfers of data pages between a register in non-volatile memory and a controller that is external to the non-volatile memory.
  • FIG. IA is a block diagram of an example memory system for implementing an optimized copyback process.
  • FIG. IB is a block diagram of another example memory system for implementing an optimized copyback process.
  • FIG. 2 is a flow diagram of an example optimized copyback process 200 for computing and storing data change indicators used by the memory systems of FIGS. IA and IB.
  • FIGS. 3A-3C are flow diagrams of an example optimized copyback process implemented by the memory systems of FIGS. IA and IB.
  • FIG. 4 is a flow diagram of an example optimized read operation implemented by the memory systems of FIGS. IA and IB.
  • FIG. 5 illustrates example data structures used by the copyback process of FIGS. 3A-3C.
  • FIG. IA is a block diagram of an example memory system 100 for implementing an optimized copyback process.
  • the system 100 can include a memory subsystem 102 coupled to a host device 124 through an external bus 122 (e.g., Open NAND Flash Interface (ONFI), ATA).
  • the host device 124 can be any electronic device including but not limited to smart phones, media players, text messaging devices, portable computers, solid state drives, digital cameras, etc.
  • the memory subsystem 102 can be any non-volatile memory subsystem (e.g., managed NAND).
  • the host device 124 can include a system-on-chip (SoC) 126 and volatile memory 128.
  • SoC system-on-chip
  • the SoC 126 can include hardware and software for interacting with the memory subsystem 102, such as transmitting read and write requests made by applications running on the host device 124.
  • the memory subsystem 102 can include non-volatile memory 104 (also referred to as "raw memory") and an external controller 116.
  • the memory 104 can include a memory cell array 106, an internal state machine 108, a memory register 110 and data change indicator (DCI) 130.
  • the controller 116 can include a processor 118, volatile memory 114 and error correction code (ECC) engine 120.
  • ECC error correction code
  • Other configurations for the memory subsystem 102 are possible.
  • a cache register can be included in the data path between the memory cell array 106 and the memory register 110 to allow the internal state machine to read the next data page from the memory cell array 106 while transferring the current page to the controller 116 over internal bus 112.
  • FIG. IB is a block diagram of another example memory system 130 for implementing an optimized copyback process.
  • the system 130 shows only the memory subsystem 102, the operation of which was described in reference to FIG. IA.
  • Copyback can be a memory subsystem command to move data from one page to another page. Copyback can be used in wear leveling and other nonvolatile memory management operations.
  • a data page is read from the memory cell array 106 and stored in the memory register 110 by the internal state machine.
  • the external controller 116 reads or clocks the data page out of the memory register 110 so that the processor 118 can perform a desired operation on the data page (e.g., an ECC operation).
  • the processed data page can be written back to the memory register 110 by the controller 116.
  • the internal state machine 108 can write the contents of the memory register 110 into a new data page in the memory cell array 106.
  • FIG. 2 is a flow diagram of an example optimized copyback process 200 for computing and storing data change indicators used by the memory systems of FIGS. IA and IB.
  • the process 200 can begin when new data page is transferred into a memory register of a memory subsystem (202).
  • a DCI can be computed for the data page and stored in the memory subsystem (204).
  • Some examples of data change indicators can include error detection codes (EDCs), including but not limited to: checksum, Hamming code, parity bit, cyclic redundancy check (CRC), polarity symbol reversal, Turbo code, etc.
  • EDCs error detection codes
  • CRC cyclic redundancy check
  • An EDC can also be part of an ECC, such as Reed-Solomon code, Reed-Muller code, Binary Golay code, and low-density parity-check codes.
  • ECC Err-Solomon code
  • Reed-Muller code Reed-Muller code
  • Binary Golay code Binary Golay code
  • low-density parity-check codes After the DCIs are computed and stored, the register contents can be written to non-volatile memory (206). DCIs can be used for the optimized copyback process described in reference to FIGS. 3A-3C.
  • FIGS. 3A-3C are flow diagrams of an example optimized copyback process 300 implemented by the memory systems of FIGS. IA and IB.
  • the process 300 can begin by reading a data page from non-volatile memory (e.g., memory cell array 106) and storing the data page in a memory register (302) (e.g., register 110).
  • a DCI e.g., DCI 130
  • the DCI can be verified for the data page in the memory register (304).
  • the DCI can be previously computed and stored in the memory subsystem when the data page is first written to non-volatile memory (e.g., using process 200).
  • the DCI can be computed "on the fly" as part of the read operation or as a separate operation.
  • the memory subsystem can report to an external controller (e.g., external controller 116) that the read operation has completed (306).
  • the data page can be transferred to the external controller (310), an ECC can be computed for the data page (312) and the ECC information for the data page can be corrected in the external controller (314).
  • the data page and associated ECC can be transferred back to the memory register (316).
  • a new DCI can be computed for the data page in the memory register (318).
  • an ECC can be computed for new metadata associated with the data page (320).
  • the new metadata and associated ECC can be transferred to the memory register (322).
  • a new DCI can be computed for the metadata in the memory register (324).
  • the memory register contents can be written to a new data page in non-volatile memory (326).
  • FIG. 4 is a flow diagram of an example optimized read operation implemented by the memory systems of FIGS. IA and IB.
  • the process 400 can begin by reading a data page from non-volatile memory and storing the data page in a memory register (402).
  • a pre-computed DCI associated with the data page can be clocked into the memory register from a storage location in the memory subsystem and verified (404).
  • the DCI can also be computed "on the fly.”
  • the status of the DCI can be read to determine if the data page has changed (406).
  • an ECC for the new metadata associated with the data page can be computed and transferred, together with the new metadata to the memory register (412).
  • a new DCI can be computed for the metadata in the memory register and the register contents can be written to a new data page in non-volatile memory (414).
  • the memory register contents can be transferred to an external controller and an ECC can be computed by the external controller (410).
  • An ECC for the new metadata associated with the data page can be computed and transferred by the external controller, together with the new metadata to the memory register (412).
  • a new DCI can be computed for the metadata in the memory register and the register contents can be written to a new data page in non-volatile memory (414).
  • FIG. 5 illustrates example data structures used by the copyback process of FIGS. 3A-3C.
  • a data page 500 in non-volatile memory includes metadata 502, metadata ECC 504, data 506 and data ECC 508. If the data has not changed than only the metadata 502 and the metadata ECC 504 are transferred from the register to the external controller 510 for processing. The processed metadata 502 and metadata ECC 504 are transferred back to the memory subsystem and stored in the memory register. The data page can the be written to a new data page in non-volatile memory (e.g., a memory cell array).
  • a number of implementations have been described. Nevertheless, it will be understood that various modifications may be made.

Abstract

In a copyback or read operation for a non-volatile memory subsystem, data page change indicators are used to manage transfers of data pages between a register in non-volatile memory and a controller that is external to the non-volatile memory.

Description

COPYBACK OPTIMIZATION FOR MEMORY SYSTEM
TECHNICAL FIELD [0001] This subject matter is generally related to memory systems.
BACKGROUND
[0002] Flash memory is a type of electrically erasable programmable read-only memory (EEPROM). Because flash memories are non-volatile and relatively dense, they are used to store files and other persistent objects in handheld computers, mobile phones, digital cameras, portable music players, and many other devices in which other storage solutions (e.g., magnetic disks) are inappropriate. When data stored in flash memory is processed, a data page is read out of flash memory and stored in a register. The register contents is transferred to a controller that is external to the non-volatile memory for processing. The processed data page is placed back in the register so that the processed data page can be written back to flash memory.
SUMMARY
[0003] In a copyback or read operation for a non-volatile memory subsystem, data page change indicators are used to manage transfers of data pages between a register in non-volatile memory and a controller that is external to the non-volatile memory.
DESCRIPTION OF DRAWINGS
[0004] FIG. IA is a block diagram of an example memory system for implementing an optimized copyback process.
[0005] FIG. IB is a block diagram of another example memory system for implementing an optimized copyback process.
[0006] FIG. 2 is a flow diagram of an example optimized copyback process 200 for computing and storing data change indicators used by the memory systems of FIGS. IA and IB.
[0007] FIGS. 3A-3C are flow diagrams of an example optimized copyback process implemented by the memory systems of FIGS. IA and IB. [0008] FIG. 4 is a flow diagram of an example optimized read operation implemented by the memory systems of FIGS. IA and IB.
[0009] FIG. 5 illustrates example data structures used by the copyback process of FIGS. 3A-3C.
DETAILED DESCRIPTION Examples of Memory Subsystems
[0010] FIG. IA is a block diagram of an example memory system 100 for implementing an optimized copyback process. In some implementations, the system 100 can include a memory subsystem 102 coupled to a host device 124 through an external bus 122 (e.g., Open NAND Flash Interface (ONFI), ATA). The host device 124 can be any electronic device including but not limited to smart phones, media players, text messaging devices, portable computers, solid state drives, digital cameras, etc. The memory subsystem 102 can be any non-volatile memory subsystem (e.g., managed NAND).
[0011] The host device 124 can include a system-on-chip (SoC) 126 and volatile memory 128. The SoC 126 can include hardware and software for interacting with the memory subsystem 102, such as transmitting read and write requests made by applications running on the host device 124.
[0012] The memory subsystem 102 can include non-volatile memory 104 (also referred to as "raw memory") and an external controller 116. The memory 104 can include a memory cell array 106, an internal state machine 108, a memory register 110 and data change indicator (DCI) 130. The controller 116 can include a processor 118, volatile memory 114 and error correction code (ECC) engine 120. Other configurations for the memory subsystem 102 are possible. For example, a cache register can be included in the data path between the memory cell array 106 and the memory register 110 to allow the internal state machine to read the next data page from the memory cell array 106 while transferring the current page to the controller 116 over internal bus 112.
[0013] FIG. IB is a block diagram of another example memory system 130 for implementing an optimized copyback process. The system 130 shows only the memory subsystem 102, the operation of which was described in reference to FIG. IA.
Copyback Operations
[0014] Copyback can be a memory subsystem command to move data from one page to another page. Copyback can be used in wear leveling and other nonvolatile memory management operations. In a typical copyback operation, a data page is read from the memory cell array 106 and stored in the memory register 110 by the internal state machine. The external controller 116 reads or clocks the data page out of the memory register 110 so that the processor 118 can perform a desired operation on the data page (e.g., an ECC operation). The processed data page can be written back to the memory register 110 by the controller 116. The internal state machine 108 can write the contents of the memory register 110 into a new data page in the memory cell array 106. By avoiding the transfer of the entire contents of register 110 to the external controller 116, processing times and power consumption can be reduced.
Example Process For Writing New Data Pages
[0015] FIG. 2 is a flow diagram of an example optimized copyback process 200 for computing and storing data change indicators used by the memory systems of FIGS. IA and IB. In some implementations, the process 200 can begin when new data page is transferred into a memory register of a memory subsystem (202). A DCI can be computed for the data page and stored in the memory subsystem (204). Some examples of data change indicators can include error detection codes (EDCs), including but not limited to: checksum, Hamming code, parity bit, cyclic redundancy check (CRC), polarity symbol reversal, Turbo code, etc. An EDC can also be part of an ECC, such as Reed-Solomon code, Reed-Muller code, Binary Golay code, and low-density parity-check codes. After the DCIs are computed and stored, the register contents can be written to non-volatile memory (206). DCIs can be used for the optimized copyback process described in reference to FIGS. 3A-3C.
Example Optimized Copyback Process
[0016] FIGS. 3A-3C are flow diagrams of an example optimized copyback process 300 implemented by the memory systems of FIGS. IA and IB. In some implementations, the process 300 can begin by reading a data page from non-volatile memory (e.g., memory cell array 106) and storing the data page in a memory register (302) (e.g., register 110). A DCI (e.g., DCI 130) can be verified for the data page in the memory register (304). In some implementations, the DCI can be previously computed and stored in the memory subsystem when the data page is first written to non-volatile memory (e.g., using process 200). In other implementations, the DCI can be computed "on the fly" as part of the read operation or as a separate operation. The memory subsystem can report to an external controller (e.g., external controller 116) that the read operation has completed (306).
[0017] If the DCI for the data page in the register indicates that the data page has changed (308), the data page can be transferred to the external controller (310), an ECC can be computed for the data page (312) and the ECC information for the data page can be corrected in the external controller (314). The data page and associated ECC can be transferred back to the memory register (316). A new DCI can be computed for the data page in the memory register (318).
[0018] If the DCI for the data page in the register indicates that the data page has not changed (308), an ECC can be computed for new metadata associated with the data page (320). The new metadata and associated ECC can be transferred to the memory register (322). A new DCI can be computed for the metadata in the memory register (324). The memory register contents can be written to a new data page in non-volatile memory (326).
Optimized Read Operation
[0019] FIG. 4 is a flow diagram of an example optimized read operation implemented by the memory systems of FIGS. IA and IB. In some implementations, the process 400 can begin by reading a data page from non-volatile memory and storing the data page in a memory register (402). A pre-computed DCI associated with the data page can be clocked into the memory register from a storage location in the memory subsystem and verified (404). The DCI can also be computed "on the fly." The status of the DCI can be read to determine if the data page has changed (406). [0020] If the data page has changed (408), an ECC for the new metadata associated with the data page can be computed and transferred, together with the new metadata to the memory register (412). A new DCI can be computed for the metadata in the memory register and the register contents can be written to a new data page in non-volatile memory (414).
[0021] If the data page has not changed (408), the memory register contents can be transferred to an external controller and an ECC can be computed by the external controller (410). An ECC for the new metadata associated with the data page can be computed and transferred by the external controller, together with the new metadata to the memory register (412). A new DCI can be computed for the metadata in the memory register and the register contents can be written to a new data page in non-volatile memory (414).
Example Data Structures
[0022] FIG. 5 illustrates example data structures used by the copyback process of FIGS. 3A-3C. In the example shown, a data page 500 in non-volatile memory includes metadata 502, metadata ECC 504, data 506 and data ECC 508. If the data has not changed than only the metadata 502 and the metadata ECC 504 are transferred from the register to the external controller 510 for processing. The processed metadata 502 and metadata ECC 504 are transferred back to the memory subsystem and stored in the memory register. The data page can the be written to a new data page in non-volatile memory (e.g., a memory cell array). [0023] A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, elements of one or more implementations may be combined, deleted, modified, or supplemented to form further implementations. As yet another example, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.

Claims

CLAIMS WHAT IS CLAIMED IS:
1. A method comprising: obtaining a data page from non-volatile memory of a memory subsystem; determining if the data page has changed; and if the data page has changed, sending the data page to a controller for processing; if the data page is unchanged, sending metadata associated with the data page to the controller for processing.
2. The method of claim 1, where determining if the data page has changed, further comprises: reading a data change indicator for the data page.
3. The method of claim 2, where the data change indicator is associated with an error detection code.
4. The method of claim 1, where determining if the data page has changed, further comprises: computing a data change indicator for the data page; and determining if the data page has changed based on the data change indicator.
5. A system comprising: an interface adapted for coupling to a controller; non-volatile memory; a processor coupled to the non-volatile memory and the interface, the processor operable for obtaining a data page from the non-volatile memory; determining if the data page has changed; and if the data page has changed, sending the data page through the interface to the controller for processing; if the data page has not changed, sending metadata associated with the data page through the interface to the controller for processing.
6. The system of claim 5, where determining if the data page has changed, further comprises: reading a data change indicator for the data page.
7. The system of claim 6, where the data change indicator is associated with an error detection code.
8. The system of claim 5, where determining if the data page has changed, further comprises: computing a data change indicator for the data page; and determining if the data page has changed based on the data change indicator.
9. A method comprising: obtaining a data page and associated metadata from non-volatile memory of a memory subsystem coupled to a controller; storing the data page in a register of the memory subsystem; sending the data page and associated metadata from the register to the controller for processing; receiving a processed data page and associated metadata from the controller; determining if the processed data page has changed; if the processed data page has changed, writing the processed data page and associated metadata to the register in the memory subsystem; if the processed data page has not changed, writing the associated metadata to the register in the memory subsystem; and writing the register contents to the non-volatile memory.
10. The method of claim 9, where determining if the processed data page has changed, further comprises: reading a data change indicator for the processed data page.
11. The method of claim 10, where the data change indicator is associated with an error detection code.
12. The method of claim 9, where determining if the processed data page has changed, further comprises: computing a data change indicator for the processed data page; and determining if the processed data page has changed based on the data change indicator.
13. A system comprising: an interface adapted for coupling to a controller; non-volatile memory; a processor coupled to the non-volatile memory and the interface, the processor operable for obtaining a data page and associated metadata from nonvolatile memory of a memory subsystem coupled to the controller; storing the data page in a register of the memory system; sending the data page and associated metadata from the register through the interface to the controller for processing; receiving a processed data page and associated metadata from the controller through the interface; determining if the processed data page has changed; if the processed data page has changed, transferring the processed data page and associated metadata to the register in the memory subsystem; if the processed data page has not changed, transferring the processed metadata to the register in the memory subsystem; and writing the register contents to the non-volatile memory.
14. The system of claim 13, where determining if the processed data page has changed, further comprises: reading a data change indicator for the processed data page.
15. The system of claim 14, where the data change indicator is associated with an error detection code.
16. The system of claim 13, where determining if the processed data page has changed, further comprises: computing a data change indicator for the processed data page; and determining if the processed data page has changed based on the data change indicator.
17. A system comprising: means for obtaining a data page from non-volatile memory of a memory subsystem; means for determining if the data page has changed; and if the data page has changed, means for sending the data page to a controller for processing; if the data page is unchanged, means for sending metadata associated with the data page to the controller for processing.
PCT/US2009/039160 2008-04-30 2009-04-01 Copyback optimization for memory system WO2009134576A1 (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
AT09739378T ATE535866T1 (en) 2008-04-30 2009-04-01 COPYBACK OPTIMIZATION FOR A STORAGE SYSTEM
KR1020107026742A KR101225924B1 (en) 2008-04-30 2009-04-01 Copyback optimization for memory system
ES09739378T ES2378371T3 (en) 2008-04-30 2009-04-01 Copy optimization for a memory system
CN2009801252990A CN102077176B (en) 2008-04-30 2009-04-01 Copyback optimization for memory system
KR1020127013247A KR101471262B1 (en) 2008-04-30 2009-04-01 Copyback optimization for memory system
EP09739378A EP2297642B1 (en) 2008-04-30 2009-04-01 Copyback optimization for memory system
JP2011507514A JP5192587B2 (en) 2008-04-30 2009-04-01 Memory system copyback optimization
HK11109601.9A HK1155530A1 (en) 2008-04-30 2011-09-09 Copyback optimization for memory system
HK11112791.3A HK1158344A1 (en) 2008-04-30 2011-11-25 Copyback optimization for memory system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US4933008P 2008-04-30 2008-04-30
US61/049,330 2008-04-30
US12/193,638 2008-08-18
US12/193,638 US8185706B2 (en) 2008-04-30 2008-08-18 Copyback optimization for memory system

Publications (1)

Publication Number Publication Date
WO2009134576A1 true WO2009134576A1 (en) 2009-11-05

Family

ID=40801795

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2009/039160 WO2009134576A1 (en) 2008-04-30 2009-04-01 Copyback optimization for memory system

Country Status (9)

Country Link
US (2) US8185706B2 (en)
EP (2) EP2407883B1 (en)
JP (1) JP5192587B2 (en)
KR (2) KR101471262B1 (en)
CN (1) CN102077176B (en)
AT (1) ATE535866T1 (en)
ES (1) ES2378371T3 (en)
HK (3) HK1166390A1 (en)
WO (1) WO2009134576A1 (en)

Cited By (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011090545A3 (en) * 2009-12-30 2012-04-12 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
WO2012177516A1 (en) * 2011-06-19 2012-12-27 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8473814B2 (en) 2010-03-17 2013-06-25 Sandisk Enterprise Ip Llc MLC self-RAID flash data protection scheme
US8533384B2 (en) 2007-12-27 2013-09-10 Sandisk Enterprise Ip Llc Flash memory controller garbage collection operations performed independently in multiple flash memory groups
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101844346B1 (en) * 2010-11-05 2018-04-02 삼성전자주식회사 Memory system and method of operating a memory system
CN108600043A (en) * 2018-04-02 2018-09-28 郑州云海信息技术有限公司 The method of Connection Service device and control terminal, server Memory function module test methods
US11556267B2 (en) * 2020-08-31 2023-01-17 Micron Technology, Inc. Data management during a copyback operation
US11436142B1 (en) * 2021-04-23 2022-09-06 EMC IP Holding Company, LLC System and method for moving metadata without updating references used by the metadata

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4020466A (en) * 1974-07-05 1977-04-26 Ibm Corporation Memory hierarchy system with journaling and copy back
US20060050576A1 (en) * 2004-09-09 2006-03-09 Samsung Electronics Co., Ltd. NAND flash memory device and copyback program method for same
US20070048715A1 (en) * 2004-12-21 2007-03-01 International Business Machines Corporation Subtitle generation and retrieval combining document processing with voice processing

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2292803A1 (en) * 1974-11-29 1976-06-25 Nord Ressorts ELASTIC DEVICE FOR RAIL FIXING AND RAIL FIXING SYSTEM WITH APPLICATION
US5555379A (en) 1994-07-06 1996-09-10 Advanced Micro Devices, Inc. Cache controller index address generator
US5732275A (en) * 1996-01-11 1998-03-24 Apple Computer, Inc. Method and apparatus for managing and automatically updating software programs
JPH11259357A (en) * 1998-03-09 1999-09-24 Seiko Epson Corp Semiconductor integrated device and nonvolatile memory writing system
JP3376331B2 (en) * 1999-11-25 2003-02-10 エヌイーシーアクセステクニカ株式会社 Storage method using flash memory and storage medium storing storage control program
US6601216B1 (en) * 2000-03-31 2003-07-29 Microsoft Corporation Differential cyclic redundancy check
US6918007B2 (en) * 2002-09-09 2005-07-12 Hewlett-Packard Development Company, L.P. Memory controller interface with XOR operations on memory read to accelerate RAID operations
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7287209B2 (en) * 2004-06-03 2007-10-23 Cheertek, Inc. System and method for detecting codeword errors in error correction code or cyclic redundancy check code
TWI258074B (en) 2004-12-24 2006-07-11 Phison Electronics Corp Method for reducing data error when flash memory storage device executing copy back command
JP4688584B2 (en) * 2005-06-21 2011-05-25 株式会社日立製作所 Storage device
US7362611B2 (en) * 2005-08-30 2008-04-22 Micron Technology, Inc. Non-volatile memory copy back
US7512864B2 (en) * 2005-09-30 2009-03-31 Josef Zeevi System and method of accessing non-volatile computer memory
JP4956230B2 (en) * 2006-04-10 2012-06-20 株式会社東芝 Memory controller
US20070276863A1 (en) * 2006-05-02 2007-11-29 Research In Motion Limited Plug in registration method and apparatus for push content delivery
US20070268905A1 (en) * 2006-05-18 2007-11-22 Sigmatel, Inc. Non-volatile memory error correction system and method
JP2007310680A (en) * 2006-05-18 2007-11-29 Matsushita Electric Ind Co Ltd Nonvolatile storage device and its data transfer method
KR100881669B1 (en) * 2006-12-18 2009-02-06 삼성전자주식회사 Method for detecting of static data area and for wear-leveling and for merging data unit of non-volatile data storage and apparatus thereof
US20080288712A1 (en) * 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4020466A (en) * 1974-07-05 1977-04-26 Ibm Corporation Memory hierarchy system with journaling and copy back
US20060050576A1 (en) * 2004-09-09 2006-03-09 Samsung Electronics Co., Ltd. NAND flash memory device and copyback program method for same
US20070048715A1 (en) * 2004-12-21 2007-03-01 International Business Machines Corporation Subtitle generation and retrieval combining document processing with voice processing

Cited By (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621138B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Flash storage controller execute loop
US8959282B2 (en) 2007-12-27 2015-02-17 Sandisk Enterprise Ip Llc Flash storage controller execute loop
US9239783B2 (en) 2007-12-27 2016-01-19 Sandisk Enterprise Ip Llc Multiprocessor storage controller
US8959283B2 (en) 2007-12-27 2015-02-17 Sandisk Enterprise Ip Llc Flash storage controller execute loop
US8738841B2 (en) 2007-12-27 2014-05-27 Sandisk Enterprise IP LLC. Flash memory controller and system including data pipelines incorporating multiple buffers
US9483210B2 (en) 2007-12-27 2016-11-01 Sandisk Technologies Llc Flash storage controller execute loop
US8533384B2 (en) 2007-12-27 2013-09-10 Sandisk Enterprise Ip Llc Flash memory controller garbage collection operations performed independently in multiple flash memory groups
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US9152556B2 (en) 2007-12-27 2015-10-06 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
US9448743B2 (en) 2007-12-27 2016-09-20 Sandisk Technologies Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US8621137B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
US9158677B2 (en) 2007-12-27 2015-10-13 Sandisk Enterprise Ip Llc Flash storage controller execute loop
CN102782654A (en) * 2009-12-30 2012-11-14 桑迪士克科技股份有限公司 Method and controller for performing a copy-back operation
WO2011090545A3 (en) * 2009-12-30 2012-04-12 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
USRE46013E1 (en) 2009-12-30 2016-05-24 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8484533B2 (en) 2010-03-17 2013-07-09 Sandisk Enterprise Ip Llc MLC self-RAID flash data protection scheme
US8484534B2 (en) 2010-03-17 2013-07-09 Sandisk Enterprise IP LLC. MLC self-RAID flash data protection scheme
US8473814B2 (en) 2010-03-17 2013-06-25 Sandisk Enterprise Ip Llc MLC self-RAID flash data protection scheme
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
WO2012177516A1 (en) * 2011-06-19 2012-12-27 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8938658B2 (en) 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US9058289B2 (en) 2011-11-07 2015-06-16 Sandisk Enterprise Ip Llc Soft information generation for memory systems
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting

Also Published As

Publication number Publication date
KR101471262B1 (en) 2014-12-10
HK1155530A1 (en) 2012-05-18
US8572335B2 (en) 2013-10-29
US20120233387A1 (en) 2012-09-13
HK1158344A1 (en) 2012-07-13
EP2407883B1 (en) 2013-08-21
US8185706B2 (en) 2012-05-22
HK1166390A1 (en) 2012-10-26
EP2297642B1 (en) 2011-11-30
EP2407883A1 (en) 2012-01-18
KR20110008301A (en) 2011-01-26
CN102077176B (en) 2013-06-19
EP2297642A1 (en) 2011-03-23
CN102077176A (en) 2011-05-25
KR20120059658A (en) 2012-06-08
JP5192587B2 (en) 2013-05-08
ES2378371T3 (en) 2012-04-11
JP2011520188A (en) 2011-07-14
ATE535866T1 (en) 2011-12-15
KR101225924B1 (en) 2013-01-24
US20090276560A1 (en) 2009-11-05

Similar Documents

Publication Publication Date Title
US8185706B2 (en) Copyback optimization for memory system
US10998923B2 (en) Stopping criteria for layered iterative error correction
US8650463B2 (en) Solid state drive and method of controlling an error thereof
US9875035B2 (en) Memory system having a read and copy-back operation and method for the same
US9602134B2 (en) Operating method of error correction code decoder and memory controller including the error correction code decoder
US9110786B2 (en) Read operation prior to retrieval of scatter gather list
US10347349B2 (en) Method and device for fail-safe erase of flash memory
US11138080B2 (en) Apparatus and method for reducing cell disturb in an open block of a memory system during a recovery procedure
CN106372011B (en) High performance host queue monitor for PCIE SSD controller
KR20210006102A (en) Memory system for determining usage of buffer based on i/o throughput and operation method thereof
US20170286219A1 (en) Data storage device and operating method thereof
US10289328B2 (en) Memory controller and method for handling host request based on data character
US11126376B2 (en) Apparatus and method for performing recovery operation of memory system
TW201928958A (en) Data protecting method, memory control circuit unit and memory storage apparatus
CN109918315B (en) Memory system and operation method thereof
TWI436209B (en) Memory management table proceesing method, memory controller and memory storage apparatus
CN110008145B (en) Data protection method, memory control circuit unit and memory storage device
US9990974B2 (en) Memory system having address synchronizer and operation method thereof

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980125299.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09739378

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011507514

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009739378

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20107026742

Country of ref document: KR

Kind code of ref document: A