IP Library › Granted Patent US 11,086,719
Granted Patent B2
US 11,086,719 · App. 16/512,802 · Granted Aug 10, 2021

Use of error correction codes to prevent errors in neighboring storage

Inventors: Amer Aref Hassan (Kirkland, WA); Roy D. Kuntz (Kirkland, WA); David Anthony Lickorish (Sammamish, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F11/1076G06F3/0604G06F3/0659G06F3/0673G11B5/012G11C16/0483G11C16/10G11C16/26G11C16/3427
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,086,719
App. No.
16/512,802
Granted
Aug 10, 2021
Kind
B2
Abstract

Disclosed in some examples are methods, systems, storage devices, and machine readable mediums that utilize the ability of ECC to correct errors to actively prevent errors. The memory device determines whether a request to place data of a requested value at a requested location in the storage media is likely to interfere with other data stored at other locations on the storage media, and if so, changes the requested value to a second value that will not interfere (or has a lower probability of interfering) with neighboring data. The second value may be corrected to the requested value when a read request is made for that data using ECC.

Claims (43)

1. A method for storing data, the method comprising:

receiving a proposed data value for storage at a target location on a data storage device, the proposed data value having an error correction code applied;

prior to writing the proposed data value at the target location:

determining, based upon the proposed data value and a non-target data value stored in a non-target location on the data storage device, that writing of the proposed data value to the target location has a first probability that exceeds a threshold probability of changing the non-target data value stored at the non-target location on the data storage device or changing a second non-target data value at a second non-target location;

selecting a second data value that has a second probability of causing interference with the non-target data value stored at the non-target location or the second non-target data value at the second non-target location, the second probability less than the first probability, the second data value selected based upon the proposed data value and the non-target data value stored at the non-target location; and

changing the proposed data value to the second data value; and

writing the second data value to the data storage device at the target location.

2. The method of claim 1 , wherein the data storage device is a magnetic storage device.

3. The method of claim 2 , wherein the first probability is calculated based upon a probability that writing the proposed data value at the target location would create a region of the data storage device that has a constant value of magnetization field strength.

4. The method of claim 1 , wherein the data storage device comprises an array of NAND memory cells.

5. The method of claim 4 , wherein the first probability is calculated based upon a program disturb produced by writing the proposed data value to the target location.

6. The method of claim 1 , wherein the method further comprises:

receiving a read request for the target location;

reading a value at the target location, the value being the second data value; and

correcting the second data value to the proposed data value using the error correction code.

7. A data storage device comprising:

a processor;

a memory, storing instructions, which when executed by the processor, causes the processor to perform operations comprising:

receiving a proposed data value for storage at a target location on a data storage device, the proposed data value having an error correction code applied;

prior to writing the proposed data value at the target location:

determining, based upon the proposed data value and a non-target data value stored in a non-target location on the data storage device, that writing of the proposed data value to the target location has a first probability that exceeds a threshold probability of changing the non-target data value stored at the non-target location on the data storage device or changing a second non-target data value at a second non-target location;

selecting a second data value that has a second probability of causing interference with the non-target data value stored at the non-target location or the second non-target data value at the second non-target location, the second probability less than the first probability, the second data value selected based upon the proposed data value and the non-target data value stored at the non-target location; and

changing the proposed data value to the second data value; and

writing the second data value to the data storage device at the target location.

8. The data storage device of claim 7 , wherein the data storage device is a magnetic storage device.

9. The data storage device of claim 8 , wherein the first probability is calculated based upon a probability that writing the proposed data value at the target location would create a region of the data storage device that has a constant value of magnetization field strength.

10. The data storage device of claim 7 , wherein the data storage device comprises an array of NAND memory cells.

11. The data storage device of claim 10 , wherein the first probability is calculated based upon a program disturb produced by writing the proposed data value to the target location.

12. The data storage device of claim 7 , wherein the operations further comprise:

receiving a read request for the target location;

reading a value at the target location, the value being the second data value; and

correcting the second data value to the proposed data value using the error correction code.

13. A data storage device comprising:

means for receiving a proposed data value for storage at a target location on a data storage device, the proposed data value having an error correction code applied;

prior to writing the proposed data value at the target location:

means for determining, based upon the proposed data value and a non-target data value stored in a non-target location on the data storage device, that writing of the proposed data value to the target location has a first probability that exceeds a threshold probability of changing the non-target data value stored at the non-target location on the data storage device or changing a second non-target data value at a second non-target location;

means for selecting a second data value that has a second probability of causing interference with the non-target data value stored at the non-target location or the second non-target data value at the second non-target location, the second probability less than the first probability, the second data value selected based upon the proposed data value and the non-target data value stored at the non-target location; and

means for changing the proposed data value to the second data value; and

means for writing the second data value to the data storage device at the target location.

14. The data storage device of claim 13 , wherein the data storage device is a magnetic storage device.

15. The data storage device of claim 14 , wherein the first probability is calculated based upon a probability that writing the proposed data value at the target location would create a region of the data storage device that has a constant value of magnetization field strength.

16. The data storage device of claim 13 , wherein the data storage device comprises an array of NAND memory cells.

17. The data storage device of claim 16 , wherein the first probability is calculated based upon a program disturb produced by writing the proposed data value to the target location.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2019
From: HASSAN, AMER AREF; KUNTZ, ROY D.; LICKORISH, DAVID ANTHONY
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 049765/0614 →
Continuity (1)
Related Publication 20210019226A1 · Jan 21, 2021