USPatent applicationPatented

Computer system and method using a kautz-like digraph to interconnect computer nodes and having control back channel between nodes

Granted 6 Jul 2010 · 2 office actions

Life of the application

12 dated events
⤢ drag to zoom20062008201020122014201620182020202220242026ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

Computer system and method using a Kautz-like digraph to interconnect computer nodes and having control back channel between nodes. A multinode computing system includes a large plurality of computing nodes interconnected via a Kautz topology having order O, diameter n, and degree k. The order equals (k+1)k n−1 ; The data interconnections from a node x to a node y in the topology satisfy the relationship y=(−x*k−j) mod O, where 1≦j≦k; and each x,y pair includes a unidirectional control link from node y to node x to convey flow control and error information from a receiving node y to a transmitting node x.

Description

9 parts
›CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to the following U.S. patent applications, the contents of which are incorporated herein in their entirety by reference:

U.S. patent application Ser. No. 11/335,421, filed Jan. 19, 2006, entitled SYSTEM AND METHOD OF MULTI-CORE CACHE COHERENCY;

U.S. patent application Ser. No. 11/594,416, filed Nov. 8, 2006, entitled COMPUTER SYSTEM AND METHOD USING EFFICIENT MODULE AND BACKPLANE TILING TO INTERCONNECT COMPUTER NODES VIA A KAUTZ-LIKE DIGRAPH;

U.S. patent application Ser. No. 11/594,426, filed Nov. 8, 2006, entitled SYSTEM AND METHOD FOR PREVENTING DEADLOCK IN RICHLY-CONNECTED MULTI-PROCESSOR COMPUTER SYSTEM USING DYNAMIC ASSIGNMENT OF VIRTUAL CHANNELS;

U.S. patent application Ser. No. 11/594,421, filed Nov. 8, 2006, entitled LARGE SCALE MULTI-PROCESSOR SYSTEM WITH A LINK-LEVEL INTERCONNECT PROVIDING IN-ORDER PACKET DELIVERY;

U.S. patent application Ser. No. 11/594,442, filed Nov. 8, 2006, entitled MESOCHRONOUS CLOCK SYSTEM AND METHOD TO MINIMIZE LATENCY AND BUFFER REQUIREMENTS FOR DATA TRANSFER IN A LARGE MULTI-PROCESSOR COMPUTING SYSTEM;

U.S. patent application Ser. No. 11/594,427, filed Nov. 8, 2006, entitled REMOTE DMA SYSTEMS AND METHODS FOR SUPPORTING SYNCHRONIZATION OF DISTRIBUTED PROCESSES IN A MULTIPROCESSOR SYSTEM USING COLLECTIVE OPERATIONS;

U.S. patent application Ser. No. 11/594,420, filed Nov. 8, 2006, entitled SYSTEM AND METHOD FOR ARBITRATION FOR VIRTUAL CHANNELS TO PREVENT LIVELOCK IN A RICHLY-CONNECTED MULTI-PROCESSOR COMPUTER SYSTEM;

U.S. patent application Ser. No. 11/594,441, filed Nov. 8, 2006, entitled LARGE SCALE COMPUTING SYSTEM WITH MULTI-LANE MESOCHRONOUS DATA TRANSFERS AMONG COMPUTER NODES;

U.S. patent application Ser. No. 11/594,405, filed Nov. 8, 2006, entitled SYSTEM AND METHOD FOR COMMUNICATING ON A RICHLY CONNECTED MULTI-PROCESSOR COMPUTER SYSTEM USING A POOL OF BUFFERS FOR DYNAMIC ASSOCIATION WITH A VIRTUAL CHANNEL;

U.S. patent application Ser. No. 11,594,443, filed Nov. 8, 2006, entitled RDMA SYSTEMS AND METHODS FOR SENDING COMMANDS FROM A SOURCE NODE TO A TARGET NODE FOR LOCAL EXECUTION OF COMMANDS AT THE TARGET NODE;

U.S. patent application Ser. No. 11/594,447, filed Nov. 8, 2006, entitled SYSTEMS AND METHODS FOR REMOTE DIRECT MEMORY ACCESS TO PROCESSOR CACHES FOR RDMA READS AND WRITES; and

U.S. patent application Ser. No. 11/594,446, filed Nov. 8, 2006, entitled SYSTEM AND METHOD FOR REMOTE DIRECT MEMORY ACCESS WITHOUT PAGE LOCKING BY THE OPERATING SYSTEM.

›BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to massively parallel computing systems and, more specifically, to computing systems in which computing nodes are interconnected via a Kautz-like topology for data links and which include a control back channel in the opposite direction.

2. Discussion of Related Art

Massively parallel computing systems have been proposed for scientific computing and other compute-intensive applications. The computing system typically includes many nodes, and each node may contain several processors. Various forms of interconnect topologies have been proposed to connect the nodes, including Hypercube topologies, butterfly and omega networks, tori of various dimensions, fat trees, and random networks.

One problem that has been observed with certain architectures is the issue of scalability. That is, due to inherent limitations, certain architectures are not easily scalable in any practical way. For example, one cannot simply add processing power by including another module of computing nodes into the system, or more commonly, the expense and/or performance of the network becomes unacceptable as it grows larger. Moreover, different sized systems might need totally different module designs. For example, hypercube topologies had nodes in which the number of ports or links was dependent on the overall size of the system. Thus a node made for one size system could not be used, as a general matter, on a system with a different size.

Another problem that has been observed is that of routing the connections among nodes. Large systems typically cannot be fully connected because of inherent difficulty in routing. Thus switching architectures have been proposed, but these introduce latency from the various “hops” among nodes that may be necessary for two arbitrary nodes to communicate with one another. Reducing this latency is desirable but has proven difficult.

›SUMMARY

The invention provides computer system and method using a Kautz-like digraph to interconnect computer nodes and having control back channel between nodes.

Under one aspect of the invention, a multinode computing system includes a large plurality of computing nodes interconnected via a Kautz topology having order O, diameter n, and degree k. The order equals (k+1)k n−1 ; The data interconnections from a node x to a node y in the topology satisfy the relationship y=(−x*k−j) mod O, where 1≦j≦k; and each x,y pair includes a unidirectional control link from node y to node x to convey flow control and error information from a receiving node y to a transmitting node x.

Under another aspect of the invention, a receiving node y transmits control packets on a control link to transmitting node x to identify the last correctly received data packet, and to identify whether an error has been detected in transmission.

Under another aspect of the invention, a transmitting node x stores transmitted packets and keeps them available for replay in response to control messages on the control link.

Under another aspect of the invention, a receiving node y transmits buffer status information to a transmitting node x to identify buffer availability of downstream computing nodes.

