High-performance embedded applications like solid-state drive (SSD) flash storage, sensor fusion, AI, and 5G wireless share challenges that are driving the need for architectural improvements on the processor side:
- Logic speeds are increasing faster than embedded memory access times
- Clock speeds for most embedded designs have topped out in the 1-GHz to 2-GHz range
- Clock speeds also need moderation to manage power consumption
- Demands for performance, functionality, and features continue to grow
To address these competing requirements, design engineers are implementing more heterogeneous processing elements to extract higher performance for varying types of workloads. In an SoC with a heterogeneous processor architecture, designers combine these various processor types with each core handling its specialized application. Linux-capable CPUs, real time controllers, digital signal processors (DSPs), GPUs, and neural network accelerators are examples of the types of processors commonly found in advanced SoCs today.
The advantages of a heterogeneous approach, however, are not limited to applications with large workloads. A smart home automation hub can be designed in this way, in the interest of processing and power efficiency. These devices handle a variety of different functions: image processing, voice recognition, natural language processing, control functions, etc. A task like natural language processing calls for a heavy-duty processor, which also consumes a lot of power. At the same time, the device itself is always on, so it’s impractical to run the always-on tasks on that same heavy-duty processor. To save power, a small, low-power controller with built-in digital signal processing support can manage always-on tasks like keyword wake-up or face detection. Once the device is fully powered up, more compute-intensive tasks like natural language processing or face recognition can be shifted to a larger, more powerful core, like a high-performance DSP or an AI acceleration engine.
The advantages of a heterogeneous processor approach are not limited to applications with large workloads.
Heterogeneous workloads became common in high-volume, small-geometry devices like mobile phones, which can easily contain more than 50 cores, each specialized for a specific set of tasks. Today, these types of workloads are making their way into a wider variety of application areas. Even modern cars are evolving from having distributed controllers throughout the vehicle to centralized, heterogenous multi-core controllers. The emergence of the software-defined vehicle to support increased levels of automation and sophistication of in-vehicle applications is driving the automotive industry to a heterogenous computing model.
Even within a homogeneous, multi-core processor implementation, designers are looking for the ability to run heterogenous workloads. Providing a large-scale, coherent multi-core cluster (greater than eight cores) with a high-bandwidth interconnect and the ability to customize the processor provides yet another architectural option for heterogenous tasks, especially those which need to share coherent data. For example, in a computational storage application, a subset of the core cluster can be used as the host processor (running Linux) while another subset of cores running an RTOS can manage the SSD storage arrays. All of this can be managed with a single, multi-core cluster.