处理器和核心之间有区别吗?

处理器和核心之间有区别吗?

以下两个命令似乎给出了关于同一硬件的不同信息

srs@ubuntu:~$ cat /proc/cpuinfo | grep -e processor -e cores
processor   : 0
cpu cores   : 4
processor   : 1
cpu cores   : 4
processor   : 2
cpu cores   : 4
processor   : 3
cpu cores   : 4

srs@ubuntu:~$ sudo dmidecode -t processor 
# dmidecode 2.9
SMBIOS 2.6 present.

Handle 0x0004, DMI type 4, 42 bytes
Processor Information
    Socket Designation: LGA1155
    Type: Central Processor
    Family: <OUT OF SPEC>
    Manufacturer: Intel            
    ID: A7 06 02 00 FF FB EB BF
    Version: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz       
    Voltage: 1.0 V
    External Clock: 100 MHz
    Max Speed: 3800 MHz
    Current Speed: 3300 MHz
    Status: Populated, Enabled
    Upgrade: Other
    L1 Cache Handle: 0x0005
    L2 Cache Handle: 0x0006
    L3 Cache Handle: 0x0007
    Serial Number: To Be Filled By O.E.M.
    Asset Tag: To Be Filled By O.E.M.
    Part Number: To Be Filled By O.E.M.
    Core Count: 4
    Core Enabled: 1
    Characteristics:
        64-bit capable

直到今天我还以为我有一个带有 4 个独立核心的单处理器。我还以为每个核心都可以使用不同的线程。


Mitch 给出了找出我拥有的单插槽四核处理器的方法(示例 3):

srs@ubuntu:~$ cat /proc/cpuinfo | grep -e processor -e "model name" -e "cache size" -e "physical id" -e "siblings" -e "core id" -e "cpu cores"
processor   : 0
model name  : Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 4
processor   : 1
model name  : Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 4
processor   : 2
model name  : Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 2
cpu cores   : 4
processor   : 3
model name  : Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 3
cpu cores   : 4

现在我明白了,处理器的种类比我想象的要多得多。谢谢

答案1

多核处理器是具有 1 个以上以相同速度运行的核心的单个处理器。

双 CPU = 表示 2 个物理 CPU

双核 = 意味着单个 CPU 有两个核心,可以同时处理两个线程

例如,运行速度为 3GHz 的四核处理器将有 4 个核心以该速度运行。这意味着在给定时间内,CPU 可以在 4 个独立核心中处理 4 次数据。

较新的应用程序和游戏采用可从多核处理器中获益的方式进行编码。

有关详细信息,您可以查看理解 Linux /proc/cpuinfo

答案2

需要注意的是,在最近的硬件上,您的计算机通常会报告实际存在的内核数的两倍 - (例如,在这台 i7 4 核机器上,系统监视器显示 8)。这是由于超线程,存在于大多数现代系统中。

超线程 CPU 一次只能执行一组指令,但任何给定的程序往往要花费大量时间等待(等待从内存或其他硬件中获取数据以执行某项操作),CPU 有多个指令队列,只要其中一个空闲,就可以在它们之间切换。因此,单个物理核心在操作系统中呈现为两个虚拟核心。

这本质上与操作系统使用线程允许多个程序共享单个处理器相同,但以硬件而不是软件实现效率更高。上述文章声称,两个虚拟核心上的典型任务比一个真实核心上的等效工作快约 30%。

因此,cat /proc/cpuinfo显示 8 个处理器,而dmidecode显示

Core Count: 4
Core Enabled: 4
Thread Count: 8

即8个虚拟核心和4个真实核心。

相关内容