Designing interconnect fabrics

Information

  • Patent Grant
  • 7000011
  • Patent Number
    7,000,011
  • Date Filed
    Monday, November 6, 2000
    24 years ago
  • Date Issued
    Tuesday, February 14, 2006
    18 years ago
  • CPC
  • US Classifications
    Field of Search
    • US
    • 709 220-224
    • 709 243000
    • 709 204000
    • 709 236000
    • 709 238000
    • 709 245000
    • 709 250000
    • 709 242000
    • 709 227000
    • 709 230000
    • 709 241000
    • 709 203000
    • 709 228000
    • 709 231000
    • 709 253000
    • 714 004000
    • 714 774000
    • 455 572000
    • 370 235000
    • 370 255000
    • 370 360000
    • 370 399000
    • 370 465000
    • 370 242000
    • 370 231000
    • 370 395000
    • 370 352000
    • 370 388000
    • 370 442000
    • 370 216000
    • 370 368000
    • 370 241000
    • 370 392000
    • 398 002000
    • 707 103000
    • 379 220000
    • 711 141000
    • 716 012000
    • 716 015000
    • 713 153000
    • 703 013000
    • 718 104000
    • 710 204000
    • 710 023000
    • 710 104000
    • 717 011000
    • 717 130000
    • 340 825000
    • 726 003000
  • International Classifications
    • G06F15/177
    • Disclaimer
      This patent is subject to a terminal disclaimer.
      Term Extension
      817
Abstract
A method for designing an interconnect fabric for communication between a set of source nodes and a set of terminal nodes. The method partitions the flow requirements of the interconnect fabric into flow-sets and merges the flow-sets to reduce insensibilities with respect to available ports on source and terminal nodes while taking into account costs and feasibility of implementation.
Description
BACKGROUND OF THE INVENTION

1. Field of Invention


The present invention pertains to the field of networks. More particularly, this invention relates to designing interconnect fabrics of networks.


2. Art Background


A wide variety of networks may be viewed as a set of source nodes that communicate with a set of terminal nodes via an interconnect fabric. For example, a storage area network may be arranged as a set of computers as source nodes which are connected to a set of storage devices as terminal nodes via an interconnect fabric that includes communication links and devices such as hubs, routers, switches, etc. Devices such as hubs, routers, switches, etc., are hereinafter referred to as interconnect devices.


The communication requirements of an interconnect fabric may be characterized in terms of a set of flow requirements. A typical set of flow requirements specify the required communication bandwidth from each source node to each terminal node. The design of an interconnect fabric usually involves selecting the appropriate arrangement of physical communication links and interconnect devices and related components that will meet the flow requirements.


Prior methods for designing interconnect fabrics are usually based on manual design techniques. Such manual techniques may be based on heuristics and/or prepackaged structures. Unfortunately, such techniques are usually error prone and may result in an over-provisioned interconnect fabric that is more expensive than needed to meet the flow requirements. Moreover, such techniques are usually time-consuming and may require expert intervention, thereby increasing design costs.


SUMMARY OF THE INVENTION

A method is disclosed for designing an interconnect fabric for communication between a set of source nodes and a set of terminal nodes. The method partitions the flow requirements of the interconnect fabric into flow-sets and merges the flow-sets to reduce port violations with respect to available ports on source and terminal nodes while taking into account costs and feasibility of implementation.


In one embodiment, the method includes the steps of determining an arrangement of flow-sets in the interconnect fabric in response to a set of flow requirements for the source and terminal nodes. The method also includes determining one or more port violations in the source and terminal nodes which are associated with the arrangement of flow-sets and then alleviating at least one of the port violations by merging a pair of the flow-sets. The step of alleviating may be performed iteratively while taking into account the feasibility and costs of merging pairs of flow-sets.


Other features and advantages of the present invention will be apparent from the detailed description that follows.





BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is described with respect to particular exemplary embodiments thereof and reference is accordingly made to the drawings in which:



FIG. 1 shows a method for designing an interconnect fabric according to the present teachings;



FIGS. 2–6 shows an evolving arrangement of flow-sets in an interconnect fabric for an example design according to the present teachings;



