LONDON Fabless semiconductor startup XMOS Semiconductor Ltd. (Bristol, England) is the latest company trying to deploy a multiprocessing architecture, but if pedigree is anything to go by it has more chance of success than many others.
The company is the route to market for the ideas of its chief technology officer David May. Back in the 1980s May was the architect of the transputer - a processor designed specifically for parallel processing - and the author of its accompanying Occam programming language. Before founding XMOS in July 2005, May was the head of computer science at Bristol University having spent a number of years in academia, prior to which he spent 16 years in the semiconductor industry with STMicroelectronics and Inmos. Inmos was where May did his transputer work.
Not surprisingly the XMOS architecture has similarities to the transputer but recast in an approach designed to make use of what 20 years of Moore's Law have made possible - multicore single-chip implementation.
Other approaches to monolithic parallelism have been many and varied, but not always successful. They have included: superscalar and multithreading uniprocessors, very long instruction word (VLIW) processors, multiple processors on a die linked in an FPGA-like fashion, and the concept of marrying a housekeeping processor with a reconfigurable FPGA-like fabric.
XMOS has chosen an event-driven, multi-threaded processor that will be deployed in two-dimensional arrays in a family chips due for introduction in 2008. The processor, the 32-bit XCore, has a fixed instruction set developed for fast real-time response and low silicon cost. The integration of pin-control within Xcore coupled with an inter-core communication link named XLink allows complete systems, including interfaces, to be implemented in software. Product development uses a unified embedded software flow founded on C-based programming languages.
Any success achieved by previous monolithic parallel processors has usually required the tailoring of the hardware to a narrow set of applications. Attempts to produce general-purpose architectures have been thwarted by problems inherent in programming parallel resources with the popular but concurrency-lacking C language.