最近、Linuxはその物理アドレスの対応するデータが置き換えられたときにTLBキャッシュをフラッシュし、TLBの利用率が低いというニュースを聞きました。すべてのオペレーティングシステムがこれを行うかどうかわかりません。
これが真であれば、RAMを増やしてコンテキスト切り替えを避けると、キャッシュはTLBに保持されますか?
ベストアンサー1
Linuxカーネルは、TLBとTLBキャッシュを同じように扱うようです。アーキテクチャ独立レベルでは、部分的または完全なTLBキャッシュAFAIKをフラッシュするようなものはありません。たとえば、仮想マシンがページングされ、必要に応じてハードウェア固有のコードをトリガーするこのタスクにいくつかのフックがあります。 CPUによっては、カーネルはページ出力ごとに複数のページフラッシュを実行することができ、CPUはページフラッシュ範囲をサポートしたり、両方をサポートせず、カーネルは最も高価なフラッシュを使用してキャッシュ全体をフラッシュします。
このトピックに関する2つの興味深い記事があります。
- ページテーブルの管理(画面に奇妙な文字が表示された場合は、ページエンコードにISO-8859-1を強制してみてください)
- カーネルドキュメント - LinuxでのキャッシュとTLBフラッシュ