# US 2016/0253231 A1 · System, Method and Apparatus for Preventing Data Loss Due to Memory Defects Using Latches

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2016/0253231 A1
- Document ID: US20160253231A1
- Status: Published application
- Kind: A1
- Application number: 15/150,325
- Filed: 2016-05-09
- Published: 2016-09-01
- Earliest claimed: 2014-06-09
- Assignees: SanDisk Technologies LLC
- Applicants: SanDisk Technologies Inc.
- Inventors: Abhijeet Bhalerao; Mrinal Kochar; Aaron Lee
- Web page: https://patentgrep.com/patent/US20160253231A1

## CPC

- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0673: {Single storage device}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F 11/00: Error detection; Error correction; Monitoring (error detection, correction or monitoring in information storage based on relative movement between record carrier and transducer G11B20/18; monitoring, i.e. supervising the progress of recording or reproducing G11B27/36; in static stores G11C29/00)
- G06F 11/0727: {in a storage system, e.g. in a DASD or network based storage system (drivers for digital recording or reproducing units G06F3/06; circuits for error detection or correction within digital recording or reproducing units G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/073: {in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00)}
- G06F 11/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G11C 29/025: {in signal lines}
- G11C 29/04: Detection or location of defective memory elements {, e.g. cell constructio details, timing of test signals}
- G11C 29/42: using error correcting codes [ECC] or parity check
- G11C 29/76: {using address translation or modifications}
- G06F 11/004: {Error avoidance (G06F11/07 and subgroups take precedence)}
- G11C 2029/0409: {Online test}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

A system and method for operating a memory system includes receiving a first user data, writing the first user data to a first buffer, writing the first user data from the first buffer to a first selected memory location, writing the first user data from the first buffer into a second buffer when the first user data was successfully written to the first selected memory location. Data is retrieved from the first selected memory location and written into the first buffer. Data in the first buffer can be matched to the user data in the second buffer to confirm a successful storage of the first user data in the memory system. A previously stored user data can be retrieved from a third selected memory location and written into a third buffer when the previously stored user data was stored in the memory system before the first user data.

## Claims

### Claim 1

A memory system including:
a memory operating system logic including:
computer readable instructions on computer readable media for receiving a first quantity of user data to be stored in the memory system;
computer readable instructions on computer readable media for writing the first quantity of user data to a first location of the memory system;
computer readable instructions on computer readable media for writing the first quantity of user data from the first location to a first selected memory location within the memory system;
computer readable instructions on computer readable media for writing the first quantity of user data from the first location into a second location of the memory system when the first quantity of user data was successfully written to the first selected memory location; and
computer readable instructions on computer readable media for confirming a quantity of stored data in the first location matches the first quantity of user data in the second location.

### Claim 2 (depends on 1)

The system of claim 1, wherein the computer readable instructions on computer readable media for confirming the quantity of stored data in the first location matches the first quantity of user data in the second location, includes computer readable instructions on computer readable media for retrieving the quantity of stored data in the first selected memory location and writing the retrieved quantity of stored data into the first location.

### Claim 3 (depends on 1)

The system of claim 1, further comprising:
computer readable instructions on computer readable media for writing the first quantity of user data from the first location into a second selected memory location in the memory system when the first quantity of user data was not successfully written to the first selected memory location; and
computer readable instructions on computer readable media for writing a second quantity of user data to a third selected memory location in the memory system when the second quantity of user data is stored in a third location of the memory system.

### Claim 4 (depends on 3)

The system of claim 3, further comprising a dedicated error handling memory block in the memory system and wherein the second selected memory location is included in the dedicated error handling memory block.

### Claim 5 (depends on 1)

The system of claim 1, further comprising a dedicated error handling memory block in the memory system.

### Claim 6 (depends on 1)

The system of claim 1, further comprising a memory controller, wherein at least a portion of the memory operating system logic is included in the memory controller.

### Claim 7 (depends on 1)

The system of claim 1, further comprising a memory array including a plurality of memory blocks of memory storage locations and at least a portion of the memory operating system logic is included in the memory array.

### Claim 8 (depends on 1)

The system of claim 1, further comprising a memory array including a plurality of memory blocks of memory storage locations and at least a portion of a memory controller is included in the memory array.

### Claim 9 (depends on 1)

The system of claim 1, further comprising a memory array including a plurality of memory blocks of memory storage locations and wherein the memory array includes a dedicated error handling memory block.

### Claim 10 (depends on 1)

The system of claim 1, wherein the memory system is included in a computer system, the computer system including a processor coupled to the memory system by a data bus.

### Claim 11 (depends on 1)

The system of claim 1, wherein at least a portion of the computer readable instructions on computer readable media are included in at least one integrated circuit.

### Claim 12

A data storage system comprising:
a plurality of computer systems coupled by a data network, each one of the plurality of computer systems including:
a memory system coupled to a processor by a data bus; and
a memory operating system logic including:
computer readable instructions on computer readable media for receiving a first quantity of user data to be stored in the memory system;
computer readable instructions on computer readable media for writing the first quantity of user data to a first location of the memory system;
computer readable instructions on computer readable media for writing the first quantity of user data from the first location to a first selected memory location within the memory system;
computer readable instructions on computer readable media for writing the first quantity of user data from the first location into a second location of the memory system when the first quantity of user data was successfully written to the first selected memory location; and
computer readable instructions on computer readable media for confirming a quantity of stored data in the first location matches the first quantity of user data in the second location.

### Claim 13 (depends on 12)

The system of claim 12, wherein the memory system includes a plurality of memory storage locations and the memory operating system logic is for operating the plurality of memory storage locations.

### Claim 14 (depends on 12)

The system of claim 12, wherein the computer readable instructions on computer readable media for confirming the quantity of stored data in the first location matches the first quantity of user data in the second location, includes computer readable instructions on computer readable media for retrieving the quantity of stored data in the first selected memory location and writing the retrieved quantity of stored data into the first location.

### Claim 15 (depends on 12)

The system of claim 12, further comprising:
computer readable instructions on computer readable media for writing the first quantity of user data from the first location into a second selected memory location in the memory system when the first quantity of user data was not successfully written to the first selected memory location; and
computer readable instructions on computer readable media for writing a second quantity of user data to a third selected memory location in the memory system when the second quantity of user data is stored in a third location of the memory system.

### Claim 16

A mass data storage system comprising:
a plurality of memory storage locations; and
a memory operating system logic for storing data in the plurality of memory storage locations, the memory operating system logic including:
computer readable instructions on computer readable media for receiving a first quantity of user data to be stored in the memory system;
computer readable instructions on computer readable media for writing the first quantity of user data to a first location of the memory system;
computer readable instructions on computer readable media for writing the first quantity of user data from the first location to a first selected memory location within the memory system;
computer readable instructions on computer readable media for writing the first quantity of user data from the first location into a second location of the memory system when the first quantity of user data was successfully written to the first selected memory location; and
computer readable instructions on computer readable media for confirming a quantity of stored data in the first location matches the first quantity of user data in the second location.

### Claim 17 (depends on 16)

The system of claim 16, wherein the mass data storage system is external from a computer system and coupled to the computer system via a network interface and a data network.

### Claim 18 (depends on 16)

The system of claim 16, wherein the mass data storage system is external from a plurality of computer systems and coupled to each one of the plurality of computer systems via one or more data networks.

### Claim 19

A system for managing a computer memory system comprising:
a memory operating system logic for writing to and reading data from a plurality of memory storage locations in the computer memory system, wherein at least a portion of the memory operating system logic is implemented in an integrated circuit included in a portion of a memory controller for the computer memory system, the memory operating system logic including:
computer readable instructions on computer readable media for receiving a first quantity of user data to be stored in the memory system;
computer readable instructions on computer readable media for writing the first quantity of user data to a first location of the memory system;
computer readable instructions on computer readable media for writing the first quantity of user data from the first location to a first selected memory location within the memory system;
computer readable instructions on computer readable media for identifying a failure in the first selected memory location; and
computer readable instructions on computer readable media for identifying the first selected memory location as being unusable.

### Claim 20 (depends on 19)

The system of claim 19, wherein the computer readable instructions on computer readable media for identifying the failure in the first selected memory location includes computer readable instructions on computer readable media for determining the first quantity of user data was not successfully written to the first selected memory location.

### Claim 21 (depends on 20)

The system of claim 20, further comprising computer readable instructions on computer readable media for writing the first quantity of user data from the first location into a second selected memory location in the memory system when the first quantity of user data was not successfully written to the first selected memory location.

### Claim 22 (depends on 21)

The system of claim 21 further comprising computer readable instructions on computer readable media for writing a second quantity of user data to a third selected memory location in the memory system when the second quantity of user data is stored in a third location of the memory system.

### Claim 23 (depends on 21)

The system of claim 21, wherein the computer readable instructions on computer readable media for identifying the failure in the first selected memory location includes computer readable instructions on computer readable media for confirming a quantity of stored data in the first location matches the first quantity of user data in the second location.
