完美体育·(中国)手机网页版科技提醒您:您的浏览器版本过低或者使用了兼容模式,为了获得更好的浏览体验,建议使用IE10以上的浏览器或使用极速模式。 请升级浏览器以获得更好的体验!

完美体育·(中国)手机网页版 > 评测报告 > 【完美体育·(中国)手机网页版MYD-J1028X开发板】CPU调频策略

【完美体育·(中国)手机网页版MYD-J1028X开发板】CPU调频策略

文章来源: 发布日期:2023.2.8 浏览次数:1096 次

由评测者“mameng”提供。


MYC-J1028X核心板尺寸82*45mm,基于NXP LS1028A处理器,板卡采用12层高密度PCB设计,沉金工艺生产,独立的接地信号层,无铅。核心板和底板采用314PIN MXM3.0金手指连接器连接,性价比高。Layerscape® LS1028A系列工业应用处理器专为实现工业物联网而设计,它集成了 3D图像功能、支持TSN的以太网、高性能PCIe® Gen 3.0 接口。4


    



LAYERSCAPE LS1028A框图:
    该系列SoC集成了高性能ARM® Cortex®-A72处理器、支持TSN的以太网交换、带安全引擎的可信架构、支持4K显示的3D GPU以及集成式DisplayPort/嵌入式DisplayPort接口。用于工业物联网中的融合网络的TSN为了将工业物联网和工业4.0变成现实,制造商必须将制造和自动化系统等操作技术 (OT) 与库存、物流、客户关系管理系统等信息技术 (IT) 互连。实现两个功能域之间的信息流通,将能提高效率和缩短产品交付时间。时间敏感型网络 (TSN) 实现了IT和OT的融合,使用千兆以太网来实现高带宽,同时又使用传统IT设备,但是增加了各种功能,例如时间感知整形、帧抢占调度、帧复制和消除,以确保满足OT网络要求。LS1028A能够利用支持TSN的交换机来支持菊花链或环形部署,或者利用支持TSN的以太网控制器来支持端点应用。安全性LS1028A系列SoC使用可信架构提供的各种功能,例如安全启动、完全密钥存储和篡改检测,能够实现可信平台。安全引擎 (SEC) 可为加密以太网通信和磁盘存储提供加密加速。SEC还可降低公钥/私钥事务处理负载,并且支持椭圆曲线加



CPU的频率调节模式:
1. Performance. 不考虑耗电,只用最高频率。
2. Interactive. 直接上最高频率,然后看CPU负荷慢慢降低。
3. Powersave. 通常以最低频率运行,流畅度会受影响,一般不会用这个吧!
4. Userspace. 可以在用户空间手动调节频率。
5. Ondemand. 定期检查负载,根据负载来调节频率。

    开发板通过串口登录系统:

   查看MYC-J1028X  开发板设置CPU调频策略指令:


root@forlinx:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling
默认情况下开发板启动后CPU调频策略为ondemand。

1.Performance:CPUfreq 被设置成scaling_min_freq和scaling_max_freq中的最高频率,
2.Powersave::CPUfreq 被设置成scaling_min_freq和scaling_max_freq中的最低频率;
3.Userspace:允许root权限的用户通过sysfs的“scaling_setspeed字段将cpu频率设置成用户想要的频率。
4.Ondemand:根据当前CPU使用情况调频,该调频策略的参数位于:
/sys/devices/system/cpu/cpufreq/ondemand
打开:查看文件;



sampling_rate:该间隔是查询CPU负载间隔,并根据CPU负载做对应的事
sampling_rate_min:采样间隔的最小值有硬件延迟或者内核限制
up_threshold:定义了根据sampling_rate间隔的cpu使用情况内核需要增加cpu频率的门限
ignore_nice_load:该参数的值是0或者1,如果是0,则统计cpu使用率时会统计所有cpu,如果被设置成1,则运行“nice”值的cpu将不会被统计到cpu使用率。
smapling_down_factor:该值控制当cpu运行在高主频时的降频行为,当设置成1(缺省值),则在调频时会重新评估cpu使用率,当设置成大于1的值(如100),在高负载时其和轮询时间间隔的乘积将作为查询负载的间隔,这用于减少cpu开销,让cpu更多的停留在较高主频。
interactive:其设计的目标是对低延迟的使用场景的响应。其调频策略类似“ondemand”,但是设置的参数值和“ondemand”是有区别的,主要来说就是升频率快,降频慢。
查看当前CPU频率:
  /sys/devices/system/cpu/cpu0/cpufreq # catscaling_cur_freq

600000


root@localhost:/sys/devices/system/cpu/cpufreq# lscpu
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  1
Core(s) per socket:  2
Socket(s):           1
NUMA node(s):        1
Vendor ID:           ARM
Model:               3
Model name:          Cortex-A72
Stepping:            r0p3
CPU max MHz:         1500.0000
CPU min MHz:         300.0000
BogoMIPS:            50.00
L1d cache:           unknown size
L1i cache:           unknown size
L2 cache:            unknown size
NUMA node0 CPU(s):   0,1
Flags:               fp asimd evtstrm crc32 cpuid
如果想使用其它策略,以高性能模式为例,返回根目率,可以进行如下设置,root@forlinx:/# systemctl disable ondemand.service
root@forlinx:/# apt-get install cpufrequtils
修改
root@forlinx:/# vi /etc/default/cpufrequtils
添加
GOVERNOR="performance"
重启测试
root@forlinx:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
performance
实际过程cpu1、cpu2、cpu3会同时改变。

— CPU默认调度策略
策略初始化注册完之后,会开一个定时器,周期检测系统负载变化来动态调节频率,流程如下:
cpufreq_interactive_timer -> //timer会被定期执行计算当前系统负载
wake_up_process(speedchange_task) -> //唤醒负载计算线程
cpufreq_interactive_speedchange_task ->
__cpufreq_driver_target ->
cpufreq_driver->target ->
cpufreq_target -> rockchip-cpufreq.c
cpufreq_frequency_table_target //设置的target freq要在policy的运行范围内
dvfs_clk_set_rate->
clk_dvfs_node->vd->vd_dvfs_target ->
dvfs_target ->
dvfs_get_limit_rate//这里会判断温度的litmit值(temp_limit_rate变量)

clk_set_rate