我正在进行内存缓存的一些试验。阅读了很多论文。
问题不在于如何为每个进程制作缓存友好代码,我几乎得到了它。
由于L1大小很少,我是否应该理解将会有大量的缓存驱逐会降低其他进程的速度,因为所有进程都会争夺L1缓存? 在具有64字节高速缓存行的cpu和具有64位字长的64k l1高速缓存中。
这是我不明白的一点。
每个核心数百个
答案 0 :(得分:0)
首先,您可能会使用多核CPU。这意味着每个核心的进程数量要少得多。现代操作系统也试图让核心和流程保持一定的联系。
但是说,当你的程序被换掉时,你确实失去了L1缓存。坚持下去甚至没有意义。您的地址0x04000000与另一个进程中的相同地址的内容不同。它们是虚拟地址。