2

次のコアトポロジを持つIntelCore2アーキテクチャについて考えてみます。

Socket 0: ( 0 2 4 6 )
Socket 1: ( 1 3 5 7 )

各コアには独自のL1キャッシュがあります。L2キャッシュグループは次のようになります。

( 0 2 ) ( 4 6 ) ( 1 3 ) ( 5 7 )

1。一部のアプリケーションでは、パフォーマンスカウンターL2_REJECT_BUSQ_THIS_CORE_ALL_INVALIDの値がかなり高いことがわかります。これらのアプリケーションでは、#L2データキャッシュミスも高くなります。また、RESOURCE_STALLS_ROB_FULLも高く、合計ストールサイクルの主要部分になります。

たとえば、コア0がL2でデータを見つけてミスした場合、そのL2キャッシュのバスコントローラーが他のL2のバスコントローラーにメッセージをブロードキャストして、データがL2にあるかどうかを確認すると言うのは正しいですか。ただし、バス帯域幅の制限により、バス内で高い競合が発生し、他のバスキューがいっぱいになり続けた場合、コア0はルックアップメッセージを何度も再ブロードキャストする必要がありますか?そしてそれが本当なら、それがL2_REJECT_BUSQ_THIS_CORE_ALL_INVALIDがとても高い理由ですか?それとも私は通訳していますか?

2。コールドミスの影響は別として、コアで100個のL2データキャッシュミスがあるループを実行すると、200個のL2_REJECT_BUSQ_THIS_CORE_ALL_INVALIDが発生し、より長いループが実行されると想定するのは正しいです(たとえば、反復回数が2倍になります)。 200個のL2データキャッシュミスがあると、400個のL2_REJECT_BUSQ_THIS_CORE_ALL_INVALIDになりますか?そうでない場合、予期しない非線形性を引き起こす理由は何でしょうか?

4

0 に答える 0