The latest EDAC spring meeting was a bit different from usual. The panel session was all about embedded software. John Bruggeman, now at Cadence but previously at Wind River, lined up his old colleague Tomas Evensen (the CTO of Wind River, now part of Intel), Jim Ready (the CTO of Montavista, now part of Cavium Networks) and Jack Greenbaum (director of embedded software engineering for Green Hills Software, still independent).
Jack started off the proceeding by pointing out that for most designs the software engineering costs more than the IC engineering. For him the business drivers were 16 bit designs all going to 32 bit, 32 bit designs going to 64 bit, multicore and virtualization (using a single core to run code binaries from what used to be several separate microprocessors). Tomas added the drive towards open source. And Jim emphasized the thrust of Linux into embedded.
Tomas talked a bit about why Intel had acquired Wind River and why they had also left it to remain independent. To ship a chip these days you need to ship it with a state-of-the-art software stack, so Intel wants to ensure that for its products. But unlike previous acquisitions, such as Freescale (then still Motorola) with Metroworks, Intel didn’t want to kill the ecosystem and devalue the software by taking everything in-house and making it Intel specific.
Everyone complained about the challenge of getting people to pay for software. In the IC world nobody would dream of trying to design a chip without software, or even writing all their own software. In the software world people won’t make the investment even if the ROI is there. So system companies place tremendous value on software but refuse to pay, and silicon provides less value but gets all the revenue.
Everyone thought partly that this was due to people not taking quality seriously. Apparently 40% of cars taken into dealers involve a re-flash of an ECU (electronic control unit) because the initial and ongoing quality is so poor. Perhaps the current woes at Toyota will cause a re-think on whether it is appropriate to invest for software quality.
Quailty is expensive. DO-178B (a standard for certifying avionics) costs $1000/line to validate. Meanwhile car companies are worrying about the number of resistors on the PCB. Quality will only happen when companies decide it is worth the money. Tomas talked of a system he was involved with that was validated. Since the early 1990s not a single bug has been found in it. And Jim boasted that he was involved at Ready Systems in 4K bytes of avionics code that was the first certified.
Tomas and Jim both emphasized that despite Linux being open-source it was still a viable business. Montavista has shipped over $250M of “free” software. But one cloud was that Android drives out differentiation and so squeezes vendors. It even marginalizes the hardware since it is now very generic.
The DNA of EDA and embedded software are very different. EDA is dominated by physics but software is dominated by psychology. So before EDA ventures into the software world it needs it understand it deeply since analogies don’t carry across.
This was brought home when Gary Smith asked about what they were going to do to write power-aware software. Everyone just took this as being a question about battery life rather than realizing that the big problem is going to be having a chip that we can’t light up all at once. It would help, of course, if the chip people added circuitry to make it easy for the software to monitor power, today’s chips rarely even have cache-miss counters which is one of the biggest contributors to power.
Power may turn out to be the thing that finally ties the software development process to the chip development process, since it will become impossible to develop software without worrying about it. It will even affect software architecture, not just detailed low-level stuff.