Multi-core has become a hot topic in recent years, and we have now reached a point where multi-core adoption is starting to follow common use cases. The following provides a framework for understanding how multi-core can apply to your project.
Embedded developers are turning to multi-core solutions primarily because of cost. Performance requirements have quickly multiplied, therefore computing power needs to enhance significantly without increasing cost per unit, power consumption and heat production. For example, data network infrastructure devices that handle high throughput packet processing.
Multi-core provides the best option for increasing performance, and the ratio of power/performance and cost/performance is significantly improved. Hardware providers are addressing these needs with specific processors with 8,16 and 32 cores and specialized packet processing acceleration hardware. Software vendors are providing platforms designed to take full advantage of available processing power and specific needs of packet processing devices (for example, Wind River’s Network Acceleration Platform).
Another common multi-core use case is consolidating complicated multi-device systems into one. Combining multiple systems into a single hardware unit means less cost, less complicated supply chain and easier support and maintenance. For example, running a Real Time Operating System (RTOS) alongside a General Purpose OS (GPOS) like Microsoft Windows or Linux.
Multi-core is not the only enabler for consolidation, however it has removed previous barriers such as performance and power limitations. Developers can now leverage embedded virtualization technology to run multiple operating systems on a single core or multi-core devices to consolidate two or more systems onto a single board. The potential cost savings is significant. These new hardware platforms are typically more powerful than previous generations and allow developers to do much more. (i.e. consolidating several systems and leveraging increased processing power to augment functionality).
Safety and Security
A third driver for multi-core adoption is safety and security. In highly secure systems, secure and unsecure parts must be physically separate - usually by having multiple individual systems. Modern secure systems are doing more with less by leveraging secure separation with virtualization, i.e. a secure hypervisor. For example, a secure military radio system maybe required to transmit classified information some of the time depending on its use. Keeping secure and unsecure portions separate is a key security practice.
In safety critical systems it’s important to separate critical and non-critical parts. For example, an industrial control system may need a safety critical control system with a Linux-based user interface. Linux and safety critical parts can both run on the same system, but be separated via virtualization. In addition, safe and secure system partitioning must be guaranteed safe and secure and in some cases, may require certification.
Essentially, developers now have the ability to think about multi-core ahead of time to address both technical and business issues. Developers can evaluate a new multi-core hardware and software platform to see if it provides performance AND business advantages (cost, time to market, etc).