Flexible multicore chips present significant opportunities for innovation.
The semiconductor industry faced a gauntlet of challenges in the past year, ranging from millions of unbuilt cars to multitudes of delayed iPhones. The increased scarcity of electronics across several markets hasn’t escaped the notice of everyday consumers. In fact, it’s provided a wake-up call for many consumers who may not have been aware previously just how dependent on chip technology are a huge range of the products they use.
However, inefficiencies in supply chains have obscured another major problem in the semiconductor market—chip programmability. While several global powers are currently committing huge resources to addressing the fundamental supply and demand of silicon hardware, the complexity of programming multicore chip architectures remains unsolved.
Devices are getting smarter and more interconnected, presenting new market opportunities with distinct requirements. This means rigid architectures with differing programming environments won’t be sufficient to keep pace with evolving demands for innovation. Moreover, manufacturers are under increasing pressure to balance the required time, cost, and reward of developing new products.
This issue of chip programmability poses as much of a challenge to the semiconductor industry as does the physical supply chain issues that have dominated headlines. Left unaddressed, the programmability challenge will become a major break on further innovation.
But with such a multifaceted challenge—encompassing a huge variety of multicore architectures—where does the industry need to focus its attention?
#1: Increased time to market and burgeoning costs—fragmented markets: The most apparent design challenge is the intricacy of today’s SoCs, which integrate entire electronic systems. Software operating on heterogeneous multicore processors is complex and necessitates custom programming, validation, and verification. This slows the design process, increases the time to market, and—ultimately—places a greater financial burden on manufacturers.
With the industry increasingly having to cater to the specific needs of an ever-growing range of applications, the notion of a “one size fits all” approach to programming becomes unfeasible. This means it’s impossible to assure product designers they’ll have a familiar environment to work with. Moreover, it becomes cost impractical to serve each unique market with a dedicated processor, especially in a fragmented intelligent IoT market.
#2: Rigid architectures complicating design: Moreover, there’s no guarantee that the end-product will be futureproof once the programming process is complete. Devices are evolving and becoming more intelligent, which entails even more precise and unique specifications, and yet system structures are expected to become more and more adaptable. At present, it’s not uncommon to embark on custom development which takes some months, only to find it isn’t compatible with the most recent iteration of SoC architecture.
With the design of physical devices presenting many variables, and the need to optimise how the processor performs, even minor adjustments can necessitate a re-design from scratch.
#3: The myth of reusability of some processors: Despite these design difficulties, there’s an enduring myth that keeping within a specific group of processors will deliver re-usability, while switching between processor families is overly complicated due to diverging sets of instructions.
Some may raise the alleged commonality of Arm-based processors to provide the flexibility of a truly interchangeable system, but that would be a mistake.
As a result of each SoC being unique, there’s no truly homogenous programming model across different platforms that’s consistently available to engineers. IoT architectures and bespoke processors present different requirements and challenges, necessitating different toolsets and techniques to be used for different purposes, even if they use a common Arm core, for example.
A common framework within which architectures can be interchanged is far too rare. This is due to the difficulty of attributing a programme to multicores while balancing across them, with the interfaces typically used to do so being complex and inaccessible.
So, in summary, complicated SoCs operating on multicore processors take years to release, are often impossible to modify once they’re available, and lack the accessibility and adaptability to even facilitate amends. All of this presents an impossible challenge for manufacturers aspiring to shape their product as envisioned.
The creative process
Addressing these challenges means seeing the bigger picture. It isn’t feasible to invest time or significant sums of money in long term projects aiming at perpetually moving targets. We need a more agile and accessible development model.
Ultimately, this means realising a new design environment that can provide a genuinely common frame of reference between different products. This framework will need to ensure that it’s possible to configure different types of processing simultaneously, whether for general purpose, digital signal processing (DSP), artificial intelligence (AI), or low-latency real-time deterministic input/output (I/O). This needs to be made possible via the same tools and languages, and with robust and reliable execution characteristics.
Given the complexity and specific requirements of new markets, real-time operating systems like FreeRTOS in combination with traditional embedded programming practices meet most of these requirements. These systems provide the level of familiarity and flexibility expected by engineers, while making it as easy to understand as possible. However, we still need to consider the proper means to apply this system within multicore architectures.
To make good on its versatility and accessibility, this environment needs to rest upon more flexible hardware platforms that facilitate the use of different processing types, regardless of the engineer’s requirements.
Programming multicores won’t be as challenging provided we can develop readily available architectures that are based on the needs of engineers, but without the caveat of continually learning new languages, architectures, or tools.
New hardware, new possibilities
The technical and supply-related challenges facing the chip industry have highlighted the need for versatile, cost-effective chip technology that can keep pace with evolving market demands for innovation. While the industry is currently focused on addressing supply and demand issues, the complexity of programming multicore chip architectures won’t go away.
The possibilities afforded by flexible multicore chip technology present significant opportunities for innovation in various industries. By addressing programming challenges and investing in a more flexible development model, manufacturers can unlock the full potential of this technology and drive the industry forward, while giving rise to new use cases in smart homes, offices, and cities.
Within smart homes, multicore chips can optimise local devices and allow for intelligent automation, allowing for energy-efficient heating systems and general convenience to occupants. In the office, multicore chips can enable voice conferencing and other communication technologies that are essential in today’s remote work environment. Meanwhile, in smart cities, multicore chips can facilitate intelligent traffic management and other critical infrastructure to ensure our safety.
Whether applied in the developing smart home market or within established niches like voice processing, semiconductor device design and manufacturing would benefit significantly from a versatile platform that is easy for engineers to use.