物理アドレス
この項目では、コンピュータのメモリのアドレス指定について説明しています。ネットワークの物理アドレスについては「MACアドレス」をご覧ください。 |
コンピューティングにおいて、物理アドレス(ぶつりアドレス、英語: physical address)または実アドレス(じつアドレス、英語: real address)とは、データバスが、メインメモリの特定の記憶セル、またはメモリマップドI/Oデバイスのレジスタにアクセスすることを可能にするために、 アドレスバス回路上の二進数の形式で表されるメモリアドレスである。
CPUにおける使用
仮想記憶をサポートしているコンピュータでは、 物理アドレスという用語は主に仮想アドレス(英語版)と区別するために使用される。特に、メモリアドレスを変換するためにメモリ管理ユニット(MMU)を利用するコンピュータでは、仮想アドレスと物理アドレスは、それぞれMMUによって実行される変換の前後のアドレスのことを指す[1]。
アラインされていないアドレス指定
基盤として使用するコンピュータアーキテクチャによっては、アラインされていないメモリアクセスを行うと、コンピュータのパフォーマンスが低下する可能性がある。例えば、Intel 8086などの16ビットメモリデータバスを備えた16ビットコンピュータは、アクセスが偶数アドレスにアラインされていると、一般にオーバーヘッドがより少なくなる。この場合、1つの16ビット値をフェッチするには、単一のメモリ読取り操作、すなわちデータバスを介した単一の転送が必要である[2][3]。
16ビットのデータ値が奇数アドレスから始まる場合、プロセッサは2つのメモリ読み出しサイクルを実行して値をロードする必要がある。つまり、1回目の読み出しサイクルで下8ビットを読み出し、2回目で上8ビットを読み出す。いずれの読み出しサイクルでも16ビットごとにデータが取り出されるので、必要のない8ビットは廃棄される。モトローラ68000、モトローラ68010、SPARCなどの一部のプロセッサでは、アラインされていないメモリアクセスにより例外(通常、POSIXのSIGBUSなどのソフトウェア例外)が発生する[2]。
他のデバイスでの使用
ダイレクトメモリアクセス(DMA)機能は、マザーボード内の他のデバイスがメインメモリをアドレス指定できるようにする。従って、このようなデバイスは、物理的アドレスの知識も必要とする。
関連項目
- アドレス定数(英語版)
- アドレッシングモード
- アドレス空間
- ページアドレスレジスタ(英語版)
- ポインタ (プログラミング)
- 主記憶装置(メインメモリ)
- 仮想記憶