The XMOS Experience - what do you think?

All the latest news and announcements from XCore and XMOS.
User avatar
Jerry
Member++
Posts: 30
Joined: Sat Dec 12, 2009 7:14 pm
Location: Silicon Valley

Post by Jerry »

To me XMOS is about speed and simplicity. I prefer to have a set of bare ports that I can do whatever I want with rather than peripherals (SPI, I2C, etc.) designed by someone who doesn't have my exact needs in mind, or who tries to make the peripherals all things to everyone and ends up with an overly complicated mess. The XMOS parts have the raw speed necessary to make this a reality for me (the Parallax Propeller comes close, but lacks the speed and professional development tools of XMOS).

I also appreciate that XMOS make the development tools available without cost. Too many companies try to make money nickel and diming their customers rather than concentrating on selling their hardware. Sure, development tools cost money to create and support, but that's just the cost of doing business in this industry.


lurcher
Member
Posts: 14
Joined: Sun Jan 24, 2010 5:53 pm
Contact:

Post by lurcher »

Just to update my previous experience, its now "Working well now, thanks" :-) I have all the bits from XMOS I need now, so its down to me now.
User avatar
otitov
XCore Addict
Posts: 207
Joined: Thu Dec 10, 2009 11:00 pm
Location: Mexico
Contact:

Post by otitov »

may I post why I am not using XMOS? some nasty negative thinking? :D
User avatar
jonathan
Respected Member
Posts: 377
Joined: Thu Dec 10, 2009 6:07 pm
Contact:

Post by jonathan »

otitov wrote:may I post why I am not using XMOS? some nasty negative thinking? :D
Post what you like!

Why are you not using XMOS?

(I thought you were?)
Image
User avatar
otitov
XCore Addict
Posts: 207
Joined: Thu Dec 10, 2009 11:00 pm
Location: Mexico
Contact:

Post by otitov »

I do use XMOS (I am a mostly happy owner of 2 XC-2 cards = Ethernet kit with G4), currently developing my GPS almanac server...

Anyway:

#1 Lack of on-chip protected flash memory make me not use XMOS for any kind of protected application. Add on-chip flash instead of OTP (really I would prefer to have both). If you can make the flash protected like some Trusted Computing Platform have I will think to make at least a secure token with it (like Aladdin eToken).

I also do not understand on how to protect my brilliant and genius (shame on me, shame) intellectual property and applications stored in external flash.

#2 Lack of on-chip ADC (and DAC) make me not use XMOS for any kind of software defined radio (SDR), just an example of interesting application which needs at least 2 ADC and 2 DAC to work.

Also no use for analog sensors.

#3 Lack of on-chip USB 2.0/3.0 makes me not use it as an easy to program external accelerator, for example - md5 digest accelerator or something.

#4 I am comparing XMOS development boards with gumstix's Overo Water and any academic low cost Digilent's development board and I would prefer gumstix Overo Water for snap-on Ethernet and HDMI output, with audio ins and outs, with multi-threading on linux; and I would prefer a Spartan3E for nasty number crunching. Mentioned competitors also have very competing price.

#5 I am comparing XMOS development boards with Arduino. I really would prefer Arduino and Ethernet shield to make an application with twitter functionality or some kind of weather station for Pachube (old stack takes too much space on G4, no room for special templates, I need decent on-chip flash for xml templates, web pages, etc...). With Arduino and Ethernet shield I will have a lot of flash (protected with fuse "no read"), on-chip ADC for external sensors, simple to use limited tcpip stack for lower price.

#6 I can not solder XMOS G4 at home. I need to buy some DIL adapters for any XMOS chip, but they are not available.

#7 (quite personal) I am not satisfied with current technical support provided on this forum by XMOS.

#8 it is impossible to work with FullHD

#9 I see no easy way to add more RAM, I would like to made some huge array data processing accelerator and see no way how to.

Some project ideas I no see how to implement with XMOS:
a) BitTorrent standalone seeder/downloader - not enough RAM
b) FullHD video filters/processing/compression
c) secure tokens
d) Ethernet enabled media server with HDMI output

Same time I love so much the XC concept, compiler, eclipse based development tools, nice design behind all publications (and their quality) and web-site.

Resuming my thoughts and feelings about XMOS I would like to see:
1. On-chip protected flash
2. High-speed integration with computer - via Ethernet, PCI slot, CardBus slot (some kits like Opal Kelly offers)
3. Possibility for complete HDMI integration
4. Integration of ADC and DAC
5. Integration of huge RAM

Thats mostly all I have in mind about XMOS, please, consider above-mentioned points as starting points for discussion.

Thanks for reading :D
User avatar
shawn
XCore Addict
Posts: 238
Joined: Thu Dec 17, 2009 5:15 am

Post by shawn »

