The XC programming language is designed to make runnable multitask programs for XMOS' xCore multicore microcontrollers, spread on tiles and cores. This presentation addresses only a few aspects of XC. What is a combinable and what is a distributable task, syntactically and semantically, but also resource wise and geographically on the chip? The xCore compiler handles the lowering of interfaces onto statically and dynamically allocated channel resources. The microcode and built-in scheduler also reflect them. Of the rather limited amount of resources, one must make it with 32 chanends per tile, with seemingly loose coupling between the XC code and the final number of chanends. Fiddling around, rather overwhelmed, with [[combine]], [[combinable]], [[distribute]], [[distributable]] and [[distributed(..)]] plus par and on reveals a lot of how unchanged functionality spreads differently over cores or across tiles. Thus the same functional code may require anything from, like, six to zero chanends! The goal of this fringe presentation is to trigger interest, not provide answers. Or rather, only those answers that the author might presently have acquired by surrendering to this can of reserved words and observe what might possibly happen. Like, there must be an electric motor inside, because the sound of it is so pleasant.
IOS Press, Inc.
6751 Tepper Drive
Clifton, VA 20124
Tel.: +1 703 830 6300
Fax: +1 703 830 2300 email@example.com
(Corporate matters and books only) IOS Press c/o Accucoms US, Inc.
For North America Sales and Customer Service
West Point Commons
Lansdale PA 19446
Tel.: +1 866 855 8967
Fax: +1 215 660 5042 firstname.lastname@example.org