IP Library Granted Patent US 8,761,166
Granted Patent B2
US 8,761,166 · App. 12/942,483 · Granted Jun 24, 2014

Flexible routing tables for a high-radix router

Inventors: Steven L. Scott (Chippewa Falls, WI); Gregory Hubbard (Chippewa Falls, WI); Dennis C. Abts (Eleva, WI)
Assignee: Intel Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,761,166
App. No.
12/942,483
Granted
Jun 24, 2014
Kind
B2
Abstract

A system and method for routing in a high-radix network. A packet is received and examined to determine if the packet can be routed adaptively. If the packet can be routed adaptively, the packet is routed adaptively, wherein routing adaptively includes selecting a column, computing a column mask, routing the packet to the column; and selecting an output port as a function of the column mask. If the packet can be routed deterministically, routing deterministically, wherein routing deterministically includes accessing a routing table to obtain an output port and routing the packet to the output port from the routing table.

Claims (72)

1. A multiprocessor computer system interconnect network node comprising a router, the router comprising routing logic and a plurality of output ports, the router operable to:

receive a packet, wherein the packet includes a plurality of fields;

examine the packet to determine if the packet can be routed adaptively;

if the packet can be routed adaptively, route the packet adaptively, wherein routing adaptively includes:

selecting a column;

computing a column mask from mask bits from a plurality of entries in a routing table, the mask bits identifying a subtree of the network in which the destination node resides;

routing the packet to the selected column; and

selecting an output port as a function of the column mask;

if the packet is not routed adaptively, route the packet deterministically, wherein routing deterministically includes:

accessing a routing table to obtain an output port; and

routing the packet to the output port from the routing table.

2. The multiprocessor computer system interconnect network node of claim 1 , wherein the router comprises a high-radix router.

3. The multiprocessor computer system interconnect network node of claim 1 , wherein the routing table is adapted to avoid faults in the subtree.

4. The multiprocessor computer system interconnect network node of claim 1 , wherein the multiprocessor computer system interconnect network comprises a folded close network or a fat tree network.

5. The multiprocessor computer system interconnect network node of claim 1 , wherein the router further comprises an array of router tiles.

6. The multiprocessor computer system interconnect network node of claim 5 , wherein each router tile in the array of router tiles comprises one input and one output port, and is coupled to other output tiles that are in the same row or column.

7. A multiprocessor computer system interconnect network router comprising routing logic and a plurality of output ports, the router operable to:

receive a packet, wherein the packet includes a plurality of fields;

examine the packet to determine if the packet can be routed adaptively;

if the packet can be routed adaptively, route the packet adaptively, wherein routing adaptively includes:

selecting a column;

computing a column mask from mask bits from a plurality of entries in a routing table, the mask bits identifying a subtree of the network in which the destination node resides;

routing the packet to the selected column; and

selecting an output port as a function of the column mask;

if the packet is not routed adaptively, route the packet deterministically, wherein routing deterministically includes:

accessing a routing table to obtain an output port; and

routing the packet to the output port from the routing table.

8. The multiprocessor computer system interconnect router of claim 7 , wherein the router comprises a high-radix router.

9. The multiprocessor computer system interconnect network router of claim 7 , wherein the multiprocessor computer system interconnect network comprises a folded close network or a fat tree network.

10. The multiprocessor computer system interconnect network router of claim 7 , wherein the router further comprises an array of router tiles.

11. The multiprocessor computer system interconnect network router of claim 10 , wherein each router tile in the array of router tiles comprises one input and one output port, and is coupled to other output tiles that are in the same row or column.

12. A multiprocessor computer system comprising a plurality of nodes, each of the plurality of nodes comprising a router, the router comprising routing logic and a plurality of output ports, the router operable to:

receive a packet, wherein the packet includes a plurality of fields;

examine the packet to determine if the packet can be routed adaptively;

if the packet can be routed adaptively, route the packet adaptively, wherein routing adaptively includes:

selecting a column;

computing a column mask from mask bits from a plurality of entries in a routing table, the mask bits identifying a subtree of the network in which the destination node resides;

routing the packet to the selected column; and

selecting an output port as a function of the column mask;

if the packet is not routed adaptively, route the packet deterministically, wherein routing deterministically includes:

accessing a routing table to obtain an output port; and

routing the packet to the output port from the routing table.

13. The multiprocessor computer system of claim 12 , wherein the router further comprises an array of router tiles.

14. The multiprocessor computer system of claim 12 , wherein the router comprises a high-radix router.

15. The multiprocessor computer system of claim 12 , wherein each node further comprises one or more processors.

16. The multiprocessor computer system of claim 12 , wherein the multiprocessor computer system interconnect network comprises a folded close network or a fat tree network.

17. The multiprocessor computer system of claim 13 , wherein each router tile in the array of router tiles comprises one input and one output port, and is coupled to other output tiles that are in the same row or column.

18. In a system having a N output ports, wherein N is an integer greater than one, a method of distributing packets across the plurality of output ports, comprising:

receiving a packet in a processor interconnect network node, wherein the packet includes a plurality of fields;

examining the packet to determine if the packet can be routed adaptively;

if the packet can be routed adaptively, routing adaptively, wherein routing adaptively includes:

selecting a column;

computing a column mask from mask bits from a plurality of entries in a routing table, the mask bits identifying a subtree of the network in which the destination node resides;

routing the packet to the selected column; and

selecting an output port as a function of the column mask, wherein selecting is a function of space available in a row buffer for each column;

if the packet is not routed adaptively can be routed deterministically, routing the packet deterministically, wherein routing deterministically includes:

accessing a routing table to obtain an output port, wherein accessing includes computing a hash function and selecting output ports based on an output of the hash function; and

routing the packet to the output port obtained from the routing table.

19. The method of claim 18 , wherein the hash function is an XOR of input port and destination processor.

20. The method of claim 18 , wherein the hash function changes as a function of network level.

21. The method of claim 18 , wherein packet destination is associatively checked against routing table entries.

22. A nontransitory computer readable medium having instructions to cause a computer to implement a method of distributing packets across a plurality of output ports, the method comprising:

receiving a packet in a processor interconnect network node, wherein the packet includes a plurality of fields;

examining the packet to determine if the packet can be routed adaptively;

if the packet can be routed adaptively, routing adaptively, wherein routing adaptively includes:

selecting a column;

computing a column mask from mask bits from a plurality of entries in a routing table, the mask bits identifying a subtree of the network in which the destination node resides;

routing the packet to the selected column; and

selecting an output port as a function of the column mask, wherein selecting is a function of space available in a row buffer for each column;

if the packet is not routed adaptively can be routed deterministically, routing the packet deterministically, wherein routing deterministically includes:

accessing a routing table to obtain an output port, wherein accessing includes computing a hash function and selecting output ports based on an output of the hash function; and

routing the packet to the output port obtained from the routing table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2012
From: CRAY INC.
To: INTEL CORPORATION
Reel/Frame 028545/0797 →
Continuity (3)
Continuation 12107016 · Apr 21, 2008
Provisional Application 60925470 · Apr 20, 2007
Related Publication 20110051724A1 · Mar 3, 2011