Why proc/cpuinfo shows 4 processors only on my galaxy S4
I have a question!
I've checked CPU Information on my Galaxy S4. As per specs, S4 has octa chipset:
Chipset: Exynos 5 Octa 5410
CPU : Quad-core 1.6 GHz Cortex-A15 & quad-core 1.2 GHz Cortex-A7
But, when I check by
$ adb shell cat proc/cpuinfo
It shows 4 processors only not 8. I'm wondering why? If you have any experience, please give me some ideas!
This is the information using $ cat proc/cpuinfo
Processor : ARMv7 Processor rev 2 (v7l)
processor : 0
BogoMIPS : 1590.88
processor : 1
BogoMIPS : 1590.88
processor : 2
BogoMIPS : 1590.88
processor : 3
BogoMIPS : 1590.88
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 2
Hardware : UNIVERSAL5410
Revision : 000a
Serial : b13f21814d007109
This page gives a high-level explanation of why the multiple CPU types exist on this chip:
Samsung Exynos 5 Octa (Exynos 5410 processor) (samsung.com)
It is designed using the ARM® big.LITTLE™ architecture that offers up to 70 percent energy saving when performing various tasks, compared to using ARM® Cortex- A15™ cores only. It seamlessly switches between Cortex-A15 and Cortex-A7 processors selecting the optimum CPU by workload, thereby saving power. This tremendous energy efficiency is possible because of the big.LITTLE architecture that is specifically designed to use the right processor for the right task. While the four "big" ARM® Cortex-A15 cores would process computation-intensive tasks such as extensive gaming and media-rich browsing, the four "LITTLE" ARM® Cortex-A7 cores would handle the lighter workloads.
ARM big.LITTLE (Wikipedia.com)
This article describes the different ways the Linux kernel can be configured to use the cores.
In-kernel switcher (CPU migration)
CPU migration via the in-kernel switcher (IKS) involves pairing up a 'big' core with a 'LITTLE' core, with possibly many identical pairs in one chip. Each pair operates as one virtual core, and only one real core is (fully) powered up and running at a time.
Source: Wikipedia
Heterogeneous multi-processing (global task scheduling)
The most powerful use model of big.LITTLE is heterogeneous multi-processing (MP), which enables the use of all physical cores at the same time
Source: Wikipedia
So it would appear that if you are seeing only 4 cores in /proc/cpuinfo
, your kernel is using the in-kernel switcher (IKS) configuration.
This article on LWN is also very interesting. It describes some of the details of implementing the big.LITTLE architecture in the Linux kernel:
A big.LITTLE scheduler update (LWN.net)
The S4 doesn't have a real 8 core processor. It has 2 4 core processors, only one of which can be on at a time. Based on CPU load it switches between the more power hungry 1.6 GHz and the less power hungry 1.2 GHz processor, but only one of these can run at a time.
链接地址: http://www.djcxy.com/p/85540.html