FIG. 7 shows a fabric design tool that employs the present techniques to generate an interconnect fabric design in response to a set of design information.





DETAILED DESCRIPTION


FIG. 1 shows a method 200 for designing an interconnect fabric according to the present teachings. The method 200 partitions the flow requirements of the interconnect fabric into flow-sets and iteratively merges the flow-sets while taking into account the feasibility and cost of the implementing the interconnect fabric.


At step 20, an arrangement of flow-sets in the interconnect fabric is determined in response to a set of flow requirements for the source and terminal nodes. In one embodiment, step 20 is performed by generating a flow-set for each flow specified in the flow requirements for the interconnect fabric.


Table 1 shows an example set of flow requirements for an interconnect fabric under design.













TABLE 1







Terminal
Terminal
Terminal



Node 50
Node 52
Node 54





















Source
a
b
c



Node 40



Source
d
e
f



Node 42



Source

g
h



Node 44










The flow requirements in this example specify three source nodes (source nodes 4044 in the figure below) and three terminal nodes (terminal nodes 5054 in the figures below). If an interconnect fabric is to meet the flow requirements, it must contain communication paths between all pairs of the source and terminal nodes 4044 and 5054 having positive flow requirements and must have sufficient bandwidth to support all of the flow requirements simultaneously.


In one embodiment, the source nodes 4044 are host computers and terminal nodes 5052 are storage devices and the bandwidth values a–h are numbers expressed in units of megabits per second.


In other embodiments, there may be multiple flow requirements between a given source and terminal node pair. In such embodiments, the cells of Table 1 would contain a list of two or more entries.



FIG. 2 shows an initial arrangement of flow-sets in the interconnect fabric obtained at step 20 for this example. Initially, a flow-set is generated for each flow set forth in the flow requirements. Accordingly, a flow-set having a flow of a is generated for a connection between the source node 40 and the terminal node 50, a flow-set having a flow of b is generated for a connection between the source node 40 and the terminal node 52, and a flow-set having a flow of c is generated for a connection between the source node 40 and the terminal node 54. Similarly, flow-sets having flows of d, e, and f, respectively, are generated for connections from the source node 42 to the terminal nodes 5054 and flow-sets having flows of g and h, respectively, are generated for connections from the source node 44 to the terminal nodes 5254.


At step 22, port violations which are associated with the arrangement of flow-sets in the interconnect fabric are determined. Port violations are determined for each source node 4042 and each terminal node 5052. In general, the number of port violations for a node is equal to the sum, over all flow-sets, of the number of required physical communication links to the node from that flow-set, minus the number of available ports in the node because each flow-set may require one or more physical communication links to a given source or terminal node in the network. In this example, the number of port violations for a node is equal to the number of flow-sets connected to the node minus the number of available ports in the node because each flow-set is carried by one physical communication link in the interconnect fabric.


In this example, each source node 4042 and each terminal node 5052 has two available ports for connections to the interconnect fabric. Therefore, the source node 40 has a port violation of one since each of its three flow-sets requires one physical communication link to the source node 40 and the source node 40 has only two available ports. Similarly, the source nodes 4244 have port violations of one and zero, respectively, and the terminal nodes 5054 have port violations of zero, one, and one, respectively, in the interconnect fabric. In other examples, the number of available ports on the source nodes 4042 and the terminal nodes 5052 may differ and the number of physical communication links required by a flow-set on a given source or terminal node it connects to may exceed one.


At step 24, at least one of the port violations is alleviated by merging a pair of the flow-sets. Step 24 initially involves selecting the pair of flow-sets in the current interconnect fabric that are to be merged. Initially, a candidate pair of flow-sets is chosen that would alleviate the port violation on a node with the greatest port violation if merged. If there is more than one such candidate pair then one of the candidate pairs that alleviates a port violation on a node having the next greatest port violation is chosen from among them. If there is more than one such candidate pair then a pair of them that would be least costly to merge is chosen. The cost of merging two candidate pairs may be determined by choosing the least expensive interconnect device that is feasible for the merged flow-set.