1. On-chip protected flash
2. High-speed integration with computer - via Ethernet, PCI slot, CardBus slot (some kits like Opal Kelly offers)
3. Possibility for complete HDMI integration
4. Integration of ADC and DAC
5. Integration of huge RAM
1: Off-chip means cypto etc., which fit in the OTP. Off chip makes it more volitale to the side band hacks.
On-chip is instant-on more secure. There's Flash integration happening in several other contemporary
chips especially fpga's. Most are coupled to the fabric edge or SOCed off to a spi channel. some, very few
are integrated within the fabric and for such integration dramatically increases cost of final product. Flash
is secondary memory and therefore bottlenecks performance when used primarally. So you get a chip with
secondrate performance at premium prices, but you do have more ram density, yes. Perhaps future cores
may offer more OTP, it would be more justified than Flash, internally, I think anyways.

2,3,4,5: XCore could be integrated to VITA57 this could handle all the serial parallel serdes phy. you mention.

PS You posed a good critic, XCore is amicable.
User avatar
Andy
Respected Member
Posts: 279
Joined: Fri Dec 11, 2009 1:34 pm

Post by Andy »

otitov wrote: Some project ideas I no see how to implement with XMOS:
a) BitTorrent standalone seeder/downloader - not enough RAM
b) FullHD video filters/processing/compression
c) secure tokens
d) Ethernet enabled media server with HDMI output
I don't believe XMOS was designed for any of these applications. The BitTorrent and media server thing would be much better suited to an ARM running Linux... ARM are very good at this, making it probably near impossible for a startup to gain a chunk of that market.

Software decoding and processing of full HD video has only recently become a reality in embedded applications with the high end SIMD chips like ARM Neon and the ZiiLabs chip. Most are still using ASICs for that kind of work... and probably for good reason.
User avatar
paul
XCore Addict
Posts: 169
Joined: Fri Jan 08, 2010 12:13 am
Contact:

Post by paul »

@Andy- your right. XMOS is not designed for video...

@otitov- as for #1 - see Tools Manual Ch7 - Device Manufacture and Test

As to why XMOS doesn't have in built USB/ethernet/other peripheral - the idea is flexibility. If you were doing an ethernet project, do you want to pay the various penalties for have an onboard USB phy (loss of I/O, associated cost per device etc) and vice versa. Also, what if you're not doing any of those things?

The answer is multiple chips - but that's initially expensive for XMOS (verif & characterisation & testing time), and could not yield much business. If you want to buy that sort of thing in serious quantity I am sure there is a commercial discussion to be had...
Paul

On two occasions I have been asked, 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.
User avatar
otitov
XCore Addict
Posts: 207
Joined: Thu Dec 10, 2009 11:00 pm
Location: Mexico
Contact:

Post by otitov »

@Andy: what is your feeling about for _which_ applications was designed XMOS?

I have difficulties to figure that out (please, see below).

@paul: yes, XMOS is flexible, but if I want to add Ethernet I mostly loose 1 core of 4 on G4, so I need several chips, or new hypothetic G256.

I gave 2 examples of 2 extreme sides of processors - microchips (Arduino with Atmel's AtMega) and TI's OMAP3. I feel they are doing their job quite well. Comparing to them XMOS chips look too week - I can use at least 8 interrupts on AtMega and achieve pseudo parallel processing at decent 20MHz (not 400MHz as XMOS can, but quite enough), OMAP3 is a monster compared to XMOS.

I do not discuss XMOS architecture - it's very-very-very interesting and promising, I will spend more time to learn the best way to use XC, it's definitely the future if, and only, if I get more "packed" XMOS chips - more OTP, more flash, more RAM.

I would like to see at least 64KB RAM _per core_, 64KB flash _per core_, 64KB OTP _per core_, 64 threads _per core_, let say - I would like to see some kind of XMOS 64^4 platform. These specs will make me more interested to try to port "classic" projects to XMOS and show its advantages. Right now I am afraid that I will not have enough space, threads, etc.

I feel XMOS is good, but I do not see which use I can gave to current line of chips - they are good to replace microcontrollers, but they lack at least ADC and flash; and they are weaker than OMAP3 and FPGA, so I really do not understand what can be done with them.

The question is - how to find applications which will suit good enough current line of chips or when more packed chips will be available.
User avatar
Andy
Respected Member
Posts: 279
Joined: Fri Dec 11, 2009 1:34 pm

Post by Andy »

otitov wrote:@Andy: what is your feeling about for _which_ applications was designed XMOS?
I see the XMOS somewhere between the two processors you mentioned. It's certainly much superior to an Atmel AVR for most applications. The thread vs interrupt argument is a no brainer: threads are better. They perform better and are easier to implement and debug.

The OMAP3s are expensive chips targeted at cell phones and are overkill for most embedded solutions that don't require graphical operating systems.
Post Reply