Under another aspect of the invention, a transmitting node x includes logic to transmit a packet downstream only if all necessary buffers are available.

›BRIEF DESCRIPTION OF THE DRAWINGS

In the Drawing,

FIGS. 1A-C depict Kautz topologies of various order, degree and diameter;

FIG. 1D depicts a module tiling of an embodiment of the invention to illustrate module interconnectivity;

FIG. 2 depicts a module containing a plurality of nodes according to certain embodiments of the invention;

FIG. 3 depicts a module tiling with inferior inter-module connectivity;

FIG. 4 illustrates parallel routing of inter-module signals according to certain embodiments of the invention; and

FIG. 5 depicts data and control links for an inter-node link or connection according to certain embodiments of the invention.

›DETAILED DISCUSSION · 1 of 5

Preferred embodiments of the invention provide massively parallel computer systems in which processor nodes are interconnected in a Kautz-like topology. Preferred embodiments provide a computing system having O nodes (i.e., order O) equally divided on M modules, each module having N nodes, N=O/M. By appropriately selecting the size N of the module and appropriately selecting the specific set of nodes to be included on a module, the inter-node routing problem may be significantly reduced. Specifically, the inter-node routing may be arranged so that a high percentage of the inter-node connections or links may remain on a module (i.e., intra-module) and avoid inter-module connections, thus reducing the amount of inter-node connections that must involve a backplane, cables, or the like. Moreover, the inter-node connections that must be inter-module (and thus require a backplane or cables, or the like) may be arranged in a parallel fashion. These features facilitate the creation of larger systems and yield inter-node connections with shorter paths and latencies. That is, preferred embodiments provide efficient and effective logical routing (i.e., the number of hops between nodes) and also provide efficient and effective physical routing (i.e., allowing high-speed interconnect to be used on large systems).

Certain embodiments of the invention use a Kautz topology for data links and data flow to interconnect the node, but they are not purely directed graphs because they include a control link back channel link from receiver to sender. This link is used for flow control and status, among other things.

Kautz interconnection topologies are unidirectional, directed graphs (digraphs). Kautz digraphs are characterized by a degree k and a diameter n. The degree of the digraph is the maximum number of arcs (or links or edges) input to or output from any node. The diameter is the maximum number of arcs that must be traversed from any node to any other node in the topology.

The order O of a graph is the number of nodes it contains. The order of a Kautz digraph is (k+1)k n−1 . The diameter of a Kautz digraph increases logarithmically with the order of the graph.

FIG. 1A depicts a very simple Kautz topology for descriptive convenience. The system 100 has degree three; that is, each node has three ingress links 110 and three egress links 112 . The topology has diameter one, meaning that any node can communicate with any other node in a maximum of one hop. The topology is order 4 , meaning that there are 4 nodes.

FIG. 1B shows a system that is order 12 and diameter two. By inspection, one can verify that any node can communicate with any other node in a maximum of two hops. FIG. 1C shows a system that is degree three and diameter three, having order 36 . One quickly sees that the complexity of the system grows quickly. It would be counter-productive to depict and describe preferred systems such as those having hundreds of nodes or more.

The table below shows how the order O of a system changes as the diameter n grows for a system of fixed degree k.

With nodes numbered from zero to O-1, the digraph can be constructed by running a link from any node x to any other node y that satisfies the following equation:

y =( −x*k−j ) mod O , where 1 ≦j≦k   (1)

Thus, any (x,y) pair satisfying (1) specifies a direct egress link from node x. For example, with reference to FIG. 1C node 1 has egress links to the set of nodes 30 , 31 and 32 . Iterating through this procedure for all nodes in the system will yield the interconnections, links, arcs or edges needed to satisfy the Kautz topology. (As stated above, communication between two arbitrarily selected nodes may require multiple hops through the topology but the number of hops is bounded by the diameter of the topology.)

Under certain embodiments of the invention, the system is arranged into multiple modules. The modules are created to have a particular size (i.e., number of nodes on the module) and a particular set of nodes on the module. It has been observed by the inventors that careful selection of the module size and careful attention to the selection of the set of nodes to included on a given module can significantly reduce wiring problems in systems built with the Kautz topology.

More specifically, under preferred embodiments of the invention, the Kautz topology is uniformly tiled. To do this, the Kautz graph is one-to-one mapped to satisfy the following equation.

t: V G →I×V T   (2)