In the current state of the example interconnect fabric shown in FIG. 2, the source nodes 4042 and the terminal nodes 5254 each have a port violation of one, which is the worst port violation in the network, and their corresponding flow-sets are candidates for merging at step 24. For example, the pair of flow-sets having flows a and b or the pair of flow-sets having flows a and c or the pair of flow-sets having flows b and c are chosen as candidate pairs. All of these candidate pairs if merged would alleviate one port violation from the source node 40 but none of them would alleviate any other port violations. The same may be said for mergers of any two of the flow-sets having flows d, e, and f, any two of the flow-sets having flows b, e, and g, and any two of the flow-sets having flows c, f, and h. Therefore, the cost of merging the candidate pairs is used to select the candidate pair of flow-sets having flows b and c for merger at step 24. For example, the communication link and/or interconnect device and/or ports that are used to merge the flow-sets having flows b and c may be less expensive than the equivalent components needed to merge the other equally qualified candidate pairs.


The candidate pairs of flow-sets considered at step 24 must be feasible to merge. An example of a pair of flow-sets that is not feasible to merge is a pair for which an interconnect device of sufficient bandwidth is not available. For example, a flow-set having 60 units of bandwidth cannot be merged with a flow-set having 50 units of bandwidth if the highest bandwidth interconnect device available is 100 units. Another example of a pair of flow-sets that is not feasible to merge is a pair that would exceed the available ports on every available interconnect device of the resulting flow-set. Candidate pairs that are not feasible to merge are bypassed at step 24 in favor of other candidate pairs.


If port violations still exist in the interconnect fabric after step 24, then another candidate pair of flow-sets is selected and merged in a repeat of step 24. The method 200 loops through steps 2224 in an iterative fashion until all port violations are eliminated or until no further merges are feasible.



FIG. 3 shows an interconnect fabric that results from the first pass through step 24. A flow-set having an interconnect device 160, a flow of b, and a flow of c is the result of the merger of the flow-set having the flow of b and the flow-set having the flow of c. At this point, the interconnect fabric has a port violation of one at the source node 42 and a port violation of one at each of the terminal nodes 52 and 54. The next pass through step 24 results in the selection and merger of the flow-set corresponding to the interconnect device 160 with the flow-set having the flow of e which will alleviate the port violation of the terminal node 52.



FIG. 4 shows an interconnect fabric that results from the second pass through step 24. The flow-set corresponding to the interconnect device 160 now carries the flow of e in addition to the flows of b and c. At this point, the interconnect fabric has a port violation of one at the source node 42 and a port violation of one at the terminal node 54. The next pass through step 24 results in the selection and merger of the flow-set having the flow of f with the flow-set corresponding to the interconnect device 160 which will alleviate the port violation of the source node 42 as well as the port violation of the terminal node 54.



FIG. 5 shows an interconnect fabric that results from the third pass through step 24. The flow-set corresponding to the interconnect device 160 now carries the flow of f as well as the flows b, c, and e. At this point, the interconnect fabric has no port violation remaining. However, a cost saving may be obtained by merging the flow-set having the flow of a into the flow-set corresponding to the interconnect device 160. That merger would obviate the need for a communication link between the source node 40 and the terminal node 50, replacing that link with one between the interconnect node 160 and the terminal node 50, and thereby saving the costs associated with a port on the source node 40 in exchange for the lower costs, in this example, of a port on the interconnect node 160.



FIG. 6 shows an interconnect fabric that results from merging the flow-set having the flow of a into the flow-set corresponding to the interconnect device 160. The flow-set corresponding to the interconnect device 160 now includes the flow a in addition to the flows of b, c, e, and f. At this point, the interconnect fabric has no port violation remaining and no remaining opportunities for cost saving.


Each flow-set has at most one interconnect device associated with it and all of the flows for the flow-set are routed through that interconnect device or a single communication link if possible. When a pair of flow-sets are merged, their existing interconnect devices, if any, are replaced by a single interconnect device which may be of a different type than the replaced interconnect devices. Usually, the interconnect device that results in the least expensive routing of the flows in the flow-set is chosen from among those interconnect devices that are feasible for the flow-set.



