フィジカルアドレス(フィジカルアドレス)とは | 意味や読み方など丁寧でわかりやすい用語解説
フィジカルアドレス(フィジカルアドレス)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
物理アドレス (ブツリアドレス)
英語表記
physical address (フィジカルアドレス)
用語解説
フィジカルアドレスとは、コンピュータのメインメモリ、すなわちRAM(Random Access Memory)上にあるデータやプログラムが実際に格納されている物理的な場所を示す番地のことである。これは、CPUがメモリに対して読み書きの命令を出す際に、最終的に使用する具体的なメモリアドレスを指す。コンピュータのハードウェアが直接認識し、アクセスする唯一のアドレスであり、メモリチップ上の特定の記憶セルを一意に識別するための「住所」のようなものと理解できる。
現代のコンピュータシステムにおけるメモリ管理は非常に複雑であり、フィジカルアドレスの概念を理解するには、論理アドレスや仮想アドレスといった他のアドレス概念との関連性を把握する必要がある。プログラムがメモリにアクセスする際、CPUは直接フィジカルアドレスを指定することは稀である。これは、複数のプログラムが同時に実行されるマルチタスク環境において、各プログラムが物理メモリのどの位置に配置されるかを事前に知ることができないためであり、また、プログラムが物理メモリの配置に依存せず、より柔軟に動作できるようにするためである。
ここで登場するのが、論理アドレスと仮想アドレスである。論理アドレスは、プログラムがCPUに要求するアドレスであり、これは通常、セグメントとオフセットという形式で表現される。これは、プログラムの視点から見たアドレスであり、物理的なメモリの配置とは直接対応しない。一方、仮想アドレスは、オペレーティングシステム(OS)とメモリ管理ユニット(MMU)が各プロセス(実行中のプログラム)に提供する、独立したアドレス空間におけるアドレスである。各プロセスは、あたかも自分だけが広大なメモリを独占しているかのように、ゼロ番地から始まる独自の仮想アドレス空間を持つことができる。
この仮想アドレスが、最終的に物理メモリ上のフィジカルアドレスへと変換されるプロセスが、現代のメモリ管理の核心をなす。この変換をリアルタイムで行うのがMMU(Memory Management Unit)である。MMUは、CPUが仮想アドレスを使ってメモリにアクセスしようとすると、その仮想アドレスをフィジカルアドレスに変換する役割を果たす。この変換処理には、OSが管理するページテーブルやセグメントテーブルといった変換情報が用いられる。
例えば、ページング方式の場合、仮想アドレス空間と物理アドレス空間はそれぞれ固定長の「ページ」という単位に分割される。MMUは、仮想アドレスの上位ビットを仮想ページ番号として、OSが管理するページテーブルを参照する。ページテーブルには、各仮想ページ番号に対応する物理ページ番号が記述されており、MMUはこの情報を用いて物理ページ番号を取得する。そして、仮想アドレスの下位ビットにあるページ内のオフセット情報はそのまま利用し、物理ページ番号とオフセットを組み合わせることで、最終的なフィジカルアドレスが生成される。この仕組みにより、仮想アドレス空間の連続した領域が物理メモリ上の不連続な領域にマッピングされたり、あるいは一部がディスクのスワップ領域に退避されたりしても、プログラムは物理的な配置を意識せずに動作することが可能となる。
フィジカルアドレスの概念は、システム全体の安定性、セキュリティ、および効率性に大きく貢献している。まず、複数のプロセスが互いのメモリ領域を侵害することなく、安全に共存することを可能にするメモリ保護機能を実現する。各プロセスは独立した仮想アドレス空間を持つため、あるプロセスが誤って別のプロセスの領域を書き換えようとしても、MMUがそれを検知し、許可されていないアクセスとして処理を中断させることができる。これにより、システム全体のクラッシュを防ぐことが可能となる。
また、OSはフィジカルアドレスを介して物理メモリ全体を一元的に管理し、プロセスの要求に応じて効率的に割り当てや解放を行うことができる。これにより、物理メモリの断片化を最小限に抑え、限られたリソースを最大限に活用することが可能となる。さらに、プログラムは物理メモリの量や配置に依存しないため、開発者は特定のハードウェア構成を意識することなく、より汎用的なソフトウェアを作成できるというメリットもある。これは、ソフトウェアの移植性や開発効率の向上に寄与する。
フィジカルアドレスは、CPUが直接メモリチップ上の特定の番地を指し示すための唯一のアドレスであり、メモリコントローラやキャッシュメモリといったハードウェアコンポーネントも、最終的にはこのフィジカルアドレスに基づいて動作する。例えば、高速なアクセスを実現するために物理メモリのデータを一時的に保持するキャッシュメモリは、どの物理アドレスのデータがキャッシュされているかを管理している。ダイレクトメモリアクセス(DMA)コントローラが周辺機器とメインメモリの間で直接データを転送する際にも、フィジカルアドレスが使用される。
なお、コンピュータネットワークの分野で使用される「MACアドレス(Media Access Control address)」も「物理アドレス」と呼ばれることがあるが、これはネットワークインターフェースカードに割り当てられたハードウェア固有の識別子であり、本解説で扱うメインメモリのフィジカルアドレスとは全く異なる概念であることに注意が必要である。本解説におけるフィジカルアドレスは、あくまでメインメモリ上の物理的な位置を示す番地を指す。
このように、フィジカルアドレスは、現代のコンピュータシステムが持つ複雑なメモリ管理機構の基盤をなす、非常に重要な概念である。システムエンジニアを目指す者にとって、このアドレス変換の仕組みと、フィジカルアドレスが果たす役割を理解することは、オペレーティングシステムやハードウェアの動作原理を深く理解するための第一歩となるだろう。