IP Library Granted Patent US 10,210,041
Granted Patent B2
US 10,210,041 · App. 15/137,987 · Granted Feb 19, 2019

Systems and methods for low latency copy operations in non-volatile memory

Inventors: Fan Zhang (Fremont, CA); Yu Cai (San Jose, CA); June Lee (Sunnyvale, CA)
Assignee: SK Hynix Inc.
G06F11/1068G06F3/0619G06F3/0647G06F3/0679G11C29/52G11C2029/0411
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 10,210,041
App. No.
15/137,987
Granted
Feb 19, 2019
Kind
B2
Abstract

Techniques and systems are provided for copying, with or without error-fixing or corrections, data associated with a first set of locations to a second set of locations in a flash memory. Example methods disclosed, when performed by a flash memory controller, can significantly improve latency of operations. Embodiments of the disclosure can be used, for example, in a garbage collection process of a NAND flash memory.

Claims (40)

1. A method for moving data in a flash memory, comprising:

reading, by a flash memory controller, data associated with a first set of locations from the flash memory;

determining, using an error-correction code (ECC) decoder at the flash memory controller, at least one error location in the data associated with the first set of locations;

sending, from the flash memory controller, information identifying the at least one error location for error-fixing, the error-fixing operating on a copy of the data associated with the first set of locations to result in corrected data associated with the first set of locations, wherein the error-fixing comprises a binary flip of an error bit at the at least one error location in the copy of the data associated with the first set of locations without copying corrected data based on ECC encoding from the flash memory controller to the flash memory; and

issuing, from the flash memory controller, a command that causes the corrected data associated with the first set of locations to be stored in a second set of locations of the flash memory, the second set of locations different from the first set of locations.

2. The method of claim 1 , further comprising:

determining, at the flash memory controller, that a condition is satisfied based on a count of locations with errors in the first set of locations, and wherein the sending the information identifying the at least one error location is based on the condition being satisfied.

3. The method of claim 2 , wherein the condition is based on a threshold number of locations with errors in the first set of locations.

4. The method of claim 2 , wherein the condition is based on a threshold percentage of locations with errors in the first set of locations.

5. The method of claim 1 , wherein the determining the at least one error location in the data associated with the first set of locations comprises applying an Error Correction Code (ECC) algorithm to the data associated with the first set of locations.

6. The method of claim 1 , wherein the moving data in the flash memory occurs as part of a garbage collection process in a NAND flash memory device.

7. The method of claim 1 , wherein the error-fixing occurs at a flash buffer coupled to the flash memory.

8. The method of claim 1 , wherein the command that causes the corrected data associated with the first set of locations to be stored in a second set of locations comprises a modified copy back command.

9. The method of claim 1 , wherein the first set of locations and the second set of locations are on a same plane of the flash memory.

10. The method of claim 1 , wherein the first set of locations is on a first plane of the flash memory, and the second set of locations is on a second plane of the flash memory.

11. A flash memory device configured to move data associated with a first set of locations to a second set of locations, comprising:

a flash memory;

a flash buffer coupled to the flash memory;

a flash memory controller configured to:

cause the data associated with the first set of locations from the flash memory to be copied to the flash buffer;

read the data associated with the first set of locations into the flash memory controller;

determine, using an error-correction code (ECC) decoder, at least one error location in the data associated with the first set of locations;

issue a command that causes a corrected data associated with the first set of locations to be stored in the second set of locations, the second set of locations different from the first set of locations; and

error-fixing circuitry coupled to the flash buffer and configured to:

receive the information identifying the at least one error location for error-fixing; and

issue a correction command to correct the copy of the data associated with the first set of locations in the flash buffer based on the information identifying the at least one error location to produce the corrected data associated with the first set of locations, wherein the correcting the copy of the data associated with the first set of locations in the flash buffer based on the information identifying the at least one error location includes performing a binary flip of an error bit at the at least one error location in the copy of the data associated with the first set of locations in the flash buffer without copying corrected data based on ECC encoding from the flash memory controller to the flash memory.

12. The flash memory device of claim 11 wherein the flash memory controller is further configured to:

determine that a condition is satisfied based on a count of locations with errors in the first set of locations, and wherein the sending the information identifying the at least one error location is based on the condition being satisfied.

13. The flash memory device of claim 12 , wherein the condition is based on a threshold number of locations with errors in the first set of locations.

14. The method of claim 12 , wherein the condition is based on a threshold percentage of locations with errors in the first set of locations.

15. The flash memory device of claim 11 , wherein the command that causes a corrected data associated with the first set of locations to be stored in the second set of locations comprises a modified copy back command.

16. The flash memory device of claim 11 , wherein the move of data from the first set of locations to the second set of locations occurs as part of a garbage collection process, and the flash memory device is a NAND flash memory device.

17. The flash memory device of claim 11 , wherein the first set of locations and the second set of locations are on a plane of the flash memory.

18. The flash memory device of claim 11 , wherein the first set of locations is on a first plane of the flash memory, and the second set of locations is on a second plane of the flash memory.

19. A non-transitory computer-readable medium having stored thereon instructions that when executed by a processor perform a method, including:

causing data associated with a first set of locations from a flash memory device to be copied to a flash buffer;

reading the data associated with the first set of locations into a flash memory controller;

determining, using an error-correction code (ECC) decoder, at least one error location in the data associated with the first set of locations;

sending information identifying the at least one error location for error-fixing, the error-fixing operating on a copy of the data associated with the first set of locations to result in corrected data associated with the first set of locations, wherein the error-fixing comprises a binary flip of an error bit at the at least one error location in the copy of the data associated with the first set of locations without copying corrected data based on ECC encoding from the flash memory controller to the flash memory; and

issuing a command that causes the corrected data associated with the first set of locations to be stored in a second set of locations, the second set of locations different from the first set of locations.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2017
From: SK HYNIX MEMORY SOLUTIONS INC.
To: SK HYNIX INC.
Reel/Frame 043389/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2017
From: ZHANG, FAN; CAI, YU; LEE, JUNE
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 043311/0471 →
Continuity (2)
Provisional Application 62251519 · Nov 5, 2015
Related Publication 20170132074A1 · May 11, 2017
Cited By (1)
US 12,424,297