FIG. 7 shows a system having a fabric design tool 100 that employs the method 200 to generate an interconnect fabric design 120 in response to a set of design information 130. The fabric design tool 100 may be implemented in software. The design information 130 in one embodiment includes a set of flow requirements data 110, a set of port availability data 112, a set of bandwidth data 114, and a set of cost data 116. The design information may be implemented as an information store such as a file or set of files, a database or databases, etc.


The flow requirements data 110 specifies the desired flow requirements for the interconnect fabric design 120. The desired flow requirements include a list of source nodes, a list of terminal nodes and one or more bandwidth requirements for each pairing of the source and terminal nodes.


The port availability data 112 specifies the number of communication ports available on each source node and each terminal node and each available interconnect device.


The available component data 114 specifies a list of available communication links that may be employed in the interconnect fabric design 120 and specifies the bandwidth provided by each and any other relevant constraints. There are numerous examples of available communication links including fiber optic links, fibre channel links, wire-based links, and links such as SCSI as well as wireless links. The available component data 114 also specifies a list of available interconnect devices such as switching hubs, repeaters, etc., and port bandwidth, device bandwidth, and other relevant information.


The cost data 116 specifies costs associated with the available communication links and interconnect devices that may be employed in the interconnect fabric design 120. The cost data 116 also specifies the costs of ports for source and terminal nodes and interconnect devices. Other relevant costs may also be indicated.


The interconnect fabric design 120 generated by the fabric design tool 100 includes a list of the physical communication links and interconnect devices and ports, etc. and may include cost data.


The foregoing detailed description of the present invention is provided for the purposes of illustration and is not intended to be exhaustive or to limit the invention to the precise embodiment disclosed. Accordingly, the scope of the present invention is defined by the appended claims.

