問題タブ [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 に答える
2597 参照

caching - ページフォルトとダーティページ

CPU キャッシュについて読み始めましたが、2 つの質問があります。

1) CPU がページ フォールトを受け取り、制御をカーネル ハンドラに移したとします。ハンドラーは、ダーティとマークされたメモリ内のフレームを追い出すことを決定します。CPU キャッシュが有効で変更されたビットで書き戻されるとしましょう。現在、このフレームのメモリ コンテンツは古く、キャッシュには最新のデータが含まれています。カーネルはどのようにしてキャッシュを強制的にフラッシュしますか?

2) ページ テーブル エントリ (PTE) がダーティとしてマークされる方法は次のとおりです。TLB には、CPU がページの内容を変更するときに設定される変更ビットがあります。このビットは、コンテキスト スイッチで PTE にコピーされます。ページ フォールトが発生した場合、PTE はダーティではない可能性がありますが、TLB エントリには変更されたビットが設定されている可能性があります (まだコピーされていません)。この状況はどのように解決されますか?

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

caching - デマンド ページング: 実効メモリ アクセス時間の計算

この質問に対する答えが理解できません:

TLB レジスタで 1 レベルのページングを使用する OS を考えてみましょう。ページ フォールト率が 10% で、必要に応じてダーティ ページを再読み込みする必要がある場合は、次の場合に実効アクセス時間を計算します。

  • TLB ルックアップ = 20 ns
  • TLB ヒット率 = 80%
  • メモリアクセス時間 = 75 ns
  • スワップ ページ時間 = 500,000 ns
  • ページの 50% が汚れています。

答え:

T = 0.8(TLB+MEM) + 0.2 ( 0.9[TLB+MEM+MEM] + 0.1[TLB+MEM + 0.5(ディスク) + 0.5(2ディスク+MEM)] ) = 15,110 ns

理由を説明できますか?

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

x86 - TLB および PTE の参照および変更されたビット

これらは Accessed ビットと Dirty ビットとして知られているかもしれません。現在、x86 PTEにはこれらのビットが含まれています。TLBにもこれらのビットが含まれているとしましょう。TLB ヒットの場合、参照しているページ フレームがアクセスまたは変更されると、これらのビットはハードウェアによって設定されます。私の質問は、ハードウェアによってこれらのビットがいつ PTE にコピーされ、これがどのように正確に達成されるか (特にソフトウェア管理の TLB の場合) です。

PS - ページ置換アルゴリズムを設計およびテストしようとしているので、これを知りたいです。

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

caching - キャッシュとTLBのヒット率の関係

以下は、オペレーティング システム (Gate 2003 OS) の MMU の説明です。

プロセッサは、仮想アドレスから物理アドレスへの変換に 2 レベルのページ テーブルを使用します。両方のレベルのページ テーブルがメイン メモリに格納されます。仮想アドレスと物理アドレスはどちらも 32 ビット幅です。メモリはバイトアドレス指定可能です。仮想アドレスから物理アドレスへの変換では、仮想アドレスの上位 10 ビットが第 1 レベルのページ テーブルへのインデックスとして使用され、次の 10 ビットが第 2 レベルのページ テーブルへのインデックスとして使用されます。仮想アドレスの最下位 12 ビットは、ページ内のオフセットとして使用されます。ページ テーブルの両方のレベルのページ テーブル エントリが 4 a バイト幅であると仮定します。さらに、プロセッサには変換ルックアサイド バッファ (TLB) があり、ヒット率は 96% です。TLB キャッシュは最近、仮想ページ番号と対応する物理ページ番号を使用しました。プロセッサには、ヒット率 90% の物理アドレス キャッシュもあります。メインメモリアクセス時間は10ns、キャッシュアクセス時間は1ns、TLBアクセス時間も1nsです。

質問は:

ヒット率90%のキャッシュとヒット率96%のTLBの関係は?OS が最初にチェックする場所: データまたは命令?

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

virtualization - VMM はホスト上で仮想メモリを使用しますか?

