高通,MTK,紫光展锐 CPU大核中核小核查询 以及绑定

  • 概述
  • 查看手机cpu 的大小核分布情况
    • 1,如果知道CUP 型号直接去官网查找, 例如Kirin9000 。
    • 2,有手机,也可去通过adb shell 来查看
  • 使用taskset 命令来查看进程所运行的CPU
  • 通过进程号cat cpuset,cpus 命令来查看进程所运行的CPU
  • 使用top -H -O CPU -p <进程号> 查看进程关联进程
  • 绑定大核

概述

超大核在制成,主频,V9指令集,都有大幅提升,因此运行 起来更快。因此绑定大核或者超级大核对某个模块的进程运行会起到非常明显提速。像追求极速的某些模块来说具有非常重要的作用, 比如说触控的高刷,显示屏的高刷, 指纹模块的疾速解锁,faceID等都会用到。

目前主流手机基本都是8核处理器, 这个8个处理器中,不是每个都一样的,结合实用与经济性,IC设计时会使用不同制程工艺。8 个处理器可以有不同的分配。例如近期最流行的架构位1+3+4, 即1个超大核+3个大核+4个小核。 如下时列举不同厂家部分处理器型号的分布。

查看手机cpu 的大小核分布情况

1,如果知道CUP 型号直接去官网查找, 例如Kirin9000 。

添加链接描述

https://www.hisilicon.com/cn/products/Kirin/Kirin-flagship-chips/Kirin-9000

2,有手机,也可去通过adb shell 来查看

使用 ls /sys/devices/system/cpu/cpufreq 命令 看有几个policy 类就分为几种CPU, 如上图MT6789分为2组。

ls /sys/devices/system/cpu/cpufreqC:\platform-tools>adb shell
k6789v1_64:/ $ ls  /sys/devices/system/cpu/cpufreq
policy0  policy6

SM8450 有3个policy 因此有三种类型的CPU,

AI2202:/ $ ls  /sys/devices/system/cpu/cpufreq
policy0  policy4  policy7

如上图SM8450分为两3组。

通过related_cpus去查看每一组所关联的cpu。可以看到SM8450分组情况如下:

 AI2202:/ $ cat /sys/devices/system/cpu/cpufreq/policy0/related_cpus
0 1 2 3AI2202:/ $ cat /sys/devices/system/cpu/cpufreq/policy4/related_cpus
4 5 6AI2202:/ $ cat /sys/devices/system/cpu/cpufreq/policy7/related_cpus
7

通过cpuinfo_max_freq去查看每一组cpu最大主频,从而来确定哪一个时大核或者超大核。可以看到SM8450超大核为policy7 的cpu7 ,最大支持3GHz

 AI2202:/ $ cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq
1785600AI2202:/ $ cat /sys/devices/system/cpu/cpufreq/policy4/cpuinfo_max_freq
2496000AI2202:/ $ cat /sys/devices/system/cpu/cpufreq/policy7/cpuinfo_max_freq
2995200

通过cpuinfo_cur_freq去查看每一组cpu当前工作频率,这部分后续提频会确认到改参数。

 AI2202:/ # cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq
1478400AI2202:/ # cat /sys/devices/system/cpu/cpufreq/policy4/cpuinfo_cur_freq
1881600AI2202:/ # cat /sys/devices/system/cpu/cpufreq/policy7/cpuinfo_cur_freq
2054400

通过related_cpus去查看每一组所关联的cpu。可以看到MT6789分组情况如下:

k6789v1_64:/ # cat /sys/devices/system/cpu/cpufreq/policy0/related_cpus
0 1 2 3 4 5
k6789v1_64:/ # cat /sys/devices/system/cpu/cpufreq/policy6/related_cpus
6 7

通过cpuinfo_max_freq去查看每一组cpu最大主频,从而来确定哪一个时大核或者超大核。可以看到MT6789超大核为policy6 里面的 cpu6, cpu7两个cpu,最大支持2.2GHz

k6789v1_64:/ # cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq
2000000
k6789v1_64:/ # cat /sys/devices/system/cpu/cpufreq/policy6/cpuinfo_max_freq
2200000

