論理アドレスと物理アドレスの違い

Anonim

論理アドレスと物理アドレス

簡単に言えば、CPUによって生成されたアドレスは論理アドレスとして知られている。論理アドレスは仮想アドレスとも呼ばれます。実行中のプログラムの観点からは、項目は論理アドレスによって提供されるアドレスに配置されているようです。物理アドレス(実アドレスとも呼ばれる)は、メモリユニットによって見られるアドレスであり、データバスによってメインメモリ内の特定のメモリセルにアクセスすることを可能にする。

論理アドレスとは?

論理アドレスは、CPUによって生成されたアドレスです。実行中のプログラムの観点からは、項目は論理アドレスによって提供されるアドレスに配置されているようです。コンピュータで実行されているアプリケーションプログラムには、物理​​アドレスは表示されません。彼らは常に論理アドレスを使用して動作します。論理アドレス空間は、プログラムによって生成される論理アドレスの集合である。論理アドレスは、使用する前に物理アドレスにマップする必要があり、このマッピングはメモリ管理ユニット(MMU)と呼ばれるハードウェアデバイスを使用して処理されます。 MMUによって使用されるいくつかのマッピング方式があります。最も単純なマッピング・スキームでは、再配置レジスタ内の値は、アプリケーション・プログラムによって生成された各論理アドレスにメモリに送る前に加算されます。マッピングを生成するために使用される他の複雑なメソッドもあります。アドレスバインディング(すなわち、メモリアドレスへの命令およびデータの割当て)は、3つの異なる時間に起こり得る。実際のメモリ位置が事前にわかっていて、コンパイル時に絶対コードが生成された場合、コンパイル時にアドレスバインディングが発生する可能性があります。メモリ位置があらかじめわかっていなければ、ロード時にアドレスバインディングが発生することもあります。このためには、コンパイル時に再配置可能なコードを生成する必要があります。さらに、アドレスバインディングは実行時に発生する可能性があります。これには、アドレスマッピングのハードウェアサポートが必要です。コンパイル時およびロード時のアドレスバインディングでは、論理アドレスと物理アドレスは同じです。しかし、実行時アドレスバインドでは、それらは異なります。

物理アドレスとは何ですか?物理アドレスまたは実アドレスは、メモリユニットによって見られるアドレスであり、データバスが主メモリ内の特定のメモリセルにアクセスすることを可能にする。プログラムの実行時にCPUによって生成される論理アドレスは、MMUを使用して物理アドレスにマッピングされます。例えば、リロケーションレジスタ(レジスタ内の値がyであると仮定する)値を論理アドレスに加える最も簡単なマッピングスキームを使用して、0からxまでの論理アドレス範囲は物理アドレス範囲yからx + y。これは、そのプログラムの物理アドレス空間とも呼ばれます。すべての論理アドレスは、使用する前に物理アドレスにマップする必要があります。

論理アドレスと物理アドレスの違いは何ですか?論理アドレスは、(実行中のプログラムの観点から)CPUによって生成されたアドレスであるのに対し、物理アドレス(または実アドレス)はメモリユニットによって見られるアドレスであり、データバスが特定のメインメモリ内のメモリセルに書き込まれる。すべての論理アドレスは、MMUによって使用される前に物理アドレスにマッピングされる必要があります。物理アドレスと論理アドレスは、コンパイル時とロード時のアドレスバインディングを使用する場合は同じですが、実行時のアドレスバインドを使用する場合は異なります。