web-dev-qa-db-fra.com

Mon ordinateur a-t-il 1 ou 2 processeurs? (cpuinfo et lscpu diffèrent)

Lorsque j'exécute cat /proc/cpuinfo j'obtiens le résultat suivant (seule la ligne pertinente est incluse):

cpu cores: 1

Cependant, lscpu me donne le résultat suivant:

CPU(s): 2

Lequel des deux est correct et, plus important encore, pourquoi me donnent-ils des résultats différents?


La sortie complète de cat /proc/cpuinfo est:

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 15
model       : 3
model name  : Intel(R) Pentium(R) 4 CPU 2.80GHz
stepping    : 4
microcode   : 0xe
cpu MHz     : 2800.135
cache size  : 1024 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 1
apicid      : 0
initial apicid  : 0
fdiv_bug    : no
f00f_bug    : no
coma_bug    : no
fpu     : yes
fpu_exception   : yes
cpuid level : 5
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc pebs bts pni dtes64 monitor ds_cpl cid xtpr
bogomips    : 5600.27
clflush size    : 64
cache_alignment : 128
address sizes   : 36 bits physical, 32 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 15
model       : 3
model name  : Intel(R) Pentium(R) 4 CPU 2.80GHz
stepping    : 4
microcode   : 0xe
cpu MHz     : 2800.135
cache size  : 1024 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 1
apicid      : 1
initial apicid  : 1
fdiv_bug    : no
f00f_bug    : no
coma_bug    : no
fpu     : yes
fpu_exception   : yes
cpuid level : 5
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc pebs bts pni dtes64 monitor ds_cpl cid xtpr
bogomips    : 5600.27
clflush size    : 64
cache_alignment : 128
address sizes   : 36 bits physical, 32 bits virtual
power management:

La sortie complète de lscpu est:

Architecture:          i686
CPU op-mode(s):        32-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    2
Core(s) per socket:    1
Socket(s):             1
Vendor ID:             GenuineIntel
CPU family:            15
Model:                 3
Stepping:              4
CPU MHz:               2800.135
BogoMIPS:              5600.27
L1d cache:             16K
L2 cache:              1024K

(Ceci peut également être visionné sur https://Gist.github.com/IQAndreas/f3f9139b8968987d3716 .)

7
IQAndreas

Cela est cohérent avec le fait d'avoir un seul processeur contenant un seul cœur contenant deux threads d'exécution via hyperthreading . Vous avez donc deux processeurs logiques, mais ils partagent la plupart de leurs ressources (décodage des instructions, calcul, etc.). Cela permet un peu de parallélisme: un thread peut progresser pendant que l’autre est bloqué (par exemple, en attente d’un accès à la mémoire) tout en maintenant le coût matériel (moins de composants que deux cœurs indépendants).

Examinez le reste de la sortie de lscpu et le contenu de /proc/cpuinfo. Voir Que sont donc les cœurs de processeur logique (par opposition aux cœurs de processeur physique)? pour un exemple.

14
Gilles