Claims
- 1. A system comprising:
a memory controller that separates a memory into multiple banks and enables a plurality of selected banks to be accessed concurrently, the memory controller further comprising:
a logic that creates a representation of a tree structure in memory and builds routing tables accessed by pointers at nodes in the tree memory structure; and a logic that finds a target memory address based on a received Internet Protocol (IP) address used by the tree memory structure and the routing-table.
- 2. The system according to claim 1 wherein the memory controller further comprises:
a logic that uses route packets received by the memory controller to add nodes to the tree structure and add data to the routing table.
- 3. The system according to claim 2 further comprising:
a first data structure that holds addresses associated with input ports coupled to the memory; a second data structure that holds at least one directory containing destination information in the route packets; a third data structure operational as a tree for usage in building and maintaining directories (and optionally to locate data in routing tables); and a fourth data structure that uses hashing to economically store information accessed using the tree structure.
- 4. The system according to claim 3 wherein the third data structure is further used to locate data in the routing tables.
- 5. The system according to claim 2 wherein the memory controller further comprises:
a logic that receives route packets containing information that assists communication of data through the tree structure including information identifying an Internet Protocol (IP) address, significant portion of the IP address for using in determining routing, a measure of worth of the routing path, and an operation code indicating an operation to perform on the communicated information.
- 6. The system according to claim 5 wherein:
the route packets are entries into a tree that receive from downstream routers, the route packet information includes an Internet Protocol (IP) address (Seq), a number of bits of the IP address to identify output port (Opt), a measure of worth of the output port (RV), and an operation code identifying an operation to be performed on the route packet (Opc).
- 7. The system according to claim 1 wherein the memory controller further comprises:
logic responsive to directions contained in the route packet that performs an operation selected from among a group comprising:
determining whether an entry is to be made to the routing table and, if so, making the entry; removing an entry from the routing table; and modifying a measure of value indication in a routing table entry.
- 8. The system according to claim 1 wherein the memory controller further comprises:
a routing table memory configured as a plurality of storage elements that indirectly associate a partial Internet Protocol (IP) address with a list of ordered pairs, the ordered pairs including an output port element and a value element.
- 9. The system according to claim 8 further comprising:
a logic that selects the output port element as a port capable of transferring a message to a final destination in a minimum number of hops.
- 10. The system according to claim 1 further comprising:
a logic that determines output port information based on packet header information in a message packet using a plurality of data structures; a logic that modifies content of at least one structure of the plurality of data structures in response to arrival of route packets and data packets at the memory controller; and a logic that builds and modifies data structures using a system of binary trees with a plurality of nodes, each associated with a data item configured as a binary sequence, the nodes being accessed indirectly by proceeding, node by node, through the tree.
- 11. The system according to claim 10 further comprising:
a logic that modifies content of at least one structure of the plurality of data structures in response to arrival of route packets and data packets at the memory controller; and a logic that builds and modifies data structures using a system of binary trees with a plurality of nodes, each associated with a data item configured as a binary sequence, the nodes being accessed indirectly by proceeding, node by node, through the tree.
- 12. The system according to claim 1 further comprising:
a logic that adds an item to a tree structure upon receipt of a route packet with an operation code field designating an add operation, the logic further comprising:
a logic, operative if a path exists through nodes to a designated target node, that steps through a binary sequence of nodes specified in the route packet, and that modifies a routing table element at the target node if the target node indicates an associated routing table element; and logic, operative if no path exists through nodes to the designated target, which adds new nodes in route to the designated target node.
- 13. The system according to claim 12 further comprising:
a logic that steps through a binary sequence by stepping through multiple levels of a two-dimensional tree structure in a first dimension, level by level, and advancing left or right based on the binary selection in a second dimension with each step, whereby a node at an Nth level is represented by an N-long binary sequence; and a logic that defines a pointer for a node that is associated with an output port.
- 14. The system according to claim 1 further comprising:
a logic that adds an item to a tree structure upon receipt of a route packet with an operation code field designating an add operation, the logic further comprising:
a logic, operative if a path exists through nodes to a designated target node, that steps through a binary sequence of nodes specified by an Internet Protocol (IP) address in the route packet, and that modifies a flag and pointer value of a routing table element at the target node if the target node indicates an associated routing table element; and logic, operative if no path exists through nodes to the designated target, which adds new nodes in route to the designated target node.
- 15. The system according to claim 1 further comprising:
a logic that deletes one or more items from a tree structure upon receipt of a route packet with an operation code field designating a delete operation, the logic further comprising:
a logic that steps through a binary sequence of nodes specified in the route packet to a level in the tree structure beyond which the one or more items are to be deleted, and that deletes pointers to the deleted items and modifies data associated to the deleted items.
- 16. The system according to claim 1 further comprising:
a logic that stores a backup sequence describing the tree structure as the tree structure is created; and a logic that retraces progression in the tree structure that enables movement toward a root node of the tree structure.
- 17. A system comprising:
a memory controller that separates a memory into multiple banks and enables a plurality of selected banks to be accessed concurrently, the memory controller further comprising:
a logic that creates a representation of a tree structure in memory that is configured into a plurality of sub-trees defined by a sub-tree directory and a plurality of sub-tree-associated banks, the sub-trees having a root at a specified level in a multiple-level tree structure; and a logic that finds a target memory address based on a received Internet Protocol (IP) address used by the tree memory structure.
- 18. The system according to claim 17 further comprising:
a logic that manages the sub-tree directory to point to sub-tree locations in the sub-tree-associated banks.
- 19. The system according to claim 17 further comprising:
a plurality of processors that create the plurality of sub-trees and load the sub-trees into the sub-tree-associated banks.
- 20. The system according to claim 17 further comprising:
a logic that builds routing tables that are accessed by pointers at nodes in the tree structure; and a logic that uses route packets received by the memory controller to add nodes to the tree structure and add data to the routing table.
- 21. The system according to claim 20 further comprising:
a logic that tours the sub-tree prior to arrival of a route packet and initializes clipboard functions associated with nodes of the sub-tree.
- 22. The system according to claim 21 further comprising:
a logic that receives a route packet and responds by modifying the routing table at a location identified by the route packet; and a logic that tours the sub-tree after changing the routing table entry and updates clipboard functions associated to reflect current status of the tree.
- 23. The system according to claim 17 further comprising:
a logic that manages a plurality of sub-trees with the individual sub-trees having a root at different levels in the tree structure, the sub-trees being arranged in a hierarchy whereby a bank of a sub-tree at a higher level can spawn multiple sub-trees at a lower level enabling parallel construction and updating of a lower level directory and lower level banks.
- 24. The system according to claim 17 further comprising:
a logic that manages filling of data into a plurality of sub-tree-associated banks whereby the individual banks continuously hold approximately a same data amount, the logic filling the plurality of banks with sub-tree data to a percentage fullness until the percentage fullness is attained, then increasing the percentage to hold additional data.
- 25. The system according to claim 24 further comprising:
a plurality of processors capable of operating in parallel to fill the data into the plurality of sub-tree-associated banks.
- 26. The system according to claim 17 further comprising:
a logic that backtracks through a tree comprising: a logic that maintains a running update containing a backup sequence and enables retracing toward a root node of a tree, the backup sequence include a node label, identification of a binary sequence of the node, and contents of a clipboard at the node.
- 27. The system according to claim 17 further comprising:
a logic that determines output port information based on packet header information in a message packet using a plurality of data structures; a logic that modifies content of at least one structure of the plurality of data structures in response to arrival of route packets and data packets at the memory controller; and a logic that builds and modifies data structures using a system of binary trees with a plurality of nodes, each associated with a data item configured as a binary sequence, the nodes being accessed indirectly by proceeding, node by node, through the tree.
- 28. The system according to claim 27 further comprising:
a logic that modifies content of at least one structure of the plurality of data structures in response to arrival of route packets and data packets at the memory controller; and a logic that builds and modifies data structures using a system of binary trees with a plurality of nodes, each associated with a data item configured as a binary sequence, the nodes being accessed indirectly by proceeding, node by node, through the tree.
- 29. The system according to claim 17 further comprising:
a logic that adds an item to a tree structure upon receipt of a route packet with an operation code field designating an add operation, the logic further comprising:
a logic, operative if a path exists through nodes to a designated target node, that steps through a binary sequence of nodes specified in the route packet, and that modifies a routing table element at the target node if the target node indicates an associated routing table element; and logic, operative if no path exists through nodes to the designated target, which adds new nodes in route to the designated target node.
- 30. The system according to claim 29 further comprising:
a logic that steps through a binary sequence by stepping through multiple levels of a two-dimensional tree structure in a first dimension, level by level, and advancing left or right based on the binary selection in a second dimension with each step, whereby a node at an Nth level is represented by an N-long binary sequence; and a logic that defines a pointer for a node that is associated with an output port.
- 31. The system according to claim 17 further comprising:
a logic that adds an item to a tree structure upon receipt of a route packet with an operation code field designating an add operation, the logic further comprising:
a logic, operative if a path exists through nodes to a designated target node, that steps through a binary sequence of nodes specified by an Internet Protocol (IP) address in the route packet, and that modifies a flag and pointer value of a routing table element at the target node if the target node indicates an associated routing table element; and logic, operative if no path exists through nodes to the designated target, which adds new nodes in route to the designated target node.
- 32. The system according to claim 17 further comprising:
a logic that deletes one or more items from a tree structure upon receipt of a route packet with an operation code field designating a delete operation, the logic further comprising:
a logic that steps through a binary sequence of nodes specified in the route packet to a level in the tree structure beyond which the one or more items are to be deleted, and that deletes pointers to the deleted items and modifies data associated to the deleted items.
- 33. The system according to claim 17 further comprising:
a logic that holds the tree structure constant while maintaining a copy of the tree structure for active usage in assigning output ports for directing incoming messages; a logic that accumulates information for updating a replacement tree structure; and a logic that periodically deletes a currently-active tree structure and activates the replacement tree structure for assignment of output ports.
RELATED PATENT AND PATENT APPLICATIONS
[0001] The disclosed system and operating method are related to subject matter disclosed in the following patents and patent applications that are incorporated by reference herein in their entirety:
[0002] 1. U.S. Pat. No. 5,996,020 entitled, “A Multiple Level Minimum Logic Network”, naming Coke S. Reed as inventor;
[0003] 2. U.S. Pat. No. 6,289,021 entitled, “A Scaleable Low Latency Switch for Usage in an Interconnect Structure”, naming John Hesse as inventor;
[0004] 3. U.S. patent application Ser. No. 09/693,359 entitled, “Multiple Path Wormhole Interconnect”, naming John Hesse as inventor;
[0005] 4. U.S. patent application Ser. No. 09/693,357 entitled, “Scalable Wormhole-Routing Concentrator”, naming John Hesse and Coke Reed as inventors;
[0006] 5. U.S. patent application Ser. No. 09/693,603 entitled, “Scaleable Interconnect Structure for Parallel Computing and Parallel Memory Access”, naming John Hesse and Coke Reed as inventors;
[0007] 6. U.S. patent application Ser. No. 09/693,358 entitled, “Scalable Interconnect Structure Utilizing Quality-Of-Service Handling”, naming Coke Reed and John Hesse as inventors;
[0008] 7. U.S. patent application Ser. No. 09/692,073 entitled, “Scalable Method and Apparatus for Increasing Throughput in Multiple Level Minimum Logic Networks Using a Plurality of Control Lines”, naming Coke Reed and John Hesse as inventors;
[0009] 8. U.S. patent application Ser. No. 09/919,462 entitled, “Means and Apparatus for a Scaleable Congestion Free Switching System with Intelligent Control”, naming John Hesse and Coke Reed as inventors;
[0010] 9. U.S. patent application Ser. No. 10/123,382 entitled, “A Controlled Shared Memory Smart Switch System”, naming Coke S. Reed and David Murphy as inventors;
[0011] 10. United States patent application Ser. No. ______entitled, “Means and Apparatus for a Scaleable Congestion Free Switching System with Intelligent Control II”, naming Coke Reed and David Murphy as inventors;
[0012] 11. Means and Apparatus for a Scaleable Network for Use in Computing and Data Storage Management, naming Coke Reed and David Murphy as inventors;
[0013] 12. United States patent application Ser. No. ______entitled, “Means and Apparatus for a Scaleable Congestion Free Switching System with Intelligent Control III”, naming John Hesse, David Murphy and Coke Reed as inventors.
[0014] Related Publications
[0015] 1. Anthony J. McAuley and Paul Francis, “Fast Routing Table Lookup Using CAMs” Proc. IEEE INFOCOM 1993, vol. 3 pp. 1382-1391, San Francisco, USA.
[0016] 2. Merit Networks, Inc. See http://www.merit.edu
[0017] The Related Patents and Publications
[0018] The incorporated reference by Merit Networks studies the composition of the routing for a router. This information is mentioned in the section entitled “A Parameterized Example”.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60479026 |
Jun 2003 |
US |