Optimization 缓存位置与写入的相关性如何?
假设: (1) 在一个大的字数组中写入的程序。 (2) 该数组适合内存页。 (3) 控制回路的编写方式有利于分支预测。(4) 该程序在面向台式机的大规模市场CPU上运行(即通用体系结构) 问题: (1) 空间距离对书写很重要吗? (2) 靠近写的地方读会更有效吗?反之亦然 (1) 空间距离对书写很重要吗 很有可能,是的。通常,对于写操作,CPU必须获取整个缓存线(与读取相同),然后修改缓存线的一小部分 另外,不要忘记,通常会进行某种“虚拟地址->物理地址”转换,这些转换可能会被缓存(例如,使用TLB/翻译查找缓冲区),并且对同一页面的后续访问(任何类型-读或写)会回收先前获取的翻译 (2) 靠近写的地方读会更有效吗?反之亦然 很有可能,是的。原因同上Optimization 缓存位置与写入的相关性如何?,optimization,Optimization,假设: (1) 在一个大的字数组中写入的程序。 (2) 该数组适合内存页。 (3) 控制回路的编写方式有利于分支预测。(4) 该程序在面向台式机的大规模市场CPU上运行(即通用体系结构) 问题: (1) 空间距离对书写很重要吗? (2) 靠近写的地方读会更有效吗?反之亦然 (1) 空间距离对书写很重要吗 很有可能,是的。通常,对于写操作,CPU必须获取整个缓存线(与读取相同),然后修改缓存线的一小部分 另外,不要忘记,通常会进行某种“虚拟地址->物理地址”转换,这些转换可能会被缓存(例如,使用T