2012-03-18 7 views
4

私はSimpleScalarシミュレーションツールで、すべてのバイナリL2統一ミス率は、L1データミス率よりも大きいために4つの異なるバイナリをシミュレートしています。L1とL2ミス料金

私の任務では、いくつかの分析を行うことになっています。私の頭に浮かぶ最初のことは、L1キャッシュよりも階層のレベルが高く、サイズが大きいので、L2ミス率は小さくする必要があります。

のほかに、私の知る限りでは、L2はL1キャッシュにミスがある場合にのみ参照されます。私の見地から考えると、L1はほとんどの時間を持たないデータを持つ必要があり、そのミス率はそれほど高くありません。

しかし、期待した結果に近い結果は得られません。例えば

  • L1データミス率:0.0269
  • L2統一ミス率:0.0566

ミス率は、キャッシュへmisses/referencesとして決定されます。

私のアプローチに間違いがありますか?なぜL2ミス率がL1よりも大きいのですか?

+0

キャッシュに対する問題(コード+データ)の大きさはどれくらいですか?それらはすべて大きくて、小さくても、範囲をカバーしていますか? 2つのキャッシュの典型的な参照カウントは何ですか?(つまり、比率の代わりに絶対値は何ですか?) –

+0

たとえば、問題がサイズnで、すべてがL1に収まる場合、L1とL2ではn回のミスがありますが、L2ではL1とnの参照があります。 L1比は小さく、L2比は1になります。絶対数とサイズは重要です。 –

+0

私の入力ファイルは '25000 e 2231'のようになります。私はそれが何を意味するか分かりません。手伝ってくれてありがとう。 –

答えて

0

ヒット/ミス率は、データのみがは、特定のキャッシュを使用しようとしたことのアクセスを検討してください。したがって、使用しているデータがすでにレジスタに入っている場合、L1キャッシュをチェックする必要はないため、L1はヒットもミスも登録しません。同様に、L1でデータが見つかった場合、L2はヒットもミスも記録しません。 L2のミス率は基本的に(L2のデータではなく、L2のデータがL2にアクセスされた回数)、L2にアクセスされた回数、L2にないデータの数はL1で除算された回数で除算されます。 。

関連する問題