XMOS Semiconductor, a fabless semiconductor and software provider based in Bristol, United Kingdom, has developed the XS-1 family of what it calls Software-Defined Silicon (SDS) chips. BDTI expects that XMOS will announce its first chip, containing four 400 MHz 32-bit processor cores (each core is called a "tile," see figure below) at the Embedded Systems Conference in April. XMOS is initially positioning its chips as highly flexible, low-cost devices suitable for consumer applications such as transport stream routing in set-top boxes and LED backlighting in LCD televisions.
A key feature of XMOS' approach involves peripherals. Instead of using fixed-function hardware to implement a fixed set of on-chip peripherals (e.g., a USB interface), XMOS chips have generic pins connected to the array of tiles. On-chip peripherals are implemented in software running on those tiles. The tiles are designed to give tightly coupled, speedy software access to the 64 pins available to each tile. Thus, the choice of peripherals is under software control, since a change in software can change the function of the pins. (The XS-1 does not support interfaces, such as IEEE 1394, requiring special voltages or currents.)
Each tile can support up to eight threads, with each thread handling programmed peripherals or other code such as applications. Each thread has access to 16 32-bit registers. Tiles support 32-bit arithmetic including a single-cycle 32 × 32 → 64-bit multiply-accumulate (with the output written into two registers). Besides the multiply-accumulate, there is support in the instruction set for other DSP operations such as bit-reversed addressing.
Each chip also provides what XMOS calls the XLink switching fabric to enable communication between cores and threads. The switching fabric implements up to 32 channels of contention-free on-chip thread-to-thread communication. There is hardware support for off-chip XLink ports so that threads on separate XMOS chips can communicate. There is also support for thread synchronization and semaphore passing.
XMOS tiles are programmed in C, C++, and in a proprietary C variant developed by XMOS and called XC (a code sample is available). The XC language, which is largely C, contains keywords and facilities for working with the ports and channels mentioned above. The XC language also contains facilities for timing, such as reading a port timer mentioned above, or waiting until a specific time is reached. Instead of writing a C compiler from scratch, XMOS uses the CoSy compiler development system from Ace Associated Computer Experts. In addition to the compiler, the XMOS toolset offers a simulator, debugger, and profiler. For now, the programmer must partition tasks by hand among threads and tiles.
Initially, XMOS has focused its software development effort on I/O interfaces. A software library of interfaces will be available from XMOS with the release of the first chips. In the long run, XMOS expects customers to develop their own C and XC code, and for third parties to develop and license IP blocks. BDTI believes that the initial offering will not include a large number of higher-level software modules such as audio and video codecs.
XMOS believes that it has staked out an attractive middle ground between traditional processor chips and processor-based SoCs on the one hand, and FPGAs on the other. Compared with traditional processor-based chips, the XMOS approach promises much more flexibility in I/O interfaces. Compared with FPGAs, XMOS believes that its processor-centric architecture will be a more attractive development target for many system developers. And XMOS believes that it will be able to deliver more processor performance per dollar relative to FPGAs because the XMOS processor cores are implemented directly in silicon rather than using programmable logic (which is the approach used with most processors incorporated into FPGAs). Based on an initial analysis of the XMOS architecture, BDTI believes that XMOS may be able to deliver on these promises. The proof, of course, will have to wait for the actual XMOS silicon products—and their associated price, power consumption and application development support.
For more BDTI analysis of XS-1 family, see InsideDSP.