78

第11章(パフォーマンスとスケーラビリティ)およびJCIPブックコンテキストスイッチングというセクションから:

新しいスレッドが切り替えられると、必要なデータがローカル プロセッサ キャッシュにある可能性は低いため、コンテキスト切り替えによってキャッシュ ミスが相次ぎ、最初にスケジュールされたときのスレッドの実行速度が少し遅くなります。

  1. 誰かがキャッシュミスの概念とその反対の可能性 (キャッシュヒット)を理解しやすい方法で説明できますか?
  2. コンテキスト切り替えによって多くのキャッシュ ミスが発生するのはなぜですか?
4

5 に答える 5

112

誰かがキャッシュミスの概念とその反対の可能性 (キャッシュヒット) を理解しやすい方法で説明できますか?

一般に、キャッシュミスとは、何かがキャッシュ内で検索され、見つからない場合です。つまり、検索されているアイテムがキャッシュに含まれていませんでした。キャッシュヒットとは、キャッシュで何かを検索し、アイテム格納していて、クエリを満たすことができる場合です。

コンテキスト切り替えによって多くのキャッシュ ミスが発生するのはなぜですか?

メモリに関しては、各プロセッサにメモリ キャッシュ(メイン メモリの小さな部分の高速コピー) があります。新しいスレッドがプロセッサにコンテキスト スイッチされると、ローカル キャッシュ メモリが空であるか、スレッドに必要なデータに対応していません。これは、必要なデータがローカル メモリ キャッシュに格納されていないため、その新しいスレッドによって行われたすべて (またはほとんど) のメモリ ルックアップがキャッシュ ミスになることを意味します。ハードウェアは、ローカル メモリ キャッシュをいっぱいにするためにメインメモリに多くの要求を行う必要があります。これにより、最初のスレッドの実行が遅くなります。

于 2013-09-01T14:26:57.420 に答える
1

また、キャッシュされたデータにアクセスできるプロセッサ上で、コンテキストの切り替えによって以前に実行されたスレッドがアクティブな状態に戻る場合、必要な「ワーキング セット」がまだキャッシュ内にある可能性があることに注意してください。これが真である確率は、キャッシュのサイズ (および構造) によって異なります。また、ワークロードにも依存します。つまり、スレッドのアイドルまたは待機期間中にどれだけのキャッシュ需要があったか、およびアイドル期間または待機期間が続く時間です。

于 2015-03-11T18:01:00.230 に答える
-3

目的のデータが L1 にある場合、それはキャッシュ ヒットです。そして、目的のデータが別のキャッシュ メモリ レベルにある場合、それはキャッシュ ミスです。

于 2016-12-13T16:28:39.607 に答える