最終更新日:2026年9月20日
fe fe-technology computer-architecture cpu performance
まず結論
CPUの処理時間を考えるときは、次の3つを分けて考えます。
クロック周期
→ 1クロックにかかる時間
CPI
→ 1命令を実行するのに必要な平均クロック数
CPU実行時間
→ 命令数 × CPI × クロック周期
基本情報技術者試験では、特に次の関係が重要です。
1命令の平均処理時間
= CPI × クロック周期
つまり、クロック周期が短くても、CPIが大きければ必ずしもCPU全体が速いとは限りません。
クロックだけで速さを決めず、CPIとセットで見る。
これが最初の判断基準です。
直感的な説明
CPUを、一定のテンポで作業する人にたとえてみます。
例えば、
1回の動作に1秒かかる
1つの仕事に4回の動作が必要
なら、
1秒 × 4回
= 4秒
で1つの仕事が終わります。
CPUでも同じように考えられます。
1クロックにかかる時間
×
1命令に必要なクロック数
↓
1命令にかかる平均時間
ここで、
- 1クロックにかかる時間がクロック周期
- 1命令に必要な平均クロック数がCPI
です。
例えば、
クロック周期:2ナノ秒
CPI:3
なら、
2ナノ秒 × 3
= 6ナノ秒
となり、1命令の平均処理時間は6ナノ秒です。
定義・仕組み
クロックとは
CPUは、一定の周期で発生するクロック信号に合わせて処理を進めます。
クロック
↓
カチ
↓
カチ
↓
カチ
この「カチ」1回分にかかる時間がクロック周期です。
例えば、
クロック周期 = 1ナノ秒
なら、1クロック進むのに1ナノ秒かかります。
クロック周波数との関係
クロック周期とクロック周波数は逆数の関係です。
クロック周波数
= 1 ÷ クロック周期
例えば、
クロック周期 = 1ns
↓
1秒間に10億回
↓
1GHz
です。
試験では、次のように切り分けます。
1クロックに何秒かかる?
→ クロック周期
1秒間に何クロック動く?
→ クロック周波数
CPIとは
CPIは Cycles Per Instruction の略で、1命令を実行するのに必要な平均クロック数を表します。
CPI = 1
→ 平均1クロックで1命令
CPI = 2
→ 平均2クロックで1命令
CPI = 0.5
→ 平均すると1クロックで2命令分を処理
実際には命令ごとに必要なクロック数が異なるため、問題では平均値としてCPIが与えられることがあります。
1命令の平均処理時間
1命令に必要な平均時間は、
CPI × クロック周期
で求められます。
例えば、
クロック周期:2ns
CPI:3
なら、
2ns × 3
= 6ns
です。
CPU実行時間
プログラム全体のCPU実行時間は、基本的に次の式で考えます。
CPU実行時間
= 命令数 × CPI × クロック周期
例えば、
命令数:1,000命令
CPI:2
クロック周期:1ns
なら、
1,000 × 2 × 1ns
= 2,000ns
です。
科目Aでどう出る?
FE科目Aでは、2台のコンピュータの処理時間を比較する問題として出ることがあります。
そのときは、いきなり全体の式を書くより、まず1命令あたりの平均時間を比較すると分かりやすいです。
判断手順
1. クロック周期を見る
2. CPIを見る
3. クロック周期 × CPI を計算
4. 1命令あたりの平均時間を比較
5. 同じ命令数なら、その比がそのまま実行時間の比
例えば、
CPU A
クロック周期:1ns
CPI:4
CPU B
クロック周期:4ns
CPI:0.5
なら、
A:1ns × 4 = 4ns
B:4ns × 0.5 = 2ns
です。
したがって、
A ÷ B
= 4 ÷ 2
= 2
となり、同じ命令数を実行するならAの処理時間はBの2倍です。
同じプログラムなら命令数は消せる?
問題文で、
- 同じ命令セット
- 同じプログラムを実行
などの条件があり、実行命令数が同じとみなせる場合は、比較するときに命令数は共通項として消せます。
CPU実行時間
= 命令数 × CPI × クロック周期
命令数が同じ
↓
CPI × クロック周期
だけ比較すればよい
これが計算を速くするポイントです。
どんな場面で使う?
CPIとクロック周期は、CPU性能を比較するときに使います。
例えば、
- CPU AとCPU Bのどちらが速いか
- クロック周波数を上げるとどの程度速くなるか
- 命令実行効率の違いが性能にどう影響するか
- 同じプログラムの実行時間を見積もる
といった場面です。
CPU性能は、クロック周波数だけで決まるものではありません。
クロックが速い
+
CPIが小さい
+
実行する命令数が少ない
↓
CPU実行時間を短くしやすい
という関係で考えます。
よくある誤解・混同
クロック周期が短ければ必ずCPUは速い?
必ずしもそうではありません。
クロック周期が短くても、1命令に多くのクロックが必要なら処理時間は長くなります。
クロック周期だけを見る
→ 不十分
クロック周期 × CPI
→ 1命令の平均処理時間
クロック周波数が高ければ必ず速い?
これも必ずとは限りません。
クロック周波数はCPU性能の重要な要素ですが、CPIや実行命令数も影響します。
CPU実行時間
= 命令数 × CPI × クロック周期
したがって、周波数だけを見て性能を断定しないようにします。
CPIが小さいほど良い?
同じ条件なら、CPIが小さいほど1命令あたりに必要なクロック数が少ないため、高速になりやすいです。
ただしCPU全体の性能比較では、クロック周期や命令数も合わせて考えます。
CPIが0.5というのはおかしくない?
おかしくありません。
CPIは平均値なので、
CPI = 0.5
→ 平均すると1クロックで2命令
という意味になります。
パイプライン処理や複数命令の並列実行があるCPUでは、平均CPIが1未満になることがあります。
クロック周期とクロック周波数を掛ける?
掛けません。
この2つは逆数の関係です。
クロック周期
= 1 ÷ クロック周波数
と整理します。
確認問題(基本情報技術者試験対策)
同じ命令数を実行するCPU AとCPU Bがある。
- CPU A:クロック周期 2ns、CPI 3
- CPU B:クロック周期 3ns、CPI 1
CPU Aの処理時間はCPU Bの何倍か。
▶ クリックして答えと解説を見る(ここを開く)
正解:2倍
1命令あたりの平均処理時間を比較します。
A:2ns × 3 = 6ns
B:3ns × 1 = 3ns
したがって、
6 ÷ 3 = 2
なので、CPU Aの処理時間はCPU Bの2倍です。
まとめ(試験直前用)
- クロック周期は、1クロックにかかる時間
- クロック周波数は、1秒間のクロック数
- CPIは、1命令に必要な平均クロック数
- 1命令の平均処理時間 = CPI × クロック周期
- CPU実行時間 = 命令数 × CPI × クロック周期
- 同じ命令数なら、CPI × クロック周期だけ比較すればよい
- 「クロックが速い=必ずCPUが速い」ではない
- CPIが0.5のように1未満になることもある
一言で覚えるなら、
1命令に何クロック必要か × 1クロックに何秒かかるか
です。