
【基本情報】CPUのCPI・MIPS計算で迷う人へ|メモリ・キャッシュの違いも例題で理解
CPUを読み終えたら、無料の第02回で理解を確かめましょう
まずこの記事で「CPU・キャッシュ・主記憶の役割」「CPIとクロック周波数」「計算の単位」を確認してください。仕組みを初めから順に学びたい方は、全60回講座の第02回「コンピュータ入門」(全文無料)へ。講座の説明や確認問題が自分に合うかを試せます。
学習順から決めたい方は無料の第01回、科目Bの読み方を試したい方は無料の第39回も利用できます。まず必要な1本を試し、その後に講座の全体目次と料金で購入を検討してください。CPUだけの復習なら、この記事の無料解説と練習問題を活用できます。講座購入済みの方は追加購入不要です。
「CPUとメモリの役割がごちゃごちゃになる…」
「キャッシュメモリって何のためにあるの?」
「クロック周波数・CPI・実効アクセス時間の計算が苦手😇」
基本情報技術者試験で頻出なのが、
CPU・メモリ・キャッシュメモリ
です。
用語問題だけでなく、
クロック周波数
クロックサイクル時間
CPI
命令実行時間
キャッシュのヒット率
実効アクセス時間
などの計算問題も出てきます。
でも、それぞれを別々に暗記する必要はありません。
まず、
CPUが処理する
↓
主記憶からデータや命令を読み込む
↓
CPUと主記憶の速度差をキャッシュメモリで埋める
という全体像を理解すると、一気に整理しやすくなります。
今回はここから始めましょう🔥
⸻
1.まずCPU・メモリ・キャッシュの関係
最初に全体像です。

ざっくり、
CPUに近いほど高速・小容量
CPUから遠いほど低速・大容量
という傾向があります。
まずこのイメージを持っておきましょう。
⸻
2.CPUとは?
CPUは、
Central Processing Unit
の略で、日本語では、
中央処理装置
と呼ばれます。
コンピュータの中心となって、
命令を読み取る
計算する
各装置を制御する
といった処理を行います。
ざっくり、
コンピュータの頭脳
と考えると分かりやすいです。
⸻
3.CPUを構成する重要要素
基本情報では、CPUの内部についても問われます。
特に覚えておきたいのが、
制御装置
演算装置
レジスタ
です。
制御装置
命令を解読し、各装置へ指示を出します。
演算装置
算術演算や論理演算を行います。
レジスタ
CPU内部にある、
非常に高速な記憶領域
です。
この3つはまず押さえておきましょう。
⸻
4.レジスタとは?
レジスタは、
CPU内部に存在する高速・小容量の記憶領域
です。
CPUが処理中のデータやアドレスなどを一時的に保持します。
イメージとしては、

CPU内部にあるため、非常に高速です。
⸻
5.代表的なレジスタ
基本情報では代表的なレジスタの役割も押さえておきたいところです。

特に、
プログラムカウンタ=次に実行する命令のアドレス
は頻出です。
⸻
6.CPUが命令を実行する流れ
CPUは基本的に、
命令を取り出す
↓
命令を解読する
↓
命令を実行する
という流れで処理します。
それぞれ、
フェッチ
↓
デコード
↓
実行
と呼ばれます。
⸻
7.フェッチとは?
フェッチは、
主記憶などから命令を取り出す処理
です。
CPUはプログラムカウンタを利用して、
「次にどの命令を取りに行くか」
を判断します。
その命令を読み込み、
命令レジスタ
へ保持します。
⸻
8.命令実行サイクルを整理
イメージすると、
プログラムカウンタ
「次の命令はここ!」
↓
フェッチ
↓
命令レジスタ
↓
デコード
↓
実行
↓
次の命令へ…
という流れです。
ここは用語問題でも狙われます。
⸻
9.主記憶とは?
主記憶は、
CPUが処理するときに必要なプログラムやデータを保持する記憶装置
です。
一般的には、
RAM
が使われます。
CPUはSSDやHDDから直接すべての処理を行うのではなく、必要なデータやプログラムを主記憶へ読み込んで利用します。
⸻
10.RAMとROM
メモリ関連では、
RAM
と、
ROM
の違いも重要です。
RAM
読み書き可能で、一般的には電源を切ると内容が失われる、
揮発性メモリ
です。
ROM
基本的には読み出し用途を中心とする、
不揮発性メモリ
です。
試験では、
揮発性か不揮発性か
を区別できるようにしましょう。
⸻
11.DRAMとSRAM
ここも頻出です。

