Rethinking Old Sayings

It’s not just about the software anymore. It’s a lot more complex than that.


One of my favorite quotes from Gary Smith is a few years old: “It’s the software, stupid!” That statement was made way back in 2006. While it was, and in some ways still is, very illustrative, I believe it also points to one extreme in the back and forth between focusing on hardware then software to differentiate our electronic systems. At the point in time Gary made the statement that software costs and complexity were seen as under-addressed by the design tools and flows in use.  Much of the investment in tools and methodologies was focused on improving the hardware portion of the system.

Over the past few years we’ve had significant expansion in the capabilities, methodologies and tools available to allow earlier software development, more detailed analysis of software hardware interactions, and improvements in software optimization. Virtual platforms have been enabled by the more abstract modeling methodologies and standards in the ESL domain. The more abstract approaches also have enabled more detailed analysis and visibility into how efficiently the software is interacting with the hardware. While I don’t think the focus on architectural modeling and virtual platform creation is quite ubiquitous, I do believe it is well established as a mainstream valuable systems design capability.

In some ways I think some of us may have swung to the software extreme, believing that much of the system differentiation is coming from software with hardware becoming a commodity.

This pendulum movement of our focus from hardware to software and back again was highlighted for me a few weeks ago at the ARM Techcon. HP’s Martin Fink gave a keynote entitled, “The New Style of IT.” One of the key technology shifts he identified was a shift to “energy and algorithm optimized SoC ecosystems,” a mouthful but also an indication of his thinking that IT is not just about the software. It’s about the software, the hardware, and their interaction in the system to deliver a compelling solution.  To create an energy- and algorithm-optimized SoC we need tools and methodologies to analyze all of the interactions and interdependencies between the software and the hardware in our systems. The abstraction enabled by system-level design techniques allows us to begin to address these kinds of optimizations.

While I still like the sound of Gary’s quote, and a Google search will show that the statement is still being actively made today, I believe an isolated focus is an oversimplification that will not lead to success. Leveraging and maximizing the capabilities of the complete system—hardware, software, and the interaction between domains—is required to field successful systems. Perhaps the updated statement should be, “It’s the system, stupid!”