IP Library Granted Patent US 10,725,931
Granted Patent B2
US 10,725,931 · App. 16/109,504 · Granted Jul 28, 2020

Logical and physical address field size reduction by alignment-constrained writing technique

Inventors: Darin Edward Gerhart (Oronoco, MN); Cory Lappi (Rochester, MN); Nicholas Edward Ortmeier (Rochester, MN); William Jared Walker (Rochester, MN)
Assignee: Western Digital Technologies, Inc.
G06F12/1009G06F3/06G06F2212/2022
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,725,931
App. No.
16/109,504
Granted
Jul 28, 2020
Kind
B2
Abstract

A method and arrangement are disclosed involving receiving a read-type command at a data storage arrangement, calculating a command span of the received read-type command and performing a look-up command, through use of a processor, for data located in each extent at a condensed logical block address state table for the read-type command, wherein the condensed logical block address state table describes a logical to physical table and at least one of transmitting data and displaying data related to the read-type command found in the condensed logical block address state table.

Claims (91)

1. A method, comprising:

receiving a read-type command at a data storage arrangement;

calculating a command span of the received read-type command;

performing a look-up command, through use of a processor, for data located in each extent at a condensed logical block address state table for the read-type command, wherein the condensed logical block address state table describes a logical to physical table, wherein the condensed logical block address state table tracks logical block address state information ahead of the logical to physical table, and wherein the logical block address state information is mapped or unmapped;

at least one of transmitting data and displaying data related to the read-type command found in the condensed logical block address state table;

determining if the command span overlaps the next extent of the condensed logical block address state table; and

performing another lookup for the condensed logical block address state table when the command span overlaps the next extent.

2. The method according to claim 1 , further comprising:

determining if during the look-up command an extent value is unmapped.

3. The method according to claim 2 , further comprising:

dispatching the read-type command to a flash translation layer when the extent value is mapped.

4. The method according to claim 2 , further comprising:

dispatching the read-type command to a flash translation layer when the extent value is partially mapped.

5. The method according to claim 2 , further comprising:

advancing a command logical block address to a boundary of a next extent.

6. The method according to claim 1 , wherein the calculating the command span is performed through a formula of:

Command Span=Start LBA+Length−1.

7. The method according to claim 1 , wherein the data storage arrangement is a solid state drive.

8. A method for performing a write-type command, comprising:

receiving the write-type command at a data storage arrangement;

calculating a command span length for the write-type command received;

performing a look-up command, through use of a processor, for data located in a first extent of a condensed logical block address state table for the write-type command, wherein the condensed logical block address state table describes a logical to physical table, wherein the condensed logical block address state table tracks logical block address state information ahead of the logical to physical table, and wherein the logical block address state information is mapped or unmapped;

at least one of transmitting data and displaying data related to the write-type command found in the condensed logical block address state table;

determining if the calculated command span length overlaps the first extent; and

when the calculated span overlaps the first extent, setting a new extent value equal to fully mapped.

9. The method according to claim 8 , wherein the calculating the command span length is performed through a formula of:

Command Span=Start LBA+Length−1.

10. The method according to claim 8 , further comprising:

when the command span does not overlap the extent, determining if the command span is greater than an extent threshold.

11. The method according to claim 10 , further comprising:

setting a new extent value when the span is greater than the extent threshold and setting the extent threshold when the command span is not greater than the extent threshold.

12. The method according to claim 11 , further comprising:

determining if the new extent value is greater than the first extent; and

setting the first extent to the new extent value when the new extent value is greater than the first extent.

13. The method according to claim 8 , wherein the data storage arrangement is a solid state drive.

14. A method for performing a unmap-type command, comprising:

receiving the unmap-type command at a data storage arrangement;

determining a logical block address range for processing;

performing a look-up command, through use of a processor, for data located in a first extent of a condensed logical block address state table for the unmap-type command, wherein the condensed logical block address state table describes a logical to physical table; and

at least one of transmitting data and displaying data related to the unmap-type command found in the condensed logical block address state table, further comprising:

determining if the first extent value is equal to 0; and

performing a look-up command, through use of a processor, for data located in a next extent of a condensed logical block address state table for the unmap-type command.

15. The method according to claim 14 , wherein the data storage arrangement is a solid state drive.

16. An apparatus for processing a read-type command, comprising:

means for receiving a read-type command at a data storage arrangement;

