I am currently working on a new project that potentially involves modular Xmos boards which manage communication among other things. By design the system needs to be modular and can be scaled from just a few boards to tens of boards. One of the key reasons for putting forward a modular Xmos solution is the benefits of seamless communication and CSP model offered for agile development, other candidates would require intermediate communications protocols, overheads and complex tool setups. However the modular system needs to be robust and I would also like to be able to add redundancy into the design, thus I have some questions around selecting suitable Xmos link topologies (beyond my basic current experiences).
Each module would contain a single L1, there could be anything from two to tens of these modules, and additional LX modules on the network (topology) that act as routers/supervisors/converters...
Initially I assumed a simple master slave chain :
But then I figured naturally that this could be unreliable as a single board failure can break the network (communications), isolating other Slaves further on the chain. Thus I figured maybe a star topology may be more reliable:
Code: Select all
Sax<- -Sa1<--Sa0 <--\ / --> Sb0-->Sb1- ->Sbx
M
Scx<- -Sc1<--Sc0 <--/ \--> Sd0-->Sd1- ->Sdx
Obviously this could also be expanded to multiple masters for redundancy. However I have only seen double chains and not quad chains before, are quad chains supported out of the box on Xmos toolchain or would I be entering unchartered territory having to roll my own so to speak?
The other question I then fall back to is what happens when any of the modules in the above topologies fail, does it mean that the network itself still fails even for the quad more star like topology?
Another possibility I have considered is a ring:
Code: Select all
->M-->S0-->S1- ->SX-\
\___________________/
This has the advantage that a single break could still allow communication to occur, is this sort of topology supported?
Just really wanted to get some feedback from the Xcore community and Xmos around this area, please if you have any experience or just ideas around Xmos topologies for these (or other applications) I would be very interested.
Thoughts?
regards
Al