IP Library › Granted Patent US 11,847,071
Granted Patent B2
US 11,847,071 · App. 17/565,569 · Granted Dec 19, 2023

Enabling communication between a single-port device and multiple storage system controllers

Inventor: Peter Kirkpatrick (Los Altos, CA)
Assignee: PURE STORAGE, INC.
G06F13/1663
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,847,071
App. No.
17/565,569
Granted
Dec 19, 2023
Kind
B2
Abstract

Enabling communication between multiple storage controllers and a single-ported storage device, including determining, by an arbiter, that a first storage system controller of a plurality of storage system controllers has gained exclusive access to a single-ported storage device having a plurality of lanes; and in response to the determination, enabling communication between the first storage system controller and the storage device; and preventing communication between the storage device and at least one other storage system controller of the plurality of storage system controllers.

Claims (39)

1. A method of enabling communication between multiple storage system controllers and a single-ported storage device, the method comprising:

determining, by an arbiter, that a first storage system controller has gained exclusive access to a single-ported storage device having a plurality of lanes; and

in response to the determination:

enabling, by the arbiter, communication between the first storage system controller and the storage device; and

preventing, by the arbiter, communication between the storage device and at least one other storage system controller of the plurality of storage system controllers.

2. The method of claim 1 , wherein the plurality of lanes includes a plurality of data lanes, and wherein enabling communication between the first storage system controller and the storage device includes enabling communication over one or more data lanes of the plurality of data lanes.

3. The method of claim 1 , wherein enabling communication between the first storage system controller and the storage device includes enabling communication of one or more sideband signals over one or more sideband channels.

4. The method of claim 1 , wherein the first storage system controller is an active storage system controller, further comprising enabling the active storage system controller to issue reset commands to the storage device.

5. The method of claim 1 , wherein an endpoint communication interface of the storage device is trained to communicate with a first communication interface of the first storage system controller in response to receiving a reset command from the first storage system controller.

6. The method of claim 1 , wherein the at least one other storage system controller is a passive storage system controller, further comprising preventing the passive storage system controller from issuing reset commands to the storage device.

7. The method of claim 1 , further comprising determining that the first storage system controller has gained exclusive access to the storage device using a software-based arbiter device.

8. The method of claim 1 , further comprising determining that the first storage system controller has gained exclusive access to the storage device using a hardware-based arbiter device.

9. The method of claim 1 , further comprising communicating reset commands between the plurality of storage system controllers and the storage device through a logical interface.

10. The method of claim 1 , further comprising communicating reset commands between the plurality of storage system controllers and the storage device through a multiplexer device.

11. The method of claim 1 , further comprising enabling communication between the first storage system controller and the storage device over a Peripheral Component Interconnect Express (PCIe) interface.

12. The method of claim 1 , further comprising enabling communication between the first storage system controller and the storage device over a Compute Express Link (CXL) interface.

13. A storage system comprising one or more central processing units (‘CPUs’), one or more storage devices, and a computer memory operatively coupled to a computer processor, the computer memory having disposed within it computer program instructions that, when executed, cause the storage system to carry out the steps of:

determining, by an arbiter, that a first storage system controller of a plurality of storage system controllers has gained exclusive access to a single-ported storage device having a plurality of lanes; and

in response to the determination:

enabling, by the arbiter, communication between the first storage system controller and the storage device; and

preventing, by the arbiter, communication between the storage device and at least one other storage system controller of the plurality of storage system controllers.

14. The storage system of claim 13 , wherein the plurality of lanes includes a plurality of data lanes, and wherein enabling communication between the first storage system controller and the storage device includes enabling communication over one or more data lanes of the plurality of data lanes.

15. The storage system of claim 13 , wherein enabling communication between the first storage system controller and the storage device includes enabling communication of one or more sideband signals over one or more sideband channels.

16. The storage system of claim 13 , wherein the first storage system controller is an active storage system controller, further comprising enabling the active storage system controller to issue reset commands to the storage device.

17. The storage system of claim 13 , wherein an endpoint communication interface of the storage device is trained to communicate with a first communication interface of the first storage system controller in response to receiving a reset command from the first storage system controller.

18. The storage system of claim 13 , wherein the at least one other storage system controller is a passive storage system controller, further comprising preventing the passive storage system controller from issuing reset commands to the storage device.

19. The storage system of claim 13 , further comprising computer program instructions that, when executed, cause the storage system to carry out the step of determining that the first storage system controller has gained exclusive access to the storage device using a software-based arbiter device.

20. The storage system of claim 13 , further comprising computer program instructions that, when executed, cause the storage system to carry out the step of determining that the first storage system controller has gained exclusive access to the storage device using a hardware-based arbiter device.

21. The storage system of claim 13 , further comprising computer program instructions that, when executed, cause the storage system to carry out the step of communicating reset commands between the plurality of storage system controllers and the storage device through a logical interface.

22. The storage system of claim 13 , further comprising computer program instructions that, when executed, cause the storage system to carry out the step of communicating reset commands between the plurality of storage system controllers and the storage device through a multiplexer device.

23. The storage system of claim 13 , further comprising computer program instructions that, when executed, cause the storage system to carry out the step of enabling communication between the first storage system controller and the storage device over a Peripheral Component Interconnect Express (PCIe) interface.

24. The storage system of claim 13 , further comprising computer program instructions that, when executed, cause the storage system to carry out the step of enabling communication between the first storage system controller and the storage device over a Compute Express Link (CXL) interface.

25. A computer program product disposed upon a non-transitory computer readable storage medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

determining that a first storage system controller of a plurality of storage system controllers has gained exclusive access to a single-ported storage device having a plurality of lanes; and

in response to the determination:

enabling communication between the first storage system controller and the storage device; and

preventing communication between the storage device and at least one other storage system controller of the plurality of storage system controllers.

26. The computer program product of claim 25 , wherein the plurality of lanes includes a plurality of data lanes, and wherein enabling communication between the first storage system controller and the storage device includes enabling communication over one or more data lanes of the plurality of data lanes.

27. The computer program product of claim 25 , wherein enabling communication between the first storage system controller and the storage device includes enabling communication of one or more sideband signals over one or more sideband channels.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2021
From: KIRKPATRICK, PETER
To: PURE STORAGE, INC.
Reel/Frame 058505/0840 →
Continuity (1)
Related Publication 20230214334A1 · Jul 6, 2023
Cited By (1)
US 12,579,035