IP Library Granted Patent US 12,314,169
Granted Patent B2
US 12,314,169 · App. 18/372,759 · Granted May 27, 2025

Method and system for handling host commands overlapping with deferred unmap address ranges in storage devices

Inventors: Naga Shankar Vadalamani (Bangalore, IN); Nagi Reddy Chodem (Bangalore, IN); Ramdas Jayant Singathiya (Bangalore, IN)
Assignee: SANDISK TECHNOLOGIES INC
G06F12/0246G06F2212/7201
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 12,314,169
App. No.
18/372,759
Granted
May 27, 2025
Kind
B2
Abstract

A storage device processes deferred unmap operations while maintaining instructions in a write command. A controller in a storage device receives an unmap command and a write command from a host, determines that a logical page in the write command overlaps with a range in the unmap command with deferred unmap operations, and processes the write command. In processing the write command, an L2P translation manager sets a collision bit for the logical page and updates a L2P table. When processing the deferred unmap operations, the controller selects the range and if, based on collision bits in the range the controller determines that there is no overlap between the write command and the range, the controller performs the deferred unmap operations for the range. If the controller determines that there is an overlap, the controller processes the deferred unmap operations to not override the write command.

Claims (32)

1. A storage device to process a write command including a logical page in a range with deferred unmap operations that are yet to be completed and to process the deferred unmap operations while maintaining instructions from the write command, the storage device comprising:

a controller to receive an unmap command and the write command from a host, determine that the logical page in the write command overlaps with a range in the unmap command with the deferred unmap operations, notate the overlap, and process the write command; and

a logical to physical (L2P) translation manager to receive a conditional update request for the logical page in the write command from the controller, set a collision bit for the logical page in processing the write command, update a L2P table, and complete the conditional update request,

wherein in processing the deferred unmap operations, the controller selects the range and i) if, based on collision bits in the range the controller determines that there is no overlap between the write command and the range, the controller performs the deferred unmap operations for the range, and ii) if, based on collision bits in the range the controller determines that there is an overlap between the write command and the range, the controller processes the deferred unmap operations to not override instructions in the write command.

2. The storage device of claim 1 , wherein in notating the overlap the controller sets a flag and the collision bit when updating the L2P table.

3. The storage device of claim 1 , wherein in processing the write command, the controller sets an opcode, in the conditional update request, to an unmap collision value when the logical page in the write command overlaps with the range.

4. The storage device of claim 3 , wherein in processing the deferred unmap operations, based on the unmap collision value, the L2P translation manager based on determining that the write command has been processed in the logical page, clears the collision bit in a skip-pending-unmap table for the logical page, and updates the L2P table.

5. The storage device of claim 4 , wherein when all logical pages in the range are processed, the L2P translation manager generates a skipped-L2P-updates bitmap to identify logical pages for which the deferred unmap operations were skipped.

6. The storage device of claim 1 , wherein in processing the write command, the controller sends the conditional update request to the L2P translation manager.

7. The storage device of claim 1 , wherein in processing the write command, the L2P translation manager sets the collision bit in a skip-pending-unmap table, the collision bit is set to one of an on value and a cleared value.

8. The storage device of claim 1 , wherein when the controller flushes data in a buffer to a memory device, the controller preserves a state of the collision bit in a skip-pending-unmap table.

9. The storage device of claim 8 , wherein in flushing the data, the controller performs the conditional update, and if the conditional update is unsuccessful, the controller, upon determining that a new L2P table update occurred because of one of a new write and a recycle write, completes a write operation.

10. The storage device of claim 8 , wherein in flushing the data, the controller performs the conditional update, and if the conditional update is unsuccessful, the controller, upon determining that that deferred unmap operations have been performed, performs another conditional update with the collision bit cleared and completes a write operation.

11. The storage device of claim 1 , wherein when the controller performs background operations the controller preserves a state of the collision bit during L2P update operations, wherein if the collision bit is in a cleared state, the controller relocates data and preserves the state of the collision bit.

12. A method for processing a host write command and deferred unmap operations in a storage device, the method comprising:

receiving, by a controller, an unmap command and a write command from a host;

based on determining, by the controller, that a logical page in the write command overlaps with a range in the unmap command with deferred unmap operations, setting a flag and a collision bit for the logical page, and processing the write command; and

in processing the deferred unmap operations, selecting, by the controller, the range, and in response to determining that there is an overlap between the write command and the range based on the collision bits in the range, processing the deferred unmap operations to not override instructions in the write command.

13. The method of claim 12 , further comprising in processing the write command, setting an opcode to an unmap collision value based on the logical page in the write command overlapping with the range, wherein in processing the deferred unmap operations, based on the opcode, determining that the write command has been processed in the logical page, and in response to determining that the write command has been processed, clearing the collision bit in a skip-pending-unmap table for the logical page, and updating a L2P table.

14. The method of claim 13 , wherein in response to all logical pages in the range being processed, generating a skipped-L2P-updates bitmap to identify logical pages for which the deferred unmap operations were skipped.

15. The method of claim 12 , wherein in processing the write command, the

method further comprises sending a conditional update request to an L2P translation manager wherein the L2P translation manager sets the collision bit in a skip-pending-unmap table, the collision bit is set to one of an on value or a cleared value.

16. The method of claim 12 , further comprising preserving a state of the collision bit in a skip-pending-unmap table in response to flushing data in a buffer to a memory device.

17. A method for processing deferred unmap operations in a storage device, the method comprising:

selecting, by a controller, a range including the deferred unmap operations, and

checking, by the controller, collision bits in the range, and in response to determining that there is an overlap between a write command and the range based on the collision bits, processing the deferred unmap operations to not override instructions in the write command.

18. The method of claim 17 , wherein in response to determining that there is the overlap, the processing the deferred unmap operations comprises:

determining that a collision bit in the range is in an on state;

looking up an L2P table for the range and looping through L2P entries in the L2P table;

in response to determining that the collision bit is set to the on state for a logical page in the L2P table, clearing the collision bit, performing a conditional update, and processing the deferred unmap operations.

19. The method of claim 18 , wherein based on a unmap collision value associated with the logical page, the method further comprises determining, by a L2P translation manager, that a host write command has been processed, in response to determining that the host write command has been processed, clearing the collision bit in a skip-pending-unmap table for the logical page, and updating the L2P table.

20. The method of claim 19 , wherein in response to all logical pages in the range being processed, the method further comprises generating, by the L2P translation manager a skipped-L2P-updates bitmap to identify logical pages for which the deferred unmap operations were skipped.

Assignments (8)
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 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/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 - DDTL Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065657/0158 →
PATENT COLLATERAL AGREEMENT- A&R Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065656/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2023
From: VADALAMANI, NAGA SHANKAR; CHODEM, NAGI REDDY; SINGATHIYA, RAMDAS
To: WESTERN DIGITAL TECHNOLOGIES, INC.,
Reel/Frame 065023/0922 →
Continuity (1)
Related Publication 20250103481A1 · Mar 27, 2025
References Cited (6)
US 9032138B2 · Choi · 2015 [cited by applicant]
US 10909030B2 · Desai · 2021 [cited by applicant]
US 10990287B2 · Cho · 2021 [cited by applicant]
US 11397672B2 · Ju · 2022 [cited by applicant]
US 20180203637A1 · Furuya · 2018 [cited by examiner]
WO 2022040914A1 · 2022 [cited by applicant]