-
Notifications
You must be signed in to change notification settings - Fork 32
Home
A balancer is like a splitter that handles more than two belts. A balancer can be used to balance inputs, so that all the input belts are consumed evenly; or to balanced outputs, so that all output belts have the same amount of items.
The simplest and most common way to construct an n-n balancer is to use these three construction methods recursively:
To construct an n-m balancer, connect an n-n balancer to an m-m balancer. Optionally remove any unused parts and any redundant balancing in the larger sub-balancer.
To construct a TU n-n balancer, connect an n-n balancer to another n-n balancer. To construct a TU n-m balancer, connect an n-m balancer to an m-m balancer, where m>n. Reverse a TU n-m to make a TU m-n balancer.
When connecting balancers you can optionally remove a layer of redundant splitters where the balancers connect.
A lane balancer balances all belts as well as both lanes of each belt. Lane balancers use sideloading to manipulate lanes, but otherwise follow the same principles as belt balancing. The graph of a lane balancer with n lanes is the same as the graph of a belt balancer with n belts.
A universal balancer is a balancer that maintains balance even when neither all inputs nor all outputs are being utilized. It accomplishes this by using priority splitters to dynamically loopback unused outputs to unused inputs.
(picture of universal balancer)
Multistage interconnection networks
- sorting network
- triangle?
- odd-even
- other
- benes
- ratio splitter
- using lower tier belts
- n-1 balancer
- belt speed limiter
- Optimization techniques
- balancers are reversible
- must use all input or all output
- either balancing input or balancing output, not both
- command-line analyzer
- does not support lane or priority
- false positives
- balancer generator
- abcd analysis