【发布时间】:2018-11-27 20:34:24
【问题描述】:
在启动过程中,处理器从 16 位实模式切换到 32 位保护模式。
但是现代 CPU 是 64 位的,对吧?
那么,这些处理器什么时候切换到 64 位模式?
【问题讨论】:
标签: processor
在启动过程中,处理器从 16 位实模式切换到 32 位保护模式。
但是现代 CPU 是 64 位的,对吧?
那么,这些处理器什么时候切换到 64 位模式?
【问题讨论】:
标签: processor
基本上,操作系统负责在启动过程中选择处理器操作模式。
实模式,也称为实地址模式,是所有 x86 兼容 CPU 的操作模式。实模式的特点是 20 位分段内存地址空间(恰好提供 1 MiB 的可寻址内存)和对所有可寻址内存、I/O 地址和外围硬件的无限直接软件访问。实模式不支持内存保护、多任务处理或代码特权级别。 在引入保护模式的 80286 发布之前,实模式是 x86 CPU 唯一可用的模式;[1] 并且为了向后兼容,所有 x86 CPU 在复位时都以实模式启动,尽管可以在在其他模式下启动时的其他系统。
当支持 x86 保护模式的处理器启动时,它开始以实模式执行指令,以保持与早期 x86 处理器的向后兼容性。[4]只有在系统软件建立一个描述符表并启用控制寄存器0(CR0)中的保护使能(PE)位后,才能进入保护模式。[5]
x86-64(也称为 x64、x86_64、AMD64 和 Intel 64[注 1])是 x86 指令集的 64 位版本。它支持的虚拟内存和物理内存比其 32 位前身要大得多(理论上,264 字节或 16 艾字节),从而允许程序在内存中存储更大量的数据。 x86-64 还提供 64 位通用寄存器和许多其他增强功能。对于需要实模式的 16 位和 32 位 x86 软件,x86-64 处理器可以在完全向后兼容的传统模式下启动,无需 64 位支持,或者在允许 64 位应用程序与 16 位应用程序共存的兼容模式下启动- 和 32 位保护模式软件(如果 64 位系统软件支持它们)。[11][注 2] 因为完整的 x86 16 位和 32 位指令集仍然在硬件中实现而没有任何干预仿真,所以这些较旧的可执行文件可以在很少或没有性能损失的情况下运行,[13] 而更新或重新编码的应用程序可以利用处理器设计的新功能来实现性能改进。
来源:
https://en.wikipedia.org/wiki/Real_mode
https://en.wikipedia.org/wiki/Protected_mode
https://en.wikipedia.org/wiki/X86-64
另见:
Processor, OS : 32bit, 64 bit
【讨论】: