Multi-dimensional lattice network
First Claim
1. A lattice network comprising:
- a plurality of edge modules arranged into;
a group of non-intersecting primary sub-nets, each primary subnet having a first number of edge modules;
a group of non-intersecting secondary sub-nets, each secondary sub-net having a second number of edge modules; and
a group of non-intersecting ternary sub-nets, each ternary-subnet having a third number of edge modules;
anda plurality of core modules arranged into;
a group of primary core stages, each primary core stage exclusively assigned to a respective primary sub-net and having a number of primary core modules, each said primary core module connecting to each edge module of said respective primary sub-net;
a group of secondary core stages, each secondary core stage exclusively assigned to a respective secondary sub-net and having a number of secondary core modules, each said secondary core module connecting to each edge module of said respective secondary sub-net; and
a group of ternary core stages, each ternary core stage exclusively assigned to a respective ternary sub-net and having a number of ternary core modules, each said ternary core module connecting to each edge module of said respective ternary sub-net;
wherein each edge module belongs to only one of said primary sub-nets, only one of said secondary sub-nets, and only one of said ternary sub-nets.
9 Assignments
0 Petitions
Accused Products
Abstract
An N-dimensional lattice network that scales to capacities of the order of a Yotta bits per second (1024 bits per second) includes a plurality of sub-nets of edge module switches interconnected by an agile switching core. The agile core may be distributed. In the N-dimensional lattice network, each edge module 408 is connected to N core stages, each core stage having an associated dimensional indicator. The input/output ports of each edge module are divided into (N+1) port groups. One of the port groups serves local sources/sinks while the remaining port groups are respectively connected to core stages in each of the N dimensions. This structure permits virtually unlimited capacity growth and significantly simplifies the routing and forwarding functions. The edge modules are addressed using logical coordinates, one coordinate being assigned for each of the N dimensions. This simplifies routing and permits each edge module to compute its own routing tables.
27 Citations
25 Claims
-
1. A lattice network comprising:
-
a plurality of edge modules arranged into; a group of non-intersecting primary sub-nets, each primary subnet having a first number of edge modules; a group of non-intersecting secondary sub-nets, each secondary sub-net having a second number of edge modules; and a group of non-intersecting ternary sub-nets, each ternary-subnet having a third number of edge modules; and a plurality of core modules arranged into; a group of primary core stages, each primary core stage exclusively assigned to a respective primary sub-net and having a number of primary core modules, each said primary core module connecting to each edge module of said respective primary sub-net; a group of secondary core stages, each secondary core stage exclusively assigned to a respective secondary sub-net and having a number of secondary core modules, each said secondary core module connecting to each edge module of said respective secondary sub-net; and a group of ternary core stages, each ternary core stage exclusively assigned to a respective ternary sub-net and having a number of ternary core modules, each said ternary core module connecting to each edge module of said respective ternary sub-net; wherein each edge module belongs to only one of said primary sub-nets, only one of said secondary sub-nets, and only one of said ternary sub-nets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A network comprising:
-
a plurality of core modules arranged into core stages, each core stage comprising a number of core modules; a plurality of edge modules arranged into a plurality of sub-nets, each sub-net having an integer number, Q, of edge modules, the sub-nets having a one-to-one correspondence to the core stages so that each sub-net is coupled to a corresponding core stage, and all edge modules of a sub-net coupled to a given core stage are interconnected through each core module of the given core stage; wherein any two sub-nets from among the plurality of sub-nets have at most one edge module in common; wherein each edge module of the plurality of edge modules is common in a predefined number, N, of corresponding sub-nets from among the plurality of sub-nets; wherein the predefined number, N, is specific to the network and is selected to be an integer between two and five; wherein each edge module has a plurality of dual ports, and the plurality of dual ports of a specific edge module common to N specific sub-nets are divided into N port groups each connecting to a respective core stage corresponding to one of the N specific sub-nets and a port group connecting to local sources and sinks wherein the plurality of sub-net are arranged into N groups of sub-nets; wherein any two sub-nets within any group of sub-nets from among the N groups of sub-nets are non-intersecting having no edge module in common; and wherein each sub-net within any group of sub-nets from among the N groups of sub-nets intersects a number of sub-nets belonging to each other group of sub-nets. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. In a network comprising a plurality of edge modules and a plurality of core modules, the core modules arranged into a predefined number N, 2≦
- N≦
5, of core groups, each core module in core group j, 1≦
j≦
N, connecting to a number Qj of edge modules, the number Qj being specific to core group j, 2<
Qj≦
256, and each edge module connecting to one core module in each of the N core groups and uniquely identified by N coordinates associated with the N core groups where a jth coordinate, 1≦
j≦
N, takes a value between 0 and (Qj−
1), a method of setting-up a connection from a first edge module to a second edge module, the method comprising steps of;formulating at the first edge module a first path identified by a first routing array having N records, each record corresponding to an edge module along the first path and storing a coordinate identifier and a coordinate value, the coordinate identifier indicating a subsequent core group and the coordinate value indicating a subsequent edge module connecting to a core module of the subsequent core group; setting the first edge module as a current edge module; determining coordinates of a subsequent edge module according to a coordinate identifier and a coordinate value indicated in a first record of the first routing array; deleting the first record of the first routing array; forwarding the first routing array from the current edge module to the subsequent edge module; and setting the subsequent edge module as the current edge module with current coordinates equal to coordinates of the subsequent edge module. - View Dependent Claims (19, 20, 21, 22)
- N≦
-
23. In a network comprising a plurality of edge modules and a plurality of core modules, the core modules arranged into a predefined number N, N=4, of core groups, each core module in core group j, 1≦
- j≦
N, connecting to a number Qj of edge modules, the number Qj being specific to core group j, 2<
Qj≦
256, and each edge module uniquely identified by N coordinates where a jth coordinate, 1≦
j≦
N, takes a value between 0 and (Qj−
1), a first edge module, from among the plurality of edge modules, the first edge module;identifies the core groups by N identifiers A, B, C, and D; permutes (N−
1) identifiers B, C, D, to produce factorial (N−
1) route-set generating permutations ABCD, ABDC, ACBD, ACDB, ADBC, and ADCB;generates N rotations of each route-set generating permutation, each rotation defining N mutually-exclusive routes traversing different core modules, the N rotations of permutations of ABCD, ABDC, ACBD, ACDB, ADBC, and ADCB, respectively, being; ABCD, BCDA, CDAB, and DABC, ABDC, BDCA, DCAB, and CABD, ACBD, CBDA, BDAC, and DACB, ACDB, CDBA, DBAC, and BACD, ADBC, DBCA, BCAD, and CADB, and ADCB, DCBA, CBAD, and BADC; and selects N rotations of one of the factorial (N−
1) route-set generating permutations to define N mutually exclusive routes from the first edge module to a destination edge module from among the plurality of edge modules according to N coordinates of the destination edge module.
- j≦
-
24. A network comprising:
-
a plurality of edge modules arranged into a number Q1 of columns and a number Q2 of rows, each column having Q2 edge modules and each row having Q1 edge modules; a number Q2 of primary core modules having a one-to-one correspondence to the Q2 rows, each primary core module interconnecting Q1 edge modules of one of the Q2 rows; and a number Q1 of secondary core modules having a one-to-one correspondence to the Q1 columns, each secondary core module interconnecting Q2 edge modules of one of the Q1 columns; wherein the number Q1 is between 8 and 256 and the number Q2 is between 8 and 256 wherein each edge module has at least one link from data sources and at least one link to data sinks; wherein a path from an edge module in a specific row to another edge module in the specific row traverses a primary core module corresponding to the specific row; wherein a path from an edge module in a specific column to another edge module in the specific column traverses a secondary core module corresponding to the specific column; wherein a first path from a first edge module, in a first row and a first column, to a second edge module, in a different row and a different column, traverses a primary core module corresponding to the first row and a secondary core module corresponding to the second column; and wherein a second path from the first edge module to the second edge module traverses a secondary core module corresponding to the first column and a primary core module corresponding to the second row. - View Dependent Claims (25)
-
Specification