|
Topology
- Fully connected
- A single large switch (could be a bus!)
- Complete graph
- Diameter? Average distance? Cost?
- Linear arrays
- A one-dimensional mesh
- Unidirectional or bidirectional?
- Diameter? Average distance? Bisection BW?
- Linear rings
- One extra connection from end to beginning of linear array
- Bidirectional is better
- Diameter? Average distance? Bisection BW?
- Mesh
- Multi-dimensional generalization of linear array
- A d-dimensional k-ary mesh has k nodes in each dimension: kd nodes
- A cube is a 3-dimensional binary mesh
- A popular deterministic routing algorithm is dimension order routing (DOR) where the message is routed along successive dimensions until it reaches the destination
- Diameter? Average distance?
- Torus
- Collection of rings in each dimension
- Hypercube
- Essentially a d-dimensional binary torus
- Offers efficient routing via gray codes: current node ^ destination gives you the dimensions to traverse
- Dimension order routing is referred to as e-cube routing for hypercube
- Each node connects to d other nodes
- By connecting 2 hypercubes of d-1 dimension each you$get a d-dimensional hypercube
- Trees
$ - Direct and indirect
- Increased branching factor reduces average distance
- Butterfliew, Benes network and fat trees
- Tree with many roots
- Basic butterfly building block
- Unidirectional butterfly introduces conflicts between different routes due to shared edges
- Benes network connects to butterfliew back-to-back to solve this problem: very costly to build
- Fat tree provides a cost-effective solution by folding half of Benes network on the other lalf (bidirectional links)
Routing algorithms
- Types
- Deterministic vw. adaptive
- Minimal vs. non-minimal
- Arithmetic routing algorithm
- Source-based routing algorithm (large header)
- Table-based routing (large SRAM storage): (in+1, on) = R[in]
- Channel dependency and deadlock
- Common problem in k-ary d-dimensional torus
- Can happen even with multiple buffers per port
- Simple solution: reserve buffers for certain packets depending on source and destination (may lead to starvation) [e.g., d > s]
- Deadlock possibility is higher for wormhole routing
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|