web-dev-qa-db-ja.com

物理アドレス指定と仮想アドレス指定の概念の違い

Superuser.comからの応答がないため、これは再提出です。誤解してすみません。

組み込みシステムにおける物理アドレッシングと仮想アドレッシングの概念の違いを知る必要があります。

組み込みシステムに仮想アドレス指定の概念が実装されているのはなぜですか?

組み込みシステムで物理アドレス指定の概念を持つシステムよりも仮想アドレス指定の利点は何ですか?

組み込みシステムで仮想アドレスと物理アドレスのマッピングはどのように行われますか?

いくつかの単純なアーキテクチャでいくつかの単純な例を使用して、上記の概念を説明してください。

24
Renjith G

物理アドレス指定とは、プログラムが実際にRAMの実際のレイアウトを知っていることを意味します。アドレス0x8746b3の変数にアクセスすると、実際に物理的なRAM=チップに格納されます。

仮想アドレス指定を使用すると、すべてのアプリケーションメモリアクセスがページテーブルに移動し、ページテーブルは仮想アドレスから物理アドレスにマップします。したがって、すべてのアプリケーションには独自の「プライベート」アドレス空間があり、どのプログラムも別のプログラムのメモリを読み書きすることはできません。これはsegmentationと呼ばれます。

仮想アドレス指定には多くの利点があります。これは、不適切なポインタ操作などによってプログラムが互いにクラッシュするのを防ぎます。各プログラムには独自の仮想メモリセットがあるため、プログラムは他のデータを読み取ることができません。これは安全性とセキュリティの両方の利点です。仮想メモリはページングも有効にします。プログラムの物理RAMはディスクに保存される可能性があります(またはflash)使用していないときは、アプリケーションがページにアクセスしようとしたときにコールバックされます。また、物理ページングシステムでは、特定のphysicalページに常駐できるプログラムは1つだけなので、a)すべてのプログラムをコンパイルして、異なるメモリアドレスでロードするか、b)すべてのプログラムで位置独立コードを使用する必要がある、またはc)一部のプログラムセットを同時に実行できない。

物理-仮想マッピングは、ソフトウェア(メモリトラップのハードウェアサポートあり)または純粋なハードウェアで実行できます。場合によっては、ページテーブル自体がハードウェアメモリの特別なセットにあることもあります。どの組み込みシステムが何をするのか頭の上ではわかりませんが、すべてのデスクトップにはハードウェアTLB(Translation Lookaside Buffer、基本的には仮想-物理マッピング用のキャッシュ)があり、一部には役立つ高度なメモリマッピングユニットがあります仮想マシンなど。

仮想メモリの唯一の欠点は、ハードウェア実装の複雑さが増し、パフォーマンスが低下することです。

48
Borealid

VAX(Compaqになり、HPになり、Digital Equipment Corpによって拡張された仮想アドレス)は、仮想組み込みハードウェアシステムの非常に良い例です。これは、VMSまたは仮想メモリシステムと呼ばれるOSを備えた32ビットのミニコンピュータでした。 Dave Cutlerはシステムの主要なアーキテクトの1人であり、ずっと後にWindows NT用のKernalを書きました。彼はこれと他のものについて非常に良い読み物です。 Vaxには、仮想空間を制御するための特別なハードウェアと、ハードウェアによるセキュリティのためのオペコードアクセスの制御があり、非常に安全でした。このシステムは、カーネルレベルでのmodfern day PCの祖父でした。 WNT 3.51で最初に見たBSODは、不安定なときにシステムを停止するためにVMSで使用されたクラッシュダンプに由来していたため、読み取ることができました。ちなみに、VMSとWNTの名前を見ると、VMSからのalhabetの次の文字がWNTになります。これは偶然ではありません。おそらく彼を手放したことに対するDECのジャブ。

1
MarkC