Claims
  • 1. A method, comprising: designing an interconnect fabric for communication between a set of source nodes and a set of terminal nodes by:generating an arrangement of flow-sets in the interconnect fabric in response to a set of flow requirements for the source and terminal nodes;determining one or more port violations in the source and terminal nodes which are associated with the arrangement of flow-sets;alleviating at least one of the port violations by merging a pair of the flow-sets, wherein the step of alleviating at least one of the port violations by merging a pair of the flow-sets is repeated to complete the design of the interconnect fabric.
  • 2. The method of claim 1, wherein the step of generating an arrangement of flow-sets comprises the step of generating a flow-set for each flow requirement for the source and terminal nodes.
  • 3. The method of claim 1, wherein for each source and terminal node the step of determining one or more port violations comprises the step of determining a number by which a set of ports for the corresponding flow-sets exceed a set of available ports.
  • 4. The method of claim 3, wherein the step of alleviating at least one of the port violations comprises the step of alleviating at least one port violation of the source or terminal node for which the number is highest.
  • 5. The method of claim 3, wherein the step of alleviating at least one of the port violations comprises the step of alleviating at least one port violation of the source or terminal node for which the number is highest and for which the step of merging also alleviates the source or terminal node for which the number is next highest.
  • 6. The method of claim 3, wherein the step of alleviating at least one of the port violations comprises the step of alleviating at least one port violation of the source or terminal node for which the number is highest and for which the step of merging imposes a least cost.
  • 7. The method of claim 6, wherein the least cost is based on a cost of an interconnect device that carries the pair of flow-sets.
  • 8. The method of claim 1, wherein the step of merging a pair of the flow-sets comprises the step of selecting the pair by determining a feasibility of merging the pair.
  • 9. The method of claim 8, wherein the step of determining a feasibility comprises the step of determining whether an available interconnect device has sufficient bandwidth to carry the pair of flow-sets.
  • 10. The method of claim 8, wherein the step of determining a feasibility comprises the step of determining whether an available interconnect device has enough ports to carry the pair of flow-sets.
  • 11. The method of claim 1, wherein generating an arrangement of flow-sets in the interconnect fabric is further in response to port availability data, communication link data, and interconnect device data.
  • 12. The method of claim 11 wherein; the port availability data includes data on available communication ports for each source node and for each terminal node;the communication link data includes data on bandwidth for communicating links of the interconnect fabric; andthe interconnect device data includes dam an at least one interconnect device that is communicatively linked to both the set of source nodes and the set of terminal nodes.
  • 13. The method of claim 11, wherein generating an arrangement of flow-sets in the interconnect fabric is further in response to cost data that includes costs for communicating links, costs for interconnect devices, and costs for ports of the source nodes and the terminal nodes.
  • 14. The method of claim 1, wherein a port violation in the source or terminal nodes is equal to a number of required physical communication links to the node minus a number of available ports in the node.
  • 15. The method of claim 1, wherein a port violation in the source or terminal nodes is equal to a number of flow-sets to the node minus a number of available ports in the node.
  • 16. The method of claim 1, wherein merging a pair of flow-sets further comprises merging a pair of flow-sets that alleviates a port violation on a node that has more port violations than any other node.
  • 17. The method of claim 1, wherein the repetition continues until all port violations are eliminated or until no further mergers are possible.
  • 18. A system, comprising: a set of design information including a set of flow requirements for an interconnect fabric;fabric design tool for designing the interconnect fabric for communication between a set of source nodes and a set of terminal nodes, wherein the fabric design tool generates a design for the interconnect fabric in response to the design information by generating an arrangement of flow-sets in response to the flow requirements and determining one or more port violations in the source and terminal nodes which are associated with the arrangement of flow-sets and alleviating at least one of the port violations by merging a pair of the flow-sets.
  • 19. The system of claim 18, wherein the arrangement of flow-sets includes a flow-set for each flow requirement.
  • 20. The system of claim 18, wherein the fabric design tool determines the port violations for each source and terminal node by determining a number by which a set of ports for the corresponding flow-sets exceed a set of available ports.
  • 21. The system of claim 20, wherein the fabric design tool alleviates at least one port violation of the source or terminal node for which the number is highest.
  • 22. The system of claim 20, wherein the fabric design tool alleviates at least one port violation of the source or terminal node for which the number is highest and for which the merger also alleviates the source or terminal node for which the number is next highest.
  • 23. The system of claim 20, wherein the fabric design tool alleviates at least one port violation of the source or terminal node for which the number is highest and for which the merger imposes a least cost.
  • 24. The system of claim 23, wherein the fabric design tool determines the least cost in response to a set of cost information contained in the design information.
  • 25. The system of claim 18, wherein the fabric design tool selects a pair of the flow-sets for merger by determining a feasibility of merging the pair.
  • 26. The system of claim 25, wherein the fabric design tool determines the feasibility based on a set of information in the design information that indicates whether an available interconnect device has sufficient bandwidth to carry the pair of flow-sets.
  • 27. The system of claim 25, wherein the fabric design tool determines the feasibility based on a set of information in the design information that indicates whether an available interconnect device has enough ports to carry the pair of flow-sets.
  • 28. The system of claim 18, wherein alleviating at least one of the port violations by merging a pair of the flow-sets is repeated to complete the design of the interconnect fabric.
  • 29. The method of claim 28, wherein the repetition continues until all port violations are eliminated or until no further mergers are possible.
  • 30. The system of claim 18, wherein the set of design information further includes port availability data, communication link data, and interconnect device data.
  • 31. The system of claim 30 wherein: the port availability data includes data on available communication ports for each source node and for each terminal node;the communication link data includes data on bandwidth for communicating links of the interconnect fabric; andthe interconnect device data includes data on at least one interconnect device that is communicatively linked to both the set of source nodes and the set of terminal nodes.
  • 32. The system of claim 30, wherein the set of design information further comprises cost data that includes costs for communicating links, costs for interconnect devices, and costs for ports of the source nodes and the terminal nodes.
  • 33. The system of claim 18, wherein a port violation in the source or terminal nodes is equal to a number of required physical communication links to the node minus a number of available ports in the node.
  • 34. The system of claim 18, wherein a port violation in the source or terminal nodes is equal to a number of flow-sets to the node minus a number of available ports in the node.
  • 35. The system of claim 18, wherein merging a pair of flow-sets further comprises merging a pair of flow-sets that alleviates a port violation on a node that has more port violations than any other node.
  • 36. A computer-readable medium having computer-readable program code to perform: designing an interconnect fabric of a network for communication between source nodes and terminal nodes using at least one interconnect device communicatively coupled between at least one source node and one terminal node by:receiving design information comprising flow requirement data, including bandwidth data, for the source nodes and the terminal nodes, port availability data for the source and terminal nodes, communication link data for communication links connecting the interconnect fabric, and interconnect data for the interconnect device;generating, using the design information, a plurality of flow-sets that communicatively couple the source nodes and terminal nodes;identifying at least one port violation in one of the source nodes and terminal nodes; andmerging at least one flow-set into another flow set to alleviate the at least one port violation.
  • 37. The computer-readable medium of claim 36, wherein the at least one port violations in the source or terminal nodes is equal to a number of flow-sets to the node minus a number of available ports in the node.
  • 38. The computer-readable medium of claim 36 further comprising: identifying every port violation of the source nodes and terminal nodes; andmerging flow-sets into each other and providing interconnect devices between the source nodes and terminal nodes until every port violation is alleviated.
  • 39. The computer-readable medium of claim 36 wherein merging at least one flow-set into another flow set to alleviate the at least one port violation is repeated to complete the design of the interconnect fabric.
  • 40. The computer-readable medium of claim 39, wherein the repetition continues until all port violations are eliminated or until no further mergers are possible.
