問題タブ [tlb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1719 参照

memory-management - AMDのページテーブル拡張機能のASIDが無効になるのはいつですか?

IA-32は、CPUがTLB全体を無効にする可能性があるさまざまなケースを定義しています。AMDがOpteronRev-Fプロセッサ(バルセロナ?)でリリースしたASID拡張機能から、特定のASIDのTLBエントリのみが無効になる場合があります。

問題は、ASID自体が無効になることはありませんか?ハイパーバイザーは、使用する前にASIDが有効であることを確認する必要がありますか?

0 投票する
1 に答える
290 参照

multithreading - オペレーティングシステムはTLBフラッシュを最小限に抑えようとしていますか?

たとえば、同じプロセス内のスレッドを「スケジュール対象」リストにグループ化するなど、TLBフラッシュを最小限に抑えるためにオペレーティングシステムに実装されている共通のメカニズムがあるのではないかと思います。

これは、スレッドに対してプロセスを使用するかどうかを決定する際の重要な要素だと思います。次のスレッドが同じプロセススペースにあるかどうかをOSが気にしない場合、「TLBフラッシュを最小限に抑える」スレッドのいわゆる利点が過大評価される可能性があります。そうですか?

数百のスレッドと数十のプロセスを持つシステムを考えてみましょう。これらが同じプロセスでスレッドを同時にスケジュールするように最適化されていない場合、スレッドのパフォーマンスに対する期待はそれほど大きくない可能性があります。

質問がそれほど明確でない場合は、例を示します。

0 投票する
4 に答える
23594 参照

caching - キャッシュとトランスレーション ルックアサイド バッファの違い[TLB]

Cache と Translation LookAside Buffer [TLB] の違いは何ですか?

0 投票する
3 に答える
290 参照

copy - ページテーブルを変更してメモリページを移動できますか?

ページテーブルを変更するだけで、実際にはデータを移動せずに、2 つのメモリページの内容を交換することは可能ですか?

動機は、密な行列の転置です。データがページ サイズによってブロックされている場合、ページ内でデータを転置し (キャッシュに収まる)、ページをスワップしてブロックを最終的な場所に移動することができます。大規模なマトリックスでは多くのページが移動されるため、TLB をフラッシュしても問題が発生しないことを願っています。

0 投票する
1 に答える
1289 参照

operating-system - オペレーティングシステム-TLB

私はこれに頭を悩ませようとしています(大丈夫、試験の前夜に詰め込みます:)が、これを理解することはできません(ネット上で良い高レベルの概要を見つけることもできません):

'ページテーブルエントリは複数のTLBエントリにマップできます。たとえば、すべてのページテーブルエントリが2つのTLBエントリにマップされる場合、これは2ウェイセットアソシアティブTLBとして知られています。

私の質問は、なぜこれを複数回マッピングしたいのかということです。確かに、TLBで表現できるエントリの最大数が必要であり、複製するとスペースが無駄になりますか?私は何が欠けていますか?

どうもありがとう

0 投票する
5 に答える
3414 参照

performance - ラージページはどのような状況でスピードアップをもたらすことができますか?

最新の x86 CPU は、従来の 4K (つまり 2MB または 4MB) よりも大きなページ サイズをサポートする機能を備えており、この機能にアクセスするための OS 機能 ( LinuxWindows ) があります。

上記のマイクロソフトのリンクでは、大きなページは「変換バッファの効率を高め、頻繁にアクセスされるメモリのパフォーマンスを向上させることができます」と述べています。大きなページが特定の状況を改善するかどうかを予測するには、これはあまり役に立ちません。一部のプログラム ロジック (またはアプリケーション全体) を移動してヒュージ ページを使用することでパフォーマンスが改善された具体的な、できれば定量化された例に興味があります。サクセスストーリーはありますか?

が知っている特定のケースが 1 つあります。巨大なページを使用すると、大きなプロセスを fork するのに必要な時間が劇的に短縮されます (おそらく、コピーが必要な TLB レコードの数が 1000 分の 1 に減少するため)。それほどエキゾチックではないシナリオでも、巨大なページがメリットになるかどうかに興味があります。

0 投票する
2 に答える
1801 参照

operating-system - MMU および TLB ミス

次のように仮定します。ワンレバーページングの仮想メモリを備えたシステムがあり、MMU があり、TLB はソフトウェアによって制御されています。

わかりました..では、私がプロセスであり、仮想アドレス vaddr の RAM で単語を読み取りたいとします。

そのため、CPU は MMU vaddr を提供し、MMU は vaddr の最上位 5 ビット (と仮定) を持つエントリがあるかどうかを TLB でチェックします。そこにある場合...すべて問題ありません。物理アドレスを計算し、すべてうまくいきます。

今..それがTLBになかったとします。この場合、MMU は割り込み (ページ フォールト) を発生させます。わかりました..今、私はページ違反のハンドラーにいます。

PBR (ページ ベース レジスタ) には、ページ テーブルの開始アドレスがあります。ここで私の質問です。この住所は物理的な住所ですか? 1) プロセスの仮想アドレス空間で何らかの形で予約する必要があります (そのようなことは聞いたことがありません) 2) このアドレスが TLB にない場合は、次のようになります。再びページフォールトが発生し、無限ループが発生します。

