IP Library Patent Application 17476955
Patent Application
App. No. 17/476,955

Data Storage Devices, Systems, and Related Methods to Determine Writing Fragmentation Levels of Memory Devices

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 None
App. No.
17/476,955
Filed
Sep 16, 2021
Art Unit
2132
USPC
711/154
Abstract

Aspects of the present disclosure generally relate to data storage devices, systems, and related methods that determine writing fragmentation levels of memory devices, such as memory devices of solid-state drives (SSDs). In one aspect, a controller of a data storage device is configured to determine a plurality of valid counts of a plurality of blocks of one or more memory devices, and arrange the plurality of valid counts of the plurality of blocks into a plurality of valid count groupings. The plurality of valid counts is arranged into a histogram having the plurality of block counts and the plurality of valid count groupings. In one aspect, the controller is configured to multiply the plurality of block counts by a plurality of assigned weights to determine a plurality of writing fragmentation values. In one aspect, the controller is configured to determine a writing fragmentation level.

Claims (58)

1 . A data storage device, comprising:

one or more memory devices comprising a plurality of blocks having data written to the plurality of blocks; and

a controller coupled to the one or more memory devices, wherein the controller is configured to:

determine a plurality of valid counts of the plurality of blocks,

arrange the plurality of valid counts of the plurality of blocks into a plurality of valid count groupings to determine a plurality of block counts corresponding to the plurality of valid count groupings, and

multiply the plurality of block counts by a plurality of assigned weights to determine a plurality of writing fragmentation values.

2 . The data storage device of claim 1 , wherein the controller is further configured to:

sum together the plurality of writing fragmentation values to determine a fragmentation sum;

sum together the plurality of block counts to determine a count sum; and

divide the fragmentation sum by the count sum to determine a writing fragmentation level.

3 . The data storage device of claim 2 , wherein the controller is further configured to:

initiate a housekeeping operation if the writing fragmentation level is at or above a threshold level.

4 . The data storage device of claim 1 , wherein each block count of the plurality of block counts is a number of blocks having a valid count of the plurality of valid counts that is within a respective valid count grouping of the plurality of valid count groupings.

5 . The data storage device of claim 4 , wherein each valid count of the plurality of valid counts is a used data storage percentage for a respective block of the plurality of blocks.

6 . The data storage device of claim 5 , wherein the plurality of valid count groupings comprises:

a lower end grouping of 0%;

an upper end grouping of 100%; and

a plurality of intervening groupings, wherein the plurality of intervening groupings are intervals between 0% and 100%.

7 . The data storage device of claim 6 , wherein at least some of the intervals are 10% intervals.

8 . The data storage device of claim 6 , wherein the plurality of valid count groupings comprises an intervening hybrid grouping ranging from 32.5% to 33.5%.

9 . The data storage device of claim 1 , wherein the plurality of valid counts is arranged into a histogram having the plurality of block counts and the plurality of valid count groupings.

10 . A data storage device, comprising:

one or more memory devices comprising a plurality of blocks having data written to the plurality of blocks; and

a controller coupled to the one or more memory devices, wherein the controller is configured to:

determine a plurality of valid counts of the plurality of blocks,

arrange the plurality of valid counts of the plurality of blocks into a plurality of valid count groupings of a histogram to determine a plurality of block counts corresponding to the plurality of valid count groupings, wherein each block count of the plurality of block counts is a number of blocks having a valid count of the plurality of valid counts that is within a respective valid count grouping of the plurality of valid count groupings,

multiply the plurality of block counts by a plurality of assigned weights to determine a plurality of writing fragmentation values,

sum together the plurality of writing fragmentation values to determine a fragmentation sum,

sum together the plurality of block counts to determine a count sum, and

divide the fragmentation sum by the count sum to determine a writing fragmentation level.

11 . The data storage device of claim 10 , wherein the controller is further configured to:

multiply the plurality of block counts by a plurality of averaged grouping values corresponding to the plurality of valid count groupings to determine a plurality of used storage values.

12 . The data storage device of claim 10 , wherein the controller is further configured to:

generate a fragmentation report, the fragmentation report comprising an alert if the writing fragmentation level is within a fragmentation range or a write amplification factor (WAF) of the fragmentation report is within a WAF range.

13 . The data storage device of claim 10 , wherein the plurality of valid count groupings comprises:

a lower end grouping of 0%;

an upper end grouping of 100%; and

a plurality of intervening groupings, wherein the plurality of intervening groupings are intervals between 0% and 100%.

14 . The data storage device of claim 13 , wherein the plurality of intervening groupings comprises a intermediate intervening grouping.

15 . The data storage device of claim 14 , wherein the intermediate intervening grouping ranges from 41% to 50%.

16 . The data storage device of claim 14 , wherein the plurality of assigned weights comprises:

a first minimal weight assigned to the lower end grouping;

a second minimal weight assigned to the upper end grouping;

a maximal weight assigned to the intermediate intervening grouping;

a first set of intervening weights assigned to a first subset of the plurality of intervening groupings between the lower end grouping and the intermediate intervening grouping, the first set of intervening weights decreasing in value in a direction from the maximal weight and toward the first minimal weight; and

a second set of intervening weights assigned to a second subset of the plurality of intervening groupings between the upper end grouping and the intermediate intervening grouping, the second set of intervening weights decreasing in value in a direction from the maximal weight and toward the second minimal weight.

17 . The data storage device of claim 16 , wherein the first minimal weight is zero, the second minimal weight is zero, and the maximal weight is 100.

18 . The data storage device of claim 17 , wherein the first set of intervening weights range from 5 to 90, and the second set of intervening weights range from 5 to 90.

19 . The data storage device of claim 10 , wherein the controller is further configured to identify one or more hybrid blocks, the identifying of one or more hybrid blocks comprising:

repeating the determining a plurality of valid counts of the plurality of blocks;

repeating the arranging the plurality of valid counts of the plurality of blocks into a plurality of valid count groupings of a histogram to determine a plurality of block counts; and

determining if a block count corresponding to an intervening grouping has increased, the intervening grouping ranging from 31% to 40%.

20 . A data storage device, comprising:

one or more memory storage means comprising a plurality of blocks having data written to the plurality of blocks; and

a controller coupled to the one or more memory storage means, wherein the controller is configured to:

determine a plurality of valid counts of the plurality of blocks,

arrange the plurality of valid counts of the plurality of blocks into a plurality of valid count groupings to determine a plurality of block counts corresponding to the plurality of valid count groupings, and

multiply the plurality of block counts by a plurality of assigned weights to determine a plurality of writing fragmentation values.

Assignments (5)
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 058426 FRAME 0815 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0679 →
SECURITY INTEREST Recorded Dec 9, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 058426/0815 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2021
From: SHAHARABANY, AMIR; FOGEL, ADI; SOBER, NADAV
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 057548/0871 →