超重要なのが、
主記憶 → DRAM
キャッシュ → SRAM
です。
セットで覚えましょう。
⸻
12.DRAMの特徴
DRAMは、
Dynamic RAM
です。
記憶内容を維持するために、
リフレッシュ
が必要です。
一方で比較的安価で大容量化しやすいため、
主記憶
に利用されます。
つまり、
DRAM=主記憶=リフレッシュ必要
です。
⸻
13.SRAMの特徴
SRAMは、
Static RAM
です。
DRAMのようなリフレッシュ動作を必要とせず、高速です。
ただし、
高価で大容量化には向きにくい
という特徴があります。
そのため、
キャッシュメモリ
などに使われます。
覚え方は、
SRAM=Speed
くらいのイメージでもOKです。
⸻
14.なぜキャッシュメモリが必要?
CPUは非常に高速です。
しかし主記憶はCPUより遅いため、
CPU
「データ欲しい!」
↓ 待つ…
主記憶
「今持ってきます」
となると、CPUが待たされてしまいます。
そこで登場するのが、
キャッシュメモリ
です。
⸻
15.キャッシュメモリとは?
キャッシュメモリは、
CPUと主記憶の速度差を埋めるための高速な記憶装置
です。
イメージは、
CPU
↓
キャッシュ
↓
主記憶
CPUが頻繁に使いそうなデータをキャッシュへ置いておきます。
キャッシュにデータがあれば、遅い主記憶まで取りに行かずに済みます。
⸻
16.キャッシュヒットとは?
CPUが必要とするデータがキャッシュに存在することを、
キャッシュヒット
といいます。
CPU
↓
キャッシュを確認
↓
あった!
↓
キャッシュヒット
高速にアクセスできます。
⸻
17.キャッシュミスとは?
逆に、
必要なデータがキャッシュに存在しない
場合を、
キャッシュミス
といいます。
その場合は、
CPU
↓
キャッシュ
↓
ない!
↓
主記憶へアクセス
となります。
主記憶へアクセスするため、時間がかかります。
⸻
18.ヒット率とは?
キャッシュへアクセスしたときに、必要なデータが見つかる割合を、
ヒット率
といいます。
例えば、
ヒット率90%
なら、100回アクセスしたうち、おおよそ90回はキャッシュで目的のデータが見つかるという意味です。
残りの、
10%
はミスです。
つまり、
ミス率=1−ヒット率
です。
⸻
19.実効アクセス時間
ここから計算問題です🔥
キャッシュメモリの定番が、
実効アクセス時間
です。
基本問題では、
キャッシュのアクセス時間
主記憶のアクセス時間
ヒット率
から平均的なアクセス時間を求めます。
⸻
20.基本の公式
問題の前提に応じて式は変わりますが、典型的な問題では、
実効アクセス時間
= キャッシュアクセス時間 × ヒット率
+ 主記憶アクセス時間 ×(1−ヒット率)
と計算します。
例えば、
キャッシュ:10ns
主記憶:100ns
ヒット率:90%
なら、
10 × 0.9
+
100 × 0.1
=
9 + 10
= 19ns
となります。
⸻
21.注意!実効アクセス時間の式は問題文を確認
ここは大事です。
問題によっては、
キャッシュを確認してミスした後に、さらに主記憶へアクセスする
という時間を明示的に考える場合があります。
その場合、
ヒット時
→ キャッシュ時間
ミス時
→ キャッシュ時間+主記憶時間
なので、
実効アクセス時間
= キャッシュ時間
+ ミス率 × 主記憶時間
のような式になります。
例えば、
キャッシュ:10ns
主記憶:100ns
ヒット率:90%
なら、
10 + 0.1 × 100
= 20ns
です。
つまり、
公式だけを丸暗記せず、問題文のアクセス手順を確認する
ことが重要です。
⸻
22.多段キャッシュ
実際のCPUでは、
L1キャッシュ
L2キャッシュ
L3キャッシュ
など、複数段のキャッシュが使われます。
一般的なイメージとしては、
CPU
↓
L1
↓
L2
↓
L3
↓
主記憶
です。
CPUに近いキャッシュほど、
高速・小容量
になる傾向があります。
⸻
23.局所性とは?
キャッシュが有効に働く背景には、
局所性
があります。
代表的なのが、
時間的局所性
と、
空間的局所性
です。
⸻
24.時間的局所性
時間的局所性とは、
一度使ったデータは近いうちに再び使われやすい
という性質です。
例えば、
同じ変数を
何度も参照する
ようなケースです。
だから、一度使ったデータをキャッシュに残しておくと効率が良くなります。
⸻
25.空間的局所性
空間的局所性とは、
あるデータを使うと、その近くのデータも使われやすい
という性質です。
例えば配列、
A[0]
A[1]
A[2]
A[3]
を順番に処理するようなケースです。
そのため、周辺のデータもまとめてキャッシュへ読み込むことで効率化できます。
⸻
26.記憶階層を整理
試験では、速度・容量・価格の関係も重要です。
ざっくり、

