“ 64位操作系统”,“基于x64的处理器”与字长之间有什么关系?

时间:2018-10-29 23:23:07

标签: operating-system 64-bit x86-64 cpu-architecture 32-bit

我想知道,一个64位操作系统和一个基于x64的处理器是否意味着字长(即处理器和物理内存之间的内存传输大小)是64位?如果操作系统是32位处理器x64,该怎么办?那么基于x86的处理器呢?这两个规范(XX位操作系统和基于xXX的处理器)与硬件中的实际字长有何关系?

1 个答案:

答案 0 :(得分:4)

不,这并不意味着那样。现代的x86 CPU具有64字节的高速缓存行,并且可以进行访问以2乘方幂的宽度进行高速缓存,从1字节到32字节的SIMD向量,或者在具有AVX512的CPU中为64字节。另请参见What Every Programmer Should Know About Memory?

“字长”对于x86而言并不是一个有意义的术语;它根本不是面向单词的ISA。

在Intel文档中,“字”是16位,只是为了保持与8086年以前的文档的一致性。硬件中的总线和寄存器宽度与此无关。


x86-64在长模式(64位模式)下运行时具有64位整数寄存器。并支持64位地址。 (由于页表格式,实际上是48位虚拟地址,最多取决于硬件,则为52位物理地址。Why in 64bit the virtual address are 4 bits short (48bit long) compared with the physical address (52 bit long)?

自32位奔腾以来,

x86 CPU能够执行64位数据传输。 Why is integer assignment on a naturally aligned variable atomic on x86?