Tegra3 vSMP架构Android运行时CPU热插拔及高低功耗CPU切换
2012-01-18 15:59
218 查看
Tegra3采用vSMP(VariableSymmetric Multiprocessing)架构,共5个cortex-a9处理器,其中4个为高性能设计,1个为低功耗设计:
在系统运行过程中,会根据CPU负载切换低功耗处理器和高功耗处理器:
除此之外,4个高性能ARM核心也会根据运行情况,动态借用Linux kernel支持的CPU hotplug进行CPU的UP/DOWN操作。
动态切换主处理器和Companion 处理器借用的是软硬件配套的CPU Governor 和 CPU Management Logic。
我们用华硕EeePad运行高负载,低负载应用,通过dmesg查看内核消息也确实验证了多核的热插拔以及主ARM和LP ARM之间的动态切换。
CPU hotplug记录:
<4>[104626.426957] CPU1: Booted secondary processor
<7>[104627.427412] tegra CPU: force EDP limit 720000 kHz
<4>[104627.427670] CPU2: Booted secondary processor
<4>[104628.537005] stop_machine_cpu_stop cpu=0
<4>[104628.537017] stop_machine_cpu_stop cpu=2
<4>[104628.537059] stop_machine_cpu_stop cpu=1
<4>[104628.537702] __stop_cpus: wait_for_completion_timeout+
<4>[104628.537810] __stop_cpus: smp=0 done.executed=1 done.ret =0-
<5>[104628.537960] CPU1: clean shutdown
<4>[104630.537092] stop_machine_cpu_stop cpu=0
<4>[104630.537172] stop_machine_cpu_stop cpu=2
<4>[104630.537739] __stop_cpus: wait_for_completion_timeout+
<4>[104630.538060] __stop_cpus: smp=0 done.executed=1 done.ret =0-
<5>[104630.538203] CPU2: clean shutdown
<4>[104631.306984] tegra_watchdog_touch
高性能处理器和低功耗处理器切换:
<3>[104666.799152] LP=>G: prolog 22 us, switch 2129 us, epilog 24 us, total 2175 us
<3>[104667.807273] G=>LP: prolog 18 us, switch 157 us, epilog 25 us, total 200 us
<4>[104671.407008] tegra_watchdog_touch
<4>[104671.408816] nct1008_get_temp: ret temp=35C
<3>[104671.939060] LP=>G: prolog 17 us, switch 2127 us, epilog 22 us, total 2166 us
<3>[104672.938091] G=>LP: prolog 18 us, switch 156 us, epilog 24 us, total 198 us
在系统运行过程中,会根据CPU负载切换低功耗处理器和高功耗处理器:
除此之外,4个高性能ARM核心也会根据运行情况,动态借用Linux kernel支持的CPU hotplug进行CPU的UP/DOWN操作。
动态切换主处理器和Companion 处理器借用的是软硬件配套的CPU Governor 和 CPU Management Logic。
我们用华硕EeePad运行高负载,低负载应用,通过dmesg查看内核消息也确实验证了多核的热插拔以及主ARM和LP ARM之间的动态切换。
CPU hotplug记录:
<4>[104626.426957] CPU1: Booted secondary processor
<7>[104627.427412] tegra CPU: force EDP limit 720000 kHz
<4>[104627.427670] CPU2: Booted secondary processor
<4>[104628.537005] stop_machine_cpu_stop cpu=0
<4>[104628.537017] stop_machine_cpu_stop cpu=2
<4>[104628.537059] stop_machine_cpu_stop cpu=1
<4>[104628.537702] __stop_cpus: wait_for_completion_timeout+
<4>[104628.537810] __stop_cpus: smp=0 done.executed=1 done.ret =0-
<5>[104628.537960] CPU1: clean shutdown
<4>[104630.537092] stop_machine_cpu_stop cpu=0
<4>[104630.537172] stop_machine_cpu_stop cpu=2
<4>[104630.537739] __stop_cpus: wait_for_completion_timeout+
<4>[104630.538060] __stop_cpus: smp=0 done.executed=1 done.ret =0-
<5>[104630.538203] CPU2: clean shutdown
<4>[104631.306984] tegra_watchdog_touch
高性能处理器和低功耗处理器切换:
<3>[104666.799152] LP=>G: prolog 22 us, switch 2129 us, epilog 24 us, total 2175 us
<3>[104667.807273] G=>LP: prolog 18 us, switch 157 us, epilog 25 us, total 200 us
<4>[104671.407008] tegra_watchdog_touch
<4>[104671.408816] nct1008_get_temp: ret temp=35C
<3>[104671.939060] LP=>G: prolog 17 us, switch 2127 us, epilog 22 us, total 2166 us
<3>[104672.938091] G=>LP: prolog 18 us, switch 156 us, epilog 24 us, total 198 us
相关文章推荐
- Tegra3 vSMP架构Android运行时CPU热插拔及高低功耗CPU切换
- 关于android 线程切换运行和停止状态
- android studio build cpu 99%运行问题
- 编写在Android的Linux系统中直接运行的可执行程序 - 检测CPU能力
- Android动态链接库 7种CPU架构对比
- Android的CPU架构
- Android实现程序前后台切换效果(类似QQ后台运行)
- Android游戏开发19:SurfaceView运行机制剖析--处理切换到后台再重新进入程序时的异常
- 【Android实现程序前后台切换效果】(一)android后台运行时弹出正在运行通知的三种方式对比
- 如何查看Android设备的CPU架构信息
- Linux功耗管理(18)_Linux cpuidle framework(1)_概述和软件架构
- android在项目中如果只需要一种cpu架构的处理方法
- 轻松实现动态获取Android手机CPU架构类型
- android 架构及运行机制
- 关于Android的.so文件 CPU架构
- Android CPU架构解析
- Android学习小记-----监听并保存传感器数据,让service后台运行(保持CPU运转
- 如何查看Android设备的CPU架构信息
- android用户扫盲:手机cpu频率与架构(上篇)~~~~~~~~~~
- Android 相关七种CPU架构适配