Method and apparatus for network with multilayer metalization
First Claim
1. An apparatus comprising:
- a plurality of processing elements;
one or more first dimension channels;
each first dimension channel comprising;
a plurality of first dimension interconnect paths, wherein at least some of the first dimension interconnect paths are coupled to at least some of the processing elements; and
a plurality of first dimension interconnect switches, wherein at least some first dimension interconnect switches are coupled to at least some of the first dimension interconnect paths to connect selected processing elements to other selected processing elements, and wherein the plurality of first dimension interconnect paths and the plurality of first dimension interconnect switches are arranged to form one or more first dimension hierarchical levels, each first dimension hierarchical level comprising one or more first dimension parent segments, each first dimension parent segment having one or more corresponding first dimension child segments, the one or more corresponding first dimension child segments connected to the corresponding first dimension parent segment and wherein at least one first dimension child segment is also connected to a different first dimension parent segment within the same first dimension hierarchical level or wherein at least one first dimension child segment is also connected to a different first dimension parent segment at a different first dimension hierarchical level; and
one or more second dimension channels;
each second dimension channel comprising;
a plurality of second dimension interconnect paths, wherein at least some of the second dimension interconnect paths are coupled to at least some of the processing elements; and
a plurality of second dimension interconnect switches, wherein at least some second dimension interconnect switches are coupled to at least some of the second dimension interconnect paths to connect selected processing elements to other selected processing elements, and wherein the plurality of second dimension interconnect paths and the plurality of second dimension interconnect switches are arranged to form one or more second dimension hierarchical levels, each second dimension hierarchical level comprising one or more second dimension parent segments, each second dimension parent segment having one or more corresponding second dimension child segments, the one or more corresponding second dimension child segments connected to the corresponding second dimension parent segment and wherein at least one second dimension child segment is also connected to a different second dimension parent segment within the same second dimension hierarchical level or wherein at least one second dimension child segment is also connected to a different second dimension parent segment at a different second dimension hierarchical level, and wherein each processing element is either connected to at least one first dimension child segment at a lowest level of the first dimension hierarchical levels, or is connected to at least one second dimension child segment at a lowest level of the second dimension hierarchical levels, or is connected to at least one first dimension child segment at a lowest level of the first dimension hierarchical levels and to at least one second dimension child segment at a lowest level of the second dimension hierarchical levels.
1 Assignment
0 Petitions
Accused Products
Abstract
A network for interconnecting processing element nodes which supports rich interconnection while having a number of switching elements which is linear in the number of processing elements interconnected. Processing elements connect to the lowest level of the tree and the higher levels of the tree make connections between the processing elements. The processing elements may be laid out in a two dimensional grid and one or more horizontal and vertical trees may be used to connect between the processing elements with corner switches used to connect between the horizontal and vertical trees. The levels of the tree can be accommodated in multiple layers of metalization such that the entire layout requires a two-dimensional area which is linear in the number of processing elements supported.
-
Citations
87 Claims
-
1. An apparatus comprising:
-
a plurality of processing elements;
one or more first dimension channels;
each first dimension channel comprising;
a plurality of first dimension interconnect paths, wherein at least some of the first dimension interconnect paths are coupled to at least some of the processing elements; and
a plurality of first dimension interconnect switches, wherein at least some first dimension interconnect switches are coupled to at least some of the first dimension interconnect paths to connect selected processing elements to other selected processing elements, and wherein the plurality of first dimension interconnect paths and the plurality of first dimension interconnect switches are arranged to form one or more first dimension hierarchical levels, each first dimension hierarchical level comprising one or more first dimension parent segments, each first dimension parent segment having one or more corresponding first dimension child segments, the one or more corresponding first dimension child segments connected to the corresponding first dimension parent segment and wherein at least one first dimension child segment is also connected to a different first dimension parent segment within the same first dimension hierarchical level or wherein at least one first dimension child segment is also connected to a different first dimension parent segment at a different first dimension hierarchical level; and
one or more second dimension channels;
each second dimension channel comprising;
a plurality of second dimension interconnect paths, wherein at least some of the second dimension interconnect paths are coupled to at least some of the processing elements; and
a plurality of second dimension interconnect switches, wherein at least some second dimension interconnect switches are coupled to at least some of the second dimension interconnect paths to connect selected processing elements to other selected processing elements, and wherein the plurality of second dimension interconnect paths and the plurality of second dimension interconnect switches are arranged to form one or more second dimension hierarchical levels, each second dimension hierarchical level comprising one or more second dimension parent segments, each second dimension parent segment having one or more corresponding second dimension child segments, the one or more corresponding second dimension child segments connected to the corresponding second dimension parent segment and wherein at least one second dimension child segment is also connected to a different second dimension parent segment within the same second dimension hierarchical level or wherein at least one second dimension child segment is also connected to a different second dimension parent segment at a different second dimension hierarchical level, and wherein each processing element is either connected to at least one first dimension child segment at a lowest level of the first dimension hierarchical levels, or is connected to at least one second dimension child segment at a lowest level of the second dimension hierarchical levels, or is connected to at least one first dimension child segment at a lowest level of the first dimension hierarchical levels and to at least one second dimension child segment at a lowest level of the second dimension hierarchical levels. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method of providing connections between a plurality of processing elements comprising:
-
providing a plurality of first dimension interconnect paths, wherein some of the first dimension interconnect paths are coupled to processing elements;
providing a plurality of first dimension interconnect switches, the plurality of first dimension interconnect switches connecting selected first dimension interconnect paths to other selected first dimension interconnect paths;
configuring the plurality of first dimension interconnect paths and the plurality of first dimension interconnect switches to form one or more first dimension trees, each first dimension tree having one or more levels of first dimension parent-child hierarchy, wherein at least one processing element is connected to at least one first dimension child at a lowest level of the first dimension parent-child hierarchy and at least one first dimension child has a plurality of first dimension parents;
providing a plurality of second dimension interconnect paths, wherein some of the second dimension interconnect paths are coupled to processing elements;
providing a plurality of second dimension interconnect switches, the plurality of second dimension interconnect switches connecting selected second dimension interconnect paths to other selected second dimension interconnect paths; and
configuring the plurality of second dimension interconnect paths and the plurality of second dimension interconnect switches to form one or more second dimension trees, each second dimension tree having one or more levels of second dimension parent-child hierarchy, wherein at least one processing element is connected to at least one second dimension child at a lowest level of the second dimension parent-child hierarchy and at least one second dimension child has a plurality of second dimension parents. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
-
45. A method for providing placement and routing of a network having multiple nodes laid out in a two-dimensional pattern, said method comprising:
-
partitioning the circuit into multiple partitions having a hierarchy;
using the partition hierarchy to associate nodes with processing elements;
forming one or more vertical trees based on the partition hierarchy, wherein each vertical tree has multiple levels and each vertical child at a first vertical level is connected to a vertical parent at second vertical level above the first vertical level, and at least one node is connected to a vertical child at the lowest vertical level, and wherein connections between vertical children and vertical parents are provided by vertical switches;
forming one or more horizontal trees based on the partition hierarchy, wherein each horizontal tree has multiple levels and each horizontal child at a first horizontal level is connected to a horizontal parent at second horizontal level above the first horizontal level, and at least one node is connected to a horizontal child at the lowest horizontal level, and wherein connections between horizontal children and horizontal parents are provided by horizontal switches;
constructing at least one vertical tree and/or one horizontal tree to provide a minimum number of switches between a first node and a second node; and
providing one or more corner switches to switch between at least one vertical tree and at least one horizontal tree. - View Dependent Claims (46, 47, 48)
-
-
49. A method a placing a graph with multiple nodes in two dimensions to provide routing connections between processing elements in a circuit, wherein the circuit is realized in a structure having multiple metal layers, the method comprising:
-
partitioning the circuit into multiple partitions to provide a partition hierarchy;
associating the nodes with processing elements based on the partition hierarchy;
assigning partitions to successive halves of a Butterfly Fat Tree network, wherein the Butterfly Fat Tree network has a plurality of horizontal channels and/or a plurality of vertical channels;
routing connections between nodes in the Butterfly Fat Tree topology;
adding one or more links between one or more nodes in at least one horizontal channel to one or more nodes in one or more other horizontal channels, wherein the one or more nodes are at a same logical level in the horizontal channels and/or adding one or more links between one or more nodes in at least one vertical channel to one or more nodes in one or more other vertical channels, wherein the one or more nodes are at a same logical level in the vertical channels; and
using an assignment of node to Butterfly Fat Tree links and a physical layout of the Butterfly Fat Tree links to define physical routes between nodes.
-
-
50. A method for providing interconnection between a plurality of processing elements comprising:
-
providing a plurality of switches;
arranging the plurality of switches to provide one or more tree structures, each tree structure having a plurality of branches and a plurality of levels;
associating each processing element in the plurality of processing elements with a corresponding lowest level switch at a lowest level of each tree by coupling the processing element to the corresponding lowest level switch;
recursively building each tree structure by;
coupling each switch to one or more switches at a same level in the tree structure and/or to one or more switches at a higher level in the tree structure; and
continue coupling the switches until there is a path for each processing element from one or more common points at a top level of the tree structure to each processing element, wherein the number of switches in the path between at least one common point and the processing element is the same for each processing element and wherein at least one tree structure has an arity other than two and/or has a Rent exponent other than 0.5. - View Dependent Claims (51)
-
-
52. A method for constructing a hierarchical synchronous reconfigurable array or Butterfly Fat Tree comprising:
-
providing a plurality of horizontal channels and/or vertical channels, wherein the plurality of horizontal channels and/or vertical channels are configured according to horizontal channels and/or vertical channels of a mesh of trees topology;
adding one or more links between one or more switching nodes in at least one horizontal channel to one or more switching nodes in one or more other horizontal channels, wherein the one or more switching nodes are at a same logical level in the horizontal channels; and
/oradding one or more links between one or more switching nodes in at least one vertical channel to one or more switching nodes in one or more other vertical channels, wherein the one or more switching nodes are at a same logical level in the vertical channels. - View Dependent Claims (53, 54, 55, 56, 57, 58, 59, 60)
-
-
61. A method for mapping a graph of connected nodes:
-
recursively bisecting the graph;
assigning graph partitions from the bisection to successive halves of a Butterfly Fat Tree;
building the Butterfly Fat Tree with a plurality of hierarchical horizontal and vertical channels, wherein at least one horizontal channel and/or vertical channel has at least one child segment connected to a plurality of parent segments at the same or different levels in the hierarchical horizontal and/or vertical channels; and
,routing the mapped network on the Butterfly Fat Tree. - View Dependent Claims (62, 63, 64, 65, 66)
-
-
67. A method for laying out a plurality of processing elements in a structure having multiple metal layers at different levels comprising:
-
connecting the plurality of processing elements to plurality of hierarchical horizontal and vertical trees, wherein at least one horizontal channel and/or vertical channel has at least one child segment connected to a plurality of parent segments at the same or different levels in the hierarchical horizontal and/or vertical channels;
associating switches providing inter-tree-level routing in each horizontal and vertical tree with a corresponding processing element; and
assigning wiring for different tree levels to metal layers at different or same levels. - View Dependent Claims (68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87)
-
Specification