Channel/interface limitation between tiles or per function?

Technical discussions around xCORE processors (e.g. General Purpose (L/G), xCORE-USB, xCORE-Analog, xCORE-XA).
User avatar
XCore Legend
Posts: 1124
Joined: Thu May 27, 2010 10:08 am

Post by infiniteimprobability »

Just a note on the feedback you have given about the nature of your traffic - A few words every few milliseconds is extremely sparse. Given the switch can handle 250Mbps on each path (more on the same tile), this is down in the noise. Also, I was looking for cases of transferring large blocks, which could block paths. 450b is not particularly large and will not block for long (2us). So it is not the volume/nature of traffic causing an issue here.
I'm not trying to stream massive amounts of data. If I specify variables to be 8 bit would it actually transfer just 8 bits?
I don't think it does. You can transfer 8b chunks over channels using the xs1.h built ins outuchar and inuchar (which can also give you some nice buffering advantages - longer FIFO in channel) but means writing your own protocol and it simply isn't worth it for the (tiny) amount of data you are passing around.

XCore Addict
Posts: 129
Joined: Wed May 11, 2016 3:50 pm

Post by Gothmag »

Yea I knew the amount of traffic I had was very little but figured I'd see what I could do in case it was somehow an issue. For now I've just changed the interface to have 1 call per button(no notifications) and swapped server/client sides around and of course that works. I just wanted to avoid the blocking call but realistically it probably doesn't matter. I'm not sure if my datalogging data is working across tiles either but I'll just see what I have to do to make it work. Seems like this is a pretty edge case or I'm just not good enough at programming to make this work on a 2 tile device. Thanks for the help.