|
The 2×2 banyan switch:
|
Operation of the banyan switch:
|
This goes for the other input as well (see next example)
Operation of the banyan switch:
|
Operation of the banyan switch:
|
This goes for the other input as well (see next example)
Operation of the banyan switch:
|
|
An 8×8 Delta multistage interconnection network is constructed using 3 layers of banyan switches as follows:
Each rectangle is a 2×2 banyan switch
8 processors and 8 memory modules are connected with an Delta network as follows:
Example memory access: the path set up by the Delta network between CPU 0 and mem module 4:
Example memory access: the path set up by the Delta network between CPU 7 and mem module 4:
The prefix of the memory address is used to set up the path through the Delta network:
Example: suppose CPU 0 wants to access the memory module 4 (binary 100)
The first bit in the prefix is used to set up the routing in the switch in layer 1:
The remaining bits of the prefix is forwarded to the output of the switch
The first bit in the remainder is used to set up the routing in the switch in layer 2:
The remaining bits of the prefix is forwarded to the output of the switch
The first bit in the remainder is used to set up the routing in the switch in layer 3:
We are done in this example and the path has been set up !!
Example 2: suppose CPU 7 wants to access the memory module 4 (binary 100)
The first bit in the prefix is used to set up the routing in the switch in layer 1:
The remaining bits of the prefix is forwarded to the output of the switch
The first bit in the remainder is used to set up the routing in the switch in layer 2:
The remaining bits of the prefix is forwarded to the output of the switch
The first bit in the remainder is used to set up the routing in the switch in layer 3:
We are done in this example and the path has been set up !!
CPU 1 accesses Mem Module 5 and (simultaneosuly) CPU 3 accesses Mem Module 7:
CPU 1 accesses Mem Module 5 and (simultaneosuly) CPU 3 accesses Mem Module 7:
CPU 1 accesses Mem Module 5 and (simultaneosuly) CPU 3 accesses Mem Module 7:
Recall: conflicting (memory) requests
Access requests to the same memory module are conflicting requests
Recall: non-blocking interconnection network
A network is non-blocking if all non-conflicting requests can be satisfied
Consider these 2 non-conflicting memory requests:
CPU 0 accesses mem module 2 and CPU 4 accesses mem module 3
The 2 paths must use the same output in stage 2:
This is an internal conflict (a.k.a.: internal blocking)
Resolving an internal blocking situation:
Only one of the requests will be forwarded....
After layer 1 of the Delta network, memory requests are "sorted" as follows:
Memory requests for addresses that start with 0 and 1 are separated !
After layer 2 of the Delta network, memory requests are "sorted" as follows:
Memory requests for addresses that start with 00, 01, 10 and 11 are separated !
The Delta network can scale to connect large number of CPUs and memory modules...
Here's a 16×16 Delta network:
Because 2×2 banyan switches are cheap to make and there are no additional switching circuitry necessary !