The i.MX 8M Plus System on Module DVFS Support for CPU Frequencies
Dynamic Voltage and Frequency Scaling (DVFS) is a sophisticated power management technique essential for optimizing performance and energy efficiency in embedded systems. By dynamically adjusting a processor's voltage and frequency based on workload demands, DVFS effectively reduces power consumption and heat generation. This is especially important in battery-operated and thermally constrained environments where energy efficiency and thermal management are critical.
The technique works by lowering the processor's frequency, which directly cuts down on power usage and heat production. Concurrently, adjusting the voltage ensures that the processor remains stable and operates reliably across various performance states. This dynamic adjustment offers several key benefits:
- Energy Efficiency: DVFS significantly reduces power consumption, thereby extending the battery life of portable devices. This makes it a vital feature for mobile and IoT devices that rely on limited power sources.
- Thermal Management: By lowering heat generation, DVFS helps maintain the reliability and performance of devices. Effective thermal management prevents overheating, which can otherwise lead to hardware failures or degraded performance.
- Performance Optimization: DVFS balances performance and power usage by providing the necessary computational power when needed while conserving energy during less demanding tasks. This balance ensures that devices can perform efficiently without compromising on power efficiency.
The implementation of DVFS on the i.MX 8M Plus System on Module (SoM), highlighting its significance, operational mechanisms, and the steps required to leverage this feature for achieving optimal performance and power efficiency. By understanding and utilizing DVFS, developers can enhance the energy efficiency and reliability of their embedded systems, making them more robust and capable in various applications.
i.MX 8M Plus System on Module Overview
The i.MX 8M Plus System on Module (SoM) (Figure 1) is built around the NXP i.MX 8M Plus applications processor. This processor features a powerful quad-core Arm Cortex-A53 CPU, which can run at speeds up to 1.6 GHz, complemented by an Arm Cortex-M7 core designed for real-time processing tasks. One of the standout features of the i.MX 8M Plus is its integrated Neural Processing Unit (NPU), capable of delivering 2.3 trillion operations per second (TOPS), significantly accelerating machine learning inference tasks.
Figure 1: The iWave i.MX 8M Plus SoM. (Image source: iWave)
This SoM is designed to meet the diverse needs of modern applications by offering a wide array of multimedia, connectivity, and AI capabilities. These features make it suitable for applications ranging from industrial automation and robotics to smart home devices and consumer electronics.
Key Features and Capabilities:
- Processing Power:
- Quad-core Arm Cortex-A53 processor running up to 1.6 GHz
- Cortex-M7 core for handling real-time processing tasks
- AI and Machine Learning:
- Integrated NPU delivering 2.3 TOPS for accelerated machine learning inference
- Connectivity Options:
- Wireless:
- Supports Wi-Fi 6 for high-speed wireless connectivity
- Bluetooth 5.0 for robust and efficient wireless communication with peripheral devices
- Wired:
- Dual CAN-FD (Controller Area Network with Flexible Data-Rate) interfaces for reliable, real-time communication in industrial and automotive applications
- Ethernet connectors for high-speed, deterministic networking solutions
- Peripheral Connectivity:
- USB 3.0 and USB 2.0 ports to connect a variety of peripherals, ensuring flexible and versatile connectivity options
- PCIe 3.0 slot for high-speed data transfer and expansion options
- Multimedia and Display:
- Dual LVDS (Low-Voltage Differential Signaling) interfaces for connecting multiple displays
. - HDMI 2.0a TX output for high-definition video output, supporting 4K resolution
- Multiple MIPI interfaces:
- 2 MIPI CSI (Camera Serial Interface) ports for advanced camera solutions, enabling high-quality image and video capture
- 1 MIPI DSI (Display Serial Interface) port for advanced display solutions, ensuring high-performance visual output
The i.MX 8M Plus SoM's combination of powerful processing capabilities, extensive connectivity options, and advanced multimedia features makes it a versatile solution for developers looking to implement sophisticated, high-performance applications in a variety of industries. Whether it's for industrial control systems, smart home devices, or advanced multimedia applications, the i.MX 8M Plus SoM provides the flexibility and performance needed to meet today's demanding technological requirements.
How to Reduce CPU Frequency on i.MX 8M Plus
Reducing the CPU frequency on the i.MX 8M Plus involves modifying the operating points table (opp-table) in the Device Tree Source (DTS) file. The DTS file defines the hardware configuration for the system, including the available CPU operating points, which determine the possible CPU frequencies and corresponding voltage levels. By adjusting these operating points, you can control the maximum and minimum frequencies at which the CPU operates (Figure 2 and Listing 1).
Figure 2: Flow chart for indicating how the CPU operating frequency is changed. (Image source: iWave)
Copya53_opp_table:opp-table
{
compatible=“operating-points-v2”;
opp-shared;
opp-100000000 {
opp-hz = /bits/ 64 <100000000>;
opp-microvolt = <850000>;
opp-supported-hw = <0x8a0>, <0x7>;
clock-latency-ns = <150000>;
opp-suspend;
};
opp-200000000 {
opp-hz = /bits/ 64 <200000000>;
opp-microvolt = <850000>;
opp-supported-hw = <0x8a0>, <0x7>;
clock-latency-ns = <150000>;
opp-suspend;
};
opp-800000000 {
opp-hz = /bits/ 64 <800000000>;
opp-microvolt = <850000>;
opp-supported-hw = <0x8a0>, <0x7>;
clock-latency-ns = <150000>;
opp-suspend;
};
opp-1000000000 {
opp-hz = /bits/ 64 <1000000000>;
opp-microvolt = <850000>;
opp-supported-hw = <0x8a0>, <0x7>;
clock-latency-ns = <150000>;
opp-suspend;
};
Listing 1: Code for setting the CPU operating voltage and frequency.
These commands set a constant CPU frequency:
- Use the maximum frequency:
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
- Use the current frequency to be the constant frequency:
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
- The following two commands set the scaling governor to a specified frequency if supported. If the frequency is not supported, the closest supported frequency is used:
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo <frequency> > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
Table 1: These entries specify frequency-voltage pairs for different operational states, allowing the system to dynamically adjust performance based on workload requirements.
Summary
By using the DVFS power management technique, designers can optimize performance and energy efficiency in embedded systems. DVFS effectively reduces power consumption and heat generation by dynamically adjusting a processor's voltage and frequency based on workload demands, which is critically important in battery-operated and thermally constrained environments.

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.
Visit TechForum