是否可以像使用主内存一样使用 CPU 的缓存?例如在那里保存变量?
我实验室的 CPU 有很多 L3 缓存(Xeon E5),nvidia 的 GPU 有可管理的共享内存/缓存,并且这种可编程缓存有很多提高性能的技巧,有没有办法对 CPU 做同样的事情大量缓存?
在 MIPS 等一些体系结构中,可以使用特权指令来“锁定”高速缓存行。这样缓存就可以读/写,并且不会在 LRU 期间被刷新。它类似于处理器中的暂存器内存。
我认为您正在寻找具有“暂存器内存”的处理器,GPU / 矢量处理器通常使用它来代替更复杂的缓存协议。这是您在 Nvidia GPU 上提到的“可编程缓存”。
据我所知,没有 x86 CPU 具有此功能,但是很常见的是 ARM 处理器具有可用作暂存器 RAM 的“核心耦合”低延迟 SRAM 块。
我怀疑一个体面的编译器将能够比您自己不费力气更有效地使用缓存。