Why is optimization at the hardware-software interface a key enabler of technological progress?

W

The interface between hardware and software plays an important role in enabling technological advancement, where optimization between hardware and software maximizes performance and fuels the development of new technologies.

 

The iPhone boom and the smartphone boom are social phenomena that we have all experienced, directly or indirectly, less than a year ago, and perhaps still ongoing. Smartphones have had a far-reaching impact on our lifestyles and social structures, beyond just the evolution of a device. As a result, smartphones have become more than just a communication device, but an essential tool for managing personal information and data and performing various tasks. However, what is less well known is the paradigm shift from hardware to software and firmware. In fact, it’s easy to overlook that many of the technologies we use every day are the result of this paradigm shift. In this article, I will introduce you to the fields at the interface of hardware and software, such as operating systems, compilers, and computer science, where this paradigm shift can be deeply felt.
The terms hardware and software are commonplace, so you probably have a general idea of what they refer to. However, the interdisciplinary field is often not easily understood. So before we talk about the interface between hardware and software, it’s worth defining hardware, software, and firmware. As the name implies, hardware refers to hard goods, that is, goods that have a physical form or are difficult to change. This includes electronic components that we can see and touch, such as semiconductors and hard disks. These hardware components are critical to the basic performance of devices like computers and smartphones. Software, on the other hand, as the name suggests, refers to soft goods, that is, goods that don’t have a physical form or are easy to change. This includes operating systems like Windows, all the programs you run on your computer, and the applications you use on your smartphone, which are often referred to as programs. Software allows you to utilize your hardware effectively, and it can constantly evolve and change based on your needs. Finally, firmware is the hard stuff between the hard and soft stuff, the deeper-level programs that allow software to run on top of hardware. The most obvious example is a computer’s BIOS.
The field at the interface of hardware and software, then, is about the firmware that bridges the gap between them. The different disciplines included in this borderline field have different end goals and different categories of hardware and software, but ultimately they seek to harmonize hardware and software, just like the role of firmware, and firmware is one of the tools to do so, and actually deals with hardware and software in a deeper way. For example, while hardware can provide more powerful performance, software must be constantly optimized and improved to bring out the full potential of that hardware. This process of optimization starts with understanding the close interaction between hardware and software, not just tweaking code.
To see how hardware and software work together, let’s look at a simple example: compilers. Compilers are responsible for translating what a typical program wants to do into instructions that a computer machine can understand. A really simple example is replacing ‘c=a+b’ with something like ‘0001100001010011’. You might think that it’s just a matter of matching the binary numbers to the corresponding commands, but it’s not that simple because programs these days don’t just use simple arithmetic, and the set of binary commands you need to use changes depending on the hardware device you’re using. For example, small devices like smartphones require efficient code optimization to minimize power consumption, which means a deep understanding of the hardware is essential. That’s why you need a deep understanding of both hardware and software. Technically, compilers themselves are programs and software, but they are on the borderline between hardware and software because they bridge the gap between software and hardware, and because they require an understanding of hardware unlike typical software. Other fields also embrace both sides in their own way, sometimes using hardware, sometimes using software, sometimes dealing with firmware.
Now that we know where the hardware-software interface lies, why is it such an important area of research? If the interface doesn’t evolve, and the rules and points at which hardware and software meet remain fixed, both sides will be limited in their progress by those rules. For example, whereas in the past, simply improving hardware performance was the main driver of technological advancement, today, hardware advancements without accompanying software optimization are likely to show their limitations. However, by keeping an eye on hardware and software advancements and working at the interface to ensure that they are compatible, hardware can be pushed in new directions with new technologies, such as enabling multiple computers to work together instead of just continuously increasing the speed of a single computer, and software can continue to develop and use more advanced languages. This enables new combinations between hardware and software, which in turn plays a key role in providing a better experience for users. I wouldn’t say it’s the key to technological progress, but it’s the one that ensures it happens.
I’d like to end by talking a little bit about the paradigm shift I talked about in the beginning. Two or three years ago, when I talked to my seniors in electrical engineering about the boundary between hardware and software, they mostly advised me to go into the hardware field, which is the foundation of the development. It was probably because they believed in semiconductors, the hardware field, which was the strength of Korea. And it was a valid point of view because the performance of devices up to that point was manifested in the differences in hardware. But for Korea’s developers, the barrier between the iPhone boom and the smartphone boom was the need for software to go on top of that hardware. Since the iPhone’s biggest advantage was the variety, usefulness, and fun of the applications that went on top of it, it was necessary to develop the same software to secure content, which was difficult for hardware-centric developers, and attracted software developers. This was certainly a valid strategy, but it missed one crucial point, and many current smartphone users have expressed their intention to switch to an iPhone the next time they change devices. What Korea’s developers missed was the optimization of the hardware and software, or the interface between the two. What is constantly said about Korea’s devices is that ‘the hardware is great, but it performs worse than other products with worse hardware.
This boundary between hardware and software is a field that must be continuously studied every time a new hardware market opens and every time a new software platform comes out. In addition, this boundary field will play a bigger role with the emergence of new technologies. Although it cannot be talked about in terms of external specifications, it is a field that helps the external specifications become the actual experience specifications.

 

About the author

Blogger

Hello! Welcome to Polyglottist. This blog is for anyone who loves Korean culture, whether it's K-pop, Korean movies, dramas, travel, or anything else. Let's explore and enjoy Korean culture together!