3

そのため、ページ テーブル操作を行うこのカーネル モジュールに取り組んでいますが、TLB エントリのフラッシュが遅いことに気付きました。どのくらい遅いですか?invlpg の呼び出しごとに 100 ns 以上! それは 280 サイクル以上です。私はこれを喜んで受け入れます...しかし、ハードウェアでサポートされているページングとアドレス変換の場合、これは直感に反するように思えます。なぜこれがそんなに悪いのか誰か知っていますか?

4 コア 2.8 Ghz Intel Core i5 で実行しています

4

1 に答える 1

2

私の推測では、このような特権命令が実際のワークロードの合計 CPU 時間の重要な部分を占めることはめったにないため、それらを高速化するために必要な量のシリコンを費やす価値はありません。

それらを非シリアライズにすることは、順不同の uop スケジューリング ロジックが、すべてのメモリ uop の依存関係の 1 つとしてページ テーブルの変更を追跡する必要があることを意味します。リオーダーバッファはすでに多くのものを追跡する必要があり、サイクルごとに4つの入力とそれ以上の出力をサポートする必要があるため、これは消費電力に悪影響を及ぼします。

一部のワークロードでは仮想オーバーヘッドが問題になるため、最近の設計では、仮想化が広く使用されているため、これらの命令のパフォーマンスが向上しています。の場合はそうではないと思いinvlpgます。

于 2015-06-26T03:39:14.607 に答える