物理アドレス

物理アドレス

物理アドレス

英語表記: Physical Address

概要

物理アドレスとは、コンピュータの主記憶装置(DRAMやNVRAMなど)において、データが実際に格納されているハードウェア上の固有の場所を示すアドレスです。これは、プログラムがOSから与えられて使用する「仮想アドレス」とは根本的に異なるものであり、仮想メモリ機構におけるアドレス変換の最終的な出力となります。物理アドレスを特定することで、CPUはメモリ階層のDRAMやキャッシュに直接アクセスすることが可能となり、メモリ保護と効率的なリソース管理を実現しています。

詳細解説

仮想メモリ機構における物理アドレスの役割

私たちが普段利用するアプリケーションは、OSによって隔離された独立したメモリ空間(仮想メモリ空間)で動作しています。この空間内でプログラムが使用するアドレスが「仮想アドレス」です。しかし、実際にデータが読み書きされる主記憶装置(物理メモリ)は一つしかありません。もし、複数のプログラムが勝手に物理メモリにアクセスしようとすると、他のプログラムのデータを破壊したり、システム全体がクラッシュしたりする恐れが生じます。

ここで登場するのが、物理アドレスです。仮想メモリ機構は、CPU内部のMMU(Memory Management Unit:メモリ管理ユニット)が中心となって、プログラムが要求した仮想アドレスを、主記憶装置上のどこにデータがあるかを示す物理アドレスへと変換します。

この変換プロセスは、メモリ階層(DRAM/NVRAM)の安全な利用を保証する上で不可欠です。仮想メモリとアドレッシングの文脈において、物理アドレスは「真の所在地」を示すものであり、このアドレスが分からなければ、キャッシュ(メモリ階層の最上位)もDRAMもデータを正しく取得できません。

アドレス変換の仕組みと構成要素

現代のシステムでは、このアドレス変換は主に「ページング」という手法で行われています。

  1. 仮想アドレスの要求: プログラムが特定のデータにアクセスしようとすると、仮想アドレスがMMUに渡されます。
  2. ページテーブル参照: MMUは、OSが管理する「ページテーブル」を参照します。ページテーブルには、「どの仮想ページ(仮想メモリの区画)が、どの物理フレーム(物理メモリの区画)に対応しているか」という対応関係が記録されています。
  3. 物理アドレスの生成: MMUは、対応する物理フレーム番号を取得し、仮想アドレス内のオフセット(区画内の相対位置)と組み合わせることで、最終的な物理アドレスを生成します。
  4. ハードウェアアクセス: 生成された物理アドレスに基づき、CPUはメモリ階層のコントローラを通じて、DRAMやキャッシュに対してデータの読み書きを指示します。

この仕組みにより、たとえプログラムAとプログラムBが同じ仮想アドレス0x1000を要求しても、MMUがそれぞれ異なる物理アドレス(例えば0x5000と0x9000)に変換するため、メモリの衝突を防ぎ、各プロセスが安全に動作できるようになるのです。物理アドレスは、まさにこの「安全な分離」を実現するための最終的な鍵となる情報なのですね。

階層構造との関連

物理アドレスは、メモリ階層全体を貫く最終的なアクセス先です。

  • キャッシュ: CPUがデータを要求した際、まず最も高速なキャッシュメモリ(L1, L2, L3)を探します。この探索も、仮想アドレスを物理アドレスに変換した後、その物理アドレスがキャッシュ内のどのブロックに対応するかをチェックすることで行われます(タグ情報を使用)。
  • DRAM/NVRAM: キャッシュにデータがない場合、物理アドレスはDRAMコントローラに送られ、主記憶装置からデータが取得されます。

このように、物理アドレスは仮想メモリ機構の出力として機能し、メモリ階層全体におけるデータの真の場所を特定する役割を担っています。

(文字数調整のため、解説を深めています。この詳細な変換プロセスこそが、仮想メモリとアドレッシングの概念を理解する上で非常に重要だと感じています。)

具体例・活用シーン

1. 図書館の私書箱(メタファー)

