IP Library Granted Patent US 8,209,439
Granted Patent B2
US 8,209,439 · App. 12/198,546 · Granted Jun 26, 2012

Managing multiple concurrent operations with various priority levels in a local storage device

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 8,209,439
App. No.
12/198,546
Granted
Jun 26, 2012
Kind
B2
Abstract

Techniques for rendering the management of processes supported by a storage device are described. In particular, the efficient allocation of storage array processing resources when managing concurrent processes on a storage array is described.

Claims (67)

1. A memory device, comprising:

a data storage array; and

a data storage array manager arranged to

conduct communication with a host device to determine host capabilities and identify negotiable terms;

conduct negotiations with the host device to establish negotiated operational constraints for said negotiable terms to establish an operating contract between the memory device and the host device in communication with the memory device;

manage a pending management command corresponding to a requested data storage array process received by the memory device from the host device is managed by the data storage array manager based upon relevant terms of the operating contract wherein at least some of the terms are based on operating constraints of the memory device and an associated host device; and

wherein the priority of various operations are negotiated for negotiable terms to form new operating contracts that determine priorities for said operations wherein said priorities determine an order of execution for said operations and wherein said priorities are subject to change based on changing local storage device operational conditions.

2. A memory device as recited in claim 1 , wherein if the operating contract is a static operating contract, then substantially all of the operating terms of the static operating contract are non-negotiable, otherwise wherein if at least one of the terms of the operating contract is a negotiable term, then the negotiable term is established during a negotiation session between the memory device and the host device.

3. A memory device as recited in claim 2 , further comprising:

an operations contract manager that interprets the relevant terms of the operating contract and based upon the interpretation instructs the data storage array manager to act accordingly.

4. A memory device as recited in claim 3 , wherein the operations contract manager monitors the data storage array for quality of service (QoS) parameters included in the operating contract.

5. A memory device as recited in claim 3 , wherein the operations contract manager directs the data storage array manager to halt a currently active data storage array process in favor of the requested data storage array process based upon the relevant terms of the operating contract.

6. A memory device as recited in claim 5 , wherein the halted data storage array is suspended.

7. A memory device as recited in claim 2 , wherein the negotiation session is conducted during an initial handshaking operation between the host device and the memory device.

8. A memory device as recited in claim 2 , wherein the negotiation session is conducted during runtime.

9. A memory device as recited in claim 1 , wherein said operating constraints comprises at least one of priority levels and guaranteed ready times from freeze, and associated sets of QoS parameters.

10. A memory device as recited in claim 1 , wherein said data storage manager is configured to negotiate the negotiable terms used to establish the operational constraints of the operation contract between the memory device and an associated host device and wherein said terms include negotiated priority levels for functions supported by the memory device set during a negotiation session between the memory device and the host device.

11. A memory device as recited in claim 10 wherein said negotiated priority levels take into consideration terms that include a guaranteed ready time for functions supported by the memory device set during a negotiation session between the memory device and the host device.

12. A memory device as recited in claim 10 wherein said negotiated priority levels take into consideration terms that include quality of service parameters (QoS) for functions supported by the memory device set during a negotiation session between the memory device and the host device.

13. A memory device as recited in claim 10 , wherein said data storage array manager further enables negotiations to occur when there is a need for renegotiation of the priority levels for functions supported by the memory device set during a prior negotiation session between the memory device and the host device.

14. A memory device as recited in claim 1 , wherein said data storage array manager further enables further negotiations of operating contract terms when there is a change in QoS parameters for at least one of a the memory device and the host device thereby establishing a renegotiated operating contract.

15. A memory device as recited in claim 1 , wherein said data storage array manager further enables negotiations to occur when an application is added to or removed from one of the memory storage device and the host device.

16. A memory device as recited in claim 1 , wherein said data storage array manager further enables negotiations to occur when an application is added to or removed from one of the memory storage device and the host device.

17. A system, comprising;

a host device; and

a memory device in communication with the host device, wherein the memory device comprises:

a data storage array; and

a data storage array manager arranged to manage the data storage array based upon an operating contract established between the memory device and the host device, wherein a pending management command corresponding to a requested data storage array process received by the memory device from the host device is managed by the data storage array manager based upon relevant terms of the operating contract

wherein at least some of the terms of the operating contract are altered by negotiation session, and

wherein the priority of various operations are negotiated for negotiable terms to form new operating contracts that determine priorities for said operations wherein said priorities determine an order of execution for said operations and wherein said priorities are subject to change based on changing local storage device operational conditions.

18. A system as recited in claim 17 , wherein if the operating contract is a static operating contract, then substantially all of the operating terms of the static operating contract are non-negotiable, otherwise wherein if at least one of the terms of the operating contract is a negotiable term, then the negotiable term is established during the negotiation session between the memory device and the host device.

19. A system as recited in claim 18 , further comprising:

