プリフェッチ
表示
(命令プリフェッチキューから転送)
プリフェッチ (prefetch) とは、コンピュータにおいて、利用が予測されるデータをあらかじめより高速なメモリに読み込んでおき、性能と速度の向上を図る動作である[1]。日本語では事前読込み(じぜんよみこみ)という。
例として以下のようなものがある。
ハードウェアにおけるプリフェッチ
[編集]- CPUにおける命令プリフェッチ (en:Instruction prefetch)
- CPUのプリフェッチ命令。メインメモリからキャッシュメモリへのデータ読込みを明示的に指示する[1][2]。しばしばオペレーティングシステムが発行し、またコンパイラが埋め込んだ最適化コードにも存在する。
OSにおけるプリフェッチ
[編集]オペレーティングシステムにおけるプリフェッチ動作。補助記憶装置からメインメモリへの読込みを行う。ファイルシステムからファイルデータを読み込んだり、あるいは仮想記憶からページをスワップインする。
- Windows XPに搭載されたプリフェッチ機能 (en:Prefetcher) 。OSの起動を高速化する。
- Windows Vista / 7 / 8 / 8.1 / 10に搭載されたプリフェッチ機能 (SuperFetch) 。アプリケーションやデータの起動やアクセスを高速化する。
ソフトウェアにおけるプリフェッチ
[編集]アプリケーションにおいて、予め利用されると予測されるデータを読み出しておくこともある。
例として、ウェブブラウザにおけるリンクプリフェッチ (en:Link prefetching) がある(Mozilla以降など)。ユーザの操作に対する応答時間を短縮する事を狙う[3]。この場合は通信回線やネットワークサーバの負荷増大も招くため、Chromeなど一部のブラウザでは却ってリクエスト処理に時間がかかり、ブラウザが半ば固まってしまうような状態となる場合も少なくないため、必ずしもプリフェッチが有効であるとは言い切れない。
また、ストリーム再生アプリケーションなどシーケンシャルなデータを扱う場合にもプリフェッチは有効である。
脚注
[編集]- ^ a b “プリフェッチとは - IT用語辞典”. IT用語辞典 e-Words. 2024年9月18日閲覧。
- ^ “【再録】コンピュータアーキテクチャの話(9) キャッシュの構造や働き(上級編) - データの局所性とプリフェッチ”. TECH+(テックプラス) (2019年4月12日). 2024年9月18日閲覧。
- ^ “Prefetch (先読み) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN” (英語). developer.mozilla.org (2024年5月5日). 2024年9月18日閲覧。