In the above, V G is the set of vertices of a Kautz graph; V T is the set of vertices of a tile (i.e., a smaller graph, implemented as a module of nodes); and I is an index set. Moreover, if (x,y) is an edge within tile T then (t −1 (i,x), t −1 (i,y) is an edge of Kautz graph G.

The tiles or modules are arranged to maximize the number of edges of the tile T. That is, the tiles or modules are arranged so that a maximum number of edges, arc, or links in the Kautz topology are contained on the tiles. All the remaining edges by necessity are inter-tile (or inter-module). By doing this, node interconnections will be maximized to remain intra-module.

Conventionally a Kautz graph of degree k and diameter n can label the vertices of the topology as follows, with each integer s being base k+1. Adjacent integers must differ.

s 1 s 2 . . . s n ε Z k+1 n , s i ≠s i+1   (3)

A de Bruijn graph is closely related to a Kautz graph. A de Bruijn graph has vertices that may be labeled by strings of n integers base k, as follows:

c 1 c 2 . . . c n ε Z k n   (4)

The vertices of a degree k, diameter n Kautz graph can be mapped to the vertices of a degree k, diameter n−1 de Bruijn graph as follows:

r: s 1 . . . s n →c 1 . . . c n−1 , c i =( s i+1 −s i ) (mod k+ 1)−1  (5)

or any other mapping of s i+1 and s i to c i such that with either parameter fixed, the mapping gives unique values of c i mod k for all allowed values of the other parameter.

Consequently, the edges, links or arcs in a Kautz graph may be expressed as follows:

( s 0 c 1 c 2 . . . c n−1 , [s 0 +c 1 +1] c 2 c 3 . . . c n )  (6)

›DETAILED DISCUSSION · 2 of 5

where [s 0 +c 1 +1] is taken modulo k+1.

To make the tiling scalable to arbitrary diameter graphs, the tile M must be equivalent to a subgraph of a de Bruijn graph of diameter m and degree k containing all the nodes of the de Bruijn graph but only a subset of the edges subject to the condition that the edges on the tile cannot form any directed loops. In order to minimize inter-module wiring, the subgraph with the maximal number of intra-module edges (without directed loops) should be chosen subject to the condition that the tile can be extended to form a complete tiling of the system.

To generate a complete tiling, it is possible to use a map Π: G→M from the nodes of the complete graph G to the nodes of the tile M which respects the edge structure of the de Bruijn graph of diameter m on which the tile is based. This map may in particular be chosen to satisfy the following conditions:

Π(P(u))−P(Π(u)), ∀u ε G

Π( C ( u ))= C (Π( u )), ∀ u ε G

where C(u) denotes the set of nodes which are reached from edges beginning at node u and P(u) denotes the set of nodes from which node u can be reached by following a single edge.

Under certain embodiments of the invention, each module has k m nodes, and each node on the module can be assigned a label d 1 . . . d m ε z k m such that inter-node connections that are intra-module correspond to a subset of the edges (d 1 . . . d m , d 2 . . . d m+1 ) of a de Bruijn graph of diameter m and degree k, subject to the condition that there are no directed closed loops formed from the inter-node connections on a module.

Under certain embodiments of the invention, maps Π satisfying the conditions stated above for P(u) and C(u) may be defined by expressing d i 's as a “discrete differential” function of node labels the s 0 . . . s n of the Kautz graph through

d i =f ( c i+n−m , c i )  (7)

wherein f(x,y) is a function which for fixed X acts a permutation on Z k through y→f (X,y) and which for fixed Y acts as a permutation on Z k through x→f(x,Y) and where c i 's encode the Kautz coordinates Si through

c i =s i −s i−1 mod( k+ 1)  (8)

Under certain embodiments, f(x,y) equals x+y mod k, or f(x,y) equals x−y mod k.

Given a map Π with the conditions defined above, the tiling may then be defined as follows. Choose a vertex x 0 =d 1 . . . d N−n of the tile (or module) T. Associated with this vertex of T is a set of vertices in the larger Kautz graph each of which has the same value of Π(u)=x 0 . Define the index set by the remaining indices on this set of vertices (i.e., s 0 c 1 . . . c n ). This defines t −1 (i, x o ) for all i. If there are any edges in T containing x o the definition is extended. For example, consider if T contains the edge (x o , x 1 ). For each i in I, there is a unique vertex in the Kautz graph which is reached by an edge from t −1 (i, x o ) and which has d 1 . . . d N−n =x 1 . Define this vertex to be t −1 (i, x 1 ). Continue in the same way for further edges containing either x 0 or x 1 . Each time a new edge is included the map t −1 is defined for the new value of x. In this fashion the complete tiling may be completed.

Tiling constructed in the fashion of the previous discussion automatically have the parallel routing property. The benefits of parallel routing are described below.

FIG. 1D for example shows a module or tile for a very simple Kautz topology of order 36 and degree three. Each module has nine nodes, as depicted.

The table shows how the nodes and modules connect. Notice how the linear labels are distributed among modules. For example, linearly labeled nodes 0 - 9 are not all assigned to module 0 . As mentioned above the interconnection among nodes is defined by equation 1, and the assignment among modules is a result of the tiling method employed. This example of FIG. 1D is particularly simple in comparison to the larger systems of preferred embodiments. The size of preferred embodiments is prohibitively large to depict by figures or tables and instead is explained by the mathematics above. This example is utilized to illustrate the complexity of module assignment and the interconnections among nodes.

Under preferred embodiments, module size is an integral power of the degree (k). Certain embodiments maximize this size as described above, i.e., largest subgraph without directed loops, but others may be smaller for practical considerations in building modules. These are substantially optimal in terms of maximizing edges to be intra-module.

Certain embodiments use a module size of 27 nodes where each node is of degree 3. Each module has a particular set of nodes thereon (as described above) and may be used to build Kautz topologies of 108, 324, 972 or more nodes, or de Bruijn topologies with multiples of 27 nodes.

FIG. 2 depicts a module arrangement having 27 nodes, numbered 0 through 26 in the upper right corner of nodes. These node numbers are, in certain embodiments, the numbering schema of equations 7 and 8. That is, the node numbers shown are adjacent in the number space provided by the discrete differential numbering scheme outlined above, though they need not be adjacent in the numbering of nodes of the Kautz topology as expressed in equation 1. The node identifier is expressed in the upper right corner of the node in decimal form, and in the middle of the node it is expressed in ternary form.

As illustrated, each node identifies the egress links 202 and ingress links 204 . Focusing on egress links for the time being (with the explanation extending to ingress links too), node 7 has egress links going to nodes 21 , 22 , and 23 (upper right notation, i.e., node identifier) on other modules in the system. The figure depicts just the numbering scheme and not the node identification within the Kautz topology. As mentioned above, the actual interconnectivity is defined by equation 1. Thus, some connections depicted on FIG. 2 identify node numbers (via its number identifier), which are the same, even though in the larger system the node numbers will go to different nodes. For example, the figure shows nodes 17 , 26 and 8 , each with output links to another node (off module) identified by number 26 . However, the node 26 driven by nodes 17 and 26 (upper right of FIG. 2 ) is on a different module than the node 26 driven by node 8 . The actual nodes involved are governed by the above equations.

›DETAILED DISCUSSION · 3 of 5

FIG. 4 depicts a simplified diagram, drawn in perspective, to illustrate the parallel routing that results from the tiling approach discussed above. A first module 402 has an output pin 404 in communication with backplane trace 408 on backplane 406 . (A backplane layer is illustrated, but other structures such as midplanes or the like may be used.) The trace 408 is parallel and horizontal to pin 410 on module 412 . That is, the backplane trace has no vertical runs. Under preferred embodiments of the invention, every backplane run will be parallel in a similar manner. Though many layers may be needed for the backplane when there are a significant number of modules, the backplane traces will not need vertical runs to connect the relevant pins and links, and instead runs will be horizontal and parallel. (Alternatively if things were rotated the runs could all be vertical and parallel.) This routing greatly facilitates the ability to keep high signal integrity, which in turn greatly improves the ability to run the inter-node and inter-module connections at very high speed. It also enables larger systems to be built while maintaining satisfactory signal integrity (i.e., designs don't need to decrease bus speed to enable large systems). Using the example of FIG. 2 , the trace 408 may correspond to the connection from the node with discrete differential number 5 (lower part of figure) to another node on a different module ( 412 ) with discrete differential identifier 17 . Notice in the upper right of FIG. 2 that every node 17 receives an input from another node 5 (discrete differential number). In certain embodiments, such as a 972 node system with modules like that shown in FIG. 2 , each module will have 39 pins (e.g., 404 and 410 ), and every backplane trace will run horizontal and parallel to other traces. Only one backplane layer 406 is shown in FIG. 4 for clarity, but a system of 972 nodes may require about 20 such layers. Such a backplane, however, will be faster and have better signal integrity than one that did not have parallel routes and which needed vertical runs, vias and the likes to provide connectivity among modules.

Referring back to FIG. 2 , Each node on the system may communicate with any other node on the system by appropriately routing messages onto the communication fabric via an egress link 202 . Some of these egress links will be inter-module, such as the ones depicted in connection with node 7 . Others will be intra-module, such as those being depicted in connection with node 2 which go to nodes 6 , 7 , and 8 on the same module. Some nodes have some links intra-module and some inter-module, see for example node 12 .

Under certain embodiments, any data message on the fabric includes routing information in the header of the message (among other information). The routing information specifies the entire route of the message. In certain degree three embodiments, the routing information is a bit string of 2-bit routing codes, each routing code specifying whether a message should be received locally (i.e., this is the target node of the message) or identifying one of three egress links. Naturally other topologies may be implemented with different routing codes and with different structures and methods under the principles of the invention. Under certain embodiments, each node has tables programmed with the routing information. For a given node x to communicate with another node z, node x accesses the table and receives a bit string for the routing information. As will be explained below, this bit string is used to control various switches along the message's route to node z, in effect specifying which link to utilize at each node during the route. Another node j may have a different bit string when it needs to communicate with node z, because it will employ a different route to node z and the message may utilize different links at the various nodes in its route to node z. Thus, under certain embodiments, the routing information is not literally an “address” (i.e., it doesn't uniquely identify node z) but instead is a set of codes to control switches for the message's route.

Under certain embodiments, the routes are determined a priori based on the interconnectivity of the Kautz topology as expressed in equation 1. That is, the Kautz topology is defined, and the various egress links for each node are assigned a code (i.e., each link being one of three egress links). Thus, the exact routes for a message from node x to node z are known in advance, and the egress link selections may be determined in advance as well. These link selections are programmed as the routing information. These tables may be reprogrammed as needed, for example, to route around faulty links or nodes.

Certain embodiments modify the routing information in the message header en route for easier processing. For example, a node will analyze a 2 bit field of the routing information to determine which link the message should use, e.g., one of three egress links or it should be kept local (i.e., this is the destination node). This could be the least significant numeral, digits or bits of the routing field, but it need not be limited to such (i.e., it depends on the embodiment). Once a node determines that a message should be forwarded on one of the egress links, the node shifts the routing bit string accordingly (e.g., by 2 bits) so the next node in the route can perform an exactly similar set of operation: i.e., process the lowest two bits of the route code to determine if the message should be handled locally or forwarded on a specific one of three egress links).

