IP Library Granted Patent US 10,254,966
Granted Patent B2
US 10,254,966 · App. 15/392,512 · Granted Apr 9, 2019

Data management based on I/O traffic profiling

Inventor: Haining Liu (Irvine, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/061G06F3/0659G06F3/0688G06F11/14G06F3/0635G06F3/0653G06F12/0246
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,254,966
App. No.
15/392,512
Granted
Apr 9, 2019
Kind
B2
Abstract

Data storage devices and systems include a non-volatile memory array including a plurality of non-volatile memory cells, a host interface for communicating with a host system, and a controller configured to receive data storage access commands from the host system over the host interface, determine an input/output (I/O) state of the data storage device based at least in part on the received data storage access commands, and execute a data management operation based at least in part on the I/O state of the data storage device.

Claims (46)

1. A data storage device comprising:

a non-volatile memory array including a plurality of non-volatile memory cells;

a host interface configured to receive data storage access commands from a host system;

an input/output (I/O) traffic monitor configured to determine an I/O state of the data storage device based at least in part on the received data storage access commands by distinguishing between a transient state and a steady state;

a host I/O profiler configured to determine a host I/O state based at least in part on the received data storage access commands by distinguishing among read, write, and idle host I/O states; and

a data management controller configured to execute a data management operation based at least in part on the I/O state of the data storage device and on the host I/O state.

2. The data storage device of claim 1 :

wherein the host I/O profiler is further configured to determine host read statistics and host write statistics based on the received data storage commands; and

wherein the I/O traffic monitor is further configured to determine the I/O state of the data storage device based at least in part on the host read statistics and the host write statistics.

3. The data storage device of claim 1 , wherein the data management operation is related to spatial locality control, garbage collection, or wear leveling.

4. The data storage device of claim 1 , wherein the data management controller is further configured to generate one or more data management control signals based at least in part on the I/O state of the data storage device and on the host I/O state.

5. The data storage device of claim 1 , wherein the read, write, and idle host I/O states comprise an idle state, a read-only state, a no-write state, a write-only state, and a mixed read and write state.

6. The data storage device of claim 4 , further comprising:

an internal I/O profiler configured to determine internal I/O statistics; and

wherein the I/O traffic monitor is further configured to determine the I/O state of the data storage device is based at least in part on the internal I/O statistics.

7. The data storage device of claim 6 , wherein:

the internal I/O profiler is further configured to determine an internal I/O state based at least in part on the internal I/O statistics; and

wherein the data management controller is further configured to generate the one or more data management control signals based at least in part on the internal I/O state.

8. The data storage device of claim 7 , wherein the internal I/O state comprises one or more of an idle state, a light internal I/O state, a moderate internal I/O state, and a heavy internal I/O state.

9. The data storage device of claim 1 , wherein the transient state is a ramp-up state.

10. A method of managing input/output (I/O) traffic in a data storage device, the method comprising:

receiving data storage access commands from a host system over a host interface of a data storage device;

determining a host I/O state based at least in part on the received data storage access commands by distinguishing among read, write, and idle host I/O states;

determining an I/O state of the data storage device based at least in part on the received data storage access commands, wherein determining the I/O state includes distinguishing between a transient state and a steady state; and

executing a data management operation based at least in part on the I/O state of the data storage device and on the host I/O state.

11. The method of claim 10 , wherein said determining the I/O state of the data storage device is based at least in part on the determined host I/O state.

12. The method of claim 10 , wherein the transient state is a ramp-up state.

13. The method of claim 10 , further comprising an internal I/O state associated with the data storage device, wherein said determining the I/O state of the data storage device is based at least in part on the determined internal I/O state.

14. The method of claim 13 , wherein said determining the internal I/O state is based at least in part on internal write statistics associated with the data storage device.

15. The method of claim 10 , further comprising determining a drive state associated with the data storage device, wherein said determining the I/O state of the data storage device is based at least in part on the determined drive state.

16. The method of claim 15 , wherein said determining the drive state is based at least in part on host read statistics, host write statistics, and internal write statistics associated with the data storage device.

17. The method of claim 10 , further comprising generating one or more data management control signals based at least in part on the I/O state of the data storage device.

18. The method of claim 17 , wherein the data management operation is related to spatial locality control, garbage collection, or wear leveling.

19. The method of claim 10 , wherein said determining the I/O state of the data storage device is based on the host I/O state and an internal I/O state of the data storage device.

20. A data storage device comprising:

a non-volatile memory array including a plurality of non-volatile memory cells;

a host interface configured to receive data storage access commands from a host system; means for determining host I/O activity associated with the data storage device;

means for determining an input/output (I/O) state of the data storage device by distinguishing between a transient state and a steady state, the determination based at least in part on the host I/O activity associated with the data storage device;

means for determining a host I/O state based at least in part on the received data storage access commands by distinguishing among read, write, and idle host I/O states; and

means for executing a data management operation in the data storage device based at least in part on the I/O state of the data storage device and on the host I/O state.

21. The data storage device of claim 20 , wherein the read, write, and idle host I/O states comprise an idle state, a read-only state, a no-write state, a write-only state, and a mixed read and write state.

22. The data storage device of claim 21 , wherein the I/O state is based at least in part on the host I/O state.

23. The data storage device of claim 20 , further comprising means for determining an internal I/O state associated with the data storage device.

24. The data storage device of claim 5 , wherein a transition from the idle state to the read-only state requires first transitioning to the no-write state.

25. The method claim 10 , wherein the read, write, and idle host I/O states comprise an idle state, a read-only state, a no-write state, a write-only state, and a mixed read and write state.

26. The method of claim 25 , wherein a transition from the idle state to the read-only state requires first transitioning to the no-write state.

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 - 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2017
From: LIU, HAINING
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 041207/0713 →
Continuity (1)
Related Publication 20180181302A1 · Jun 28, 2018