問題タブ [mmu]

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 に答える
934 参照

virtual-address-space - 仮想アドレス空間が物理アドレス空間と等しい場合、MMU は必要ですか?

MMU は、そのプロセスに対応するページ テーブルを利用して、実行中のプロセスの仮想アドレスを物理アドレスに変換するために使用されます。仮想アドレス空間が物理アドレス空間と等しい場合のシナリオを考えてみましょう。その場合、同じ仮想アドレス空間が異なる物理アドレスにマップされる状況が発生しないため、本当に MMU が必要ですか?

まあ言ってみれば

すべてのプロセスにページテーブルが本当に必要ですか? 複数のプロセスがある場合、どのような問題が発生する可能性がありますか?

簡単にするために、キャッシュメモリは無視してください。

0 投票する
0 に答える
2078 参照

c - VxWorks で PCIe 領域をマップするにはどうすればよいですか?

これは私の最初の投稿です :) 私は VxWorks 6.9 と Intel Sandy Bridge ボードを使用しています。アプリケーションで PCIe メモリ領域をマップする方法を知りたいです。PCIe メモリ領域はグラフィック メモリの一部であり、その物理アドレスは 0x80000000 です。

仮想アドレスを返さない vmMap 関数を試しています。その場合、仮想アドレスを物理アドレスと同じ値に設定していますが、それが良い動作かどうかはわかりません。物理アドレスから仮想アドレスを取得するにはどうすればよいですか? 関数が存在しない場合、使用する必要がある仮想アドレスは何ですか?

アプリケーションで領域をマッピングしたら、この領域へのアクセスをベンチングします。関数 vmStateSet を使用してキャッシュの状態を変更しようとしていますが、設定できるのは COPYBACK、WRITETHRU、および DEFAULT のみです (他のキャッシュ値の設定は失敗します)。すべてのキャッシュ状態でスループットが低下しています。Intel Sandybridge では、MMU をライト コンバインに設定することができます。VxWorks でそれを行うにはどうすればよいですか?

これは私がこれまでに試したことです:

ご協力ありがとうございました !!

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

memory - メモリ - ページングと TLB

次のタスクについて質問があります。

MMU が 2 レベルのページ テーブルをサポートする IA-32 システムを考えてみましょう。第 2 レベルには、4 KB ページ フレームにマッピングされた 1024 ページ テーブル エントリが含まれます。各ページ テーブル エントリ (両方のレベル) のサイズは 4 バイトです。システムは 4 KB のページ サイズのみをサポートします。
バイト 0 から始めて、連続する 8 MB を仮想メモリから順次読み取ります。一度に 1 ワード (4 バイト)
を読み取ります。8 エントリのデータ TLB があります。上記で指定された 8 MB のメモリを読み取るには、何回のメモリ アクセスが必要ですか?

TLB に 8 つではなく 4 つのエントリがある場合、違いはありますか?

というわけで、順番に読んでいきます。これは、8MB/4B = 2M のメモリ アクセスを意味します。2 レベルのページ テーブルがあります。したがって、2M + 2*2M = 6M のメモリ アクセスが TLB なしで行われます。

しかし、TLBを含むメモリアクセスを計算する方法がわかりません。

誰か私にそれを説明してもらえますか? それはとても役に立ちます。

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

arm - MMU/キャッシュを有効にした ARM Cortex A9 シーケンスの SMP ブート

MMU/キャッシュが有効になっているデュアル コア ARM Cortex A9 システムの U-boot で SMP ブートを実行しようとしています。初期化のシーケンスが必要でした。次の一連の出来事がどのように起こるべきか。どの順番で?

  • MMU ページ テーブルのセットアップ
  • SMP ビットの設定 (コア 0 とコア 1)
  • キャッシュを無効にする (内部キャッシュ)
  • キャッシュのフラッシュ (内部と外部について)
  • L2 キャッシュを有効にする必要があるのはいつですか?
  • SCU を有効にする必要があるのはいつですか? SMP ビットの前か後か?

誰かが一連の操作をリストアップできれば、それは大きな助けになるでしょう。

前もって感謝します

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

arm - ページテーブルにマップされる仮想アドレス空間の量はどのように決定されますか?

Arm V7 ISA がプログラムに 4 ギガの仮想アドレス空間を提供することを読みました。すべてのコードが 4 キロバイト以内に収まるプログラムを使用する場合、私の質問は、4 ギガのスペース全体がページ テーブルにマップされているかどうかです。ページ テーブルを構築するための短い記述子形式を採用し、4k の粒度を使用します。ページ テーブルを保持するには、RAM に多くのスペースが必要です。したがって、単一のプロセスの 4GB のスペース全体がマップされているのではなく、その一部のみがマップされていると思います。これは正しいです?それが正しい場合、テーブルにマップされている VA の量はどのように決定されますか?

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

tlb - TLB のロックと無効化をチェックするテストを作成する方法は?

ソフトウェア MMU を検証しようとしています。

入手したテストケースでは、「TLB ロックと無効化」をチェックする必要があります。

テストを実行して TLB ミスをチェックしましたが、TLB ロックと無効化が正確に何を意味するのかを理解できませんでした。

0 投票する
0 に答える
275 参照

linux-kernel - ARMv5 のヒュージページ/スーパーページのサポート

ARMv6およびARMv7の1MBページをサポートするコードを追加したLinuxカーネルへの最近の追加を調べていました.Freebsdも2013年からサポートが組み込まれていますが、ARMv6およびARMv7に限定されています. Linux は、ARMv5 でカーネルメモリをマップするためのヒュージページの使用もサポートしていますが、ユーザー空間ではサポートしていません。

ARMv5 でユーザー空間の Hugepages のサポートを追加することを考えているので、実装を不可能にするアーキテクチャ上のハードルがあるかどうかを知りたいです。

ARMv5 のユーザー空間アプリケーションでヒュージページがサポートされない理由はありますか? それとも、「誰かがそれを実装しなければならない」という問題ですか?Linuxでは、以前のアクセス許可/ドメインビットを使用して、ARMv5では不可能なAFAICTの追加情報を保存していることがわかりました。しかし、それが唯一の理由ですか、それとも他に見逃したことがありますか?