The routing information, in these embodiments, is used to identify portions in a cross point buffer to hold the data so that the message may be stored until it may be forwarded on the appropriate link. (Certain embodiments support cut-through routing to avoid the buffer if the appropriate link is not busy when the message arrive or becomes free during reception of the message.)

›DETAILED DISCUSSION · 4 of 5

In certain embodiments, the messages also contain other information such as virtual channel identification information. As explained in more detail in the related and incorporated applications, virtual channel information is used so that each link may be associated with multiple virtual channels and so that deadlock avoidance techniques may be implemented.

Experimentation shows that with a preferred arrangement 48% of the inter-node links may be routed inter-module, and 52% can be routed intra-module. Other degrees, diameters, order, and modules sizes may be used using the principles of the invention.

In contrast, other methods of selecting nodes may yield significantly less intra-connections module connections (and as a result more inter-module connections). FIG. 3 for example shows an arrangement also involving 27 nodes per module. However, even though the arrangement seems well-organized (e.g., tree like) only about 30% of the inter-node connections remains on module, meaning more of the inter-node connections will require a backplane or the like, inhibiting the ability to build larger systems.

Under certain embodiments the computing system is not configured as a Kautz digraph in pure form in that the communication is not purely unidirectional. Instead, certain preferred embodiments have data communication implemented on unidirectional directed links (or circuits) and use a back channel control link (or circuit) for flow control and maintenance purposes.

FIG. 5 for example shows two nodes, sender 502 and receiver 504 , following the unidirectional convention used above in discussing Kautz topologies. These nodes could correspond, for example, to two intra-module nodes such as nodes 18 and 2 in FIG. 2 . The link 506 connecting the two nodes includes unidirectional data lanes 508 and unidirectional control lanes 510 . The direction of the data lanes 508 is consistent with the convention used above in discussing the unidirectional flow of the Kautz digraph. The direction of the control link is in the opposite direction, i.e., from data receiving node 504 to data transmitting node 502 . The arrangement is asymmetric in the sense that there are more forward data lane circuits than there are reverse control lane circuits. In certain embodiments there are eight data circuits and one control circuit between two connected nodes.

In certain embodiments each sender 502 assigns a link sequence number (LSN) to every outgoing packet. The LSN is included in the packet header. The sender 502 also keeps transmitted packets in a replay buffer until it has been confirmed (more below) that the packets have been successfully received.

Receiver nodes receive packets and keep track of the LSN of the most recently received error free packet as part of its buffer status. Periodically, the receiver node 504 transmits buffer status back to the sender using the control circuit 510 . In certain embodiments, this status is transmitted as frequently as possible. The LSN corresponds to the most recently received packet if there has been no error. If there has been an error detected, the buffer status will indicate error and include the LSN of the last packet correctly received.

In response the sending node 502 identifies the LSN in the buffer status packet and from this realizes that all packets up to and including the identified LSN have been received at the receiving node 504 in acceptable condition. The sender 502 may then delete packets from the replay buffer with LSNs up to and including the LSN received in the status packet. If an error has been detected, the sender will resend all packets in the replay buffer starting after the LSN of the buffer status (the receiving node will have dropped such in anticipation of the replay and to ensure that all packets from the same source, going to the same destination, along the same route, with the same virtual channel are delivered and kept in order). Thus, packet error detection and recovery is performed at the link level. Likewise packets are guaranteed to be delivered in order at the link-level.

The control circuits are also used to convey buffer status information for downstream nodes to indicate whether buffer space associated with virtual channels are free or busy. As is explained in the incorporated patent applications, the nodes use a cross point buffer to store data from the links and to organize and control the data flow as virtual channel assignments over the links to avoid deadlock. More specifically, a debit/credit mechanism is used in which the receiving node 504 informs the sending node 502 of how much space is available in the buffers (not shown) of the receiving node 504 for each virtual channel and port. Under certain embodiments a sender 502 will not send information unless it knows that there is buffer space for the virtual channel in the next downstream node along the route. The control packet stream carries a current snapshot of the cross point buffer entry utilization for each of the crosspoint buffers it has (which depends on the degree of the system).

The control link may also be used for out-of-band communication between connected nodes by using otherwise unused fields in the packet to communicate. This mechanism may be used for miscellaneous purposes.

In a Kautz network no single or (if degree three or higher) double failure can isolate any working node or subset of nodes from the rest of the network. No single link or node failure increases the network diameter by more than one hop. Certain embodiments of the invention use multiple paths in the topology to avoid congestion and faulty links or nodes.

