Does my computer have 1 or 2 CPUs? (cpuinfo and lscpu differ)

12,664

This is consistent with having a single processor containing a single core which contains two execution threads through hyperthreading. Thus you have two logical processors, but they share most of their resources (instruction decoding, arithmetic, etc.). This allows some parallelism — one thread can progress while the other one is blocked (e.g. waiting for a memory access) while keeping the hardware cost down (fewer components than two independent cores).

Look at the rest of the output from lscpu and the content of /proc/cpuinfo. See So what are logical cpu cores (as opposed to physical cpu cores)? for an example.

Share:
12,664

Related videos on Youtube

IQAndreas
Author by

IQAndreas

SOreadytohelp Developer with multiple languages under my belt; primarily ActionScript 3, but also includes PHP, Java, and JavaScript. Just to be clear, I hate JavaScript: it's weakly typed, and its inheritance system is a joke. PHP isn't big on my list either. Yet, since the web uses them, I'm forced to work in them. IQAndreas.com - Main Website blog.iqandreas.com - Programming Blog GitHub.com/IQAndreas - GitHub Account and Repositories @IQAndreas - Twitter

Updated on September 18, 2022

Comments

  • IQAndreas
    IQAndreas over 1 year

    When I run cat /proc/cpuinfo I get the following output (only the relevant line included):

    cpu cores: 1
    

    However, lscpu gives me the following output:

    CPU(s): 2
    

    Which of the two is correct, and more importantly, why are they giving me different results?


    The full output of cat /proc/cpuinfo is:

    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:
    

    The full output of lscpu is:

    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
    

    (This can also be viewed at https://gist.github.com/IQAndreas/f3f9139b8968987d3716.)

  • David
    David over 9 years
    Really it's only the out-of-order execution core that is shared in a processor with hyperthreading. Each virtual CPU has instruction decoding.