The changing relationship between software and hardware technologies in modern computing

In the modern technology sector, I often see engineers strictly categorize themselves (and others) based on their title. Are you a software engineer? Or hardware? Does it really even matter? My personal belief is that a good engineer is one that will seek meaningful problems to explore and solve – his or her skill sets in specific technological fields should be dictated by the market and personal interest in issues that need to be addressed, rather than the other way around. That being said, in the past several years, it has become increasingly apparent that software is what’s “in”. Carl Eschenbach discussed [1] a shift in the direction of the industry towards subscription-based and/or Software-As-A-Service models for continuing revenue. Many companies whose primary revenue came from individual software package sales in the past have switched over to subscription models. While I, along with many others, initially resisted this idea, it’s now undeniable that this change is beneficial for both companies and their customers. Companies are able to retain a more consistent stream of revenue from software subscriptions, and they are also encouraged to roll out more features, improvements, and bug fixes to their customers. For consumers of personal software, this allows for much more flexibility as users – creative design suites like the ones provide by Adobe come to mind, as well as streaming services such as Apple Music and Spotify.

While software companies are streamlining their ability to innovate and bring newer, better versions of their products to market even faster than before, companies that have typically bundled hardware and software systems together for their customers are now increasingly offering SaaS models for better year-over-year revenue. This is especially relevant for companies invested in the cloud computing and data center spaces [2]. This approach affords them the flexibility of selling hardware platforms to enterprise customers that want to run their own software, software packages only to customers that already have existing hardware, or both – all while maintaining consistent revenue through subscriptions. Even with companies and products that could be categorized as primarily hardware, many advances are primarily being made with software-related technology. One great example of this is the shift from increasing computing power with advances in transistor technology to parallelization using software [3]. As discussed in class as well, the stagnation of the “traditional” view of Moore’s Law means that parallelization and the need for more efficient use of hardware resources is the future of conventional computing (quantum is a whole other ball game, of course). Another example of changes that are happening at the Layer 1 level is the introduction of PAM4 (4-level pulse amplitude modulation) for high-speed serial data links [4] which is currently on the leading edge to supersede traditional binary, NRZ (non-return-to-zero) links. Instead of using 0s and 1s to transmit serial data, PAM4 uses three data voltage levels (0, 1, 2, 3) to encode more data per symbol sent across the wire, allowing for double the data rate to be transmitted at the same symbol frequency. At this level of abstraction, one could argue that the fine line between hardware versus software solutions for a problem disappears altogether, but I would say that changes like this imply that solutions that were traditionally seen as “purely hardware” are now requiring more and more support from “purely software” solutions. In addition, reliance on FEC (forward error correction) to help mitigate the noise and jitter challenges created by PAM4 further suggest a need for software involvement to support changes in hardware advances.

Of course, the jury isn’t out yet on where the software-hardware-paradigm will eventually end up in the next several years, but without a major breakthrough in fundamental physical technologies like semiconductor manufacturing processes or quantum computing, I’m willing to bet that the future will see increasing software involvement in the technology industry.

[1] Carl Eschenbach, 6/29/18.

[2] https://www.zdnet.com/article/cisco-launches-saas-virtual-appliance-versions-of-tetration/

[3] https://www.forbes.com/2010/04/29/moores-law-computing-processing-opinions-contributors-bill-dally.html#377025152a86

[4] https://www.edn.com/design/systems-design/4441212/The-fundamentals-of-PAM4

0