某处,有一次我读了关于记忆栅栏(障碍)的内容。据说内存围栏导致几个CPU内核之间的高速缓存同步。内存防护是否会减慢所有CPU内核速度?
所以我的问题是:
怎样的OS(或CPU本身)知道哪些核心需要同步?
是否同步所有CPU内核的缓存?
如果答案(2)是“是”,并假设同步操作不便宜,不使用内存栅栏未使用我的应用内核慢下来?例如,如果我有一个在我的8核CPU上运行的单线程应用程序,它是否会减慢CPU的所有其他7个核心,因为一些缓存行必须与所有这些核心同步?
高于一无所知的问题和围栏的工作完全不同?
操作系统不涉及这个,它是一个处理器细节。操作系统只是需要处理对围墙需求的另一大块软件,在其线程调度程序中必然如此。 – 2014-09-13 10:54:30
栅栏实际上不同步缓存,它们同步程序流。 – Leeor 2014-09-17 14:07:27