Banyan switch

In electronics, a banyan switch is a complex crossover switch used in electrical or optical switches.

It is named for its resemblance to the roots of the banyan tree which cross over in complex patterns. Logical banyan switches are used in logic or signal pathways to crossover switching of signals onto new pathways.

They can be mechanical microelectromechanical systems, electrical or optical NLO. Their complexity depends on the topology of the individual switches in a switch matrix (how wide it is by how many 'plies' or layers of switches it takes), to implement a desired crossover logic.

Design

Typical crossover matrices follow this formula: an N×N banyan switch uses (N/2) log2 N elements. Other formulas are used for differing number of crossover layers, and scaling is possible, but becomes very large and complex with large N×N arrays. CAD can be used to take the drudgery out of creating these designs. A banyan network is implemented by interconnecting 2×2 switching networks in multiple and recursive stages.

The switches are measured by how many stages, and how many up/down sorters and crosspoints they have. Switches often have buffers built-in for faster switching.

A typical switch may have:

  1. A 2×2 and 4×4 down sorter
  2. Followed by an 8×8 up sorter
  3. Followed by a 2×2 crosspoint banyan switch network

This results in 3 level sorting for a 3-stage banyan network switch.

A simple example

Consider a 2×2 banyan switch, which requires (2/2) log2 2 = 1 switching element. This switch takes two inputs, numbered 0 and 1, and two outputs, numbered 0 and 1. Every packet that comes in has a header that contains one bit indicating what its destination is (either 0 or 1). If the switch reads the bit and it has value 0, it sends the packet to its higher output (which is 0 in this case), and to its lower output if the routing bit is one. By connecting these switching elements in series and parallel it is possible therefore, to route packets in more complicated ways depending on the desired routes to establish.

Future directions and further information

The future is moving to larger arrays of inputs and outputs needed in a very small space. See wafer fabrication and VLAs.

gollark: Quite a lot of the time I don't care a massive amount about performance, as long as my thing isn't horrendously slow, because it's serving not very much traffic on a server with quite a lot of free resources.
gollark: Well, it is harder to have to semi-manually manage memory than to have it garbage collected, and it has issues like being stuck in the middle of moving to asynchronous code right now.
gollark: (praise Rust™, although I still find it somewhat harder to write stuff in than JS or whatever so I only use it for my more perf-sensitive projects)
gollark: Like Rust's `Option`, which is optimized to use null pointers or something, meaning it's basically only a compile-time performance cost.
gollark: There are *low-cost* ones.

See also

References

  • Pattavina, Achille (1998), Switching Theory: Architecture and Performance in Broadband ATM Networks, Wiley, ISBN 0-471-96338-0
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.