IP Library Granted Patent US 11,494,098
Granted Patent B2
US 11,494,098 · App. 16/917,373 · Granted Nov 8, 2022

Variable performance storage devices

Inventor: Sunil Keshava (Irvine, CA)
Assignee: Western Digital Technologies, Inc.
G06F3/0634G06F3/061G06F3/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 11,494,098
App. No.
16/917,373
Granted
Nov 8, 2022
Kind
B2
Abstract

Performance configurable controllers can include a variable performance storage device that has one or more communication channels for connection with a host-computing device and a plurality of memory devices within a memory array. The storage device may include controllers that provide access to separate memory devices within the memory array. The storage device can also have performance logic installed that can be configured to direct the controllers to operate at performance modes, each associated with a different level of performance. Each performance mode can be selectable by a host-computing device and can comprise one or more preconfigured control variables. In other embodiments, storage device performance can be configured to operate at various performance levels via direct control variable change requests sent from the host-computing system.

Claims (39)

1. A variable performance storage device comprising:

one or more communication channels suitable for connection with a host-computing device;

a plurality of memory devices within a memory array;

a plurality of controllers configured to provide access to separate memory devices within the memory array; and

performance logic configured to direct the plurality of controllers to operate at a plurality of performance modes, each associated with a different level of performance;

wherein each performance mode is selectable by a host-computing device and comprises one or more preconfigured control variables,

wherein once sufficient resources are not available to increase one level of performance, at least one other level of performance is decreased to free the required sufficient resources.

2. The variable performance storage device of claim 1 , wherein the plurality of performance modes includes at least three performance modes; wherein a first performance mode provides more performance than a second mode and a third mode; the second performance mode provides less performance than the first performance mode, but more than the third performance mode; and the third performance mode provides less performance than the first and second performance modes.

3. The variable performance storage device of claim 1 , wherein the one or more preconfigured control variables include a change in the priority of a submission queue associated with one of the plurality of controllers.

4. The variable performance storage device of claim 1 , wherein the one or more preconfigured control variables include a change in the number of submission queues or completion queues associated with one of the plurality of controllers.

5. The variable performance storage device of claim 1 , wherein the one or more preconfigured control variables include a change in the number of entries provided per submission queue or completion queue associated with one of the plurality of controllers.

6. The variable performance storage device of claim 1 , wherein the host-computing device selects one of the plurality of performance modes via a request sent through a side-band communication channel within the one or more communication channels.

7. The variable performance storage device of claim 1 , wherein the plurality of performance modes can be reconfigured via an update to a firmware deployed within the variable performance storage device.

8. A variable performance storage device comprising:

one or more communication channels suitable for connection with a host-computing device;

a plurality of memory devices within a memory array;

a plurality of controllers wherein at least two of the plurality of controllers provides access to separate memory devices within the memory array; and

performance logic configured to direct the plurality of at least two controllers to operate at various levels of performance based on one or more control variables;

wherein the one or more control variables are configured via requests received from a host-computing device,

wherein once sufficient resources are not available to increase one level of performance, at least one other level of performance is decreased to free the required sufficient resources.

9. The variable performance storage device of claim 8 , wherein the one or more control variables configurable by the host-computing device include a change in the priority of a submission queue associated with one of the plurality of controllers.

10. The variable performance storage device of claim 8 , wherein the one or more control variables configurable by the host-computing device include a change in the number of submission queues or completion queues associated with one of the plurality of controllers.

11. The variable performance storage device of claim 8 , wherein the one or more control variables configurable by the host-computing device include a command arbitration setting associated with one of the plurality of controllers.

12. The variable performance storage device of claim 8 , wherein the one or more control variables configurable by the host-computing device include the utilization of a submission queue bandwidth limiting function associated with one of the plurality of controllers.

13. The variable performance storage device of claim 8 , wherein the one or more control variables are configurable via one or more vendor defined commands from the host-computing device.

14. The variable performance storage device of claim 8 , wherein the one or more control variables configurable by the host-computing device includes formatting to restrict control variable changes to authorized users.

15. The variable performance storage device of claim 8 , wherein one or more control variable configuration requests are received in response to one or more environmental inputs received by the host-computing device.

16. The variable performance storage device of claim 8 , wherein one or more control variable configuration requests are received in response to one or more time-based inputs received by the host-computing device.

17. The variable performance storage device of claim 8 , wherein at least one of the plurality of controllers are non-volatile memory express controllers.

18. The variable performance storage device of claim 8 , wherein the storage device is configured to utilize single root input/output virtualization to communicate with the host-computing system.

19. The variable performance storage device of claim 8 , wherein the storage device is further configured to, in response to receiving one or more control variable configuration request from a host-computing system that are incompatible with the current control variable configurations, sends a signal to the host-computing device indicating the incompatibility.

20. A method of configuring varying performance levels within a storage device, comprising:

utilizing at least two of a plurality of controllers within the storage device to provide access to separate memory devices within a memory array of the storage device;

establishing two or more communication channels with a host-computing device wherein each of the communication channels are configured to communicate with one of the at least two of the plurality of controllers;

operating the storage device to provide the host-computing system unique access to the memory devices within the memory via one or more queues;

receiving one or more requests from the host-computing device wherein the one or more requests are associated with changing at least one of a plurality of control variables; and

adjusting, based on the received request, the at least one control variable associated with the request;

wherein the at least one or more control variable is configured to change a configuration of at least one of the queues,

wherein once sufficient resources are not available to increase one level of performance, at least one other level of performance is decreased to free the required sufficient resources.

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 053926 FRAME 0446 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0321 →
SECURITY INTEREST Recorded Sep 29, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 053926/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2020
From: KESHAVA, SUNIL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 053092/0011 →
Continuity (1)
Related Publication 20210405899A1 · Dec 30, 2021