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

问题描述 投票:0回答:1

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

operating-system x86-64 cpu-architecture cpu-word
1个回答
5
投票

不,不是这个意思。现代 x86 CPU 具有 64 字节缓存行,并且可以以从 1 字节到 32 字节 SIMD 向量的任何 2 次方宽度访问缓存,或者在具有 AVX512 的 CPU 中访问 64 字节。另请参阅每个程序员都应该了解哪些关于内存的知识?

“字长”对于 x86 来说并不是一个真正有意义的术语;它根本不是面向字的 ISA。

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


x86-64 在长模式(64 位模式)下运行时具有 64 位整数寄存器。并且支持64位地址。 (实际上是 48 位虚拟地址,由于页表格式的原因,根据硬件最多可达 52 位物理地址。为什么在 64 位中,虚拟地址比物理地址(52 位长)短 4 位(48 位长) )?)

自 32 位 Pentium 以来的 x86 CPU 已经能够进行 64 位数据传输。 为什么自然对齐变量上的整数赋值在 x86 上是原子的?

© www.soinside.com 2019 - 2024. All rights reserved.