Controller communications over an always-on controller interconnect
First Claim
1. A disk array comprising:
- at least two controller pairs, each controller pair having a first controller coupled to a second controller through a mirror bus; and
a controller loop coupling all controllers through a plurality of loop buses.
3 Assignments
0 Petitions
Accused Products
Abstract
A controller interconnect structure within a RAID disk array enables continuous low latency/high bandwidth communications between a plurality of controller pairs within the array. Mirror buses carry high speed mirror traffic between mirrored controllers performing mirrored memory operations. Loop buses carry inter-processor communications and other traffic between controller pairs coupled together in a controller loop. Benefits of the interconnect structure include an ability to support continued controller communications and online disk array operations under various failure and repair conditions that might otherwise render a disk array inoperable. In addition, the controller interconnect structure provides for easy expansion of the number of controllers within disk arrays as arrays continue to be scaled up in size to meet increasing storage demands from user host systems.
19 Citations
40 Claims
-
1. A disk array comprising:
-
at least two controller pairs, each controller pair having a first controller coupled to a second controller through a mirror bus; and
a controller loop coupling all controllers through a plurality of loop buses. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A disk array comprising:
-
at least two controller pairs, each controller pair having a first controller coupled to a second controller through a mirror bus; and
a controller loop coupling all controllers through a plurality of loop buses and at least one mirror bus.
-
-
11. A controller interconnect structure in a disk array comprising:
-
a plurality of controllers;
a plurality of communications buses operatively coupling the plurality of controllers to one another, each communications bus partitioned into a first half and a second half;
a first interconnect to which each of the plurality of controllers is coupled, the first interconnect conveying the first half of the plurality of communications buses; and
a second interconnect to which each of the plurality of controllers is coupled, the second interconnect conveying the second half of the plurality of communications buses. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A controller interconnect structure comprising:
-
a first controller level having at least two controller pairs, each controller pair having a first controller coupled to a second controller through a mirror bus; and
a first controller loop coupling all controllers on the first controller level through a plurality of loop buses. - View Dependent Claims (20)
-
-
21. A processor-readable medium comprising processor-executable instructions configured for:
-
determining a destination controller pair for a data packet based on a host address for the data packet and an array mapping of the host address to an array address; and
initially sending the data packet over a controller loop toward the destination controller pair in a first direction determined by a data header and a routing instruction. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A processor-readable medium comprising processor-executable instructions configured for:
-
receiving at a first controller, a data packet that is destined for a controller pair;
attaching a header to the data packet;
accessing from a routing register, a routing instruction associated with the header; and
based on the routing instruction, sending the data packet over a controller loop in a first direction to a first mirrored controller of the two mirrored controllers in the controller pair. - View Dependent Claims (27, 28, 29)
-
-
30. A processor-readable medium comprising processor-executable instructions configured for:
-
receiving at a first controller in a first controller level, data that is destined for a second level controller pair located in a second controller level;
sending the data over a first level controller loop to a first level controller pair that corresponds to the second level controller pair; and
further sending the data from the first level controller pair to the second level controller pair via a loop bus that couples the first controller level to the second controller level. - View Dependent Claims (31, 32, 33)
-
-
34. A processor-readable medium comprising processor-executable instructions configured for:
-
receiving data at a first controller in a first controller level;
sending the data from the first controller to a second level controller pair via a loop bus that couples the first controller level to a second controller level; and
further sending the data over a second level controller loop to a destination controller pair in the second controller level.
-
-
35. A method of routing data between controller pairs in a multi-controller disk array comprising:
-
determining a destination controller pair for a data packet based on a host address for the data packet and an array mapping of the host address to an array address; and
initially sending the data packet over a controller loop toward the destination controller pair in a first direction determined by a data header and a routing instruction. - View Dependent Claims (36)
-
-
37. A method of routing data between controller pairs in a multi-controller disk array comprising:
-
receiving at a first controller, a data packet that is destined for a controller pair;
attaching a header to the data packet;
accessing from a routing register, a routing instruction associated with the header; and
based on the routing instruction, sending the data packet over a controller loop in a first direction to a first mirrored controller of the two mirrored controllers in the controller pair. - View Dependent Claims (38)
-
-
39. A method of routing data between controller pairs in a multi-controller disk array comprising:
-
receiving at a first controller in a first controller level, data that is destined for a second level controller pair located in a second controller level;
sending the data over a first level controller loop to a first level controller pair that corresponds to the second level controller pair; and
further sending the data from the first level controller pair to the second level controller pair via a loop bus that couples the first controller level to the second controller level.
-
-
40. A method of routing data between controller pairs in a multi-controller disk array comprising:
-
receiving data at a first controller in a first controller level;
sending the data from the first controller to a second level controller pair via a loop bus that couples the first controller level to a second controller level; and
further sending the data over a second level controller loop to a destination controller pair in the second controller level.
-
Specification