Many of the teachings here may be extended to other topologies including de Bruijn topologies. Likewise, though the description was in relation to large-scale computing system, the principles may apply to other digital systems.

Certain embodiments used discrete differential in the low order positions of the label identification. This is particularly helpful for parallel routing.

›DETAILED DISCUSSION · 5 of 5

The above discussion concerning Kautz tilings are applicable to de Bruijn topologies as well.

Certain embodiments of the invention allow what are above described as a tile to be combined on to module. For example, two tiles may be formed on a module, and a module under these arrangement will have pk m nodes where p is an integer.

Appendix A (attached) is a listing of a particular 972 node, 36 module, degree three system. The columns identify the Kautz number (0-971), the node identification (per module) and specify the other nodes to which each node connects. From this, one can determine node-to-node interconnectivity for each node in the system.

While the invention has been described in connection with certain preferred embodiments, it will be understood that it is not intended to limit the invention to those particular embodiments. On the contrary, it is intended to cover all alternatives, modifications and equivalents as may be included in the appended claims. Some specific figures and source code languages are mentioned, but it is to be understood that such figures and languages are, however, given as examples only and are not intended to limit the scope of this invention in any manner.

›Tables in the description — 3
Order
Diameter (n)k = 2k = 3k = 4
3123680
424108320
5483241280
6969725120
Shift Registermap to
LinearExitslabeldeBruijnAssignment
label012s0s1s2s0c1c2modnode
035343303002006
132313003102107
229282703202238
326252402301033
423222102001114
520191802101225
617161501200010
714131201300111
81110901000212
987610112016
1054310212117
1121010312208
1235343313011003
1332313013111124
1429282713211235
1526252412310020
1623222112010121
1720191812110222
1817161521222026
1914131221322127
201110921022218
2187620121013
2254320221134
2321020321205
2435343323020030
2532313023120131
2629282723220232
2726252432332036
2823222132032137
2920191832132228
3017161531231023
3114131231331104
321110931031215
3387630130000
3454330230101
3521030330202
APPENDIX A
SBdMdNdKidFM1Fm2Fm3To1To2To3
0000168267915591465466467
0001169267915591462463464
0002267558234882170168169
0003493807159483462463464
0004492807159483465466467
000581751699375462463464
000681651699375465466467
0007462169493817556557555
0008463169493817553554552
0009464169493817549551550
00010465168492816548547546
00011466168492816545544543
00012467168492816541540542
0001391518666342170168169
00014591774126450170168169
00015159918270594494493492
00016161918270594488487486
00017483162810486494493492
0001869990738414818817816
0001970090738414815813814
00020375846198522818817816
00021270881233557160159161
00022594125773449160159161
0002373877725401701699700
00024414509833185701699700
00025486809485161484485483
00026522149473797377376375
011098291939615675676677
011196291939615681682683
0112291874550226979896
0113420507831183681682683
0114422507831183675676677
011574475723399681682683
011674675723399675676677
011768196420744872870871
011868296420744869867868
011968396420744865864866
0111067598422746888890889
0111167698422746885887886
0111267798422746884883882
0111393933410658979896
01114615118442766979896
0111583146370694421420422
0111683346370694415414416
01117183262910586421420422
0111872340682730745744746
0111972440682730742743741
01120399190514838745744746
01121370848200524832831833
0112269492740416832831833
0112382296944620725723724
0112473080404728725723724
01125586776452128184185183
0112683836869244401400399
022025315963639894895896
022126315963639891892893
0222315218866542242526
0223350531855207891892893
0224349531855207894895896
022567474742399891892893
022667374742399894895896
022789126350674240241242
022889226350674237238239
022989326350674236235234
0221089425349673232231233
0221189525349673229228230
0221289625349673225227226
022139636503262242526
02214639434758110242526
0221585536268638348350349
0221685736268638342344343
02217207578254902348350349
02218423506182830672674673
02219424506182830669670671
0222099290614938672674673
0222168695419743856855857
0222238635311959856855857
02223182263911587425423424
0222483047371695425423424
0222590223671347208209207
022269383356591110110099
0330192583259907395393394
0331193583259907392390391
0332583777453129194192193
0333517151475799392390391
0334516151475799395393394
033584136743691392390391
033684036743691395393394
0337392193517841766767765
0338390193517841772773771
0339391193517841768770769
03310395192516840758757756
03311393192516840764763762
03312394192516840760759761
03313259561237885194192193
0331490721345669194192193
03315475165489813518517516
03316474165489813521520519
0331779970538157518517516
0331843633309957842841840
0331944633309957839837838
0332069193417741842841840
03321489808160484476475474
0332281352700376476475474
03323309220868544424344
033249576524328424344
0332557952628304800798799
0332674176400724690692691
0440122607283931605603604
0441120607283931611609610
0442607121769445121122120
0443444823175499611609610
0444446823175499605603604
044576839167715611609610
044677039167715605603604
0447611120444768110108109
0448609120444768116114115
0449610120444768112111113
04410605122446770126128127
04411603122446770132134133
04412604122446770131130129
04413283877553229121122120
0441493133766113121122120
04415175265589913445444446
04416174265589913448447449
04417499805481157445444446
0441867949625301769768770
0441968949625301766767765
0442071540973385769768770
04421589775127451176175174
0442291319667343176175174
04423625439115763666768
04424301223547871666768
04425157919595271500498499
0442685295619943714716715
055049631307955824822823
055150631307955821819820
0552631437113761484950
0553374847199523821819820
0554373847199523824822823
055569891739415821819820
055669791739415824822823
055782150374698450451452
055881950374698456457458
055982050374698455454453
0551082449373697442441443
0551182249373697448447449
0551282349373697444446445
05513307221869545484950
055149556535329484950
05515199581905257372374373
05516198581905257375377376
05517523149797473372374373
0551873977725401696698697
0551974077725401693694695
05520415509833185696698697
0552190522346670200199198
05522257562238886200199198
0552372540682730738739740
05524401190514838738739740
05525473166814490524522523
05526185262586910414416415
0660216899575251322323321
0661217899575251319320318
066289924672348218216217
0663541467791143319320318
0664540467791143322323321
066586568335935319320318
066686468335935322323321
0667319217541865131412
066832021754186510119
0669318217541865151716
06610322216540864543
06611323216540864210
06612321216540864768
06613575780456132218216217
06614251564888240218216217
0661579170860384542541540
0661679070860384545544543
06617143924600276542541540
06618359852528204866865864
06619357852528204872870871
0662035636960312866865864
0662160951303627789791790
06622384195843519789791790
06623528147795471358359357
06624204579903255358359357
06625276879555231141142143
06626312219543867343335
0770146923599275532533531
0771144923599275538539537
077292334016664145146144
0773468167491815538539537
0774470167491815532533531
077579270738359538539537
077679470738359532533531
0777538144468792329327328
0778539144468792326324325
0779537144468792331330332
07710532146470794345347346
07711533146470794342344343
07712531146470794350349348
07713599124772448145146144
07714275880232556145146144
07715491808160484469468470
07716490808160484472471473
0771781552700376469468470
07718383196844520793792794
07719381196844520799800798
0772059952304628793792794
07721160918270594489491490
07722484162810486489491490
0772384436642690382383381
07724520150474798382383381
07725376846522198813814815
07726628438762114585759
088073947623299751752750
088174947623299748749747
08829476563328727374
0883398191515839748749747
0884397191515839751752750
088572240783731748749747
088672140783731751752750
088774874398722669670671
088874974398722666667668
088974774398722674673672
0881075173397721661660662
0881175273397721658657659
0881275073397721663665664
08813623440116764727374
08814299224548872727374
08815515152476800396398397
08816514152476800399401400
0881783936844692396398397
0881883296944620720722721
0881981296944620726727728
0882073180404728720722721
08821476165489813513515514
0882280070538157513515514
088239443339657828381
08824620117441765828381
0882569293741417837838839
0882672840572981730729731
1090411510186834708709710
1091412510186834705706707
1092510801477153413411412
109373678402726705706707
109473578402726708709710
109588294942618705706707
109687294942618708709710
109770541273688799800798
109870641273688796797795
109970741273688792794793
1091070841173587791790789
1091170941173587788787786
1091271041173587784783785
10913186261909585413411412
1091483445369693413411412
10915402189513837737736735
10916404189513837731730729
1091772640581729737736735
109189423339657898887
109199433339657868485
10920618117441765898887
10921513152476800403402404
1092283736844692403402404
109239320968644944942943
10924657752104428944942943
1092572980728404727728726
1092676539271668620619618
11100341534210858918919920
11101339534210858924925926
11102534145793469340341339
11103663750102426924925926
11104665750102426918919920
1110515318966642924925926
1110617318966642918919920
1110792433966315143141142
1110892533966315140138139
1110992633966315136135137
11101091834166517159161160
11101191934166517156158157
11101292034166517155154153
111013210577253901340341339
11101485836168537340341339
111015102289613937664663665
111016104289613937658657659
111017426505181829664663665
1110189666493251161517
1110199676493251131412
111020642433757109161517
111021613119443767103102104
11102293733511659103102104
111023325539215863968966967
1110241323647971968966967
11102582947695371427428426
111026109611935287644643642
12110268558234882165166167
12111269558234882162163164
12112558461137785267268269
12113593774126450162163164
12114592774126450165166167
1211591718666342162163164
1211691618666342165166167
12117162269593917483484485
12118163269593917480481482
12119164269593917479478477
121110165268592916475474476
121111166268592916472471473
121112167268592916468470469
121113234893569245267268269
12111488267729353267268269
121115126605929281591593592
121116128605929281585587586
121117450821497173591593592
121118666749425101915917916
121119667749425101912913914
121120342533857209915917916
12112192933866214127126128
121122281878554230127126128
121123425506182830668666667
121124101290614938668666667
121125173266914590451452450
121126209578902254344343342
13120435826502178638636637
13121436826502178635633634
1312282648696372437435436
1312376039471870635633634
1312475939471870638636637
13125112610286934635633634
13126111610286934638636637
13127635436760112373836
13128633436760112434442
13129634436760112394140
131210638435759111292827
131211636435759111353433
131212637435759111313032
131213502804480156437435436
131214178264588912437435436
13121571840873284761760759
13121671740873284764763762
13121770948624300761760759
131218286876552228113112111
131219287876552228110108109
13122093433666012113112111
13122173279403727719718717
13122284295943619719718717
131223552463139787285286287
131224228895247571285286287
131225300223871547716970
13122612319643967933935934
14130365850526202848846847
14131363850526202854852853
1413285036440688364365363
1413368794418742854852853
1413468994418742848846847
1413539634310958854852853
1413641634310958848846847
1413785436368739353351352
1413885236368739359357358
1413985336368739355354356
14131084836568941369371370
14131184636568941375377376
14131284736568941374373372
141313526148796472364365363
141314202580904256364365363
141315418508832184688687689
141316417508832184691690692
14131774276724400688687689
141318310220868544403941
141319311220868544373836
1413209586524328403941
14132183246370694419418417
141322184262910586419418417
14132386868235834309310311
141324544466790142309310311
141325400190838514743741742
141326328538862214957959958
15140292874550226959394
15141293874550226929091
1514287468035632291292293
15143617118442766929091
15144616118442766959394
1514594133410658929091
1514694033410658959394
1514792293617941693694695
1514890293617941699700701
1514991293617941698697696
15141095292616940685684686
15141193292616940691690692
15141294292616940687689688
151413550464140788291292293
151414226896248572291292293
151415442824176500615617616
151416441824176500618620619
15141776639268716615617616
15141810320968644939941940
15141911320368644936937938
151420658752104428939941940
151421176265589913443442441
151422500805481157443442441
151423968649325191011
15142464443375710991011
15142571640985733767765766
151426428505829181657659658
16150459170818494565566564
16151460170818494562563561
16152170267915591461459460
1615378471062386562563561
1615478371062386565566564
16155136926602278562563561
16156135926602278565566564
16157562460784136256257255
16158563460784136253254252
16159561460784136258260259
161510565459783135248247246
161511566459783135245244243
161512564459783135250249251
16151381851699375461459460
161514494807159483461459460
16151562951303627785784783
16151661951303627788787786
161517386195843519785784783
161518602123771447137136135
161519600123771447143141142
161520278879231555137136135
161521303222546870606261
161522627438114762606261
16152377139066714601602600
161524447822174498601602600
161525519150798474384385386
161526555462786138277276278
17160389194842518775776774
17161387194842518781782780
17162194583259907388389387
1716371141073486781782780
1716471341073486775776774
1716563950626302781782780
1716665950626302775776774
1716778138771163572570571
1716878238771163569567568
1716978038771163574573575
17161077538971365588590589
17161177638971365585587586
17161277438971365593592591
17161384236743691388389387
171614518151475799388389387
17161573479403727712711713
17161673379403727715714716
17161786295943619712711713
171618626439115763646365
171619624439115763707169
171620302223547871646365
171621403189513837732734733
17162272740581729732734733
171623115609285933625626624
17162476339371769625626624
171625619117765441848586
17162687168133357301300302
18170316218866542222321
18171317218866542192018
18172218899575251315316317
18173641434758110192018
18174640434758110222321
181759656503262192018
181769646503262222321
1817719317641965912913914
1817820317641965909910911
1817918317641965917916915
18171022316640964904903905
18171123316640964901900902
18171221316640964906908907
18171386668335935315316317
181714542467791143315316317
18171575839571971639641640
18171675739571971642644643
181717110611287935639641640
181718326539215863963965964
181719324539215863969970971
1817202323647971963965964
18172171940873284756758757
18172271948624300756758757
181723215576252900325326324
18172486336068436325326324
18172593533612660108109110
1817269716480324102
20180654753429105951952953
20181655753429105948949950
2018275372720396656654655
201837321645969948949950
201846321645969951952953
20185331537213861948949950
20186330537213861951952953
201879486557331707169
201889496557331676866
201899506557331636564
2018109516546330626160
2018119526546330595857
2018129536546330555456
201813429504180828656654655
201814105288612936656654655
201815645432756108876
201816647432756108210
2018179696483240876
201818213576252900332331330
201819214576252900329327328
20182086136068436332331330
20182175639571971646645647
201822108611287935646645647
201823252563239887215213214
20182490023347671215213214
2018250323971647970971969
20182636635959311863862861
21190584777453129189190191
21191582777453129195196197
2119277738864712583584582
2119390621345669195196197
2119490821345669189190191
21195258561237885195196197
21196260561237885189190191
21197195582906258386384385
21198196582906258383381382
21199197582906258379378380
211910189584908260402404403
211911190584908260399401400
211912191584908260398397396
211913453820496172583584582
211914129604928280583584582
211915345532856208907906908
211916347532856208901900902
211917669748424100907906908
211918237892568244259258260
211919238892568244256257255
21192088567628352259258260
21192185636268638346345347
211922208578254902346345347
211923568782458134239237238
211924244566890242239237238
211925100290938614670671669
211926352854206530887886885
22200511801477153408409410
22201512801477153405406407
2220280170438056510511512
2220383645369693405406407
2220483545369693408409410
22205188261909585405406407
22206187261909585408409410
22207405512836188726727728
22208406512836188723724725
22209407512836188722721720
222010408511835187718717719
222011409511835187715714716
222012410511835187711713712
222013477164812488510511512
222014153920272596510511512
222015369848200524834836835
222016371848200524828830829
22201769392740416834836835
22201890920668344186188187
22201991020668344183184185
222020585776128452186188187
222021200581905257370369371
222022524149797473370369371
222023668749425101911909910
222024344533857209911909910
222025416509185833694695693
222026452821173497587586585
2321067897745421881879880
2321167997745421878876877
2321297291939615680678679
2321331637961313878876877
2321430637961313881879880
23215355853529205878876877
23216354853529205881879880
2321787867931355280281279
2321887667931355286287285
2321987767931355282284283
23211088167830354272271270
23211187967830354278277276
23211288067830354274273275
23211374575723399680678679
232114421507831183680678679
2321159616513327323130
2321169606513327353433
232117313219867543323130
232118529147795471356355354
232119530147795471353351352
232120205579903255356355354
2321213322646970962961960
232122327538214862962961960
23212379570638258528529530
232124471166490814528529530
232125543466142790314312313
232126255562886238204206205
24220608121769445119117118
24221606121769445125123124
24222121607283931607608606
2422393033766113125123124
2422493233766113119117118
24225282877553229125123124
24226284877553229119117118
24227125606930282596594595
24228123606930282602600601
24229124606930282598597599
242210119608932284612614613
242211117608932284618620619
242212118608932284617616615
24221376939167715607608606
242214445823175499607608606
242215661751103427931930932
242216660751103427934933935
24221713319967643931930932
242218553463139787283282284
242219554463139787280281279
242220229895247571283282284
242221103289613937662661660
242222427505181829662661660
242223139925601277552553554
24222478770961385552553554
242225643433109757141213
242226571781133457228230229
25230535145793469338336337
25231536145793469335333334
25232145923599275534535536
2523386036168537335333334
2523485936168537338336337
25235212577253901335333334
25236211577253901338336337
25237335536860212936937938
25238333536860212942943944
25239334536860212941940939
252310338535859211928927929
252311336535859211934933935
252312337535859211930932931
25231379370738359534535536
252314469167491815534535536
25231568595419743858860859
25231668495419743861863862
25231737635311959858860859
252318253563239887210212211
252319254563239887207208209
25232090123347671210212211
252321419508832184686685684
25232274376724400686685684
252323239892568244252253254
25232488767628352252253254
2523259596523284383637
252326671748100424900902901
2624070241389737808809807
2624170341389737805806804
26242413510186834704702703
2624355953305629805806804
2624454953305629808809807
26245379197845521805806804
26246378197845521808809807
2624780570355379499500498
2624880670355379496497495
2624980470355379501503502
26241080870254378491490489
26241180970254378488487486
26241280770254378493492494
26241389294942618704702703
26241473778402726704702703
262415305222546870565554
262416304222546870595857
262417629438114762565554
26241884536642690380379378
26241984336642690386384385
262420521150474798380379378
262421546465789141303305304
26242287068135733303305304
26242342633309957844845843
26242469093417741844845843
26242576239369717627628629
26242679870557381520519521
27250632437113761464745
27251630437113761525351
27252437826502178631632630
272539546535329525351
272549566535329464745
27255306221869545525351
27256308221869545464745
2725752630954306815813814
2725853630954306812810811
2725951630954306817816818
27251046632956308831833832
27251147632956308828830829
27251245632956308836835834
272513113610286934631632630
27251476139471870631632630
2725155322646970955954956
2725164322646970958957959
272517329538214862955954956
27251886968235834307306308
27251986768235834313314312
272520545466790142307306308
272521646432756108354
2725229706483240354
272523358852528204868869867
27252434636960312868869867
27252586236036684327328329
272526142924276600544543545
28260559461137785265266264
28261560461137785262263261
28262461170818494558559560
2826388467729353262263261
2826488367729353265266264
28265236893569245262263261
28266235893569245265266264
28267262560884236183184185
28268263560884236180181182
28269261560884236188187186
282610265559883235175174176
282611266559883235172171173
282612264559883235177179178
282613137926602278558559560
28261478571062386558559560
28261529638962314882884883
28261628638962314885887886
282617353854530206882884883
282618569782458134234236235
282619567782458134240241242
282620245566890242234236235
2826219626513327272928
282622314219867543272928
282623458819495171568569567
282624134603927279568569567
282625206579255903351352353
282626242891243567244243245
3027089724672348222223224
3027189824672348219220221
3027224315963639899897898
30273250564888240219220221
30274249564888240222223224
30275574780456132219220221
30276573780456132222223224
30277219898250574313314312
30278220898250574310311309
30279221898250574306308307
302710222897249573305304303
302711223897249573302301300
302712224897249573298297299
30271367274742399899897898
302714348531855207899897898
30271588867527351251250249
30271689067527351245244243
302717240891567243251250249
302718456819495171575574573
302719457819495737572570571
302720132603927279575574573
30272127638962314889888890
302722351854530206889888890
302723495806482158458456457
302724171266590914458456457
302725243566242890241242240
302726279878230554134133132
3128082748696372432433434
3128182548696372438439440
3128248631307955826827825
31283177264588912438439440
31284179264588912432433434
31285501804480156438439440
31286503804480156432433434
31287438825177501629627628
31288439825177501626624625
31289440825177501622621623
312810432827179503645647646
312811433827179503642644643
312812434827179503641640639
31281369691739415826827825
312814372847199523826827825
312815588775127451178177179
312816590775127451172171173
31281791219667343178177179
312818480163811487502501503
312819481163811487499500498
312820156919271595502501503
312821127605929281589588590
312822451821497173589588590
31282381153701377482480481
312824487809161485482480481
312825343533209857913914912
312826595125449773158157156
3229075472720396651652653
3229175572720396648649650
3229272947623299753754755
32293107288612936648649650
32294106288612936651652653
32295431504180828648649650
32296430504180828651652653
32297648755107431969970971
32298649755107431966967968
32299650755107431965964963
322910651754106430961960962
322911652754106430958957959
322912653754106430954956955
32291372040783731753754755
322914396191515839753754755
322915612119443767105107106
32291661411944376799101100
32291793633511659105107106
322918180263911587429431430
322919181263911587426427428
32292082847371695429431430
322921443824176500613612614
32292276739268716613612614
32292391120668344182180181
322924587776128452182180181
322925659752428104937938936
32292669592416740830829828
3330092134016664152150151
3330192234016664149147148
33302340534210858923921922
33303274880232556149147148
33304273880232556152150151
33305598124772448149147148
33306597124772448152150151
33307149922274598523524522
33308147922274598529530528
33309148922274598525527526
333010152921273597515514513
333011150921273597521520519
333012151921273597517516518
33301316318966642923921922
333014664750102426923921922
333015232894246570275274273
333016231894246570278277276
333017556462138786275274273
33301877239066714599598597
33301977339066714596594595
333020448822174498599598597
333021246565889241233232231
333022570781457133233232231
33302366949625301771772773
33302471440973385771772773
33302578670938561557555556
333026498805157481447449448
3431085136440688362360361
3431184936440688368366367
34312364850526202850851849
34313201580904256368366367
34314203580904256362360361
34315525148796472368366367
34316527148796472362360361
34317368849201525839837838
34318366849201525845843844
34319367849201525841840842
343110362851203527855857856
343111360851203527861863862
343112361851203527860859858
34311340634310958850851849
34311468894418742850851849
34311590422346670202201203
34311690322346670205204206
343117256562238886202201203
34311879670638258526525527
34311979770638258523524522
343120472166490814526525527
343121346532856208905904903
343122670748424100905904903
343123382196844520795796797
34312458952304628795796797
34312588667635228257255256
34312681452376700471473472
3532077838864712581579580
3532177938864712578576577
35322388194842518777778779
35323131604928280578576577
35324130604928280581579580
35325455820496172578576577
35326454820496172571579580
35327578779131455207208209
35328576779131455213214215
35329577779131455212211210
353210581778130454199198200
353211579778130454205204206
353212580778130454201203202
35321364950626302777778779
35321471241073486777778779
35321592833866214129131130
35321692733866214132134133
353217280878554230129131130
353218496806482158453455454
353219497806482158450451452
353220172266590914453455454
353221662751103427929928927
35322214319967643929928927
353223482163811487495496497
353224158919271595495496497
353225230895571247281279280
35322691419343667171173172
363309456563328798078
363319466563328767775
36332656753429105947945946
36333298224548872767775
36334297224548872798078
36335622440116764767775
36336621440116764798078
3633776946298622742743741
3633877946298622739740738
3633975946298622744746745
36331079945297621734733732
36331180945297621731730729
36331278945297621736735737
363313332537213861947945946
3633148321645969947945946
363315548465789141299298297
363316547465789141302301300
36331787268135733299298297
363318116609285933623622621
363319114609285933629627628
36332076439371769623622621
36332178970860384546548547
363322141924600276546548547
363323285876552228115116114
36332493333666012115116114
36332533636312960870871872
36332669948300624763762764
3734087568035632289290288
3734187368035632295296294
3734268097745421874875873
37343225896248572295296294
37344227896248572289290288
37345549464140788295296294
37346551464140788289290288
37347295873225549868485
37348296873225549838182
37349294873225549888789
373410289875227551102104103
37341129087522755199101100
373412288875227551107106105
373413356853529205874875873
37341432637961313874875873
373415248565889241226225227
373416247565889241229228230
373417572781457133226225227
373418140925601277550549551
373419138925601277556557555
37342078870961385550549551
37342188967527351246248247
373422241891567243246248247
373423601123771447139140138
373424277879231555139140138
373425133603279927570571572
373426385195519843787786788
3835080270438056508509507
3835180370438056505506504
3835270441389737801802803
38353155920272596505506504
38354154920272596508509507
38355479164812488505506504
38356478164812488508509507
38357505803155479426427428
38358506803155479423424425
38359504803155479431430429
383510508802154478418417419
383511509802154478415414416
383512507802154478420422421
383513380197845521801802803
38351456953305629801802803
383515272881233557153155154
383516271881233557156158157
383517596125773449153155154
38351881253701377477479478
38351981053701377483484485
383520488809161485477479478
383521233894246570270272271
383522557462138786270272271
38352370190738414811812810
383524377846198522811812810
383525449822498174594595596
383526485162486810487486488

Claims as granted

16 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

18 codes
IPC · International Patent Classification
Section H — Electricity
  • H04L41/12
  • H04L41/344
  • H04L12/28
USPC · US Patent Classification
370/255709/221709/222370/231709/228709/220370/254370/230370/237370/235709/229709/227709/225370/236709/226

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJan 2007Jul 2007Jan 2008Jul 2008Jan 2009Jul 2009Jan 2010Jul 2010USPTOApplicantNon-final rejectionResponse after non-finalResponse after final
USPTOApplicanthover for detail · click to open
Pendency
3.7 y
1,336 days filing → grant
Office actions
2
non-final + final
Responses
2
no RCE
Examiner
Ayaz R Sheikh
art unit 2476 · TC 2400
Citations: 12 back · 4 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom2008201020122014201620182020202220242026Owner 1Owner 3
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock