每次访问是否字长 == 在内存和 CPU 之间传输的位数?

Does Word length == number of bits transferred between memory and CPU per access?

我对"word length"的概念真是一头雾水。 我知道在 32 位机器中,内存地址有 32 位。每次内存访问将 32 位(4 字节)传输到 CPU。 在 64 位机器中,地址有 64 位。但是是不是意味着内存访问单元也是64位的呢?

在这个answer中,作者说"Word: The natural size with which a processor is handling data (the register size)"。但它没有明确指定每次内存访问在内存和CPU之间传输多少位。

它没有这么说,因为它不是那个意思。地址在 64 位机器上通常是 64 位的,但并非总是如此。在 64 位机器上,数据路径通常是 64 位的,但并非总是如此。

在带有缓存的 CPU 中,数据通常一次只在 CPU 和内存之间传输整个缓存行。例如在现代 x86 上,命中缓存的 1B 负载不会产生任何外部内存访问。

如果即使在最后一级缓存中也未命中,内存芯片将看到对包含该字节的 64B 对齐块的请求。

现代 x86 CPUs 有 16B 或 even 32B (256b) data paths between cache and execution units

另请参阅 标签 wiki 中的其他链接以了解更多信息。