“Engineers don’t have time to have fun anymore. We plan to put some of that fun back into their working lives.” Richard Terrill, VP of Marketing at XMOS, sums up one aspect of the philosophy of the company. We talked about XMOS about a year ago and will do so again, because if the people there have got it right, small companies with big ideas will once again be able to create innovative products without incurring corresponding big costs. The driving force behind XMOS is aimed at overturning the current way in which systems are created by providing the flexibility of a FPGA with the low cost of high volume silicon, without the associated NRE, using an approach the company has called Software Defined Silicon (SDS).
Certainly the group of students undergoing internships at XMOS this summer are having fun. One of them has already designed and built a robot and is into the design of a second, entirely different robot, after only six weeks with the company. “We gave them a dev kit and up to £50 ($100) that they can spend on materials, then we let them see what they can do,” Terrill told me.
And providing fun is where the development kit, announced a week ago, comes in. The XS1-G Development Kit (XDK) looks like a black iPod on steroids. It is the size of a large paperback book, with a TFT touch screen, red, yellow, black, green and blue buttons, and a cut-out window to show the XS1-G4 chip and LED status indicators. The LEDs are user-programmable, but they can also provide a wonderful flashing display, just for fun, when things are happening, like at power-up. On the edges of the XDK is an array of connectors, including rows of pins for ribbon connectors to communicate with target boards, a set of connectors to build arrays of XDKs, and Ethernet to hook up through your PC to the web, where all the software development tools have their home. And the software tools are, clearly, central to SDS.
So, time for a quick revision session. XMOS is a fabless semiconductor company building a family of devices and tools to create Software Defined Silicon. An SDS chip is an array of X-Core tiles, each tile being a multi-threaded processor unit. A high-level programming language (XC – effectively C with extensions to provide control over I/O port, thread, and parallelism behaviour) configures the chips to match the applications. The first member of the family, due for sampling soon, is the XS1-G4 with four X-Cores, giving a maximum throughput of 1600 MIPS and providing up to 32 concurrent, deterministic real-time threads. (Pre-engineering sample versions of the XS1-G4 are in the XDK.) Later versions will include a single-core device and then larger arrays. Chips have dedicated ports to allow yet even larger arrays to be created, by just plugging together multiple chips.
XMOS claims that if you have a working C programme, then it will compile into XC (with the use of the XMOS include libraries). And if the compiled code fits into the code footprint, it will run on the chip as though the chip were dedicated hardware. One of the first pieces of code that was loaded, for obvious reasons, was a TCP/IP stack. “It just compiled and worked,” says Terrill. The company is also committed to maintaining compatibility: no matter how they extend the language, later versions will continue to support earlier code.
The approach builds on the theory of Communicating Sequential Processes, creating high levels of parallelism. Code execution is through the 8 threads that run on each core. Threads cannot interfere with each other, and they communicate with each other through channels, a software analog of the hardware communication between the X-Core tiles. At each tick of the clock, the next thread takes its turn to run on its core. It would be an exaggeration to say that the device completely reconfigures at each tick, but potentially this is what is happening – each thread uses registers, IO, etc., depending on its task. If there are fewer than 8 threads running on a core, then each thread gets a corresponding increase in the number of times it runs. With only four threads, each thread runs twice as often as with eight. A master thread can be used for some housekeeping aspects, when needed; for example, turning down the clock speed.
But to go into more detail runs the risk of either copying the material on the web site or, more likely, distorting it. In summary, XMOS argues that we know things work faster in silicon but are easier to implement in software. Software Defined Silicon is what happens when we combine the best of both.
The heartbeat of SDS is Simple, Simple, Simple. “When you are designing a chip, between 20% and 40% of the hardware description language is concerned with the physical characteristics of the target silicon,” says Terrill. “In our case the compiler handles all of that, invisibly.” Similarly a system running on a processor normally requires an operating system to control IO and peripherals, handle interrupts, and so on. Again the compiled code does all this for you.
A second heartbeat is Cheap, Cheap, Cheap. (If you can have a second heart without being a Time Lord.) The first chips will cost between $1 and $10 in volume, the software is free, and the XS1-G development kit is priced at $1000.00. This is slightly more than an iPod, but it is a lot bigger –you get a lot of box for your bucks. And $1000.00 is well within the range of a personal purchase. How much did you pay for that stereo or the new camera?
XMOS has decided to put the software development environment on the web, and it is freely available to anyone who registers at www.xmoslabs.com. (When I tried, they had a problem with the security certificate, which resulted in a tussle with my firewall – but I beat the firewall into submission). Once you are in, there is a nicely designed development area (Dashboard) and a plethora of support areas, including tutorials on how to develop XC code, with worked examples from “Hello World” upwards, shared code and forums with design tips, answers to specific questions, and general discussions. There is also a good collection of manuals. Within Dashboard you can build and execute applications and generally play (if you have the time – but you can always access it from home). And there is the code for the robot I mentioned in the first paragraph. There is an analogy to the parallel processing on the chips hiding here, somewhere. The web site is a community with things happening in parallel and people sharing. Pragmatically, by keeping all the elements of the environment in a single place, bug fixes, new releases and any other changes can be dealt with in one place, and you know you are always using the latest version, particularly valuable when you are developing an entirely new technology. If you are ultra-cautious, you can download your precious code and store locally, as well as automatically storing it on the site.
Clearly XMOS is not providing this environment for purely philanthropic reasons: they are using it as a part of the campaign to get the idea of SDS out into the world, to get people hooked on the ideas and using the tools and then, eventually, to buy truckloads of their chips. The FPGA guys do something similar with their development tools, but while you can download free stuff on to your PC, to get extended capability to cope with today’s massive FPGAS, you frequently have to buy tools that can cost real money. And for ASICs the cost per seat of design tools is eye watering, just for the individual tools, let alone a complete tool chain.
Today the company is developing a double play approach to the market. Working from the top down, XMOS is targeting consumer electronics, where there is widespread interest. The plan is to limit engagement to a handful of companies at this stage: XMOS is still a small company with a limited number of people and a lot to do. Working from the bottom up, with the XMOS Lab they are seeding technology with enthusiasts across the world.
Any start-up usually has a buzz when you visit it – corporate sclerosis takes time to set in. But I think XMOS has a special buzz. Just look at the photo of the XS1-G development kit on their web site – it doesn’t do it justice, but people who put that amount of effort into a dev kit are clearly having fun as well as working hard at something they believe in.
I am straining to maintain objectivity here, but if what is happening in their offices in Bristol in the west of England and on their website can be scaled across the wider world of system development, then Software Defined Silicon is going to be at least as disruptive a technology as the FPGA has become. But don’t take my word for it – visit the XMOS Lab and have fun while creating your own Next New Thing.
Footnote: When I rang to do some fact checking, a week after my visit, I was told that the student working on his second robot implementation had it running, under wireless control, and was about to try to add some intelligence to make it semi-autonomous.