通过cpuinfo_cur_freq去查看每一组cpu当前工作频率,这部分后续提频会确认到改参数。

k6789v1_64:/ # cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq
500000
k6789v1_64:/ # cat /sys/devices/system/cpu/cpufreq/policy6/cpuinfo_cur_freq
1200000

使用taskset 命令来查看进程所运行的CPU

OS当中所运行的进程不是每个CPU 都能跑的, 会收到CPU调度规则的约束,考虑到功耗,时效,以及资源问题,cpu会有一套合理的调度规范, 对一下时速优先权要求不要的进程一般都会放在小核里面。

以指纹为例,使用ps -A| grep fingerprint 来查找指纹进程号。

k6789v1_64:/ # ps   -A| grep   fingerprint
system        1286     1 10920640  7164 binder_wait_for_work 0 S android.hardware.biometrics.fingerprint@2.1-service

通过taskset -p pid(进程号)来看改进程会有那些cpu 来调度。 如果mask是ff,ff转化成二进制是 0x11111111 ,每个1位代表一个cpu,8位为1,则8个cpu 都可以来调度,对应的顺序为从左到右,高位到低位, 对应cpu7到cpu0,但是什么时候用不确定。

k6789v1_64:/ # taskset  -p   1286
pid 1286's current affinity mask: ff

如果mask出来时只有一位数如下所示,可能时在init 脚本中限制只能在规定的四个核中调度运行。 需要修改脚本。具体请见下一篇文章。

k6789v1_64:/ # taskset  -p   1286
pid 1286's current affinity mask: f

2,通过taskset -p xx(十六进制) pid(进程号)来看改进程会有那些cpu 来调度。 设置成3f(0x00111111), 因此只有cpu5~cpu0可以调度,属于小核,

k6789v1_64:/ # taskset  -p  3f  1286
pid 1286's current affinity mask: ff
pid 1286's new affinity mask: 3f
k6789v1_64:/ # taskset  -p   1286
pid 1286's current affinity mask: 3f

bit7–第4个核(cpu7)
bit6–第3个核(cpu6)
bit5–第2个核(cpu5)
bit4–第1个核(cpu4)
bit3–第4个核(cpu3)
bit2–第3个核(cpu2)
bit1–第2个核(cpu1)
bit0–第1个核(cpu0)

通过进程号cat cpuset,cpus 命令来查看进程所运行的CPU

//ps 进程号
k6789v1_64:/ # ps  -A|grep   finger
system        1286     1 10889920  7120 binder_wait_for_work 0 S android.hardware.biometrics.fingerprint@2.1-service//cat  proc/1286/cpuset  查找进程号分组
k6789v1_64:/ # cat  proc/1286/cpuset
/system-backgroun//cat 分组关联的cpus
k6789v1_64:/ # cat dev/cpuset/system-background/cpus
0-3

使用top -H -O CPU -p <进程号> 查看进程关联进程