つまり、
上に行くほど
高速
小容量
高価
下に行くほど
低速
大容量
安価
と整理できます。
⸻
27.クロック周波数とは?
次の頻出テーマが、
クロック周波数
です。
CPUはクロック信号に合わせて動作します。
クロック周波数は、
1秒間に何回のクロックが発生するか
を表します。
単位は、
Hz(ヘルツ)
です。
⸻
28.GHzとは?
例えば、
3GHz
なら、
3 × 10⁹ Hz
なので、
1秒間に30億クロック
です。
ここで重要なのが単位変換です。
1kHz = 10³Hz
1MHz = 10⁶Hz
1GHz = 10⁹Hz
基本情報では、この変換をできるようにしておきましょう。
⸻
29.クロックサイクル時間
クロック周波数から、
1クロックに何秒かかるか
も求められます。
公式は、
クロックサイクル時間=1÷クロック周波数
です。
例えば、
2GHz
なら、
1 ÷ (2 × 10⁹)
=
0.5 × 10⁻⁹ 秒
なので、
0.5ns
です。
⸻
30.時間の単位を整理
ここは計算問題で非常に重要です。

特に、
GHz ↔ ns
はセットで出てきやすいです。
例えば、
1GHz
→ 1ns/クロック
2GHz
→ 0.5ns/クロック
4GHz
→ 0.25ns/クロック
となります。
⸻
31.CPIとは?
CPIは、
Cycles Per Instruction
の略です。
つまり、
1命令を実行するために平均何クロック必要か
を表します。
例えば、
CPI=4
なら、
1命令を実行するために平均、
4クロック
必要ということです。
⸻
32.命令実行時間の公式
クロック周波数とCPIが分かれば、
平均命令実行時間
を求められます。
基本式は、
平均命令実行時間
= CPI × クロックサイクル時間
です。
クロックサイクル時間は、
1 ÷ クロック周波数
なので、
平均命令実行時間
= CPI ÷ クロック周波数
とも表せます。
⸻
33.計算問題① CPI
CPUのクロック周波数が、
2GHz
平均CPIが、
4
だったとします。
1クロックは、
1 ÷ 2GHz
= 0.5ns
です。
1命令に4クロック必要なので、
0.5ns × 4
= 2ns
答えは、
平均2ns/命令
です。
⸻
34.命令数から処理時間を求める
さらに、
命令数
が与えられる問題もあります。
公式は、
CPU実行時間
= 命令数 × CPI × クロックサイクル時間
です。
つまり、
CPU実行時間
= 命令数 × CPI ÷ クロック周波数
でもOKです。
⸻
35.計算問題② CPU実行時間
例えば、
命令数:10億命令
CPI:2
クロック周波数:2GHz
なら、
10⁹ × 2
────────
2 × 10⁹
=
1秒
です。
この形は非常に重要です。
⸻
36.CPIが命令ごとに違う場合
問題によっては、

