CPU Utilization: Working within the processing power budget
A CPU’s busy time provides an insight into the real-time behavior of an embedded application.
What is CPU Utilization?
Embedded real-time experts define core utilization as the aggregated time during which the core executes application code (active time) divided by the total observation time. The utilization for the whole CPU is then the average of all individual core utilizations.
CPU Load vs CPU Utilization
Engineers from the UNIX world are familiar with the term CPU load that refers to a different concept: what is the average number of running plus waiting tasks at a specific point in time. CPU load is useful in scenarios where a system is overloaded, and the CPU utilization is 100% because it gives an idea of how significant the surplus is.
Embedded real-time applications should never be in such a state. For this reason, embedded software engineers use the terms CPU load and CPU utilization interchangeably to mean CPU utilization.
Why measure CPU Utilization?
CPU utilization, in combination with timing analysis, tells you if the tasks and ISRs execute in the required time frame and how much processing power they need for their successful completion.
Why is that important? Because you need to prove that you’re working within the required processing budget, most common reasons in the automotive industry being:
1. Customer requirements
Big automotive SoCs usually run multiple applications that are developed by different departments or even other companies. Each development group gets tasked with requirements, including the CPU load limitation.
2. Security Standard requirements
Critical applications are heavily regulated by industry standards, such as automotive ISO 26262, that dictate the maximum level of CPU load to cater to sudden processing spikes.
How to measure CPU Utilization with iSYSTEM tools?
- Learn about the concepts and methodologies in our new webinar: Understanding Linux process load compared to embedded RTOS CPU Utilization
- Follow step-by-step instructions presented in our new Tutorial: Core Load Analysis