Method of operating a data storage system having plural data pipes
First Claim
1. A method for transferring data between a host computer/server and a bank of disk drives through a system interface, such system interface having a plurality of storage processors, one portion of the storage processors having a user data port coupled to the host computer/server and another portion of the storage processors having a user data port coupled to the bank of disk drives, the method comprising:
- passing packets of user data between the plurality of storage processors via a packet switching network coupled to the plurality of storage processors, each one of the plurality of storage processors comprising;
a CPU section; and
a data pipe section coupled between the user data port and the packet switching network, such data pipe section comprising;
a plurality of data pipes, wherein the data pipes are initially void of any apriori assignment of priority; and
wherein the packets of user data at the user data port passes through the data pipes to the packet switching network;
placing the descriptors on one or more request rings each one of the descriptors being associated with a corresponding one of a plurality of user data I/O transfers, andwherein the ring manager;
selects one of the request rings to service next using a prioritized scheduling algorithm;
retrieves one of the descriptors from the selected one of the request rings;
determines which one or ones of the plurality of data pipes is available to process the selected descriptor;
selects the determined available one of the plurality of data pipes for a corresponding one of the plurality of user data I/O transfers;
wherein the selecting determined available one of the plurality of data pipes for a corresponding one of the plurality of user data I/O transfers comprises selecting the determined available one of the plurality of data pipes for a corresponding one of the plurality of user data I/O transfers; and
programming the selected one of the data pipes in accordance with the retrieved descriptors to control the flow of the user data associated with the corresponding user data I/O transfer passing through such selected one of the data pipes.
9 Assignments
0 Petitions
Accused Products
Abstract
A data storage system having protocol controller for converting packets between PCIE format used by a storage processor and Rapid IO format used by a packet switching network. The controller includes a PCIE end point for transferring atomic operation (DSA) requests, a data pipe section having a plurality of data pipes for passing user data; and a message engine section for passing messages among the plurality of storage processors. An acceleration path controller bypasses a DSA buffer in the absence of congestion on the network. Packets fed to the PCIE end point include an address portion having code indicating an atomic operation. An encoder converts the code from a PCIE format into the same atomic operation in SRIO format. Each one of a plurality of CPUs is adapted to perform a second DSA request during execution of a first DSA request.
36 Citations
14 Claims
-
1. A method for transferring data between a host computer/server and a bank of disk drives through a system interface, such system interface having a plurality of storage processors, one portion of the storage processors having a user data port coupled to the host computer/server and another portion of the storage processors having a user data port coupled to the bank of disk drives, the method comprising:
-
passing packets of user data between the plurality of storage processors via a packet switching network coupled to the plurality of storage processors, each one of the plurality of storage processors comprising; a CPU section; and a data pipe section coupled between the user data port and the packet switching network, such data pipe section comprising; a plurality of data pipes, wherein the data pipes are initially void of any apriori assignment of priority; and wherein the packets of user data at the user data port passes through the data pipes to the packet switching network; placing the descriptors on one or more request rings each one of the descriptors being associated with a corresponding one of a plurality of user data I/O transfers, and wherein the ring manager; selects one of the request rings to service next using a prioritized scheduling algorithm; retrieves one of the descriptors from the selected one of the request rings; determines which one or ones of the plurality of data pipes is available to process the selected descriptor; selects the determined available one of the plurality of data pipes for a corresponding one of the plurality of user data I/O transfers; wherein the selecting determined available one of the plurality of data pipes for a corresponding one of the plurality of user data I/O transfers comprises selecting the determined available one of the plurality of data pipes for a corresponding one of the plurality of user data I/O transfers; and programming the selected one of the data pipes in accordance with the retrieved descriptors to control the flow of the user data associated with the corresponding user data I/O transfer passing through such selected one of the data pipes. - View Dependent Claims (2, 3, 11, 14)
-
-
4. A method for transferring data between a host computer/server and a bank of disk drives through a system interface, such system interface having a plurality of storage processors, one portion of the storage processors having a user data port coupled to the host computer/server and another portion of the storage processors having a user data port coupled to the bank of disk drives, the method comprising:
-
passing packets of user data between the plurality storage processors via a packet switching network coupled to the plurality of storage processors, each one of the plurality of storage processors comprising; a CPU section; a ring manager; and a plurality of data pipes with non-pre-assigned priorities coupled between the user data port and the packet switching network, each one of such data pipes comprising; a data pipe manager controlling such one of the data pipes in response to descriptors produced by the CPU section and passed to the ring manager, the user data at the user data port passing through such one of the data pipes, such one of the data pipes being controlled by the data pipe manager in response to the descriptors passed to the ring manager; operating the ring manager to; select one of the request rings to service next using a prioritized scheduling algorithm; retrieve one of the descriptors from the selected one of the request rings; determine which one or ones of the plurality of data pipes is available to process the selected descriptor; select the determined available one of the plurality of data pipes with non-pre-assigned priorities for a corresponding one of the plurality of user data I/O transfers; pass the retrieved one of the descriptors associated with the corresponding one of the user data I/O transfers to the data pipe manager of the selected one of the data pipes; and wherein the data pipe manger of the selected one of the data pipes examines such one of the retrieved descriptors and controls the selected one of the data pipes in accordance with the one of the retrieved descriptors. - View Dependent Claims (5, 6, 7, 8, 9, 10)
-
-
12. A method for transferring data between a host computer/server and a bank of disk drives through a system interface, such system interface having a plurality of storage processors, one portion of the storage processors having a user data port coupled to the host computer/server and another portion of the storage processors having a user data port coupled to the bank of disk drives, the method comprising:
-
passing packets of user data between the plurality storage processors via a packet switching network coupled to the plurality of storage processors, each one of the plurality of storage processors comprising; a CPU section; and a data pipe section coupled between the user data port and the packet switching network, such data pipe section comprising; a plurality of data pipes with non-pre-assigned priorities, a ring manager, wherein the packets of user data at the user data port passes through the data pipes to the packet switching network; placing the descriptors on one or more request rings, each one of the descriptors being associated with a corresponding one of a plurality of user data I/O transfers; determining which one or ones of the plurality of data pipes is available to process a selected one of the descriptors; selecting the determined available one of the plurality of data pipes with non-pre-assigned priorities for a corresponding one of the plurality of user data I/O transfers; configuring the selected one of the data pipes in accordance with the one of the selected descriptors; and controlling the flow of the user data associated with the user data I/O transfer passing through such selected one of the data pipes in accordance with the selected descriptor.
-
-
13. A method for transferring data between a host computer/server and a bank of disk drives through a system interface, such system interface having a plurality of storage processors, one portion of the storage processors having a user data port coupled to the host computer/server and another portion of the storage processors having a user data port coupled to the bank of disk drives, the method comprising:
-
passing packets of user data between the plurality storage processors via a packet switching network coupled to the plurality of storage processors, each one of the plurality of storage processors comprising; a CPU section; and a data pipe section coupled between the user data port and the packet switching network, such data pipe section comprising; a plurality of data pipes with non-pre-assigned priorities, and wherein the packets of user data at the user data port passes through the data pipes to the packet switching network; placing the descriptors on one or more request rings, each one of the descriptors being associated with a corresponding one of a plurality of user data I/O transfers; determining which one or ones of the plurality of data pipes is available to process a selected one of the descriptors; selecting the determined available one of the plurality of the non-pre-assigned prioritized data pipes for a corresponding one of the plurality of user data I/O; configuring the selected one of the data pipes in accordance with the one of the selected descriptor; and controlling the flow of the user data associated with the user data I/O transfer passing through such selected one of the data pipes in accordance with the selected descriptor.
-
Specification