IP Library Granted Patent US 10,732,896
Granted Patent B2
US 10,732,896 · App. 15/949,036 · Granted Aug 4, 2020

Method and system for reading data during control sync operations

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,732,896
App. No.
15/949,036
Granted
Aug 4, 2020
Kind
B2
Abstract

A method and apparatus for optimizing read operations during a control sync operation on a data storage device are disclosed. The data storage device contains a management table used for mapping memory addresses to a non-volatile memory. A control sync operation makes a copy of the management table to the non-volatile memory. The control sync operation is non-blocking—the sync operation allows read and write operations in parallel with making a copy of or updating the management table. During the control sync operation, the read operations are optimized through a CUQ and an overlap range table. The CUQ may act as a temporary management table while also containing updates to be consolidated to the management table. The overlap range table is used to allow skipping searches within the CUQ by identifying then mapping entries that reside within CUQ.

Claims (60)

1. A method, in a controller including a flash translation layer (FTL) and one or more management tables coupled to a non-volatile memory, comprising:

maintaining a control update queue (CUQ) and an overlap range table comprising recent access information to the non-volatile memory;

receiving a read request and checking if an update of the one or more management tables in non-volatile memory is ongoing;

reading data from the non-volatile memory using the overlap range table and the CUQ if the update of the one or more management tables is ongoing; and

evicting control updates in response to receiving an indication that the update of the one or more management tables has been stored in the non-volatile memory.

2. The method of claim 1 , wherein the update of the one or more management tables in the non-volatile memory is part of a non-blocking control sync operation.

3. The method of claim 2 , further comprising evacuating the CUQ after a non-blocking control sync operation and after updating these entries in the one or more management tables.

4. The method of claim 3 , further comprising performing flash management functions.

5. The method of claim 4 , wherein the flash management functions comprise logical to physical address mapping, even-wear leveling, garbage collection, and write amplification.

6. The method of claim 1 , further comprising:

identifying an address value of the read request in the overlap range table; and either:

locating, in response to the identifying the address value of the read request in the overlap range table, a physical address of the read request in the CUQ; or

in case where the address is not identified in the overlap range table, locating the physical address of the read request from other memory management tables.

7. The method of claim 6 , wherein the CUQ includes a list of logical to physical mapping pairs, according to recent updates ordered chronologically by the FTL.

8. The method of claim 6 , wherein the overlap range table includes a list of address values of recent accesses to the non-volatile memory allowing efficient LBA range searches.

9. The method of claim 6 , wherein the overlap range table includes an indication flag that an entry exists in the CUQ and optionally further includes a pointer to the relevant CUQ entry.

10. The method of claim 1 , wherein while the controller writes one or more management tables to flash, the tables are not updated.

11. The method of claim 10 , further comprising sending the read data to a host device.

12. A system, comprising:

a non-volatile memory;

an FTL;

one or more management tables; and

at least one controller coupled to the non-volatile memory, the at least one controller configured to check an overlap range table for a read address value and evict control updates in response to receiving an indication that an update of the one or more management tables has been stored in the non-volatile memory.

13. The system of claim 12 , wherein the at least one controller is configured to read data from the non-volatile memory using the overlap range table and a CUQ while one or more management tables are updated.

14. The system of claim 13 , wherein the at least one controller is configured to check the overlap range table for a read address value in response to receiving a read request.

15. The system of claim 14 , wherein the at least one controller locates a physical address corresponding to the read address value and wherein the physical address value is in the CUQ in response to logical address is found in overlap table.

16. The system of claim 15 , wherein the at least one controller retrieves the data using the physical address from the CUQ.

17. The system of claim 16 , wherein the at least one controller is configured to return the data to a host device.

18. The system of claim 12 , wherein the at least one controller is further configured to identify an address value of a read request in the overlap range table, wherein the at least one controller tries to locate, in response to identifying the address value of the read request in an overlap range table, a physical address of the read request in a CUQ; and in case where the address is not identified in the overlap range table or not found within the CUQ, locate the physical address of the read request from other memory management tables.

19. A system, comprising:

a non-volatile memory;

an FTL;

one or more management tables;

means to receive an indication that an update of the one or more management tables has been stored in the non-volatile memory; and

means to evict control updates in response to receiving the indication.

20. The system of claim 19 , further comprising means to automatically evict the control updates.

21. The system of claim 20 , further comprising means to initiate a control sync operation.

22. A device, comprising:

a controller configured to:

identify an address value of a read request in an overlap range table; and either:

locate, in response to the identifying the address value of the read request in the overlap range table, a physical address of the read request in a CUQ; or

in case where the address is not identified in the overlap range table, locate the physical address of the read request from other memory management tables; and

evict control updates in response to receiving an indication that an update of one or more management tables has been stored in non-volatile memory.

23. The device of claim 22 , wherein the controller is further configured to initiate a control sync operation.

24. The device of claim 23 , wherein the controller is further configured to write mapping tables to non-volatile memory during the control sync operation.

25. The device of claim 23 , wherein the controller is configured to not update the management tables during the control sync operation.

26. The device of claim 23 , wherein the control sync operation is done in a non-blocking manner, so that new host write operations are being processed, and new updates to the management table need to be stored.

27. The device of claim 23 , wherein new updates to the management table during the control sync operation are stored in the CUQ, and a matching entry is also added to the overlap range table.

28. The device of claim 22 , wherein the controller is further configured to evict data from the CUQ after a control sync operation.

29. The device of claim 22 , wherein the controller is further configured to retrieve data of the read request from non-volatile memory using the physical address located in the CUQ.

30. A device, comprising:

a non-volatile memory device;

means for mapping physical addresses;

means to receive a read request during an update of the means for mapping physical addresses during a non-blocking control sync;

means to read data from the non-volatile memory using a temporary means for mapping physical addresses during the update of the means for mapping physical addresses during the non-blocking control sync; and

means to evict control updates in response to receiving an indication that an update of one or more management tables has been stored in the non-volatile memory device.

31. The device of claim 30 , further comprising:

means to identify a means for identifying physical addresses of the read request in an overlap range table; and either:

means to locate, in response to the identifying the means for identifying physical addresses of the read request in an overlap range table, a physical address of the read request in the temporary means for mapping physical addresses; or

in case where the means for identifying physical address of the read request is not identified in the overlap range table or isn't found in the temporary means for mapping physical addresses, means to locate the physical address of the read request from other memory management tables.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2018
From: INBAR, KARIN; IONIN, MICHAEL MICHA; LEV, EINAT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046312/0758 →