用top -H -O CPU -p 1286 看一下1286进程关联进行的所用的cpu, [CPU] 一列关联进程都在cpu0~cpu3之间。
![CPU调度](https://img-blog.csdnimg.cn/bf5416ff8bac4501af10c5f504137c5c.png

cpu0~cpu3小核下,指纹模块录入指纹的时间大致950ms左右,时间比较长。

C:\Users\11599>adb shell
k6789v1_64:/ # logcat |grep   "total time"
03-28 15:12:28.055  1286  1654 I [FingerprintCore]: [notifyEnrollProgress]    total time=1166ms
03-28 15:13:18.512  1286  1654 I [FingerprintCore]: [notifyEnrollProgress]    total time=847ms
03-28 15:13:23.822  1286  1654 I [FingerprintCore]: [notifyEnrollProgress]    total time=872ms
03-28 15:13:25.393  1286  1654 I [FingerprintCore]: [notifyEnrollProgress]    total time=918ms
03-28 15:13:27.573  1286  1654 I [FingerprintCore]: [notifyEnrollProgress]    total time=908ms
03-28 15:13:29.485  1286  1654 I [FingerprintCore]: [notifyEnrollProgress]    total time=893ms
03-28 15:13:33.046  1286  1654 I [FingerprintCore]: [notifyEnrollProgress]    total time=943ms
03-28 15:13:35.294  1286  1654 I [FingerprintCore]: [notifyEnrollProgress]    total time=964ms
03-28 15:13:37.731  1286  1654 I [FingerprintCore]: [notifyEnrollProgress]    total time=998ms

绑定大核

因为MT6789只有cpu6 cpu7是大核, 因此绑定大核mask 为1100 0000 (0xc0) ,因此使用taskset -p c0 1286来绑定大核。

k6789v1_64:/ # ps -A|grep   finger
system        1284     1 10953408  7176 binder_wait_for_work 0 S android.hardware.biometrics.fingerprint@2.1-service
k6789v1_64:/ # taskset  -p   c0 1286
pid 1284's current affinity mask: ff
pid 1284's new affinity mask: c0

taskset 查到已经绑定到大核。

k6789v1_64:/ # taskset  -p    1286
pid 1284's current affinity mask: c0

top查看关联进程,大部分进程都已经在大核中运行。

指纹模块录入指纹的时间大致450ms左右,时间比之前快了一半,这就是大核的效果立竿见影。

C:\Users\11599>adb shell
k6789v1_64:/ #  logcat |grep   "total time"
03-28 15:49:03.482  1284  1534 I [FingerprintCore]: [notifyEnrollProgress]    total time=587ms
03-28 15:49:06.804  1284  1534 I [FingerprintCore]: [notifyEnrollProgress]    total time=420ms
03-28 15:49:08.114  1284  1534 I [FingerprintCore]: [notifyEnrollProgress]    total time=428ms
03-28 15:49:09.144  1284  1534 I [FingerprintCore]: [notifyEnrollProgress]    total time=436ms
03-28 15:49:11.004  1284  1534 I [FingerprintCore]: [notifyEnrollProgress]    total time=447ms
03-28 15:49:13.001  1284  1534 I [FingerprintCore]: [notifyEnrollProgress]    total time=450ms
03-28 15:49:13.946  1284  1534 I [FingerprintCore]: [notifyEnrollProgress]    total time=444ms
03-28 15:49:16.596  1284  1534 I [FingerprintCore]: [notifyEnrollProgress]    total time=424ms
03-28 15:49:17.703  1284  1534 I [FingerprintCore]: [notifyEnrollProgress]    total time=470ms

高通,MTK,紫光展锐 CPU超大核,大核,小核分布查询 以及绑定相关推荐

  1. 紫光物联linux登录账号,紫光展锐打造操作系统生态,赋能万物互联智能时代

    本周,以"象由芯生·科技服务人民"为主题的2020紫光展锐市场峰会重磅开启,广大生态合作伙伴共聚一堂,共话数字世界新未来. 在今天举办的"操作系统OS研讨会"上 ...

  2. 赋能网安生态通信服务器操作系统,紫光展锐打造操作系统生态,赋能万物互联智能时代...

    本周,以"象由芯生·科技服务人民"为主题的2020紫光展锐市场峰会重磅开启,广大生态合作伙伴共聚一堂,共话数字世界新未来. 在今天举办的"操作系统OS研讨会"上 ...

  3. 产品技术方案范例_紫光展锐推 85Hz 高刷护眼墨水屏技术方案,首款产品将于 6 月面市...

    紫光展锐通过虎贲移动平台在平板类产品全面进军,通过其新旗舰.高性能及价格上的优势组合,已经与海信.步步高.酷比魔方.台电同步推出了基于紫光展锐虎贲平台的新款平板产品. 而近日紫光展锐围绕着平板大生态战 ...

  4. MWC 2023 | 紫光展锐联合中国联通、通则康威、广和通重磅发布两大新品

    西班牙巴塞罗那当地时间2月27日上午,紫光展锐联合中国联通.通则康威.广和通等生态合作伙伴,共同发布中国联通第二代5G CPE-VN009及中国联通雁飞eSIM模组-VN200.紫光展锐CEO任奇伟. ...

  5. 紫光展锐启动全新品牌,进击“芯时代”,锐意新辉煌

    6月13日,紫光集团旗下核心企业紫光展锐宣布发布全新的品牌标识及定义,代表着吸纳了展讯和锐迪科两家高科技企业的紫光展锐正式完成协同整合,它已为在全球芯片市场即将进入万物互联的5G新时代做好了准备,其将 ...

  6. 紫光展锐处理器有那些手机用_酷派将发千元5G手机,国产紫光展锐加持,主打性价比...

    ↑↑↑点击上方蓝字订阅每日最新热点手机资讯 数年之前,"中华酷联"是国产智能手机的四大代表.不过随着越来越多的强力竞争者入局,中兴.酷派.联想渐渐衰败,仅剩华为屹立手机行业顶端.但 ...

  7. 华为或正与联发科、紫光展锐就采购更多芯片事宜展开磋商

    5月22日消息,据国外媒体报道,知情人士称,华为正与其竞争对手台湾半导体公司联发科.中国手机芯片设计商紫光展锐就采购更多芯片事宜展开磋商. 消息人士表示,华为希望从其它移动芯片制造商那购买芯片作为替代 ...

  8. 紫光展锐回应“春藤510只支持NSA”:错误解读 SA和NSA一个都不少

    近日,有部分媒体在报道内容中写道,紫光展锐的lvy510新品是面向仅支持NSA架构而设计的. 针对此报道,紫光展锐今日在微博回应,展锐5G芯片,SA 和 NSA一个都没少. 据了解,展锐春藤510是一 ...

  9. 紫光展锐发布系统级安全的高性能5G SoC移动平台T820

    紫光展锐正式发布系统级安全的高性能5G SoC 新品T820,采用八核CPU架构,6nm EUV先进工艺,金融级全内置安全方案,5G双卡双待和稳定高速的5G连接,以及1.08亿像素高清摄像头,FHD+ ...

最新文章

  1. 测试用例设计方法-错误推测法
  2. python相关参考文献_python机器学习理论与实战(六)支持向量机
  3. 【Unity】11.2 刚体(Rigidbody)
  4. eureka自我保护时间_阿里面试官问我:到底知不知道什么是Eureka,这次,我没沉默...
  5. ue4sky时间_UE4 SkyLight RealTimeCapture浅析
  6. 腾讯急招多名.NET Core,5年30k!
  7. mysql order by按照汉字拼音进行排序
  8. 论程序员的核心竞争力
  9. 异常处理:Jurisdiction policy files are not signed by trusted signers!
  10. GitLab的CICD配置文件.gitlab-ci.yml
  11. 蓝桥杯2021年第十二届C++省赛第三题-直线
  12. 农业银行王敬东——金融科技时代商业银行战略模式选择初探
  13. 传染病SIR模型及蒙特卡洛方法
  14. java 水晶报表教程_水晶报表 (Crystal Reports 2008)的配置
  15. MATLAB | 迟到的圣诞树绘制
  16. matlab 多子图_MATLAB|subplot子图分块绘制的方法
  17. linux4 系统下载,SysLinux 4.0.4 下载
  18. Java模拟账户---关键字this
  19. Flex弹性盒子的项目属性
  20. 教你识别显存颗粒编号

热门文章

  1. 朋友圈可以修改可见范围了
  2. 神经网络训练的一般步骤,神经网络训练过程详解
  3. Android ViewPager 如何判断当前页面是从前一页还是后一页滑动过来
  4. char类型数据说明
  5. 中国建筑设计行业市场调查研究及发展前景展望报告(2022-2028年)
  6. asp实训报告摘要_asp制作网页的实训报告总结
  7. CAPICAPICOM的一些知识[转]
  8. 虹科教您|实现OPC UA C/S快速部署及数据采集
  9. 三件套都有什么_单人床品三件套都有哪些?
  10. ASP.NET Core与ASP.NET区别