在某个地方,有一次我读到了有关内存隔离栅栏的信息。据说内存围栏会导致多个CPU内核之间的缓存同步。
所以我的问题是:
操作系统(或CPU本身)如何知道哪些内核需要同步?
是否同步所有CPU内核的缓存?
如果对(2)的回答为“是”,并且假设同步操作并不便宜,那么使用内存隔离墙是否会使我的应用程序未使用的内核变慢?例如,如果我有一个单线程应用程序在我的8核CPU上运行,是否会因为某些缓存行必须与所有这些核同步而减慢CPU的所有其他7个核?
上面的问题是完全无知的,栅栏的工作方式完全不同吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句