【米尔MYD-J1028X开发板试用体验】体验米尔MYD-J1028X开发板 NXP LS1028A处理器 CPU调频策略

描述

本文来源电子发烧友社区,作者:mameng, 帖子地址:https://bbs.elecfans.com/jishu_2308826_1_1.html


   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调频策略指令:



  1. 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
米尔科技




  1. root@localhost:/sys/devices/system/cpu/cpufreq# lscpu
  2. Architecture:        aarch64
  3. Byte Order:          Little Endian
  4. CPU(s):              2
  5. On-line CPU(s) list: 0,1
  6. Thread(s) per core:  1
  7. Core(s) per socket:  2
  8. Socket(s):           1
  9. NUMA node(s):        1
  10. Vendor ID:           ARM
  11. Model:               3
  12. Model name:          Cortex-A72
  13. Stepping:            r0p3
  14. CPU max MHz:         1500.0000
  15. CPU min MHz:         300.0000
  16. BogoMIPS:            50.00
  17. L1d cache:           unknown size
  18. L1i cache:           unknown size
  19. L2 cache:            unknown size
  20. NUMA node0 CPU(s):   0,1
  21. Flags:               fp asimd evtstrm crc32 cpuid
  22.  
复制代码

如果想使用其它策略,以高性能模式为例,返回根目率,可以进行如下设置,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
米尔科技
 
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分