多线程BIOS

Jey*_*ram 3 multithreading bios uefi

我想知道为什么即使我们有 4 核/8 核,BIOS 也是单线程的。最新的 UEFI 技术允许使用 GUI 实用程序。不实施多线程 BIOS 是否有任何具体原因。

myr*_*ack 5

简单的答案是:收益递减

在大多数 PC 上,BIOS/UEFI 的启动顺序只需要约 5 秒即可工作(不计算 HDD 启动延迟)。对大多数人来说,这已经足够快了。(如果您想要更快,请将您的 PC 置于睡眠状态而不是将其关闭。)

请记住,在 BIOS 中完成的许多任务无法并行化。必须首先初始化内存控制器。必须先枚举 PCI/PCIe 总线,然后才能检查任何后续设备(USB、SATA、视频等)。在磁盘启动之前,您无法启动。

是耗时的,并且并行可以做一些初始化的项目。

  • IDE/SATA - 由于机械磁盘延迟,通常需要一段时间。
  • USB - 某些 USB 设备在通电后需要 100 毫秒才能生效。
  • 视频(任何其他第三方 BIOS 扩展)- 与显示器通信和同步需要一段时间。

这些任务可以并行完成,这可能会加快 PC 的启动时间。请记住,要实现这一目标,您需要编写内核和任务调度程序。在传统 BIOS(纯 x86 汇编程序)中,这不会很漂亮。在 UEFI(主要是 C 源代码)中,这更可行一些。然而,它仍然需要一个不平凡的工程工作来获得微小的收益(可能需要 1-2 秒的启动时间。)

Phoenix 之前曾尝试引入多线程 BIOS 初始化。据我所知,它从未起飞。