IP Library Granted Patent US 11,237,760
Granted Patent B2
US 11,237,760 · App. 16/721,314 · Granted Feb 1, 2022

Measuring performance metrics for data storage devices

Inventors: Muthukumar Karuppiah (San Ramon, CA); Khurram Ismail (Milpitas, CA); Anuj Awasthi (Fremont, CA); Rohit Sindhu (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0625G06F3/0673G06F11/3062G06F11/3466
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 11,237,760
App. No.
16/721,314
Granted
Feb 1, 2022
Kind
B2
Abstract

In one embodiment, an apparatus is provided. The apparatus includes a first interface configured to communicate with a computing device. The apparatus also includes a second interface configured to communicate with a data storage device. The apparatus further includes a processing device coupled to the first interface and the second interface. The processing device is configured to receive, from the computing device via the first interface, a request to measure a set of performance metrics for the data storage device. The processing device is also configured to identify a set of commands used to measure the set of performance metrics for the data storage device. The processing device is further configured to determine whether the set of commands has been performed by the data storage device. The processing device is further configured to determine the set of performance metrics based on a set of results for the set of commands in response to determining that the set of commands has been performed by the data storage device. The processing device is further configured to transmit the set of performance metrics to the computing device.

Claims (82)

1. An apparatus, comprising:

a first interface configured to communicate with a computing device;

a second interface configured to communicate with a data storage device; and

a processing device coupled to the first interface and the second interface, the processing device configured to:

receive, from the computing device via the first interface, a request to measure a set of performance metrics for the data storage device;

identify a set of commands used to measure the set of performance metrics for the data storage device, wherein the identified set of commands are measured at a predetermined microsecond level;

determine whether the set of commands has been performed by the data storage device;

in response to determining that the set of commands has been performed by the data storage device, determine the set of performance metrics based on a set of results for the set of commands, wherein the set of results comprise a degree of timing accuracy based on the identified set of commands being measured at the predetermined microsecond level; and

transmit the set of performance metrics to the computing device.

2. The apparatus of claim 1 , wherein to receive the request to measure the set of performance metrics, the processing device is further configured to:

receive data indicating a submission queue and a completion queue associated with the set of commands.

3. The apparatus of claim 2 , wherein to identify the set of commands used to measure the set of performance metrics, the processing device is further configured to:

receive a second request to retrieve the set of commands from the submission queue;

determine a set of tag identifiers for the set of commands based on the second request to retrieve the set of commands; and

receive a second response comprising the set of commands from the computing device; and

determine a first set of command identifiers based on the second response.

4. The apparatus of claim 3 , wherein to determine whether the set of commands has been performed by the data storage device, the processing device is further configured to:

receive the set of results from the data storage device;

determine whether a second set of command identifiers in the set of results for the set of commands are a match for the set of command identifiers.

5. The apparatus of claim 1 , wherein the set of performance metrics comprises a first latency for a first command of the set of commands.

6. The apparatus of claim 5 , wherein to determine the set of performance metrics, the processing device is further configured to:

determine a difference between a first time and a second time, wherein:

the set of commands is identified at the first time; and

the set of results for the set of commands is received at the second time.

7. The apparatus of claim 1 , wherein the set of performance metrics comprises a set of data throughputs for the data storage device.

8. The apparatus of claim 7 , wherein to determine the set of performance metrics, the processing device is further configured to:

determine a difference between a first time and a second time; and

determine an amount of data communicated between the computing device and the data storage device between the first time and the second time, wherein:

the set of commands is identified at the first time;

the set of commands communicate data between the computing device and the data storage device; and

the set of results for the set of commands is received at the second time.

9. The apparatus of claim 1 , wherein the set of performance metrics comprises a power usage for the data storage device.

10. An apparatus, comprising:

a first interface configured to communicate with a computing device;

a second interface configured to communicate with a data storage device; and

a processing device coupled to the first interface and the second interface, the processing device configured to:

receive, from the computing device via the first interface, a request to measure a set of performance metrics for the data storage device;

identify a set of commands used to measure the set of performance metrics for the data storage device;

determine whether the set of commands has been performed by the data storage device;

in response to determining that the set of commands has been performed by the data storage device, determine the set of performance metrics based on a set of results for the set of commands; and

transmit the set of performance metrics to the computing device, wherein:

the set of performance metrics comprises a power usage for the data storage device;

the set of commands cause the data storage device to transition from a first power state to a second power state; and

the power usage for the data storage device indicates an amount of power used by the data storage device while the data storage device is in the second power state.

11. The apparatus of claim 10 , wherein the request to measure the set of performance metrics for the data storage device indicates the set of performance metrics.

12. The apparatus of claim 10 , wherein to transmit the set of performance metrics to the computing device, the processing device is further configured to:

determine whether a first performance metric of the set of performance metrics satisfies a threshold; and

in response to determining that the first performance metric does not satisfy the threshold, transmit message indicating that the first performance metric is below the threshold.

13. The apparatus of claim 10 , wherein the processing device is further configured to:

forward the set of commands from the computing device to the data storage device;

forward the set of results of the set of commands from the data storage device to the computing device.

14. A method, comprising:

receiving, from a computing device via a first interface, a request to measure a set of performance metrics for a data storage device;

identifying a set of commands used to measure the set of performance metrics for the data storage device, wherein the identified set of commands are measured at a predetermined microsecond level;

determining whether the set of commands has been performed by the data storage device;

in response to determining that the set of commands has been performed by the data storage device, determining the set of performance metrics based on a set of results for the set of commands, wherein the set of results comprise a degree of timing accuracy based on the identified set of commands being measured at the predetermined microsecond level; and

transmitting the set of performance metrics to the computing device.

15. The method of claim 14 , wherein receiving the request to measure the set of performance metrics comprises:

receiving data indicating a submission queue and a completion queue associated with the set of commands.

16. The method of claim 15 , wherein the identified set of commands used to measure the set of performance metrics comprises:

receiving a second request to retrieve the set of commands from the submission queue; and

determining a set of tag identifiers for the set of commands based on the second request to retrieve the set of commands; and

receiving a second response comprising the set of commands from the computing device; and

determining a set of command identifiers based on the second response.

17. The method of claim 16 , wherein determining whether the set of commands has been performed by the data storage device comprises:

receiving the set of results from the data storage device;

determining whether a second set of command identifiers in the set of results for the set of commands are a match for the second set of command identifiers.

18. The method of claim 14 , wherein the request to measure the set of performance metrics for the data storage device indicates the set of performance metrics.

19. The method of claim 14 , wherein transmitting the set of performance metrics to the computing device comprises:

determining whether a first performance metric of the set of performance metrics satisfies a threshold; and

in response to determining that the first performance metric does not satisfy the threshold, transmitting a message indicating that the first performance metric is below the threshold.

20. A system, comprising:

a computing device; and

a performance metric device coupled to the computing device, the performance metric device comprising:

a first interface configured to communicate with the computing device;

a second interface configured to communicate with a data storage device; and

a processing device coupled to the first interface and the second interface, the processing device configured to:

receive, from the computing device via the first interface, a request to measure a set of performance metrics for the data storage device;

identify a set of commands used to measure the set of performance metrics for the data storage device, wherein the identified set of commands are measured at a predetermined microsecond level;

determine whether the set of commands has been performed by the data storage device;

in response to determining that the set of commands has been performed by the data storage device, determine the set of performance metrics based on a set of results for the set of commands, wherein the set of results comprise a degree of timing accuracy based on the identified set of commands being measured at the predetermined microsecond level; and

transmit the set of performance metrics to the computing device.

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 052025 FRAME 0088 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0699 →
SECURITY INTEREST Recorded Feb 26, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052025/0088 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2019
From: KARUPPIAH, MUTHUKUMAR; ISMAIL, KHURRAM; AWASTHI, ANUJ; SINDHU, ROHIT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 051349/0355 →