为什么 ACPI 表中转储的处理器编号与实际安装的处理器不同?

Why the dumped processor number in ACPI tables is different from the actually installed processor?

我的电脑有 i5-4300U 处理器。它有 4 个逻辑处理器。

而最大的 cpu 名字是 \_PR.CPU3:

根据 ACPI 规范,ACPI table 之一,DSDT table(差异化系统描述 Table)应该描述我的平台。所以我使用 RW Everything 将 ACPI table 转储到我的计算机上。

在 DSDT 中,我看到了这个:

DefinitionBlock ("DSDT.AML", "DSDT", 0x01, "LENOVO", "TP-GJ   ", 0x00002410)
{
    Scope(\_PR)
    {
        Processor(CPU0,0x01,0x00001810,0x06) {}
        Processor(CPU1,0x02,0x00001810,0x06) {}
        Processor(CPU2,0x03,0x00001810,0x06) {}
        Processor(CPU3,0x04,0x00001810,0x06) {}
        Processor(CPU4,0x05,0x00001810,0x06) {}
        Processor(CPU5,0x06,0x00001810,0x06) {}
        Processor(CPU6,0x07,0x00001810,0x06) {}
        Processor(CPU7,0x08,0x00001810,0x06) {}
    }

看来DSDT声称有8个处理器,这似乎与我的机器不匹配。更奇怪的是,它还能工作。

这是怎么回事?

我收集到的额外 CPU 表格的原因是因为您的 i5 cpu 有 2 个超线程逻辑核心,这相当于 4 个核心,这表明您的系统也可用于 i7 cpu 具有 4 个超线程逻辑内核的选项,相当于 8 个内核。

例如。我是 运行 具有 2x Xeon E5-2650 v2 CPUs 的系统,我的 DSDT 中的 CPU 范围包含 4 个 SCK(SCK0 SCK1 SCK2 SCK3)定义和 32 个 CPU每个总共有 128 个 CPU 定义,目前只有 32 个被使用(每个 CPU 16 个或 SCK0 和 SCK1 定义中有 16 个),其余的根据数量动态禁用系统当前可访问的内核数。你的系统就是这种情况。