IP Library Granted Patent US 10,636,065
Granted Patent B2
US 10,636,065 · App. 15/065,001 · Granted Apr 28, 2020

Data storage device, method and system, and control of data storage device based on writing operations and lifetime

Inventors: Jaimeson Saley (Rochester, MN); Ali Khalili (Bryon, MN); Nicholas Waara (Rochester, MN); Alexis Dani (Comstock Park, MI)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06Q30/04G06F3/0604G06F3/067G06F3/0653G06F3/0688
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,636,065
App. No.
15/065,001
Granted
Apr 28, 2020
Kind
B2
Abstract

A data storage device includes a number of blocks in multiple dies and a controller configured to perform operations. A method of controlling the data storage device includes: translating logical addresses to physical addresses; activating one or more dies; writing data to one or more blocks; determining the number of write operations performed on the storage device; facilitating determination of a lifetime of the storage device based on a number of blocks, a particular number of write operations, and a maximum number of write operations per block; providing the number of write operations that have been performed to a host to facilitate determination of an amount of a fee, where providing the number of write operations facilitates tracking a percentage of the lifetime of the storage device.

Claims (71)

1. A machine-implemented method, comprising:

translating, by a controller of a solid state drive (SSD), logical addresses to physical addresses associated with one or more blocks of the SSD, to write data to the SSD,

wherein the SSD comprises (a) a number of blocks arranged in a plurality of dies and (b) the controller coupled to the blocks, and wherein the controller is programmed to perform the machine-implemented method;

locating, addressing or activating, by the controller of the SSD using a chip select signal, one or more dies of the plurality of dies associated with the one or more blocks;

writing the data, by the controller of the SSD, to the one or more blocks within the one or more dies in the SSD, based on associated translated physical addresses,

wherein writing the data comprises performing a number of write operations to the one or more blocks based on the associated translated physical addresses, and wherein the number of write operations is associated with a first user;

determining, by the controller of the SSD utilizing a counter included with the controller while currently performing the number of write operations to the SSD, the number of write operations that have written data to the SSD, wherein the number of write operations reduces a lifetime of the SSD after being performed on the SSD;

determining, by the controller of the SSD, the lifetime of the SSD based on the number of blocks, a particular number of write operations, and a maximum number of write operations per block of the number of blocks;

providing, by the controller of the SSD, the number of write operations that have been performed to a host system based on a value of the counter, to facilitate the host system to determine an amount of a fee based on the provided number of write operations that have been performed, wherein providing, by the controller of the SSD, the number of write operations assists tracking a percentage of the lifetime of the SSD consumed by the number of write operations associated with the first user; and

billing, by a billing module, a particular amount based on the amount of the fee.

2. The machine-implemented method of claim 1 , wherein determining the number of write operations comprises:

determining a first value of the counter before beginning writing the data to the SSD;

determining a second value of the counter after completing writing the data to the SSD; and

subtracting the first value from the second value.

3. The machine-implemented method of claim 1 , wherein the amount of the fee is determined based on:

determining the lifetime of the SSD measured in units of number of write operations;

determining a value of a utilization factor by dividing the number of write operations for writing the data to the SSD by the lifetime; and

using the value of the utilization factor to determine the amount of the fee.

4. The machine-implemented method of claim 3 , wherein the amount of the fee is determined using a tiered pricing schedule comprising different amounts of fees for different values of the utilization factor.

5. The machine-implemented method of claim 4 , wherein the amount of the fee for a second value of the utilization factor is greater than the amount of the fee for a first value of the utilization factor that is smaller than the second value.

6. A system, comprising:

a central processing unit (CPU);

memory coupled to the CPU; and

non-volatile memory device (NVMD) coupled to the CPU, the NVMD including a controller and a number of blocks in a plurality of dies, wherein the controller is coupled to the number of blocks,

wherein the controller of the NVMD is programmed and operable for executing instructions that, when executed, perform operations to:

translate, by the controller of the NVMD, logical addresses to physical addresses associated with one or more blocks of the NVMD, to write data to the NVMD;

locate, address or activate, by the controller of the NVMD using a chip select signal, one or more dies of the plurality of dies associated with the one or more blocks;

write data, by the controller of the NVMD, to the one or more blocks within the one or more dies in the NVMD based on associated translated physical addresses;

determine, by the controller of the NVMD utilizing a counter included with the controller while currently writing a number of write operations that have written a quantity of data to the NVMD, the number of write operations associated with a first user and reducing a lifetime of the NVMD after being performed on the NVMD;

determine, by the controller of the NVMD, the lifetime of the NVMD based on the number of blocks, a particular number of write operations, and a maximum number of write operations per block of the number of blocks; and

provide, by the controller of the NVMD, the number of write operations that have been performed based on a value of the counter, wherein the operations to provide, by the controller of the NVMD, the number of write operations assist tracking a percentage of the lifetime of the NVMD consumed by the number of write operations associated with the first user, and