のように出ることがあります。
この場合は、
平均CPI
を求めます。
1×0.5
+
2×0.3
+
4×0.2
=
0.5 + 0.6 + 0.8
= 1.9
したがって、
平均CPI=1.9
です。
⸻
37.MIPSとは?
CPU性能の指標として、
MIPS
が出ることもあります。
MIPSは、
Million Instructions Per Second
つまり、
1秒間に何百万命令を実行できるか
を表します。
例えば、
100MIPS
なら、
1秒間に1億命令
という意味です。
⸻
38.MIPSの基本計算
例えば、
200MIPS
のCPUで、
6億命令
を実行するとします。
200MIPSは、
2億命令/秒
なので、
6億 ÷ 2億
= 3秒
です。
答えは、
3秒
です。
⸻
39.クロック周波数とCPIからMIPS
平均CPIが分かっていれば、
1秒あたりの命令数は、
クロック周波数 ÷ CPI
で求められます。
例えば、
2GHz
CPI=4
なら、
2×10⁹ ÷ 4
= 0.5×10⁹
=
5億命令/秒
です。
したがって、
500MIPS
となります。
⸻
40.パイプライン処理
CPU関連では、
パイプライン処理
も重要です。
通常、命令は、
フェッチ
↓
デコード
↓
実行
など複数の段階を通ります。
これを複数命令で並行して進めるのが、
パイプライン処理
です。
⸻
41.パイプラインのイメージ
例えば、

