問題タブ [device-emulation]
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 - ARM が IPA のフォールト アドレスに対して 64 ビットをサポートしないのはなぜですか?
仮想化環境でのフォールト アドレスに対する ARM アーキテクチャ (ARMv8) のサポート方法を理解しようとしています。ハイパーバイザーの場合、デバイスをエミュレートするために、ゲストからのすべてのデバイス アクセスをトラップする必要があります。
ゲストからのメモリ アクセスは例外を生成し、ハイパーバイザーは ESR を読み取ることによって例外の理由を認識します。次に、その理由が data_abort であることを認識します。
その後、障害のあるアドレスは、HPFAR (IPA の一部) と FAR (障害のあるアドレスの VA) を読み取ることによって障害のあるアドレスを取得するという、ハイパーバイザーの観点からの主な関心事です。それらをマージすると(障害アドレスの上部はHPFARから、下部はFARから取得されます)、ハイパーバイザーは最終的に障害アドレスを知ることができましたが、実際には64ビットアドレスではありません。完全な 64 ビット IPA ではなく、IPA 範囲 ([51:12] または [47:12]、ARMv8 のバージョンに依存) のみを表します。
実際のプラットフォームのほとんどには 2^64 サイズのメモリがありませんが、ARM アーキテクチャは 64 ビット フル IPA をサポートする必要があると思いますが、そうではないようです。
私が何かを見逃したのか、それとも ARM が 64 ビットの IPA をサポートしていない特別な理由があるのか、誰か教えてもらえますか?