Asynchronous discovery of initiators and targets in a storage fabric
First Claim
1. A method for detecting elements in a fabric, comprising:
- coupling an initiator device to a target device via an expander switch, the initiator device comprising a programmable processor and associated programming stored in a memory, the target device comprising a programmable processor, associated programming stored in a memory and a non-volatile memory (NVM);
activating a selected one of the initiator device or the target device as a first activated device prior to activating the remaining one of the initiator device or the target device as a second activated device;
broadcasting a discovery command by the second activated device responsive to the activation of the second activated device and prior to receipt of a request for the discovery command from the first activated device, the discovery command routed through the expander switch to multiple additional devices within the fabric;
using the first activated device to receive the broadcasted discovery command from the second activated device;
processing the discovery command received by the first activated device to establish an I/O communication link between the first activated device and the second activated device; and
using the initiator device to transfer data to and from the NVM of the target device across the fabric via the I/O communication link.
1 Assignment
0 Petitions
Accused Products
Abstract
Method and apparatus for asynchronous discovery of processing and storage nodes coupled via an expander switch in a fabric. In some embodiments, an initiator device operates as a processing node to transfer data to and from a non-volatile memory (NVM) of a target device at a storage node. One of the initiator or target devices is activated prior to the other device. The second activated device broadcasts a discovery command responsive to the activation of the second activated device and prior to receipt of a request for the discovery command from the first activated device. The first activated device processes the discovery command to establish an I/O communication link between the first activated device and the second activated device. The discovery command may include a non-volatile memory express (NVMe) controller list, and the NVM may be arranged as one or more NVMe namespaces.
28 Citations
20 Claims
-
1. A method for detecting elements in a fabric, comprising:
-
coupling an initiator device to a target device via an expander switch, the initiator device comprising a programmable processor and associated programming stored in a memory, the target device comprising a programmable processor, associated programming stored in a memory and a non-volatile memory (NVM); activating a selected one of the initiator device or the target device as a first activated device prior to activating the remaining one of the initiator device or the target device as a second activated device; broadcasting a discovery command by the second activated device responsive to the activation of the second activated device and prior to receipt of a request for the discovery command from the first activated device, the discovery command routed through the expander switch to multiple additional devices within the fabric; using the first activated device to receive the broadcasted discovery command from the second activated device; processing the discovery command received by the first activated device to establish an I/O communication link between the first activated device and the second activated device; and using the initiator device to transfer data to and from the NVM of the target device across the fabric via the I/O communication link. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus, comprising:
-
a target device comprising at least one programmable processor, associated programming stored in a memory and a non-volatile memory (NVM), the target device configured to store data to the NVM at a storage node of a fabric during an activated state of the target device, the target device further configured to, responsive to a transition of the target device from a deactivated state to the activated state, broadcast a discovery response across the fabric a first time, the discovery response comprising information that identifies a physical configuration of the NVM; an expander switch; and an initiator device coupled to the target device via the expander switch and comprising at least one programmable processor and associated programming stored in a memory, the initiator device configured to transfer data to and from the NVM across the fabric during an activated state of the initiator device and to, responsive to a transition of the initiator device from a deactivated state to the activated state, broadcast a discovery request across the fabric through the expander switch, the target device further configured to transmit the discovery response a second time responsive to receipt of the discovery request during the activated state of the initiator device, the target device further configured to establish an I/O communication link between the initiator device and the target device responsive to receipt, by the initiator device, of the discovery response from the target device. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A data storage device configured for discovery in a fabric, comprising:
-
a non-volatile memory (NVM) arranged into at least one non-volatile memory express (NVMe) namespace; and a control circuit configured to broadcast, across a fabric, a discovery command a first time responsive to transitioning of the data storage device from an inactive to an active state and prior to receipt of a request for the discovery command from an initiator device coupled to the data storage device using an expander switch of the fabric, the control circuit further configured to subsequently broadcast the discovery command a second time responsive to receipt of the request for the discovery command from the initiator device, the discovery command comprising an NVMe controller list that describes a physical configuration of the data storage device. - View Dependent Claims (19, 20)
-
Specification