The Growing Influence Of Software In The Semiconductor Industry
The role and increasing influence of software in the semiconductor industry has never been greater. Software has moved from table stacks enabler to much more than that. In this article I will discuss several trends that are driving software to higher levels of innovation and differentiation in the semiconductor industry.
1. The Conservation of Complexity; Tesler's Law (named after Larry Tesler), also known as The Law of Conservation of Complexity, states that for any system there is a certain amount of complexity which cannot be reduced. Every application has an inherent amount of complexity. This complexity cannot be wished away and has to be dealt with, either in product development or by the user.Key question is who should deal with this complexity. Should a software developer spend extra time on the program to make it simpler for the user or should the user have to deal with increased complexity? This law primarily applies to human factors and user interface design but I believe it has a role in software enablement for complex semiconductors as well. These SoC’s are becoming extremely complex and this complexity needs to be dealt with either by the user/customer or by the software that makes the SoC easier to use. In other words transfer the complexity from the user to the semiconductor software. If we spend more time on the enablement software to abstract complexity from SoC IP’s such GPU’s, CPU’s, VPU’s, NPU’c, DSP’s, ISP’s, etc, we can make it much easier for users to leverage these IP’s to do useful things. We don’t want our users to have to figure out the low level details of the IP’s themselves.
As a specific example of this, back in the 1990’s DSP was hard, lots of jargon like FIR/IIR filters and convolution, parallelism that added complexity to the programming model, etc. This complexity challenge was solved with optimizing VLIW compilers, model based design tools like Matlab that abstracted the problem further and produced ready to run software in multiple different programing languages. DSP hardware added hardware loop counters, bit manipulation, etc and suddenly DSP was not as fun anymore! I predict the same will happen with Machine Learning. Today there is lots of complicated jargon like deep neural networks and Support Vector Machine. But software will/is coming to the rescue with GLOW compilers, open source ML frameworks, and full development environments like NXP’s eIQ environment to productive ML development. Teslers law always eventually moves from the user to the producer, in this case, the semi’s.
2. Provide the pickaxes; One of the famous quotes from the California gold rush was “you can mine for gold or you can sell pickaxes”. Actually its not just pickaxes… Levi Strauss made a lot of money selling jeans as well. You can argue that getting semiconductor supply in these times is like mining for gold, but my real point is that providing the software tools…the pickaxes…to make semiconductors useful quickly is a huge time to productivity advantage. These software tools are used to configure, develop applications, debug and optimize, generate machine learning models, perform high level system engineering modeling tasks, and many other useful productivity tasks. The late Mark Weiser was quoted as saying “A good tool is an invisible tool. By invisible, we mean that the tool does not intrude on your consciousness; you focus on the task, not the tool.”He also was known for saying“The most profound technologies are those that disappear”. Making these software tools easy to use so the user can concentrate on this task instead of concentrating on how to use the tools, is an important goal.
3. If the SoC is the “chassis”, software can create many interesting models; Chevrolet builds many models of cars. A Chevrolet Tahoe and a Cadillac Escalade are built on the same platform, yet the Escalade costs many thousands of dollars more to purchase. However, the material costs to the manufacturer are not that different. The auto guys call this “platform sharing” and they have been doing this successfully for generations. In fact this approach to platform sharing is even used between different car companies. This practice has been successful because it communizes things and this reduces complexity which in turn reduces cost as well as the processes used to put them together, which in turn improves quality. You get the point. Well, when done correctly, SoC “platforms” can accomplish the same thing. One SoC can be used for multiple different applications by changing the software running on top of it. A multimedia SoC platform can be used for the audio market with soundbar software for one customer and for the AVR market with another software platform. Software can provide the differentiation and segmentation for the different markets without having to build a new SoC for every new market. We call this the “long tail of software”…continuing much longer than the lifecycle of a new device. Of course this means that the SoC platform must be architected to support these different markets and one bad GPU or peripheral can ruin multiple market opportunities. Just ask the Takata airbag folks.
4. The completeness of Enablement and entitlement and software’s contribution to Moore’s law. Semiconductors need software and tools to being them to life and I describe in two terms;
a. Enablement; providing software support for all hardware on the SoC. There is nothing a design manager or GM hates more than putting gates on a chip and then not having the support available to support them. Whether this enablement is build or buy is secondary.
b. Entitlement; providing, through software, the right levels of performance that are expected from the SoC. This performance can be defined in terms of cycles, memory, and (low) power.
Both are necessary and the as Moore’s law drives more gates then so too must there be a discussion about Moore’s law for software. There are three factors influencing this growth in software (figure 3);
a. There are more and more Si gates to enable and optimize
b. Semi’s are moving higher and higher up the software stack
c. Software is “helping” with Moore’s law (as Moore’s law slows due to physical limitations, multicore processing is gaining traction which requires new software programming models to support).
This becomes a multidimensional problem requiring multiple different types of software development; drivers, boot code, operating systems, advanced IP enablement, application level software, etc. Projections are that software in the auto segment will go from up to 200 million lines of code this year to 1 billion lines of code by 2030. Ok maybe not exactly Moore’s law but you get the picture.
With this comes the threat of Wirth’s law. This law basically asserts that software is getting slower more rapidly than hardware is becoming faster. Niklaus Wirth wrote an article on this back in the 90’s and its still true today, “A Plea for Lean Software”. Even Bill Gates got his name in on this. Gate’s law says that “the speed of software halves every 18 months”, essentially negating the benefits of Moore’s law. Especially in embedded systems, software developers can not get lazy when it comes to optimizing code, leading to what we call “code cruft” (essentially a catch call for poorly written code).
5. The “openness” of software (and hardware) can be used to accelerate innovation; I like Allison Randal’s (President of the Open Source Initiative) talk on “How Open Source Drives Innovation”. Using the speed of sound analogy she shows how innovation in open source software has gone from subsonic to supersonic. This innovation is being used to enable semiconductors at an increasing rate. As an example open source machine learning software from Google (TensorFlow), Facebook (GLOW compilers), and Linaro (advanced compute libraries) are used to create enablement software for machine learning on all forms of semiconductor processing elements such as CPU’s, GPU’s, DSP’s and Neural Network Accelerators. Vendors can leverage (and contribute to) the technology created by these innovative software companies, add vendor specific customizations such as optimizations, security, and out of box experience, and create value much more quickly than doing it internally. Of course operating systems like Linux and Zephyr are other areas of innovation for semiconductor vendors for networking, multimedia, connectivity and other areas. The “open” trend is now moving to hardware as seen by the growth in RISC-V International (open source ISA specification) and the Open Hardware Group (open source processor cores, software and validation suites).
I read once that writing embedded software requires a devious mind with an affinity for puzzles. That’s probably still somewhat true but times are changing and the hardware/software partnership in the semiconductor industry continues to morph with the times.