wherein the system is programmed and operable for executing instructions that, when executed, perform a method to:

determine an amount of a fee, wherein the amount of the fee is based on the provided number of write operations that have been performed; and

generate and transmit a bill based on the amount of the fee.

7. The system of claim 6 , wherein the method to determine the amount of the fee comprises:

determining the lifetime of the NVMD expressed in units of number of write operations;

determining a value of a utilization factor by dividing the number of write operations for writing the quantity of data to the NVMD by the lifetime; and

using the value of the utilization factor to determine the amount of the fee.

8. The system of claim 7 , wherein the amount of the fee is determined using a tiered pricing schedule comprising different amounts of fees for different values of the utilization factor, wherein the amount of the fee for a second value of the utilization factor is greater than the amount of the fee for a first value of the utilization factor that is smaller than the second value.

9. A system, comprising:

a plurality of solid state drives (SSDs), wherein an SSD of the plurality of SSDs comprises a controller and a number of blocks arranged in a plurality of dies, wherein the controller is coupled to the number of blocks,

wherein the controller of the SSD is programmed to execute instructions that, when executed, perform a method, the method comprising:

translating, by the controller of the SSD, logical addresses to physical addresses associated with one or more blocks of the SSD, to write data to the SSD;

locating, addressing or activating, by the controller of the SSD using a chip select signal, one or more dies of the plurality of dies associated with the one or more blocks;

writing the data, by the controller of the SSD for an entity, to the one or more blocks within the one or more dies in the SSD based on associated translated physical addresses;

determining, by the controller of the SSD utilizing a counter included in the controller while currently performing a number of write operations, the number of write operations that have been performed for the entity to write the entity's data to the SSD, wherein the number of write operations reduces a lifetime of the SSD after being performed on the SSD;

determining, by the controller of the SSD, the lifetime of the SSD based on the number of blocks, a particular number of write operations, and a maximum number of write operations per block of the number of blocks; and

providing, by the controller of the SSD, the number of write operations that have been performed based on a value of the counter, wherein providing, by the controller of the SSD, the number of write operations assists tracking a percentage of the lifetime of the SSD consumed by the number of write operations performed for the entity, and

wherein the system is programmed and operable for executing instructions that, when executed, perform operations comprising:

determining an amount of a fee for the entity for storing the entity's data on the SSD, wherein the amount of the fee is based on the provided number of write operations that have been performed to the SSD for the entity; and

billing an amount based on the amount of the fee.

10. The system of claim 9 , wherein the determining the amount of the fee comprises:

determining the lifetime of the SSD measured in units of number of write operations;

determining a value of a utilization factor by dividing the number of write operations for writing the entity's data to the SSD by the lifetime; and

using the value of the utilization factor to determine the amount of the fee.

11. The system of claim 10 , wherein the amount of the fee is determined using a tiered pricing schedule comprising different amounts of fees for different values of the utilization factor, wherein each amount of the different amounts of fees increases as the different values of the utilization factor increase.

12. The machine-implemented method of claim 1 , wherein the controller is configured to utilize the counter to:

determine a second number of second write operations for writing data to the SSD, the second number of second write operations associated with the first user; and

determine a cumulative value of a workload related to the first user for the SSD over the lifetime of the SSD, the cumulative value of the workload based at least in part on the number of write operations and the second number of second write operations.

13. The machine-implemented method of claim 1 , further comprising:

predicting an applicable number of write operations before writing the data to the one or more blocks of the number of blocks in the SSD based on the associated translated physical addresses.

14. The machine-implemented method of claim 1 , further comprising:

predicting an applicable number of write operations before writing any data to the SSD.

15. The system of claim 6 , wherein the controller of the NVMD is programmed and operable for executing instructions that, when executed, perform operations to:

predict an applicable number of write operations before writing the data to the one or more blocks of the number of blocks in the NVMD based on the associated translated physical addresses.

16. The system of claim 6 , wherein the controller of the NVMD is programmed and operable for executing instructions that, when executed, perform operations to:

predict an applicable number of write operations before writing any data to the NVMD.

17. The system of claim 9 , wherein the controller of the SSD is programmed to execute instructions that, when executed, perform the method comprising:

predicting an applicable number of write operations before writing the data to the one or more blocks of the number of blocks in the SSD based on the associated translated physical addresses.

18. The system of claim 9 , wherein the controller of the SSD is programmed to execute instructions that, when executed, perform the method comprising:

predicting an applicable number of write operations before writing any data to the SSD for the entity.

Assignments (12)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2016
From: SALEY, JAIMESON; KHALILI, ALI; WAARA, NICHOLAS; DANI, ALEXIS
To: HGST NETHERLANDS B.V.
Reel/Frame 037933/0163 →