/proc/cpuinfo 中的兄弟是什么意思?

/proc/cpuinfo 中的兄弟是什么意思?

是指物理处理器中虚拟处理器的数量吗?

答案1

如果同级数量等于核心数量,则说明您的 CPU 未启用超线程或超线程已关闭;如果同级数量是核心数量的 2 倍,则说明您的 CPU 启用了超线程。有一篇很好的文章这里

答案2

处理器上的同级数量是该处理器内执行单元的总数。这将包括额外的核心和超线程。

例如,

  1. Core 2 Duo 将列出siblings : 2。双核,无超线程。
  2. Xeon E5420 将列出siblings : 4。双核,具有超线程。
  3. 具有超线程的 Pentium 4 将列出siblings : 2。单核,具有超线程。

答案3

首先了解以下术语及其使用环境。

  • 中央处理器
    • CPU 是一个处理单元。
    • 它将有多个组件来处理指令。
    • 每个组件负责不同的操作,如指令获取、解码、处理、更新等。
    • 一个CPU可能具有多组/单元上述组件。
    • 如果有两组这样的单元,处理器就可以并行运行两条指令。
    • 一个单元称为核心 (Core)。
    • 双核 CPU 有两组相同的组件。四核 CPU 有四组相同的组件/单元
  • 多 CPU/超线程
    • 这有点棘手。它仅在软件环境中有效。
    • 每当一条指令等待外部事件完成时,CPU 就会处于空闲状态。为了更好地利用 CPU,一些供应商维护两个硬件线程,每当一个线程被阻塞时,硬件就会切换到另一个线程。这种处理器将具有存储和恢复 CPU 状态的能力
    • 对于软件来说,它看起来像两个线程在并行运行。
    • Linux 将此超线程核心视为多 CPU。因为它可以并行运行两个线程。因此它将看到两个执行单元(伪 CPU)。
    • 例如,最近的英特尔 CPU 是超线程的,能够同时运行两个线程。
  • 多核
    • 现代 CPU 具有多组上述硬件单元/核心
    • 与超线程不同,它们实际上可以并行执行两个指令
    • 每个核心也可以超线程
  • 多处理器
    • 服务器、超级计算机等高性能系统将具有多个物理 CPU。
    • 您可以在主板上看到多个 CPU 插槽
    • 每个都可以有多个核心。同样,每个核心都可以是超线程

现代 PC 通常配备多核超线程处理器。例如,在配备四核超线程英特尔 CPU 的 PC 上运行 Linux,将看到 8 个 CPU(4 核 x 2 个超线程)。

现代服务器通常是多核多处理器系统。典型的服务器有两个插槽,每个插槽有 24 个超线程核心。因此,在此系统上运行的 Linux 将看到 96 个 CPU(2 个插槽 x 24 个核心 x 2 个超线程)

兄弟姐妹

回到实际问题,共享缓存的处理器将被称为兄弟。缓存组织将如下(尽管它会根据架构而有所不同),

  • 每个核心都有一个 L1 指令缓存和一个 L1 数据缓存
  • 每个核心都有一个统一的 L2 缓存
  • 插槽中的所有核心都将有一个统一的 L3 缓存
  • 通常没有两个套接字会共享任何缓存

考虑一个具有 2 个插槽的多核多处理器系统。每个插槽有 24 个具有超线程的内核。在这种情况下,Linux 将看到总共 96 个 CPU,编号从 0 到 95。插槽 1 将有 CPU 0-47,插槽 2 将有 CPU 48-95(与此不同,通常数字会交错)。对于具有上述缓存组织的系统,

  • 处理器 0-47 是同级
  • 处理器 48-95 是同级

答案4

例如,内核使用兄弟节点的数量进行负载平衡;

四个任务在具有两个物理包的系统上运行,每个物理包有两个核心(共享最后一级缓存),每个核心有两个逻辑线程。第一个包的多核域中启动负载平衡,导致所有核心之间的负载分配相等。

相关内容