64 位计算机如何改变内存中的一个字节?

cur*_*rge 2 c memory assembly x86-64 cpu-architecture

如果 C 程序更改字节数组中的一个字节,会发生哪些机器指令?硬件是否需要读取 8 个字节、更改一个字节并存储它(使用 2 次内存操作)?

编辑:专门针对 x86-64 架构

MSa*_*ers 6

在 x86-64 上,硬件将读取一个缓存行,修改缓存中的字节,最终该缓存行将被写回内存。

发生回写的主要原因是 CPU 需要其他数据的缓存行。有强制回写的明确指令,但 C 编译器不太可能使用这些指令。它会减慢 CPU 的速度以强制进行不必要的写入。


归档时间:

查看次数:

100 次

最近记录:

4 年,7 月 前