某處,有一次我讀了關於記憶柵欄(障礙)的內容。據說內存圍欄導致幾個CPU內核之間的高速緩存同步。內存防護是否會減慢所有CPU內核速度?
所以我的問題是:
怎樣的OS(或CPU本身)知道哪些核心需要同步?
是否同步所有CPU內核的緩存?
如果答案(2)是「是」,並假設同步操作不便宜,不使用內存柵欄未使用我的應用內核慢下來?例如,如果我有一個在我的8核CPU上運行的單線程應用程序,它是否會減慢CPU的所有其他7個核心,因爲一些緩存行必須與所有這些核心同步?
高於一無所知的問題和圍欄的工作完全不同?
操作系統不涉及這個,它是一個處理器細節。操作系統只是需要處理對圍牆需求的另一大塊軟件,在其線程調度程序中必然如此。 – 2014-09-13 10:54:30
柵欄實際上不同步緩存,它們同步程序流。 – Leeor 2014-09-17 14:07:27