cur*_*rge 2 c memory assembly x86-64 cpu-architecture
如果 C 程序更改字节数组中的一个字节,会发生哪些机器指令?硬件是否需要读取 8 个字节、更改一个字节并存储它(使用 2 次内存操作)?
编辑:专门针对 x86-64 架构
在 x86-64 上,硬件将读取一个缓存行,修改缓存中的字节,最终该缓存行将被写回内存。
发生回写的主要原因是 CPU 需要其他数据的缓存行。有强制回写的明确指令,但 C 编译器不太可能使用这些指令。它会减慢 CPU 的速度以强制进行不必要的写入。
归档时间: |
|
查看次数: |
100 次 |
最近记录: |