means for calculating a command span of the received read-type command;

means for performing a look-up command, through use of a processor means, for data located in each extent at a condensed logical block address state table for the read-type command, wherein the condensed logical block address state table tracks logical block address state information ahead of a logical to physical table, and wherein the logical block address state information is mapped or unmapped;

means for at least one of transmitting data and displaying data related to the read-type command found in the condensed logical block address state table;

means for determining if the command span overlaps the next extent of the condensed logical block address state table; and

means for performing another lookup for the condensed logical block address state table when the command span overlaps the next extent.

17. The apparatus according to claim 16 , further comprising:

means for dispatching the read-type command to a flash translation layer when an extent value is mapped.

18. An apparatus for performing a write-type command, comprising:

means for receiving the write-type command;

means for calculating a command span length for the write-type command received;

means for performing a look-up command, through use of a processor, for data located in a first extent of a condensed logical block address state table for the write-type command, wherein the condensed logical block address state table tracks logical block address state information ahead of a logical to physical table, and wherein the logical block address state information is mapped or unmapped;

means for at least one of transmitting data and displaying data related to the write-type command found in the condensed logical block address state table;

means for determining if the calculated command span length overlaps the first extent; and

means for setting a new extent value equal to fully mapped when the calculated span overlaps the first extent.

19. The apparatus according to claim 18 , wherein the means for receiving the write-type command is a solid state drive.

20. An apparatus for performing an unmap-type command, comprising:

means for receiving the unmap-type command;

means for determining a logical block address range for processing;

means for performing a look-up command, through use of a processor, for data located in a first extent of a condensed logical block address state table for the unmap-type command, wherein the condensed logical block address state table describes a logical to physical table;

means for at least one of transmitting data and displaying data related to the unmap-type command found in the condensed logical block address state table;

means for determining if the first extent value is equal to 0; and

means for performing a look-up command, through use of a processor, for data located in a next extent of a condensed logical block address state table for the unmap-type command.

21. The apparatus according to claim 20 , wherein the means for receiving the unmap-type command is a solid state drive.

22. A method, comprising:

receiving a read-type command at a data storage arrangement;

calculating a command span of the received read-type command;

performing a look-up command, through use of a processor, for data located in each extent at a condensed logical block address state table for the read-type command, wherein the condensed logical block address state table describes a logical to physical table, wherein the condensed logical block address state table tracks logical block address state information ahead of the logical to physical table, and wherein the logical block address state information is mapped or unmapped;

determining if the look-up command for the condensed logical block address state table has found unmapped blocks;

returning zero content data to a controller when the look-up command has found the unmapped blocks;

determining if the command span overlaps the next extent of the condensed logical block address state table; and

performing another lookup for the condensed logical block address state table when the command span overlaps the next extent.

23. A method, comprising:

receiving one of a read-type command and a write-type command at a data storage arrangement;

calculating a command span of the received command;

performing a look-up command, through use of a processor, for data located in each extent at a condensed logical block address state table for the command, wherein the condensed logical block address state table describes a logical to physical table; wherein the condensed logical block address state table tracks logical block address state information ahead of the logical to physical table, and wherein the logical block address state information is mapped or unmapped;

determining a presence of fully unmapped blocks in the look-up command;

returning zero content data for the look-up command, bypassing a flash translation layer, when a presence of fully unmapped blocks is found in the look-up;

determining if the calculated command span length overlaps the first extent; and

when the calculated span overlaps the first extent, setting a new extent value equal to fully mapped.

24. A method, comprising:

receiving data, related to an extent of a condensed logical block address state table, wherein the condensed logical block address state table tracks logical block address state information ahead of a logical to physical table, and wherein the logical block address state information is mapped or unmapped;

performing a search of the logical to physical mapping table for the logical block addresses related to the extent in the condensed logical block address state table;

updating the condensed logical block address state table when the presence of the data related to the extent is not found during the search;

determining if the first extent value is equal to 0; and

performing a look-up command, through use of a processor, for data located in a next extent of a condensed logical block address state table for the unmap-type command.

25. The method according to claim 24 , wherein the receiving data is performed during background operations.

Assignments (10)
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 - 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 Aug 27, 2018
From: GERHART, DARIN EDWARD; LAPPI, CORY; ORTMEIER, NICHOLAS EDWARD; WALKER, WILLIAM JARED
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047317/0736 →