a operations contract manager that interprets the relevant terms of the operating contract and based upon the interpretation instructs the data storage array manager to act accordingly.

20. A system as recited in claim 19 , wherein the operations contract manager monitors the data storage array for quality of service (QoS) parameters included in the operating contract.

21. A system as recited in claim 19 , wherein the operations contract manager directs the data storage array manager to halt a currently active data storage array process in favor of the requested data storage array process based upon the relevant terms of the operating contract.

22. A system as recited in claim 21 , wherein the halted data storage array process is aborted.

23. A system as recited in claim 21 , wherein the halted data storage array is suspended.

24. A system as recited in claim 18 , wherein the negotiation session is conducted during an initial handshaking operation between the host device and the memory device.

25. A system as recited in claim 18 , wherein the negotiation session is conducted during runtime.

26. A method of managing concurrent operations with various priority levels in a local storage device, comprising:

at the local storage device, wherein the local storage device includes at least a data storage array and a data storage array manager,

managing the data storage array based upon an operating contract established between the memory device and a host device in communication with the memory device, wherein a pending management command corresponding to a requested data storage array process received by the memory device from the host device is managed by the data storage array manager based upon relevant terms of the operating contract wherein at least some of the terms of the operating contract are altered by a negotiation session; and

wherein the priority of various operations are negotiated for negotiable terms to form new operating contracts that determine priorities for said operations wherein said priorities determine an order of execution for said operations and wherein said priorities are subject to change based on changing local storage device operational conditions.

27. A method as recited in claim 26 , wherein if the operating contract is a static operating contract, then substantially all of the operating terms of the static operating contract are non-negotiable, otherwise wherein if at least one of the terms of the operating contract is a negotiable term, then the negotiable term is established during the negotiation session between the memory device and the host device.

28. A method as recited in claim 27 , further comprising:

by an operations contract manager,

interpreting the relevant terms of the operating contract; and

instructing the data storage array manager to act accordingly.

29. A method as recited in claim 28 , wherein the operations contract manager monitors the data storage array for quality of service (QoS) parameters included in the operating contract, wherein the QoS parameters include latency and performance.

30. A method as recited in claim 28 , wherein the operations contract manager directs the data storage array manager to halt a currently active data storage array process in favor of the requested data storage array process based upon the relevant terms of the operating contract.

31. A method as recited in claim 30 , wherein the halted data storage array process is aborted.

32. A method as recited in claim 30 , wherein the halted data storage array is suspended.

33. A method as recited in claim 27 , wherein the negotiation session is conducted during an initial handshaking operation between the host device and the memory device.

34. A method as recited in claim 27 , wherein the negotiation session is conducted during runtime.

35. A memory device, comprising:

a data storage array;

a data storage array manager arranged to manage the data storage array based upon an operating contract established between the memory device and a host device in communication with the memory device, wherein a pending management command corresponding to a requested data storage array process received by the memory device from the host device is managed by the data storage array manager based upon relevant terms of the operating contract wherein at least some of the terms of the operating contract are altered by a negotiation session;

wherein the priority of various operations are negotiated for negotiable terms to form new operating contracts that determine priorities for said operations wherein said priorities determine an order of execution for said operations and wherein said priorities are subject to change based on changing local storage device operational conditions; and

wherein the data storage array manager determines whether a currently active process is one of suspended or aborted.

36. A memory device as recited in claim 35 wherein the data storage array manager determines whether a currently active process is one of suspended or aborted based upon relevant terms of the operating contract.

37. A memory device as recited in claim 35 wherein the data storage array manager determines that currently active process is aborted based upon a determination as to whether it will be faster to abort the active process entirely or to suspend and restart the active process.

38. A memory device, comprising:

a data storage array; and

a data storage array manager arranged to manage the data storage array based upon an operating contract established between the memory device and a host device in communication with the memory device, wherein a pending management command corresponding to a requested data storage array process received by the memory device from the host device is managed by the data storage array manager based upon relevant terms of the operating contract; and

wherein if at least one of the terms of the operating contract is a negotiable term, then the negotiable term is established during a negotiation session between the memory device and the host device wherein at least some of the terms of the operating contract are altered by a negotiation session;

wherein the priority of various operations are negotiated for negotiable terms to form new operating contracts that determine priorities for said operations wherein said priorities determine an order of execution for said operations and wherein said priorities are subject to change based on changing local storage device operational conditions.

39. A memory device as recited in claim 38 wherein the operational constraints can include at least one of a static priority level, guaranteed ready time from freeze, or an associated set of quality of service (quality of service) parameters.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2024
From: WESTERN DIGITAL ISRAEL, LTD.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069267/0794 →
CHANGE OF NAME Recorded Aug 21, 2020
From: SANDISK IL LTD
To: WESTERN DIGITAL ISRAEL LTD
Reel/Frame 053574/0513 →