巨大なページを使用すると、パフォーマンスがどのように向上しますか?
大きなページは、TLBルックアップを減らし、ページテーブルのサイズを減らしてパフォーマンスを向上させるという内容を読んだ。これがパフォーマンスにどのように役立つかを教えてくれる人はいますか?
4つの仮想メモリページ(4 * 4kb = 16kb)を使用するアプリケーションがある場合、各ページはいくつかの物理メモリ位置に直接マッピングされますが、16kbサイズの巨大ページを使用している場合は4ページにマッピングされません。 1つだけマッピングすると、ページテーブルのサイズが小さくなり、それをディスクに置き換える可能性が減り、TLBキャッシュが長くなりますか?
答え1
セルジュが答えた。 TLBには固定数のタイムスロットがあります。 TLBの情報を使用して仮想アドレスを物理アドレスにマッピングできる場合は、高価なページテーブルナビゲーションを回避できます。ただし、TLBはすべてのページのマッピングをキャッシュすることはできません。
したがって、より大きなページを使用すると、固定数の仮想物理物理マッピングがより大きなグローバルアドレス範囲をカバーするため、キャッシュされたマッピング(TLB)のヒット率が向上します。
答え2
パフォーマンスが向上するもう1つの理由は、連続したメモリブロックにアクセスできるためです。データをメモリにDMAできるPCIeデバイスがあるとします。巨大なページを使用すると、2MB(または最大1GB)のデータを連続DRAMスペースにDMAできますが、デフォルトの4KBページを使用するとDRAMの複数の物理ページに移動する必要があるため、速度が遅くなる可能性があります。