在NUMA體系結構(非均勻內存訪問)中,每個處理器都有自己的第一級緩存,所以有一個用於處理器通信的協議(MESI)。但爲什麼不能將每個處理器直接連接到其他的緩存?我讀到「連接速度不夠快」,但這並沒有解釋太多。爲什麼不能從一個處理器直接訪問另一個處理器的緩存?
謝謝。
在NUMA體系結構(非均勻內存訪問)中,每個處理器都有自己的第一級緩存,所以有一個用於處理器通信的協議(MESI)。但爲什麼不能將每個處理器直接連接到其他的緩存?我讀到「連接速度不夠快」,但這並沒有解釋太多。爲什麼不能從一個處理器直接訪問另一個處理器的緩存?
謝謝。
首先,具有L1高速緩存並不意味着NUMA架構,主板拓撲仍然是主元件,使一個機器UMA或NUMA。
其次,Cache Coherence協議中的使用是依賴於體系結構,並且可以不同於MESI(實際上MESIF是更適合NUMA機)。
至於你的問題
每個處理器可以連接到彼此處理器緩存。實際上,每個高速緩存一致性協議都這樣做,而不是通過允許直接讀/寫,因爲需要很多努力,重複性差。
但是,可以直接將CPU連接到另一個CPU緩存,實際上它可以在Intel CPU上實現。邏輯核心(即超線程核心)可共享L2高速緩存,並且同一封裝中的一些物理核心可共享L3高速緩存。
但是這裏有兩個重要方面:第一,共享高速緩存的CPU數量很少和第二個它們位於相同的核心/程序包中。
連接所有緩存直接將失去之間是什麼內的CPU,什麼是在CPU外部的邊界(作爲一個整體)。
隔離CPU讓我們創建非常可定製的模塊化系統,外部協議是一個讓我們隱藏實現細節的接口,這比通過緊密連接的高速緩存提供的速度增加更多。
當我們需要這樣的速度時,我們會建立專用集成系統組件,如coprocessor。
高速緩存不直接連接的原因有很多,我不能爲行業領導者說話,但在這裏有一些通用的想法。
所以簡單地說:它可以直接連接緩存,但它不值得分立元件。這是爲集成組件完成的。
非常感謝您的回答! – user1289