NUMA アーキテクチャ (不均一メモリ アクセス) では、各プロセッサが独自の第 1 レベル キャッシュを持っているため、プロセッサ通信用のプロトコル (MESI) があります。しかし、各プロセッサを他のプロセッサのキャッシュに直接接続できないのはなぜでしょうか? 「接続が単に十分に速くない」と読みましたが、それはあまり説明しませんでした.
ありがとう。
NUMA アーキテクチャ (不均一メモリ アクセス) では、各プロセッサが独自の第 1 レベル キャッシュを持っているため、プロセッサ通信用のプロトコル (MESI) があります。しかし、各プロセッサを他のプロセッサのキャッシュに直接接続できないのはなぜでしょうか? 「接続が単に十分に速くない」と読みましたが、それはあまり説明しませんでした.
ありがとう。
まず、L1 キャッシュを持つことはNUMAアーキテクチャを意味するものではありません。マザーボード トポロジーは依然として、マシンのUMAまたはNUMAを構成する主要な要素です。
次に、使用されているキャッシュ コヒーレンスプロトコルはアーキテクチャに依存し、 MESIとは異なる場合があります(実際には、 NUMAマシンにはMESIFの方が適しています)。
あなたの質問に目を向けます
各プロセッサは、他の各プロセッサ キャッシュに接続できます。実際、すべてのキャッシュ コヒーレンス プロトコルはこれを行っていますが、再利用性が低く、多くの労力が必要になるため、直接の読み取り/書き込みを許可していません。
ただし、CPU を別の CPU キャッシュに直接接続することは可能であり、実際には Intel CPU に何らかの方法で実装されています。
論理コア (つまり、HyperThreading コア) は L2 キャッシュを共有する場合があり、同じパッケージ内の一部の物理コアは L3 キャッシュを共有する場合があります。
ただし、ここには 2 つの重要な側面があります。1 つ目は、キャッシュを共有する CPU の数が少ないこと、2 つ目は同じコア/パッケージ内にあることです。
すべてのキャッシュを直接接続すると、CPU の内部(全体) とCPU の外部の境界が失われます。
CPU を分離することで、非常にカスタマイズ可能なモジュラー システムを作成できます。外部プロトコルは、実装の詳細を隠すことができるインターフェイスです。これは、密接に接続されたキャッシュによって得られる速度の向上よりも価値があります。
そのような速度が必要な場合は、コプロセッサなどの専用の統合システム コンポーネントを構築します。
キャッシュが直接接続されていないのにはさまざまな理由があります。業界のリーダーを代表して話すことはできませんが、ここではいくつかの一般的な考えを示します。
簡単に言えば、キャッシュを直接接続することは可能かもしれませんが、個別のコンポーネントには価値がありません。統合コンポーネントに対して行われます。