問題タブ [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.
arm - ARM11トランスレーションルックアサイドバッファ(TLB)の使用法?
ARM1176JZF-SコアでTLB(トランスレーションルックアサイドバッファ)テーブルを使用する方法を説明する適切なガイドはありますか?
そのARMプラットフォームの技術文書を調べても、TLBが何であるか、またはどのように見えるかはまだわかりません。私が理解している限り、各TLBエントリは仮想ページを物理ページにマップし、メモリのアクセス許可を再マップおよび制御できるようにします。
それを除けば、私はそれらをどのように使用するかについて全く手がかりがありません。
- TLBエントリにはどのような構造がありますか?新しいエントリを作成するにはどうすればよいですか?
- ユーザースペーススレッドのコンテキストスイッチでVMを処理するにはどうすればよいですか?それらのスレッドが親プロセスに割り当てられた特定のページにのみアクセスできるようにするにはどうすればよいですか(メモリ保護を適用します)。コンテキストごとにTLB状態を保存しますか?
- なぜ2つのTLBがあるのですか?MicroTLBが10エントリしかない場合、何に使用できますか?確かに、10個以上必要です。
- メインTLBの一部の1つは、「ロック可能な8つの要素の完全な連想配列」であると書かれています。それは何ですか?メインTLBのエントリは8つしかありませんか?
前もって感謝します。誰かがTLBとは何かについて説明してくれたら本当にうれしいです。私は現在、カーネルのメモリマッパーに取り組んでおり、ほとんど行き詰まっています。
profiler - x86-64でのTLBミスハンドリングコストの測定
Linuxを実行しているx86-64(Intel Nehalem)マシンでのTLBミスによるパフォーマンスオーバーヘッドを見積もりたいと思います。いくつかのパフォーマンスカウンターを使用して、この見積もりを取得したいと思います。誰かがこれを推定するための最良の方法についていくつかの指針を持っていますか?
ありがとうアルカ
operating-system - How to log a page reference string of a process?
Operating System question:
Say we have a process running in a paged memory system, and we want to track which pages it accesses in the specific order it does so. How could we do this?
I was thinking we could write the page to the string every time it needs to be loaded into the TLB, but then my OS wouldn't be able to track the ordering of references (and number of references) to each page in the TLB, unless somehow every every memory access I could check the TLB. Overall I'm finding the problem to be a bit confusing...
Assume each page table entry is 64 bits, 20 bits for the virtual page, and 20 bits for the corresponding physical frame. A couple of bits are status/privilege, but there are a few "free" bits to work with.
Thanks.
EDIT - an example: if the operating system has page sizes of 1000, and the process accesses some addresses like 1234, 5660, 1220, 7442, ... then the page reference string would look like 1,5,1,7,...
c - OS161 : ロード時の TLB ミス
フォーク テストを実行すると、TLB ミス オン ロード エラーが発生します。これは、誤った stackptr を mips_usermode に渡すことが原因であることを理解しています。私の実装は、ここでいくつかの提案を中心に展開しているようです。以下のコードは、thread_fork のエントリ ポイント関数として提供されます。私は何かを見逃していますか?
performance - TLBミスとキャッシュミス?
TLB (Translation lookaside buffer) ミスとキャッシュミスの違いを誰か説明してもらえますか?
TLBがある種の仮想メモリアドレスを参照していることがわかったと思いますが、これが実際に何を意味するのかあまり明確ではありませんでしたか?
メモリのブロック (キャッシュ ラインのサイズ) が (L3?) キャッシュにロードされ、必要なアドレスが現在のキャッシュ ライン内に保持されていない場合、キャッシュ ミスが発生することを理解しています。これはキャッシュ ミスです。
linux-kernel - Linux(x86-64)の複数の巨大ページサイズ?
Linux on x86-64は、複数の巨大なページサイズ(たとえば、4KBの基本ページサイズを超える2MBと1GBの両方のページサイズ)をサポートしていますか?はいの場合、特定の割り当てに対してどの巨大なページサイズを使用するかを指定する方法はありますか?言い換えると、私の質問は、「MAP_HUGETLB」フラグを使用してmmap()
、デフォルトサイズの巨大なページに割り当てをマップするかどうかです。デフォルト以外の巨大ページサイズにマップする割り当てを要求する方法はありますか?
linux-kernel - 変更されたページテーブルが実行中のプロセスに固有のものである場合、カーネルが他のすべてのプロセッサにtlb無効化割り込みを送信するのはなぜですか
1 つのプロセスのページ テーブル エントリの場合、カーネル スレッドは他のすべてのプロセッサに tlb シュートダウン割り込みを発行して、他のプロセッサの tlb を無効にしますか? しかし、ページ テーブルはこのプロセスに固有のものであるということではありません。
caching - 2レベルページングでの実効アドレス時間
私は現在OSでいくつかのプロジェクトに取り組んでいます、私はシングルレベルページングでEATを見つける方法を知っています
EAT = (MAT+TLB-AT)*a+(2*MAT+TLB-AT)*(1-a)
どこ
私はEAT
2つのレベルで調べようとしていますが、TLBミスの場合は3回、または4回メモリにアクセスしますか。
tlb - PowerPC e500:「Page Global Enable」フラグに相当するものはありますか?
Intel x86 System Programming Guide から:
PGE ページ グローバル イネーブル (CR4 のビット 7) — (P6 ファミリ プロセッサで導入されました。) 設定すると、グローバル ページ機能が有効になります。クリアすると、グローバル ページ機能が無効になります。グローバル ページ機能を使用すると、頻繁に使用または共有されるページをすべてのユーザーに対してグローバルとしてマークできます (ページ ディレクトリまたはページ テーブル エントリでグローバル フラグ ビット 8 を使用して実行します)。グローバル ページは、タスク スイッチまたはレジスタ CR3 への書き込みでトランスレーション ルックアサイド バッファー (TLB) からフラッシュされません。
PowerPC e500 コア ファミリに同等の機能はありますか?
ありがとう、テレン
c - いくつかの MMU 変換テーブル エントリの変更 - 正しい方法?
変換テーブルのエントリを更新する手順は?
ARM920T の MMU を使用して、メモリを保護しています。プロセスを切り替えるとき、他のプロセスのメモリを保護するためにいくつかのエントリを変更する必要があります。テーブルを (メモリ内で) 更新した後、完全な TLB 無効化を発行します (念のため、ロックされたエントリもありません) が、新しいプロセスは前のプロセスのデータに引き続きアクセスできます。
テーブルをトラバースすると、すべてが正常に表示されます (つまり、他のプロセス領域は「USR モードではアクセス不可」に設定されています)。
編集 TLBの無効化の前に、(両方のキャッシュで)完全なキャッシュのクリーンと無効化も行いますが、これは何も変更しません。