のように、異なる命令の処理段階を重ねて実行します。
工場の流れ作業のようなイメージです。
これによって、
単位時間あたりに処理できる命令数を増やす
ことができます。
⸻
42.パイプラインハザード
パイプラインでは、処理をスムーズに進められない場合があります。
これを、
パイプラインハザード
といいます。
例えば、
前の命令の結果を次の命令が必要とする
場合などです。
また、条件分岐によって、
次にどの命令を実行するか確定しない
場合も問題になります。
基本情報では、
パイプライン=複数命令の処理を重ねて効率化
という基本をまず押さえましょう。
⸻
43.マルチコアとは?
CPUには、
コア
があります。
コアは、実際に命令処理を行う中心部分です。
複数のコアを搭載したCPUを、
マルチコアプロセッサ
といいます。
例えば、
CPU
├─ Core1
├─ Core2
├─ Core3
└─ Core4
のようなイメージです。
並列化できる処理なら、複数コアを活用して性能を高められます。
ただし、
コア数を2倍にすれば必ず処理速度も2倍
になるわけではありません。
⸻
44.CPUとメモリの頻出キーワード整理
問題文で次の言葉が出たら、すぐ関連付けられるようにしましょう。
「次に実行する命令のアドレス」
→ プログラムカウンタ
「実行中の命令」
→ 命令レジスタ
「主記憶」
→ DRAM
「キャッシュ」
→ SRAM
「DRAM」
→ リフレッシュ必要
「CPUと主記憶の速度差」
→ キャッシュメモリ
「キャッシュにデータがある」
→ ヒット
「1命令あたりの平均クロック数」
→ CPI
「1秒あたり何百万命令」
→ MIPS
⸻
45.計算問題で覚える公式
試験前にこの公式を整理しておきましょう。
クロックサイクル時間
1 ÷ クロック周波数
平均命令実行時間
CPI ÷ クロック周波数
CPU実行時間
命令数 × CPI ÷ クロック周波数
平均CPI
Σ(各命令のCPI × 実行割合)
命令実行速度
クロック周波数 ÷ CPI
MIPS
1秒あたりの命令数 ÷ 10⁶
キャッシュミス率
1−ヒット率
実効アクセス時間
問題文で定義されたアクセス手順に従って加重平均
ここは保存推奨です📌
⸻
46.よくある間違い① DRAMとSRAMが逆
これは非常にありがちなミスです。
正しくは、
DRAM
→ 主記憶
→ 安価・大容量
→ リフレッシュ必要
SRAM
→ キャッシュ
→ 高速・高価
→ リフレッシュ不要
です。
キャッシュ=SRAM
を軸に覚えると整理しやすいです。
⸻
47.よくある間違い② クロック周波数が高ければ必ず速い
クロック周波数は重要な指標ですが、
周波数だけでCPU全体の性能を単純比較できるわけではありません。
CPIやCPUアーキテクチャ、コア数、キャッシュなど、さまざまな要素が影響します。
試験でも、
クロック周波数だけを見るのではなく、問題で与えられた条件を使う
ことが大切です。
⸻
48.よくある間違い③ GHzとnsで混乱する
ここは、
周波数と時間は逆数
と覚えましょう。
1GHz → 1ns
2GHz → 0.5ns
4GHz → 0.25ns
周波数が高くなるほど、
1クロックに必要な時間は短くなる
ということです。
⸻
49.よくある間違い④ ヒット率90%ならミス率90%
違います。
ヒット率 + ミス率 = 100%
なので、
ヒット率90%なら、
ミス率10%
です。
計算するときは、
90% → 0.9
10% → 0.1
に直しましょう。
⸻
50.よくある間違い⑤ キャッシュと主記憶を逆にする
速度は基本的に、
キャッシュ > 主記憶
です。
容量は逆に、
主記憶 > キャッシュ
です。
つまり、
キャッシュ
→ 高速・小容量
主記憶
→ キャッシュより低速・大容量
です。
⸻
51.練習問題①
クロック周波数が、
4GHz
のCPUがあります。
1クロックの時間は?
公式は、
1 ÷ クロック周波数
なので、
1 ÷ (4×10⁹)
= 0.25×10⁻⁹秒
答えは、
0.25ns
です。
⸻
52.練習問題②
クロック周波数が、
2GHz
平均CPIが、
3
の場合、平均命令実行時間は?
3 ÷ (2×10⁹)
=
1.5×10⁻⁹秒
答えは、
1.5ns
です。
⸻
53.練習問題③
キャッシュアクセス時間が、
5ns
主記憶アクセス時間が、
50ns
ヒット率が、
80%
とします。
問題が単純な加重平均モデルなら、
5 × 0.8
+
50 × 0.2
=
4 + 10
= 14ns
答えは、
14ns
です。
ただし、先ほど説明したように、
キャッシュミス時に「5ns+50ns」とする問題なら計算方法が変わる
ので、必ず問題文を確認しましょう。
⸻
54.練習問題④
CPUが、
500MIPS
で動作するとします。
10億命令を処理する時間は?
500MIPSは、
5億命令/秒
です。
したがって、
10億 ÷ 5億
= 2秒
答えは、
2秒
です。
⸻
55.試験直前チェックリスト
次の10問を即答できるか確認してみましょう👇
① CPU内部の高速な記憶領域は?
→ レジスタ
② 次に実行する命令のアドレスを保持するのは?
→ プログラムカウンタ
③ 主記憶に使われる代表的なRAMは?
→ DRAM
④ キャッシュに使われる代表的なRAMは?
→ SRAM
⑤ リフレッシュが必要なのは?
→ DRAM
⑥ キャッシュに目的のデータが存在することは?
→ キャッシュヒット
⑦ 1命令あたりの平均クロック数は?
→ CPI
⑧ 1秒間に何百万命令処理できるかを表す指標は?
→ MIPS
⑨ 2GHzの1クロック時間は?
→ 0.5ns
⑩ CPUと主記憶の速度差を埋めるのは?
→ キャッシュメモリ
全部答えられれば、基本はかなり固まっています🔥
⸻
56.最後にこれだけ覚える
時間がない人は、この部分だけでもOK👇
CPU
命令を解読・実行するコンピュータの中心
レジスタ
CPU内部・超高速・小容量
キャッシュ
CPUと主記憶の速度差を埋める
SRAM
高速・キャッシュ・リフレッシュ不要
DRAM
主記憶・リフレッシュ必要
クロック
1秒間の動作タイミング
CPI
1命令あたりの平均クロック数
MIPS
1秒間に何百万命令実行できるか
そして速度のイメージは、

