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
本文轉自 21cnbao 51CTO部落格,原文連結:http://blog.51cto.com/21cnbao/768381,如需轉載請自行聯系原作者