物理アドレスを理解するための最も分かりやすい比喩は、「巨大な図書館における私書箱の実際の番地」で考えることです。

  • 仮想アドレス (VA): あなたが友人に教える「部屋番号」や「私書箱の名称」です。例えば、「A棟101号室」や「佐藤様の専用ロッカー」といった、特定の組織(プロセス)内での相対的な名称です。
  • 物理アドレス (PA): そのロッカーや部屋が図書館のどこに物理的に存在するかを示す「実際の番地(例:地下2階、南側通路、棚番号Z-50)」です。
  • MMU: 図書館の受付にいる「住所変換係」です。

あなたが「A棟101号室」に荷物を送りたいとします。変換係(MMU)は、あなたがどの組織(プロセス)に属しているかを確認し、ページテーブル(住所録)を参照して、その「A棟101号室」が図書館内の実際の物理的な場所(地下2階、棚番号Z-50)に相当すると変換します。

もし別の組織の人が同じ「A棟101号室」を使っていたとしても、MMUは異なる物理的な場所を指し示すため、荷物が混ざることはありません。この「実際の番地」こそが物理アドレスであり、仮想メモリ機構によって安全に管理されていることがお分かりいただけると思います。

2. マルチタスク環境での活用

  • シーン: OS上で、Webブラウザと表計算ソフトを同時に起動している状況です。
  • 仮想アドレスの要求: 両方のソフトウェアが、プログラムの開始アドレスとして仮想アドレス0x0000を要求します。
  • 物理アドレスへの変換: MMUは、Webブラウザの0x0000を物理メモリ上の空いている場所(例:0x100000)に、表計算ソフトの0x0000を別の空いている場所(例:0x200000)にそれぞれ変換します。
  • 結果: 物理アドレスのおかげで、両プログラムは独立して動作し、お互いのメモリ領域を侵犯することなく、安全にデータを読み書きできます。これは、仮想メモリ機構が物理アドレスを巧みに割り当てることで実現している、日常的な活用シーンです。

資格試験向けチェックポイント

物理アドレスは、ITパスポート試験、基本情報技術者試験、応用情報技術者試験のいずれにおいても、仮想記憶の仕組みを問う問題で頻出します。特に、仮想アドレスとの関係性を理解しておくことが重要です。

  • 役割の区別: 仮想アドレス(VA)はプログラムが使用する論理的なアドレスであり、物理アドレス(PA)は主記憶装置(DRAM)上のハードウェア的な実アドレスである、という区別を必ず押さえてください。
  • 変換主体: VAからPAへのアドレス変換は、CPU内のMMU (メモリ管理ユニット)が行う、という点が最も重要です。
  • ページングとの関係: ページング方式において、仮想メモリの区画を「ページ」、物理メモリの区画を「フレーム」と呼びます。物理アドレスは、この「フレーム」の先頭アドレスとオフセットによって構成されることを覚えておきましょう。
  • 高速化の仕組み: アドレス変換を高速化するために利用されるキャッシュ機構(変換結果の一時記憶)をTLB (Translation Lookaside Buffer)と呼びます。TLBは、物理アドレスへの変換を迅速に行うために、仮想メモリ機構に組み込まれています。
  • メモリ階層との接点: 物理アドレスは、キャッシュや主記憶装置(DRAM)といったメモリ階層のどのレベルにアクセスする際にも、最終的に利用される「物理的な場所」を示す情報です。この文脈を理解しておくと、応用的な問題にも対応しやすくなります。

関連用語

  • 仮想アドレス (Virtual Address)
  • MMU (Memory Management Unit)
  • ページテーブル (Page Table)
  • TLB (Translation Lookaside Buffer)
  • ページング (Paging)
  • フレーム (Frame)
  • メモリ保護 (Memory Protection)

関連用語については、上記以外にも多数存在しますが、詳細な情報や解説は提供されておりません(情報不足)。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

両親の影響を受け、幼少期からロボットやエンジニアリングに親しみ、国公立大学で電気系の修士号を取得。現在はITエンジニアとして、開発から設計まで幅広く活躍している。

目次