我的机器上安装了一个不受支持的 CPU,我的电脑启动时出现此错误:Unsupported CPU installed
。我的问题不是如何修复它,而是:
如果 CPU 未使用,此错误消息如何显示?没有 CPU BIOS 可以工作吗?
答案1
不可以,没有 CPU,BIOS 就无法工作。
计算机启动后,首先要检查 CPU 和 RAM 之间的连接是否良好。这是一个简单的电气检查,检查所有总线输出是否连接到正确的输入。如果这个简单的检查没有通过,您会听到哔声代码(或某些主板上可能出现 LED 显示屏)。此检查不需要 CPU,但如果没有 CPU,您可能甚至听不到哔声代码,因为即使这样也需要一定程度的处理(取决于主板)。
但是,一旦这些检查无误,CPU 就会开始执行 BIOS ROM 中包含的程序,该程序会执行一些额外的高级检查(例如内存时序是否有效,板载设备的附加固件是否可以正确加载等)。此 ROM 程序是用 x86 汇编语言编写的,做需要CPU来执行它。
您的情况是,CPU 与主板电气兼容,可以正常工作,但缺少主板所依赖的一些低级功能支持。也许您使用的 CPU 的 TDP(产生更多热量)高于主板所能处理的水平,其内核数量多于 BIOS 知道如何初始化的数量,或者可能不支持 BIOS 尝试设置的某些电源状态。您没有提到您使用的是什么 CPU/主板组合。
但无论如何,CPU 为 BIOS 提供了足够的支持,使其能够执行存储在其 ROM 中的程序(包括将字节移入和移出视频内存)。它只是不能再进一步了。
它可能只是根据受支持 CPU 类型的内部列表检查处理器的系列和步进 ID。在许多情况下,可以通过 BIOS 升级来修补。但您需要先插入受支持的 CPU 才能刷新它。
答案2
这可能是因为不支持的功能来自保护模式,但在显示此消息时它尚未进入保护模式,仍处于 8086 模式。因此,没有 CPU 就无法工作,BIOS 只是一个程序,没有 CPU 就无法工作。它只是检测到它无法越过执行中的某个点并在到达该点之前停止。
我来解释一下:第一台 DOS PC 并没有正确执行多任务和多用户使用所需的所有复杂执行模式。当英特尔在其 CPU 中引入它时,他们希望保留与旧 CPU 的兼容性。这就是他们引入这些模式的原因:它们首先启动 8086 CPU,进行一些测试和初始化,然后才进入保护模式。
答案3
“不支持的 CPU” 并不表示该 CPU 无法正常工作。它可能意味着主板上的固件(无论是 BIOS 还是 UEFI)已在 CPU 上执行了一些代码,这些代码已确定该 CPU 与主板在正常运行期间所依赖的某些特定功能不兼容。或者只是主板尚未针对此 CPU 进行测试,制造商不想冒这个险。
但这并不意味着 CPU 无法在启动时执行指令。例如,所有现代 x86 CPU 都有一个 CPUID 指令,可用于确定各种处理器功能是否可用。启动代码可以执行此指令,并在所需功能不可用时显示错误消息。
答案4
BIOS 有一个检查表(POST),它会检查计算机的所有部件。如果它们没有通过检查,那么您就会得到一个错误。POST 指令集的一部分是为组件分配一个中断。如果所有组件都正确有中断,则操作系统会加载,并将中断传递给操作系统,以便操作系统可以与组件交互。为简洁起见,这是正在发生的事情的简化版本。以下是正在发生的事情的更详细列表: 启动详细信息
BIOS 对设备具有初始控制权,因此它可以检查并显示错误(如果需要)。我看到的许多错误是发出哔哔声或 LED 闪烁必须查找它们的含义。它通常不会像您的情况一样在显示器上显示错误(因为如果视频卡是问题所在怎么办)。BIOS 能够运行最基本的初始化序列,在某些情况下,只传递最基本的错误代码。BIOS 已经具有如上所述的工作组件的中断,因此它不需要 CPU 处理任何东西来发送信号,使用主板发出蜂鸣声或闪烁的灯光,或者在您的情况下,使用视频卡显示消息。