Host bus adapter based scalable performance storage architecture
First Claim
1. A storage controller, comprising:
- a controller bus;
a controller memory coupled to the controller bus;
at least one central processing unit (CPU) coupled to the controller bus and configured to produce data routing information dependent upon a data transfer command; and
a host bus adapter coupled to the controller bus comprising a receive unit and a transmit unit adapted for coupling to a transmission medium, wherein the host bus adapter is coupled to receive the data routing information and configured to forward data associated with the data transfer command from the receive unit to the transmit unit dependent upon the data routing information and independent of the controller bus and the controller memory.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of a storage controller is described including a controller memory, one or more central processing units (CPUs), and a host bus adapter all coupled to a controller bus. The one or more CPUs are configured to produce data routing information dependent upon a data transfer command which directs a transfer of data between a host computer and one or more storage devices. The host bus adapter includes a receive unit and a transmit unit adapted for coupling to a transmission medium. The host bus adapter receives the data routing information, and forwards data associated with the data transfer command from the receive unit to the transmit unit dependent upon the data routing information such that the data associated with the data transfer command is not conveyed upon the controller bus and is not stored within the controller memory. As a result, the data transfer mechanism does not rely upon availability of the controller bus and/or the one or more CPUs, allowing independent scalability of input/output operations per second (IOPS) and data transfer rate of a storage system including the storage controller. Embodiments of storage and computer systems including the storage controller are also described.
-
Citations
23 Claims
-
1. A storage controller, comprising:
-
a controller bus;
a controller memory coupled to the controller bus;
at least one central processing unit (CPU) coupled to the controller bus and configured to produce data routing information dependent upon a data transfer command; and
a host bus adapter coupled to the controller bus comprising a receive unit and a transmit unit adapted for coupling to a transmission medium, wherein the host bus adapter is coupled to receive the data routing information and configured to forward data associated with the data transfer command from the receive unit to the transmit unit dependent upon the data routing information and independent of the controller bus and the controller memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A storage system, comprising:
-
at least one storage device;
a storage controller, comprising;
a controller bus;
a controller memory coupled to the controller bus;
a host bus adapter comprising a receive unit and a transmit unit, wherein the host bus adapter is coupled to the at least one storage device, to the controller bus, and coupled to receive a data transfer command, and wherein the host bus adapter is configured to;
(i) store the data transfer command within the controller memory, (ii) receive data routing information and store the data routing information within a host bus adapter memory, and (iii) forward data associated with the data transfer command from the receive unit to the transmit unit dependent upon the data routing information and independent of the controller bus and the controller memory; and
at least one central processing unit (CPU) coupled to the controller bus and configured to access the data transfer command within the controller memory and to produce the data routing information dependent upon the data transfer command. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A computer system, comprising:
-
a host computer;
at least one storage device;
a transmission medium coupled to the host computer and the at least one storage device;
a storage controller, comprising;
a controller bus;
a controller memory coupled to the controller bus;
a host bus adapter comprising a receive unit and a transmit unit coupled to the transmission medium, wherein the host bus adapter is coupled to the controller bus, and wherein the host bus adapter is configured to;
(i) receive a data transfer command from the host computer and store the data transfer command within the controller memory, (ii) receive data routing information and to store the data routing information within a host bus adapter memory, and (iii) forward data associated with the data transfer command from the receive unit to the transmit unit dependent upon the data routing information and independent of the controller bus and the controller memory; and
at least one central processing unit (CPU) coupled to the controller bus and configured to access the data transfer command within the controller memory and to produce the data routing information dependent upon the data transfer command. - View Dependent Claims (18, 19, 20)
-
-
21. A method for conveying data within a storage system, comprising:
-
providing a storage controller comprising a host bus adapter and a controller memory coupled to a controller bus, wherein the host bus adapter comprises a receive unit, a transmit unit, and a host bus adapter memory;
coupling the receive and transmit units of the host bus adapter to a host computer and at least one storage device;
receiving a data transfer command from the host computer;
generating data routing information within the storage controller dependent upon the data transfer command;
storing the data routing information within the host bus adapter memory; and
forwarding data associated with the data transfer command from the receive unit to the transmit unit of the host bus adapter dependent upon the data routing information and independent of the controller bus and the controller memory.
-
-
22. In a storage system comprising a storage controller, wherein the storage controller comprises a command processor and a host adapter coupled together by a controller bus, a method for conveying data within the storage system, comprising:
-
the host adapter receiving a data transfer command from a host computer coupled to the host adapter;
the host adapter conveying the data transfer command to the command processor on the controller bus;
the command processor generating data routing information dependent upon the data transfer command, and conveying the data routing information to the host adapter on the controller bus;
the host adapter receiving data for the data transfer command from one or more storage devices and forwarding the data to the host computer so that the data is conveyed from the one or more storage devices to the host computer without being conveyed on the controller bus or to the command processor.
-
-
23. In a storage system comprising a storage controller, wherein the storage controller comprises a command processor and a host adapter coupled together by a controller bus, a method for conveying data within the storage system, comprising:
-
the host adapter receiving a data transfer command from a host computer coupled to the host adapter;
the host adapter conveying the data transfer command to the command processor on the controller bus;
the command processor translating the data transfer command into one or more device data transfer commands, and conveying the device data transfer commands to the host adapter on the controller bus;
the host adapter forwarding the device data transfer commands to one or more storage devices; and
the host adapter receiving data in response to the device data transfer commands and forwarding the data to the host computer so that the data is conveyed from the one or more storage devices to the host computer without being conveyed on the controller bus or to the command processor.
-
Specification