How to Select the Right CPU or SoC for your Embedded Project
November 04, 2021 by Risto Avila | Comments
The central processing unit (CPU) or system on a chip (SoC) you choose for an embedded system dictates how well the system will work. I have years of experience building embedded systems and offer tips and those from other experts, on picking the best CPU or SoC.
In this article:
- When you should select the CPU or SoC for an embedded system
- Factors to think about in assessing a CPU or SoC
- Comparison matrix of top SoCs/CPUs for an embedded system
What is an embedded processor?
An embedded processor is a central processing unit built into an embedded system that controls the system's basic functions. Embedded processors are a type of microprocessor and usually have limited functions. Often, they use minimal power.
What’s the difference between an embedded processor and a microcontroller?
Embedded processors come with only the processor in the chip. They require external memory and other external components and peripherals to work. Microcontrollers have everything needed to perform a task—including memory, signal registers, and input/output ports—built into the chip.
Manufacturers use embedded processors when a processor must use limited power. They use microcontrollers for various products with embedded systems, including smartphones, automotive systems, and advanced medical devices.
What is a system on a chip (SoC)?
A system on a chip, or SoC, brings together all components a computer system needs onto a single computer chip. An SoC includes the CPU and other parts like memory, timers, and communication interfaces.
What’s the difference between a CPU and an SoC?
A CPU, or central processing unit, generally comes with only the processor in the chip. Computer and embedded systems sometimes use multiple CPUs. An SoC is a minicomputer on a chip that does all the computing work while a CPU needs other components to complete.
A CPU always requires parts outside of the CPU—including memory, timers, and other components—to do their work. An SoC is like a microcontroller but is much more sophisticated and powerful.
What is an SoC in an embedded system?
An SoC in an embedded system is a chip that includes all the components that allow the chip to perform a specific function or action for the embedded system. Many embedded systems use SoCs to do their computing work.
The main elements of an embedded SoC include the processor and other components like memory, cache, timers, and input and output ports. The main advantages are that they use less power and can ultimately be a less expensive solution than a CPU.
SoCs often use much less power than a CPU and its extra components or the multiple CPUs that an embedded system sometimes requires. Embedded manufacturers use SoCs when they need a powerful self-contained processor that still takes up little space.
SoCs have all of the components they need, often making them less expensive than the cost of a CPU and the extra components it requires. Veli-Pekka Heinonen, Qt senior product manager, explains, "Many projects have limits, to get below a certain (cost) threshold. So SoCs have been good at the cost-effectiveness side of things."
A primary disadvantage of choosing an SoC is that manufacturers who use them will have limited flexibility in changing the system. For example, with a CPU and external memory, a manufacturer can decide to change or add to external memory. That's not possible with SoCs. You would need to change the entire SoC if the system needs significant modifications.
Who should select the embedded SoC/CPU?
Since a CPU or SoC is part of the hardware of an embedded system, some people believe hardware designers should choose what to use. But involving software designers in the decision is vital.
That's because how an embedded system ultimately works, including how any software works, will depend on the CPU or SoC. The embedded system will work well only if the hardware and software blend together.
- Hardware considerations: Hardware experts will pay close attention to how much power the CPU consumes. They will also care about the overall computing power and how much space the CPU uses. Finally, the cost is a factor.
- Software considerations: Software designers and experts will focus on how the system’s software will work with the CPU or SoC. They will want their team to be familiar with the CPU architecture and ensure the development tools they use with the CPU. Finally, it’s critical the team can easily test how the software works on the system.
Qt's Heinonen says, for example, that more and more systems are using ARM-based processors. "So that also then impacts the software."
When to select the right embedded CPU/SoC
The CPU is the foundation of the embedded system. But you should wait as long as possible to pick one to use. That's because the team will know more about hardware that will work best with the software they’re developing for the system.
You do not want to decide on and purchase a CPU or SoC and then find out that the software your designers have built for the embedded system doesn't work well with it. It’s important to understand what the software requires in terms of memory, power, and performance. Then purchase the best CPU that fits those needs. Learn more about how embedded engineers build an embedded system and develop the software.
Rob Wood, vice president for hardware and embedded security services at security consultancy NCC Group, explains it's also essential that embedded system designers choose a CPU or SoC "only after you have a solid understanding of your security requirements. The SoC is the foundation of your security. Everything outside of this component cannot be trusted. So, the security properties of your SoC will determine the security of the system as a whole. Updating a design with a new SoC can take years of effort. So, the selection is very important."
How to assess embedded SoCs/CPUs
You'll want to consider many factors when deciding on the right CPU or SoC for your embedded system. You'll, of course, consider overall performance, memory needs, peripheral needs, and costs.
Here are key things to consider when picking a CPU or SoC:
- Performance: The most important factor, of course, is the CPU's overall performance and speed, which the CPU's or SoC's architecture and chip design determine. Be sure to review the number of instructions the CPU executes per second and the number of operations per clock cycle.
Assess the CPU or SoC based on the raw computing power your embedded system and its application need to work well. You may want to choose a few options and then run trial simulations with your code. - Memory: If you choose a microcontroller or SoC, make sure it has the memory capabilities your software needs. If you opt for a CPU, ensure it can support the memory needs of your software. Read our embedded memory guide to learn more about types of memory in embedded systems and issues to consider when choosing memory for an embedded system.
- Power draw: Often, great CPU performance means more power consumption. But you can use techniques to decrease the needed power draw or decrease it at certain times. Still, the power the CPU or SoC needs will be critical in your decision. There are good options that offer high performance with low power consumption.
"With the emphasis on green energy, energy consumption is something that is coming up a bit more often," Heinonen says of assessing CPUs and SoCs. - Peripherals: Properly supporting the peripherals your embedded system uses is vital, of course. With SoCs, the peripherals will often be in the chip. That often means more efficient power consumption and better data transfer compared to external peripherals that are external.
If you're using a CPU and your peripherals are external, make sure it supports their operations efficiently. - Architecture: You'll want to understand the architecture of the CPU or SoC. That architecture will affect which operating system you can use, as well as software performance.
- Operating voltages: In recent years, computer chips have reduced CPU power consumption by reducing the chip's operating voltage. But that may come with changes in performance. You'll want to choose a CPU with an operating voltage that limits power consumption while ensuring great performance.
- Security: As Wood, from NCC Group, points out, security is vital in choosing a CPU or SoC. The continued evolution of the Internet of Things (IoT) and Artificial Intelligence (AI) in embedded systems only increases security concerns. You'll want to understand the security architecture that's built into the CPU or SoC. Make sure it has the architecture that anticipates and combats the most common forms of attacks.
- Specialized processing: Some embedded systems use co-processors or special processing units to reach their best performance. Many systems—including mobile phones, for example—need a graphic processing unit. Choose a CPU or SoC that works well with those co-processors or processing units.
- Cost: The cost of the CPU or SoC will be a key consideration, of course. Be sure to review all the expenses that are part of your choice. That includes costs for development tools, peripherals, and the necessary circuitry and components. Plus, consider if you’ll need to train your staff to work with your selection. You can learn more about essential skills for embedded systems engineers.
CPUs for Specific industries
Specific manufacturers make CPUs that are built for and perform well in embedded systems within certain industries. For example, the automotive industry often uses Qualcomm or Renesas processors. The medical industry often uses NXP equipment.
Comparison of the top embedded SoCs/CPUs
Qt has prepared its embedded product planning and requirements guide to help engineers understand how to approach building an embedded device. The handbook includes a detailed comparison of some of the top SoCs used in embedded systems.
AMD | Intel | NXP | Renesas | TI | |
Eval board | Kontron D3713-V4 mITX | Avnet BOX NUC6CAYS AJL | NXP i.MX 8 QuadMax MEK | R-Car H3 Starter Kit | TI AM572x EVM |
SoC* | AMD Ryzen V1807B | Intel Apollo Lake (Celeron J3455) |
NXP i.MX8 | R-CAR H3 | AM5728 |
Memory | 4 DDR4, 2 DIMM (up to 32GB), ECC option |
2GB onboard DDR (up to 8GB), 32GB eMMC |
LPDDR4 (x64), 32GB eMMC | 384K sys RAM, DDR4, 80MB onboard flash, 8GB eMMC, microSD | 2GB DDR3L, 4GB eMMC, microSD |
Peripherals | HDMI, 4 x DP++, 4K, Vega GPU, PCIe, SATA, audio, GigE, USB 3.1+2.0 |
HDMI, Intel HD 500 GPU, audio, GigE, PCIe, SATA, USB 3.0 + 2.0, WiFi ac, BT, | MIPI, LVDS, 4K, PMIC, GPU, PCIe, audio, GigE, USB 3.0, CAN, up to 4 HDMI displays | HDMI, PowerVR GPU, LVDS, WiFi, BT, audio, Eth 10/100, USB 2.0 | 7" capacitive touch screen, HDMI, audio, PowerVR GPU, GigE, SATA, MiniPCIe, USB 3.0 |
Architecture | x86-64 | x86-64 | ARM-64 | ARM-64 | ARM-32 |
Processing power |
V1807B x 4 core @ 3.8GHz | J3455 x 4 core @ 1.5GHz | A72 x 2 core @ 1.6 GHz; A53 x 4 core @ 1.2 GHz; M4 x 2 core @ 266 MHz | A57 x 4 core @ 1.5 GHz; A53 x 4 core @ 1.2 GHz | A15 x 2 core @ 1.5GHz, M4 x 2 core |
Use cases | Large | Large | Large | Large | Medium |
Power draw | ★ | ★ | ★★ | ★★ | ★★★ |
Longevity | ★★★ | ★★★ | ★★★★★ | ★★★★★ | ★★★★★ |
Unique features |
Up to 4 displays @ 4K | NUC is mini-PC, but SoC is embedded- compatible |
Accel, gyro, pressure, light sensors |
Automotive, EAVB, 440 pin expansion |
Camera option, 2 x C66x DSPs |
★ is the lowest ranking while ★★★★★ is the highest.
* SoCs may include additional features that are unexposed by an eval board.
Future Trends in SoCs in Embedded Systems
Most experts believe that SoCs will drive most embedded system processing in the future instead of general-purpose CPUs. Advanced SoCs now integrate memory, a graphics processor, and other important features onto one chip.
Why you should take your time to pick a CPU or SoC
Your choice of a CPU or SoC for your embedded system is probably one of the most important decisions you’ll make when building an embedded system. The processor can be one of the most expensive parts of a system, and it must work well with the software. Choosing a CPU that you will end up needing to change later becomes even more expensive. That's because the CPU affects so many other choices you make in building your embedded system.
Embedded development framework vs. build an embedded tech stack
Qt helps you develop embedded systems that work well and you can get into the market quickly and at a low cost. Qt gives developers the special tools that help them build cutting-edge embedded systems. Those tools help developers with a wide range of applications and needs—including everything from creating two-dimensional and three-dimensional graphical interfaces to building systems featuring advanced automation. With Qt you can have one implementation and cross-deploy from low-end to high-end products, if your product line has both, and something in between as well.
Use our ROI estimator to estimate what your return on investment will be by migrating to Qt.
The Embedded Product Planning and Requirements Guide
In this guide for IoT and embedded product planning, we examine the most important criteria to consider at the outset, compare a list of the most used technologies, and rate them in easy-to-compare categories.
Blog Topics:
Comments
Subscribe to our newsletter
Subscribe Newsletter
Try Qt 6.8 Now!
Download the latest release here: www.qt.io/download.
Qt 6.8 release focuses on technology trends like spatial computing & XR, complex data visualization in 2D & 3D, and ARM-based development for desktop.
We're Hiring
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.