1. ホーム
  2. concurrency

キャッシュヒットとキャッシュミスとは何ですか?コンテキストスイッチでキャッシュミスが発生するのはなぜですか?

2023-10-06 14:19:47

疑問点

第11章より( パフォーマンスとスケーラビリティ ) と名付けられたセクションで コンテキスト スイッチング JCIPブック :

<ブロッククオート

新しいスレッドが切り替わったとき、そのスレッドが必要とするデータがローカルプロセッサのキャッシュにあることはまずありません。 そのため、コンテキスト・スイッチによってキャッシュ・ミスが多発します。 そのため、スレッドが最初にスケジューリングされたとき そのため、スレッドが最初にスケジュールされたときに、実行速度が少し遅くなります。

  1. の概念について、誰かわかりやすく説明してください。 キャッシュ・ミス とその反対の概念 ( キャッシュヒット )?
  2. なぜコンテキスト・スイッチングが多くのキャッシュ・ミスを引き起こすのでしょうか?

どのように解決するのですか?

<ブロッククオート

どなたか、キャッシュミスとその反対(キャッシュヒット)の概念についてわかりやすく説明していただけませんか。

キャッシュは を見逃す とは、一般に、キャッシュで何かを探したが見つからなかった場合、つまり、キャッシュに探された項目が含まれていなかった場合です。 キャッシュの ヒット とは、キャッシュで何かを調べて、それが でした。 に保存されており、クエリを満たすことができる場合です。

なぜコンテキストスイッチを使うとキャッシュミスが多くなるのでしょうか?

メモリに関しては、各プロセッサに メモリキャッシュ - を持っています。 新しいスレッドがプロセッサにコンテキストスイッチされたとき、ローカルキャッシュメモリは空であるか、そのスレッドに必要なデータに対応していません。 つまり、新しいスレッドが行うメモリの検索はすべて(またはほとんど)キャッシュミスになります。 ではない ローカル メモリ キャッシュに格納されていないためです。 その結果、ハードウェアは メイン メモリに何度も要求しなければならず、その結果、スレッドの実行速度が低下します。