Most of the significant breakthroughs in coming years in embedded systems design will be driven by three key technologies that we already use in 2008: faster multicore processors, COTS software, and virtualization.
By Inder M. Singh, Chairman of LynuxWorks
Twenty years from now may not seem like a long time, but in computer terms, it's eons. Two decades from now, we will bear witness to countless applications for embedded technology that will go beyond the limitations of the current mobile and mil/aero uses. The technology will creep further into our daily lives in ways we never dreamed--embedded in our cars, our homes, our hospitals and, yes, even the clothes we wear. Most of these breakthroughs will be driven by three key technologies that we already use in 2008: faster multicore processors, COTS (commercial-off-the-shelf) software, and virtualization.
Multicore processors
Presuming Moore's Law does not change, it's clear that in 20 years we are all going to have the power of today's supercomputer in the palms of our hands--perhaps even in smaller form factors. Yes, you can argue that we've reached the development wall in some respects, which has led to the development of multi-core processors; but there have recently been some key developments in nanotechnology, which should result in next-generation, high-performance chips in the next few years. By 2028, I predict we will find ourselves hitting the wall with that generation--and we will be making them multicore.
The one thing that drives processor performance increases is software. Most of today's software makers tap into a processor and try to squeeze every ounce of performance from it. And that will never change. Not now or in 20 years. At the rate hardware and software technology is advancing, we are not far from the day when an entire SoCs (Systems-on-Chips) are outfitted with multiple processor cores, logic, network interfaces, wireless radios and multimedia hardware. And all of this will squeeze into a form factor that will fit inside a wristwatch or an earbud.
Thanks to enhanced development environments, we're going to see high level modeling and trade-offs between implementing functions in hardware or software. Applications will enable integration with back-end databases and computing resources, higher level language development tools and integrated development environments (IDE) with Eclipse becoming the standard IDE.
COTS
In the past, most embedded software was handcrafted and developed from scratch. In 2028, we will see increasing use of COTS software building blocks such as protocol stacks, GUIs, artificial intelligence (AI), middleware and many kinds of libraries. AI libraries in particular are going to offer a world of new practical applications such as pattern recognition, speech understanding, facial recognition, theorem provers, and expert systems and learning systems. These applications will make embedded systems more user-friendly, powerful and dependable.
In addition, we will continue to see much more software reuse through the use of standard software building blocks and development tools supporting higher levels of programming.
Virtualization
Virtualization is a hot topic today--and it will remain so 20 years hence. In addition to offering the highest levels of security through software isolation, virtualization allows for the support of legacy software and easy migration to new hardware architectures. It also offers simultaneous support of multiple operating systems with different characteristics to support the requirements for different parts of an application. For example, in 2028, an RTOS (real time operating system) could be employed for time-critical functions and a COTS Linux could be used for user interface. Likewise, a certified RTOS could be used for safety critical applications and a COTS Linux could be used for non-critical applications.