2013-02-05 16 views
5

私は、メモリシステムに続くポリシーに関する基本的な質問があります。L2追い出しのL1キャッシュからのキャッシュ追い出し

プライベートL1キャッシュとL2キャッシュを持つコアを考えてみましょう。 L2キャッシュの後に、コヒーレンス・トラフィックが実行されるバスがあります。ここで、アドレス(X)のキャッシュラインがL2キャッシュから追い出された場合、そのアドレスをL1キャッシュから退去させる必要があるか?

コヒーレンス・プロトコルの不変性を維持するのに役立つかもしれません[l2の行に無効が示されている場合、このコアにはこのアドレスが含まれていません]。

答えて

10

three different designsがあり、すべてが使用されています。

  1. 排他:L1キャッシュ内のデータは決してL2キャッシュにありません。 L2キャッシュ内のデータは決してL1キャッシュにはありません。

  2. 包括的:L1キャッシュ内のデータもL2キャッシュ内になければなりません。

  3. いずれも、L1キャッシュ内のデータがL2キャッシュにある場合とない場合があります。

これらのそれぞれには長所と短所があります。インクルーシブ方式では、キャッシュコヒーレンシプロトコルがL1キャッシュを無視することができます。データがL2キャッシュにない場合、L1キャッシュには存在しません。しかし、排他的なスキームは、貴重なキャッシュメモリを最も効果的に使用します。

有効なキャッシュサイズを少し大きくするよりも高速なコア間同期が重要になっているため、包括的な設計が普及しています。

+0

私はラインサイズに関する疑問があります。あなたは同じことを明らかにすることができますhttp://stackoverflow.com/questions/14707803/line-size-of-l1-and-l2-caches –

+0

これに関するいくつかの読書を提供してください: "インクルーシブデザインはより速くコア間の同期化は、より大きな有効キャッシュサイズを持つよりも重要になっています」と述べています。 – rkioji

関連する問題