In 2008, software out-innovates hardware
More than ever before, it’s getting tougher for hardware vendors to add features that don’t come from software.
In his book "How Breakthroughs Happen: The Surprising Truth About How Companies Innovate," Andrew Hargadon argues that companies rarely achieve a "Eureka!" moment. Instead, they innovate by painstakingly exploiting existing ideas but combining them in new ways. Despite the prodigious gains achieved by VME and VPX hardware companies, COTS software companies are innovating much faster – with lots of new products recently launched based upon "existing" ideas.
At the top of my innovation list is software vendor DDC-I. Once best known as "just an Ada supplier," the company has reinvented itself by exploiting untapped niches not aggressively pursued by other companies. First DDC-I announced a focus on what some once considered an oxymoron: "safety-critical Java." The company worked with Sun and others to catalyze the Open Group's JSR-302 safety-critical Java profile. In parallel, the company retooled its Scorpion Java toolset for RTSJ, virtual machine real-time garbage collection, and made it Eclipse compliant.
From "safety critical," the company easily extended its reach into "trustworthy computing": the contemporary movement that started with "secure software" but builds in a level of verification - just to be sure. DDC-I partnered with Arxan Defense Systems, an early-stage anti-tamper integrator whose EnforcIT platform works with DDC-I's OpenArbor OOP IDE for C and C++. And as we went to press, DDC-I briefed VME and Critical Systems on DDC-I's most innovative announcement to date: a DO-178B Level A certifiable RTOS called Deos. Like safety-critical Java and OpenArbor, Deos builds upon previous ideas - in this case, from technology first developed at Honeywell. Available at launch with artifacts, memory protection, and a "patented 'slack' scheduling mechanism," the partitioned RTOS is built ground-up for safety-critical applications.
Not to be outdone, DDC-I's "arch rival" (just having some fun with this, folks) AdaCore recently made GNAT Pro available for Mentor Graphics' Nucleus. The Nucleus OS competes with Express Logic's ThreadX (more on that in a moment) as a highly deterministic but small-footprint RTOS used in general embedded applications like HP printers ‚Ä¶ or Mars Reconnaissance Orbiters (MROs). Nucleus didn't plan to target AdaCore's traditional applications that require Ada, but Nucleus remains an excellent choice for safety-critical systems because of its small footprint, direct link to the final application code, and high-volume applications where software failure is unthinkable to consumers (such as printers, automobiles, or cell phones). AdaCore saw an opportunity to meld Ada's military goodness with Nucleus' benefits - and voila! - we've now got Ada available in industries requiring hard real-time response, a very small memory footprint, and safety or security. Here again, AdaCore's innovation builds upon existing ideas.
Another innovative product is VLX from VirtualLogix, which turns a multicore Texas Instruments DSP into a CPU+DSP. This novel software plays off of the multicore virtualization trend in the AMD/Intel desktop and server space, except that it's applied to TI's latest multicore DSPs such as the new tri-core TMS320C6474. With three 1 GHz cores and separate L1 data and program caches, the chip cranks out 24,000 16-bit MMACS (peak). That's fine if all you want to do is crunch numbers and do I/FFTs, but power and real estate increasingly come at a premium.
VirtualLogix's idea? Dedicate one or more cores to CPU-like operation, thus replacing a dedicated CPU and memory subsystem - saving board space, thermal challenges, and BOM costs while easing the programming and tool models. VLX allows a traditional DSP/BIOS to run right alongside a CPU OS such as a multithreaded Linux distribution. The Linux OS can even include a TCP/IP stack and other networking protocols, turning a fast DSP such as the 'C6474 into a fast DSP plus a general-purpose CPU running a desktop or blade OS like Linux. Here too, there's no real Ah-ha! breakthrough involved because this kind of virtualization is becoming commonplace on x86 CPUs. But VirtualLogix applied these lessons learned to the embedded signal processing space ‚Ä¶ and the innovative VLX software emerged.
Finally, "multicore" means more than just virtualization. Multiple cores distribute the workload in embedded applications, whereas in desktop or server applications multiple cores are used to "decompose" an application to run in multiple partitions. But embedded multithreaded applications need to communicate effectively between multiple cores (or nodes). To capitalize on this, RTOS vendor Express Logic modified the ThreadX API to incorporate the Multicore Association's Multicore Communications API (MCAPI) specification.
Through a partnership with PolyCore Software, ThreadX can now be used on multiple cores as a mechanism to distribute an application's workload and cleanly communicate between threads. As in the previous innovation examples, this isn't an earthshaking development on its own merit. The innovation part here was recognizing a way to propagate ThreadX into new areas by a relatively simple interface change to assure MCAPI compliance - while making sure PolyCore's Poly-Messenger works as advertised.
In each of these four examples - DDC-I, AdaCore/Mentor Graphics, Texas Instruments/VirtualLogix, and Express Logic/PolyCore - a software vendor took existing ideas such as Ada and safety-critical or multicore processors and added onto them. To be fair, it's harder to innovate in hardware because the only variables are packaging (such as VPX) or the ICs themselves. Perhaps this is why more than ever before, VME vendors are turning to innovative software value-adds.
Chris A. Ciufo, firstname.lastname@example.org
1 I recently met with Andrew to discuss tech innovation. His principles have given me a new set of criteria from which to evaluate all the exciting products and ideas coming from the robust VME/VXS/VPX vendor community.