[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Can XMOS do occam?

>> All,

Hi Larry,
>> I pursued the XC language, which has a lot of occam/CSP primitive
>> operations in a C-like syntax, and after communicating with David May,
>> I got my XC-1A ($99) and downloaded a bunch of stuff, including
>> David's "XMOS XS1 Architecture" (2009/10/19,
>> www.xmos.com/published/xs1_en). Has anyone on the occam-com list had
>> experience with these chips? I had a few questions which maybe this
>> list can answer.
I have no real experience but have talked to several of the XMOS people.
I do know that Eric Verhulst/Bernard Sputh have been trying to port
OpenCOMRTOS to it.
>> (1) Is there an occam compiler for the XMOS XS1?
Not to my knowledge.

>> (2) In the tutorial it says, "Each processor provides up to eight
>> threads," but in the big document it says, "The scheduling method used
>> allows any number of threads to share a single unified memory system
>> and input-output system whilst guaranteeing that with n threads able
>> to execute, each will get at least 1/n processor cycles." Is the
>> limitation on thread count real, or is it an artifact of some software
>> behavior?
The hardware provides 8 processor contexts, through which the hardware
scheduler cycles each clock.
This would amount to each context getting 1/8 of available time.
Due to its implementation, if you have less active contexts each thread
would get a maximum of 1/4 of available clocks.
The hardware threads are scheduled by the compiler.
The compiler should be able to cope with more threads, but I don't know
how it does that.
>> (3) The tutorial says, "An on statement may only be used with threads
>> created by main, in which case main may contain only channel
>> declarations, a single par statement and an optional return
>> statement." This sounds a lot like the Transputer configuration
>> language, which I always thought was brilliant. Does it extend to
>> multiple chips, not just cores on one chip? (Better yet, it should
>> extend to the alien host!)
I don't know. It might not.
>> (4) A further point: I have been studying the RepRap 3D printer, and
>> have come to its Sanguino3G serial protocol definition, which has a
>> master controller (an Atmel-based Sanguino) driving several slave
>> controllers - and using polling! This seems like a natural for the
>> XMOS with its cheap XC-1A board with lots of multitasking and
>> multiprocessing.
I don't know.

>> Larry Dickson
Hope this helps,

Herman Roebbers
(currently on holiday in LA)