メモリ

めもり / Memory(主記憶・RAM)

作成日: 2026-02-01 | 最終更新: 2026-02-01
このページで分かること
  • メモリ=CPUが今使う情報を置く場所
  • データはどこから探される?(キャッシュ・メモリデモ)
  • アドレス・命令部とアドレス部
  • 近くにあった割合(ヒット率)・だいたいどれくらい待つか
  • 割り込み・メモリインターリーブの概要

概要

メモリ(RAM)は、CPUが仕事をするために、今使う情報を置いておく場所です。 CPUはここから命令データを読み書き(探しに行く・書く)します。

データはどこから探される?

CPUがデータを探しに行くとき、まずキャッシュ(近く)を見ます。 あればそこで終わり(速い)。なければメモリまで探しに行きます(ちょっと時間がかかる)。 下のデモで、その様子を体験できる。

キャッシュとメモリ

キャッシュ
メモリ

記憶装置の種類と役割

CPUに近い順に「探しに行く」先が並んでいます。

  • レジスタ:計算の途中結果や、今実行している命令を置く。CPUの内部にある。
  • キャッシュ:メモリの写しを置き、よく使うデータに素早く探しに行けるようにする。
  • メモリ(RAM):今動かしているプログラムとそのデータを置く。電源を切ると消える。
  • 補助記憶(SSD/HDD):プログラムやファイルを長く保存する。電源を切っても残る。

メモリの場所は番地(アドレス)で指定する

CPUがメモリの「どこ」に探しに行くかはアドレス(番地)で指定します。 1本の命令は、命令部(何をするか:足す・読む・書くなど)とアドレス部(どの番地を扱うか)の2つに分かれます。

1本の命令のイメージ

命令部(何をするか)+アドレス部(どの番地を扱うか)

バイト単位で場所を指定する話や、アドレス空間・メモリマップは、基本情報では後半の単元で扱う。ここでは「番地で場所を指定する」イメージがわかれば十分である。

場所の指定のしかた(相対・基底)

「どの番地を探しに行くか」の指定のしかたがいくつかあります。 相対アドレス指定は「今いるところからどれだけ離れているか」、基底アドレス指定は「決めた基準の場所からどれだけ離れているか」で場所を表します。 細かい計算より、「基準が違う」と覚えておけば大丈夫です。

下のデモで、基準(PCまたはBR)とアドレス部を変えると、実際に探しに行く番地がどう変わるか確認できます。

実効アドレスの計算

実効アドレス = 1000501050

近くにあった割合(ヒット率)

ヒット率は、探したデータが近く(キャッシュ)にあった割合です。 ヒット率が高いと、すぐ見つかることが多く、CPUが待たなくてすむので、全体が速く動きます。 「できるだけ近くに欲しいデータがあると楽」— それを数字で表したのがヒット率です。

下のデモで、キャッシュ・メモリの「探しに行くのにかかる時間」と「近くにあった割合」を変えると、だいたいどれくらい待つか(平均)がどう変わるか確認できます。

だいたいどれくらい待つか(平均)

結果

だいたいどれくらい待つか = 9010 + (1-90%)×100 19 ns

割り込み

割り込みは、CPUが通常のプログラム実行を一時止めて、別の処理(入出力の完了通知やエラーなど)に移る仕組みである。 基本情報では、外部割り込み(ハードウェア由来)と内部割り込み(プログラムやCPU由来)、マスク可能・マスク不可などの分類が出題される。

メモリインターリーブ

メモリインターリーブは、主記憶を複数のバンクに分け、CPUからのアクセス要求を並列に処理して、見かけのアクセスを速くする技術である。 連続したアドレスを別々のバンクに振り分けることで、連続アクセスでも待ち時間を減らせる。

メモリの種類(DRAM・SRAM・フラッシュ)

主記憶にはDRAM(Dynamic RAM)が使われることが多い。リフレッシュが必要だが大容量化しやすい。SRAM(Static RAM)は高速だがコストが高く、キャッシュメモリに使われる。フラッシュメモリは不揮発性で、SSDやUSBメモリに使われる。

関連用語

用語説明
CPUメモリから命令を読み取り、取り出し・解読・実行する。キャッシュは主記憶のコピーを置く場所
サーバーメモリを搭載したコンピュータが、クライアントにサービスを提供する
APIプログラム同士がデータをやり取りする窓口

よくある質問(FAQ)