辞書へ戻る概念の一覧

メモリアドレス

めもりあどれす概念

メモリ上のどこにデータがあるかを示す「番地」。CPUはこの番地を指定してデータを読み書きする。番地を表す数の桁数(ビット幅)が、そのコンピュータが直接扱えるメモリの広さを決める。32bitで約4GBまで、というのはこの仕組みによる。

概要

メモリ上のどこにデータがあるかを示す番地。CPUがメモリを読み書きする際は、必ずこの番地を指定して行う。番地は0から始まる整数で表され、1番地ごとに1バイト(8bit)分のデータが対応するのが一般的。

仕組み

CPUとメモリの間は「アドレスバス」という信号線の束でつながっている。このバスの本数(ビット幅)が、CPUが一度に指定できる番地の種類の数を決める。例えばIntel 8086は20本のアドレス線を持ち、2の20乗=約104万通りの番地を指定できたため、扱えるメモリは1MBに制限された。32bitなら2の32乗で約4GB、というのも同じ理屈である。

利点と代償

アドレス幅を広げれば広げるほど多くのメモリを直接扱えるようになるが、その分アドレスバスの配線やアドレスを保持するレジスタの幅も広げる必要があり、コストと複雑さが増す。初期のCPUはこのトレードオフのなかで、必要最小限のアドレス幅を選んでいた。

種類・系譜

アドレス幅は世代を追うごとに拡張されてきたとされる(8086は20bit=1MB。以降の世代の拡張幅は本ドラフトでは未確認、下記参照)。8086は本来16bitのCPUで、セグメントレジスタと呼ばれる仕組みを使い16bitの値を2つ組み合わせることで、20bit分のアドレスを間接的に生成していた。

分野メモリ管理
別名番地・ポインタ

関連項目

  • CPU計算や命令の実行を担う、コンピュータの頭脳にあたる部品。プログラムの命令を一つずつ読み取り、計算し、結果を返す。一度に扱えるビット数(8bit・64bitなど)や処理速度がコンピュータの性能を大きく左右する、最も中心的な装置。
  • レジスタCPUのすぐ内側にある、ごく小さく非常に高速な記憶場所。計算の途中の値や、いま扱っているデータを一時的に置く「作業机の上」にあたる。レジスタのサイズ(ビット幅)が、CPUが一度に処理できる情報量の目安になる。
  • ビットコンピュータが扱う情報の最小単位。「Binary Digit(2進数の桁)」の略で、0か1の2つの状態だけを表す。この最小の単位を束ねることで、数値も文字も画像も、あらゆる情報がコンピュータの中で表現されている。8bit・16bitといった呼び方の「bit」もこれを指す。
  • x86アーキテクチャIntel 8086に始まるCPU命令セットの系統。IBM PCに採用されて以降、PC市場の事実上の標準となり、後方互換を保ちながら現在まで拡張され続けている。長く生き残った「枯れて強い」アーキテクチャの代表。
  • IBM PC (5150)IBMが発売した最初のパーソナルコンピュータ。仕様を公開したオープンな設計だったため互換機(PC/AT互換機)が大量に生まれ、x86とMS-DOSを軸にした巨大なPCエコシステムの起点になった。
  • 仮想記憶物理メモリより大きな記憶空間があるように見せる仕組み。各プログラムに独立した広いアドレス空間を与える。
  • キャッシュメモリCPUのそばに置かれる、小容量だが非常に高速な記憶装置。よく使うデータを手元に置いておくことで、遅いメインメモリへのアクセスを減らし処理を速める。容量と速度のバランスを取る、コンピュータ高速化の重要な工夫の一つ。

関連技術

この用語を扱った記事

bitとは? 4bit/8bit/16bit/32bit/64bitの違いをわかりやすく解説

出典