BIOS 制造时是否考虑到了处理器?
假设我有一个 32 位英特尔处理器,并且希望稍后升级到 64 位英特尔处理器。(假设这是可能的,而不仅仅是更换交换机)。
由于 x86 指令集是 x64 集的子集,我猜相同的 BIOS 足以启动 64 位操作系统。
我这样假设对吗?有什么理由我不应该这样做吗?
答案1
这个问题上的很多评论都是假的。每个可以在 x86-64 长模式下运行的 CPU 都可以运行 16 位或 32 位操作系统。没有 x86-64 CPU 放弃 32 位支持。(英特尔的架构手册 PDF 在其网站上,请参阅 Stackoverflowx86 标签 维基。
据我所知,BIOS 只能在 16 位模式下使用,因此在操作系统启动并将 CPU 切换到 32 位保护模式或 64 位长模式后,BIOS 就无关紧要了。操作系统需要驱动程序才能直接与硬件通信。
AFAIK,任何可以启动 64 位 CPU 的主板都可以在 64 位模式下工作。 在 64 位模式下,CPU 不需要以不同的电压或任何其他方式运行。因此,只需检查主板的 CPU 兼容性列表即可。
主板附带的 BIOS / UEFI 固件特定于该主板及其支持的 CPU,而不是 x86-32 或 x86-64。至少有一个项目 (Coreboot,以前称为 LinuxBios) 旨在开发开源固件来取代供应商的 BIOS,但它必须专门移植到机器中的每个不同硬件上。
不再有任何主流 x86 CPU 不支持 x86-64 模式。最后一个是可能是 Atom,但据我所知,它们没有采用插座封装,因此将 Atom 主板升级到较新的 64 位 CPU 是不可能的。
对于台式机 CPU,有些主板既可以支持 32 位 CPU,又可以支持 64 位 CPU。 插座 478由 P4 Northwood 和 Willamette (32 位) 使用,早期P4 普雷斯科特(英特尔的第一款 IA-32e,又名 x86-64 CPU)。后来的 P4 使用了 LGA 775,Core2 也使用了该接口。
如今,任何您考虑购买的系统都支持 64 位模式,即使它仍然安装了过时的 32 位软件。(或者它是一个焊接了 32 位 CPU 的小东西)。