問題タブ [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.

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

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 をサポートしていない特別な理由があるのか​​、誰か教えてもらえますか?