在现代多核处理器中,我们通常有一个本地 L1 缓存,但有一个共享 L2 缓存。是否可以绕过部分内存的 L1 缓存,同时仍然使用 L2 缓存?我想这样做是为了提高时序的可预测性,但可能会以性能为代价。
最佳答案
据我所知,在主流CPU上是没有办法绕过L1缓存的。
但是,为了实现您的目标(即避免可能导致时序测量变化的缓存未命中),您可以尝试让编译器将数据预取到缓存中。
如果您使用 GCC 或 LLVM,请参阅 __builtin_prefetch .
但是,您的问题很含糊,我不确定您的建议是否符合您的需要。
关于c - 是否可以绕过多核处理器中的 L1 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17067145/