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.

big.LITTLE IKS图
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

big.LITTLE MP图
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

上一篇: NDK Clang错误:未定义引用'localeconv'

下一篇: 为什么proc / cpuinfo仅在我的galaxy S4上显示4个处理器