メモリアドレス 【memory address】

概要

メモリアドレス(memory address)とは、コンピュータメインメモリ上での位置を指し示す数値。「番地」とも呼ばれ、現代のコンピュータでは先頭からのバイト数で示すことが多い。

コンピュータCPUメモリ上に格納されたプログラムから命令を一つずつ読み込み、指定されたメモリ上の位置にあるデータを読み込んで演算をい、指定の位置に格納する。これら一連の動作の中で、命令やデータを読み込むメモリ上の位置を表すのことをメモリアドレスという。

メモリ装置には1ビットデータ(「0」または「1」の2進数)を格納できる記憶素子が並んでいるが、1ビット単位でアクセスするのは効率が悪いため、「ワード」と呼ばれるある程度の長さのビットを一つの単位としてアクセスする。現代のほとんどのコンピュータでは1ワードは8ビット1バイト)であり、バイト単位でデータの出し入れをう。

メモリアドレスはメモリ装置先頭からのバイト数で表される。一度にどのくらいの広さのアドレスを指し示すことができるかはコンピュータ内部の伝送路であるバスが一度に転送できるビット数(バス幅)と、CPU内部の一時的な記憶装置であるレジスタビット数によって決まる。

例えば、バス幅32ビット32ビットCPUの場合は、メモリアドレスとして0から232-1までのを指定することができ、232バイト(4GiB)までのメモリ空間にアクセスすることができる。バス幅64ビット64ビットCPUの場合は0~264-1であり、264バイト(16EiB)までの広大な空間を利用できる。

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

現代のコンピュータおよびオペレーティングシステムOS)では「仮想メモリ」という仕組みが組み込まれており、ほとんどのコンピュータプログラムメモリ装置の物理的な位置(物理アドレス)によってメモリアドレスを指定することはない。

代わりに、OSが設定した論理的なメモリ空間上における先頭から位置(論理アドレス)を指定するようになっており、物理アドレスとの対応関係はOSおよびCPU内部のメモリ管理ユニットMMUMemory Management Unit)によって管理される。これにより、物理的なメモリ容量を超えるメモリ空間を確保し、物理メモリに収まりきらない部分をストレージ上に確保することができる。

ストレージ上に確保した領域はメモリとして直接アクセスすることはできないため、実際に読み書きが必要になったらその時使っていない物理メモリ領域との入れ替えがわれる。この操作を「スワップ」(swap)あるいは「ページング」(paging)と呼び、OSが自動的にうため利用者アプリケーションは意識しなくてよい。

(2023.12.31更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる