小猪号 5 月 20 日消息,1978 年 6 月 8 日,英特尔发布了 16 位微处理器“8086”,也同时开创了一个新时代 ——x86 架构。
后来,英特尔 CPU 升级到 32 位,而 AMD 也依此架构率先推出了新一代 64 位集来进行扩展,被称为 AMD64,而英特尔后来也推出了与其兼容的处理器,命名为 intel 64,两者则统称为 x86-64 或 amd64。
目前,Intel 64 架构已经存在了 20 多年,而随着微软完全放弃 32 位版本,英特尔的固件也已不再原生支持非 UEFI64 操作系统,但它们确实带有某种形式的遗留支持,可以在需要时运行 32 位应用。
然而,随着时代的发展,英特尔现在又提出了一种全新的架构,官方将其称为 x86S,相当于是一种全新 64 位模式的架构,取消了所有以前的遗留支持。
据小猪号所知,原始的 Intel 64 架构设计在复位时与原始的 8086 处于相同状态,都需要进行一系列的代码转换才能进入 64 位模式,但这些模式在现代应用程序或操作系统中一般不会被使用。
而全新的纯 64 位模式可以在当前在实模式或保护模式下运行 64 位等效技术。例如:
CPU (SIPI) 启动时处于实地址模式,但这里需要一个 64 位的替代方案;而直接处于 64 位复位状态则可以绕过多个跳板代码阶段直接进入 64 位操作状态。
使用 5 级页表需要禁用分页机制,这需要回到未分页的传统模式。在提议的新架构中,我们可以在不退出分页模式的情况下切换到 5 级页表。
这些修改可以通过对系统架构进行简单的增强来实现,仅影响操作系统。那么说到这里,大家可能会好奇了:纯 64 位模式架构有什么好处呢?
简单来说,纯 64 位模式的体系移除了一些较老的架构附件,从而降低了软件和硬件体系结构的整体复杂性。通过探索纯 64 位模式架构,我们可以进行其他符合现代软件部署的改变。包括:
使用 64 位的简化分段模型为 32 位应用程序提供分段支持,与现代操作系统已经使用的相匹配。
移除 ring 1 和 ring 2(未曾被现代软件使用)以及像 gate 这样的过时特性。
移除 16 位寻址支持。
删除对 ring 3 I / O 端口访问的支持。
删除字符串端口 I / O。该支持是基于过时的 CPU 驱动 I / O 模型。
限制本地中断控制器 (APIC) 使用 X2APIC,并移除传统的 8259 支持。
移除一些未使用的操作系统模式位。
对于旧版操作系统,现在来看虽然在纯 64 位模式架构 CPU 上运行传统 64 位操作系统并不是英特尔这项工作的明确目标,但英特尔架构下软件生态系统的虚拟化产品已经足够成熟,因此基于虚拟化的软件解决方案可以使用虚拟化硬件 (VMX) 来提供解决方案,以模拟启动“遗留操作系统”所需的功能。
标签: 英特尔