です。
⸻
まとめ
CPU・メモリ・キャッシュは、用語をバラバラに暗記すると混乱しやすい分野です。
まず、
CPUが命令を実行する
↓
必要な命令やデータを主記憶から取得する
↓
CPUと主記憶には速度差がある
↓
その速度差をキャッシュメモリで埋める
という流れで理解しましょう。
そして計算問題では、
クロック周波数
クロックサイクル時間
CPI
MIPS
ヒット率
実効アクセス時間
が重要です。
特に、
クロックサイクル時間
= 1 ÷ クロック周波数
CPU実行時間
= 命令数 × CPI ÷ クロック周波数
はすぐ使えるようにしておきたい公式です。
CPU・メモリは基本情報だけでなく、その先の応用情報技術者試験でも繰り返し登場します。
ここで仕組みから理解しておけば、今後の勉強がかなり楽になります🔥
⸻
📚 基本情報技術者試験を勉強している方へ
このnoteでは、
「基本情報の難しいテーマを、初学者でも分かるように整理する」
をテーマに、科目A・科目Bの頻出分野を解説しています。
今回のCPU・メモリ・キャッシュは、用語問題だけでなく計算問題でも得点したい重要テーマです。
特に、
DRAMとSRAM
クロック周波数
CPI
キャッシュの実効アクセス時間
は試験前にもう一度確認しておくのがおすすめです。
今後も、
論理演算・アルゴリズム・ネットワーク・データベース・セキュリティ・科目B対策
などを順番にまとめていきます。
これから基本情報を受ける方は、スキ・フォローしてもらえると嬉しいです🙌
試験前に見返せるよう、この記事もぜひ保存しておいてください📌
CPUの理解を、科目A全体の学習につなげたい方へ
この記事を読んだら、「レジスタ・キャッシュ・主記憶の役割」「CPIとクロック周波数の違い」「キャッシュミス時の時間をどう数えるか」を、説明を閉じて確認してみてください。計算で迷ったら、単位と問題文の条件を書き直してから、この記事の練習問題を解き直せます。
CPUだけでなく、ネットワーク・DB・セキュリティなども基礎から順に学び、科目Bのトレースまで進めたい方には、「基本情報|科目A・B 合格完全攻略講座」があります。全60回+別冊、買い切り14,800円。例題→自力演習→解説→復習の順で学ぶ講座です。CPUだけの追加教材ではなく、科目A・Bを通して学ぶための教材です。
無料の第02回で、CPU・メモリの説明と確認問題が自分に合うか確かめてください。学ぶ順番まで必要だと感じたら、講座の目次で、今の弱点に対応する回があるか確認できます。
基本情報講座の目次・収録内容を見る(有料講座・買い切り14,800円)
CPU分野だけを復習したい方は、この記事の無料解説と練習問題からで大丈夫です。すでに講座を購入済みの方は追加購入不要です。用語で迷った回へ戻り、解説を見ずに確認問題を解き直してご活用ください。