シャドウ ページ テーブルを使用して、過去に仮想化がどのように実行されたかを理解しようとしています。私が読んだ記事はすべて、ゲスト仮想メモリからホスト物理メモリへの変換について述べています。シャドウ ページ テーブルにより、ゲスト仮想からゲスト物理への変換が不要になることを理解しています。私の質問は、ホスト仮想からホスト物理へのステップに何が起こったのかということです。(HVA --> HPA)。

引用された記事の Virtual Machine Manager は、ホストの仮想メモリをまったく使用しませんか? ホストシステムの物理メモリに直接アクセスできると想定されていますか? それは可能ですか?TLB キャッシュ変換は MMU によってハードウェアに実装され、すべての命令のアドレスは MMU 自体によって仮想アドレスから物理アドレスに変換されると思いました。繰り返しになりますが、カーネル コードが TLB でどのように機能するのかよくわかりません。カーネル命令は TLB を通過しませんか?

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

x86 - x86 でのページ境界を越えたソフトウェアのプリフェッチ

私の理解では、ハードウェアのプリフェッチは決してページの境界を越えることはありません。ソフトウェア プリフェッチに同じ制限があるかどうか、つまり、将来の TLB ミスを回避するためにソフトウェア プリフェッチを使用できるかどうか疑問に思っています。調べてみると可能のようですが、ドキュメントに決定的なものが見つからなかったので、参考にしてください。

Nehalem、Sandy Bridge、Westmere に特に興味があります。

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

c - x86 での単純な PAPI プロファイリングで予期しない多数の TLB ミスが発生する

PAPI 高レベル API を使用して、配列をループする単純なプログラムで TLB ミスをチェックしていますが、予想よりも大きな数が表示されます。

他の単純なテスト ケースでは、結果は非常に合理的であるように見えます。そのため、結果は本物であり、余分なミスはハードウェアのプリフェッチなどによるものだと思います。

誰かが数値を説明したり、PAPI の使用におけるエラーを指摘したりできますか?

印刷された数値は 32 の範囲、または少なくともその倍数であると予想しましたが、一貫して 93 以上の結果が得られます (一貫して 96 を超えるとは限りません。つまり、反復ごとに単純に 3 ミスするわけではありません)。他に何もないコアに固定して実行しています(タイマー割り込みを除く)。

私は Nehalem を使用しており、巨大なページを使用していないため、DTLB には 64 のエントリ (L2 には 512) があります。

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

memory - TLBの物理アドレス指定は私には意味がありません

私は簡単な方法でTLBがどのように機能するかを読んでいますが、何かがわかりません。

TLBは、テーブル内の物理メモリアドレスを参照します。これは、CPUとCPUキャッシュの間、CPUキャッシュとプライマリストレージメモリの間、またはマルチレベルキャッシュのレベルの間に存在する場合があります。配置によって、キャッシュが物理アドレス指定と仮想アドレス指定のどちらを使用するかが決まります。キャッシュが仮想的にアドレス指定されている場合、要求はCPUからキャッシュに直接送信され、TLBはキャッシュミスの場合にのみアクセスされます。キャッシュが物理的にアドレス指定されている場合、CPUはすべてのメモリ操作でTLBルックアップを実行し、結果の物理アドレスがキャッシュに送信されます。

概要:TLBがCPUとCPUキャッシュの間にある場合、物理アドレスを使用し、CPUはすべてのメモリ操作でTLBルックアップを実行し、結果の物理アドレスがキャッシュに送信されます。

私の質問:CPUは仮想アドレスを処理するので、このクエリはどのように実行されますか?

わかりません:CPUが仮想アドレスに遭遇しました->CPUが物理アドレスでアドレス指定されたTLBに接続します->?? ->TLBは別の物理アドレスを吐き出します

TLB:

これは私にはまったく意味がありません

ウィキペディアから取得

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

paging - 仮想 TLB とは?

仮想TLBの意味を知っている人はいますか?このVTLBと通常のTLBの違いは何ですか.. Googleで明確な答えが見つかりませんか?

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

memory-management - ページ フォールト、セカンダリ メモリ アドレスが格納されている場所

TLB ミスが発生し、ページが物理メモリに常駐していない場合、ページは物理メモリに書き戻され、ページ テーブルと TLB が更新されます。

しかし、二次記憶装置のアドレスはどこに保存されているのでしょうか? ディスク上のデータの場所をどのように知るのでしょうか?