物理アドレスとは
コンピューティングにおける
物理アドレス(または実アドレス)とは、データバスがメインメモリ上の特定の記憶セルや、
メモリマップドI/O|メモリマップドI_Oデバイスのレジスタにアクセスする際に用いられる、
アドレスバス回路上の二進数で表現された
メモリアドレスのことです。
CPUにおける物理アドレスの役割
仮想記憶をサポートするコンピュータシステムでは、物理アドレスという用語は主に
仮想アドレスと区別するために使用されます。特に、
メモリ管理ユニット(MMU)を使用して
メモリアドレスの変換を行うシステムでは、仮想アドレスはMMUによる変換前の論理的なアドレスを指し、物理アドレスは変換後の実際のアドレスを指します。
アラインメントされていないアドレス指定の影響
コンピュータアーキテクチャによっては、メモリアクセスが特定の境界(アラインメント)に揃っていない場合、システムのパフォーマンスが低下する可能性があります。
例えば、
16ビットのデータバスを持つ初期のコンピュータでは、偶数アドレスにアラインされたアクセスは単一のメモリ読み出し操作で済みますが、奇数アドレスから始まるデータへのアクセスは、複数回の読み出し操作を必要としました。
具体的には、
16ビットの値を読み出す際に、偶数アドレスから始まる場合は1回のメモリ読み出しで完了しますが、奇数アドレスから始まる場合は2回の読み出しが必要になります。最初の読み出しで下位8
ビットを、次の読み出しで上位8
ビットを取得する必要があるため、結果として不要なデータが破棄されることになります。
さらに、Motorola 68000や
SPARCなどの一部のプロセッサでは、アラインメントされていないメモリアクセスが発生した場合、例外(例えば、
POSIXのSIGBUSなどのソフトウェア例外)が発生します。これは、メモリの誤った使用を検出し、システムの安定性を保つための重要な機能です。
他のデバイスでの物理アドレスの使用
ダイレクトメモリアクセス(DMA)機能は、
マザーボード上の他のデバイスがメインメモリに直接アクセスできるようにする機能です。DMAコントローラなどのデバイスは、メモリにデータを転送するために物理アドレスを使用する必要があります。
このように、物理アドレスは、CPUだけでなく、様々なデバイスがメモリを操作するために必要不可欠な要素となっています。
関連事項
以下は物理アドレスに関連する用語です。
アドレス定数
アドレッシングモード
アドレス空間
ページアドレスレジスタ
ポインタ (プログラミング)
主記憶装置(メインメモリ)
仮想記憶
仮想アドレス空間 - 論理アドレス
ページテーブル
[メモリ管理ユニット]
物理アドレスは、コンピュータシステムの根幹をなす概念であり、ハードウェアとソフトウェアの両方において重要な役割を果たしています。