简单的答案是:收益递减。在大多数PC上,BIOS/UEFI的引导序列只需要约5秒钟的时间(不计算HDD启动延迟)。对于大多数人来说,这已经足够快了。(如果你想更快地启动,请将PC置于睡眠状态而不是关闭它。)请记住,在BIOS中执行的许多任务无法并行化。首先必须初始化内存控制器。在检查任何后续设备(USB、SATA、视频等)之前,必须枚举PCI/PCIe总线。你的磁盘必须旋转才能启动。有一些初始化项目是耗时的,可以并行处理。- IDE/SATA - 通常需要很长时间,因为机械硬盘延迟。 - USB - 一些USB设备需要100毫秒左右的时间才能启动。 - 视频(以及其他第三方BIOS扩展)- 需要一段时间与显示器进行通信和同步。这些任务可以并行处理,可能会加快PC的启动时间。请记住,要实现这一点,您需要编写一个内核和任务调度程序。在传统BIOS(纯x86汇编)中,这并不美观。在UEFI中(大部分是C源代码),这更可行。然而,这仍需要非常复杂的工程努力才能获得微小的收益(也许只有1-2秒的启动时间)。Phoenix曾经尝试过引入多线程BIOS初始化。据我所知,它从未流行起来。
UEFI并没有描述任何多处理功能,但是由UEFI论坛编写的PI规范(也有) 和EDK2提供了EFI_MP_SERVICES_PROTOCOL(目前仅限于IA32 / X64),其中PI规范卷3中描述了DXE阶段的接口,即MP服务协议(13.4),而PEI期间可用的功能则在卷2中描述为EFI MP服务PPI(8.3.9)。 它不完全像pthread,但是它确实允许您安排任务在应用程序处理器上运行,同时引导处理器继续提供单线程UEFI实例。