mmu

    11

    1答えて

    Linux on x86-64は複数の巨大なページサイズをサポートしていますか(例えば、4KBのベースページサイズを超える2MBと1GBの両方のページサイズ)?はいの場合は、どの巨大なページサイズを使用する割り当てに指定する方法がありますか?言い換えれば、私の質問は、 "MAP_HUGETLB"フラグがmmap()を実行しているときに使用され、それらの割り当てをデフォルトサイズのhugepages

    5

    2答えて

    Linuxでのx86-64のユーザー仮想アドレス空間は47ビットです。これは本質的に、約128 TBの仮想アドレス範囲でプロセスをマップできることを意味します。 しかし、x86-64アーキテクチャーでは、各プロセスにISA定義の4レベル階層ページテーブル(基数ツリーとして配置)がサポートされていると私は混乱します。ページテーブルのルートは、最大512 GBの連続した仮想アドレス空間しかマッピングで

    0

    2答えて

    ページテーブルは、プログラマによって作成されたデータ構造です。 MMUはページテーブルへのアクセス方法をどのように知っていますか?私は、MMUがページテーブルのベースレジスタからページテーブルのアドレスを取得することを知っていますが、それは後でページテーブルをどのように読み取るのですか? MMUは、プログラマによって作成されたページテーブルのデータ構造を知らない。 おかげ

    -1

    1答えて

    Linuxでは、pgd_offset、pmd_offset、pte_offsetなどの関数があり、pgd、pmd、pteのインデックスに使用されます。誰がこれらの機能を呼びますか? MMUはこれらの関数を使用してページテーブルを移動しますか? 私の理解では、プロセスごとにページテーブルを作成し、ページテーブルのベースアドレスをページテーブルのベースレジスタに渡して、MMUがアクセスできるようにしま

    0

    2答えて

    物理メモリと物理メモリはページに分割されています。ページが有効かどうかを確認するには、ページテーブルエントリに有効なビットがあるかどうかを確認します。しかし、ページ内で、MMUはアドレスが有効かどうかをどのように知ることができますか?たとえば、ヒープの一部に属するページ。そのページのすべてのアドレスが有効であるわけではありませんので、MMUはどのようにアドレスを確認してその有効なアドレスを確認でき

    2

    3答えて

    ARM Linuxでは、正確にどの時点でmmuが有効になっていますか。つまり、ファイル(アセンブリファイルまたはarch/arm/kernel/setup.c内のpaging_init()) ARM Linuxはページングなしで実行するサポートを持っていますか。 ありがとうございます。

    0

    1答えて

    私は(インテルのために)仮想アドレス変換プロセスがあることを理解しています。 2. CPUのプロセスデスクリプタベースレジスタ(PDBR)は、ディレクトリの開始位置を示します。 ページテーブル番号に4を掛けて、ディレクトリへのオフセットとして使用し、ディレクトリエントリを参照します。 4.ディレクトリエントリには、ページテーブルのアドレス、有効性と保護情報が含まれています。この情報によって、ページ

    0

    1答えて

    私はARMプロセッサ(ARMv7)のMMUコードを調べていました。彼らは、完全連想型および連想型のTLBを利用しています。私はこのメソッドを使用してキャッシュの実装を認識しています。私はまた、TLBはCPUキャッシュだと読んでいます。しかし、TLBとキャッシュの目的が異なるため、私は作品に参加できません。私はTLBの文脈でセットと完全連想がどのように働くかを知りたい。

    5

    1答えて

    ARM cortex A8でのPLD命令の使用に疑問があります。私はループ内の命令を使用しているので、境界外のメモリアクセスの可能性があります。私の疑問は、それがセグメンテーションフォルトを引き起こすかどうかということです。 PLD命令がキャッシュのすべてのレベルによって、他のロード命令として扱われるので、私はARM manual which states that で読み出し、PLD命令は、標準