US Referenced Citations (55)
Number Name Date Kind
3806657 Chow Apr 1974 A
5138657 Colton et al. Aug 1992 A
5245609 Ofek et al. Sep 1993 A
5321813 McMillen et al. Jun 1994 A
5581689 Slominski et al. Dec 1996 A
5649105 Aldred et al. Jul 1997 A
5651005 Kwok et al. Jul 1997 A
5793362 Matthews et al. Aug 1998 A
5805578 Stirpe et al. Sep 1998 A
5815402 Taylor et al. Sep 1998 A
5838919 Schwaller et al. Nov 1998 A
5987517 Firth et al. Nov 1999 A
6003037 Kassabgi et al. Dec 1999 A
6038219 Mawhinney et al. Mar 2000 A
6047199 DeMarco Apr 2000 A
6052360 Rogers Apr 2000 A
6076117 Billings Jun 2000 A
6078953 Vaid et al. Jun 2000 A
6088356 Hendel et al. Jul 2000 A
6108782 Fletcher et al. Aug 2000 A
6115747 Billings et al. Sep 2000 A
6141355 Palmer et al. Oct 2000 A
6157645 Shobatake Dec 2000 A
6212568 Miller et al. Apr 2001 B1
6331905 Ellinas et al. Dec 2001 B1
6336129 Ise et al. Jan 2002 B1
6345048 Allen et al. Feb 2002 B1
6363334 Andrews et al. Mar 2002 B1
6418481 Mancusi et al. Jul 2002 B1
6442584 Kolli et al. Aug 2002 B1
6452924 Golden et al. Sep 2002 B1
6519632 Brackett et al. Feb 2003 B1
6539027 Cambron Mar 2003 B1
6539531 Miller et al. Mar 2003 B1
6570850 Gutierrez et al. May 2003 B1
6598080 Nagami et al. Jul 2003 B1
6611872 McCanne Aug 2003 B1
6625777 Levin et al. Sep 2003 B1
6628649 Raj et al. Sep 2003 B1
6633909 Barrett et al. Oct 2003 B1
6650639 Doherty et al. Nov 2003 B1
6668308 Barroso et al. Dec 2003 B1
6675328 Krishnamachari et al. Jan 2004 B1
6694361 Shah et al. Feb 2004 B1
6697369 Dziong et al. Feb 2004 B1
6697854 Glassen et al. Feb 2004 B1
6707794 Leong et al. Mar 2004 B1
6724757 Zadikian et al. Apr 2004 B1
6744767 Chiu et al. Jun 2004 B1
6778496 Meempat et al. Aug 2004 B1
6804245 Mitchem et al. Oct 2004 B1
6807558 Hassett et al. Oct 2004 B1
6857027 Lindeborg et al. Feb 2005 B1
6870847 Hughes et al. Mar 2005 B1
20020083159 Ward et al. Jun 2002 A1
Foreign Referenced Citations (1)
Number Date Country
WO9617458 Jun 1996 WO