テーブル内のアドレスに関する同じ質問。2 レベルのページングがあるとします。第 1 レベルのテーブル (第 2 レベルのテーブルを指す) のエントリのアドレスは、何らかの形で仮想か物理か?

ありがとう。

0 投票する
1 に答える
778 参照

memory-management - ソフトウェアベースの MMU と TLB の構築

古い UNIX カーネルをハックしようとしています。ソフトウェアを使用して MMU と TLB を実装したいだけです。構築に使用するのに最適なデータ構造とアルゴリズムを教えてください。LRU の実装が簡単なため、多くの人がスプレイ ツリーを使用しているのを見てきました。より良いデータ構造はありますか? ソフトウェアで仮想アドレスを物理アドレスに変換する最も効率的な方法は何ですか。その x86 アーキテクチャと変換を基本的なページ テーブル変換と仮定します。

0 投票する
9 に答える
150472 参照

memory-management - 論理アドレスと物理アドレスの違いは?

私はオペレーティングシステムの概念を読んでいて、第8章にいます!しかし、私はいくつかの説明、または私の理解が正しいという安心感を使うことができました。

論理アドレス:本によると、論理アドレスはCPUによって生成されます。これは正確にはどういう意味ですか?(実行生成アドレスシステムでは..)コードがプログラム用にコンパイルされるとき、プログラムはコードがメモリのどこにロードされるかを知らないと思います。コンパイラが行うのは、プログラムレイアウトの一般的なスケッチと画像のレイアウト方法を設定することだけですが、実際のアドレスは割り当てられません。プログラムが実行されると、CPUはコンパイラが作成したこのレイアウトイメージを取得し、コードから生成されたアドレスにいくつかのアドレス(論理アドレス)を渡します。

物理アドレス:物理アドレスは、CPUが論理アドレスのセット(ベースアドレスとオフセットで構成される)を生成するまで生成されません。論理アドレスはMMUまたは別のデバイスを通過し、ラインのどこかで論理アドレスが物理RAMアドレスにマップされます。

では、実際の違いは何ですか?私は1つの利点を見ることができます。論理アドレスを使用すると、アプリケーションの自由度が高まります。物理アドレスがハードコーディングされている場合、プログラムの成功は、物理コンピュータマシン、使用可能なRAMアドレスなどに大きく依存します。

物理アドレスに変換された論理アドレスの使用は、1対1ではなく2つのステップを課すのではないのでしょうか?

では、生成後の論理アドレスはどこにありますか?それらは、CPUがプロセスを処理している間、CPUのレジスターに存在する可能性がありますが、前後で、どこに行きますか?これは実装に依存することを理解しています。TLBなどのCPUの特殊レジスタスペースまたはバッファに格納されている可能性があると思いますが、正しいですか?そうでない場合、テーブルは実際のRAM自体に存在する可能性があり、CPUはRAM内のテーブルのベースアドレスへのポインタ/アドレスのみを保持します。

RAMにアドレスを保持することは、論理メモリアドレスの目的とは逆効果のようです。私は自分の理解が間違っているとしか思えません。

0 投票する
3 に答える
33295 参照

caching - TLB シュートダウンとは何ですか?

SMP での TLB シュートダウンとは何ですか?

この概念に関する多くの情報を見つけることができません。どんな良い例でも大歓迎です。