最終更新日:2026年8月4日
fe fe-technology computer-system
まず結論
MIPSとは、CPUが1秒間に何百万個の命令を実行できるかを表す指標です。
CPIは、1命令を実行するために必要なクロックサイクル数です。
基本情報技術者試験では、次の2パターンを切り分けます。
CPU性能を求める
→ 平均CPIを求める
→ クロック周波数 ÷ 平均CPI
→ 100万で割ってMIPS
命令列の実行時間を求める
→ 各命令のCPIを合計する
→ 1クロックの時間を掛ける
類題風の小さな例では、次のように計算できます。
平均クロック数 = 4 × 0.5 + 8 × 0.5 = 6クロック
600MHz ÷ 6 = 100,000,000命令/秒
100,000,000 ÷ 1,000,000 = 100MIPS
この例では、性能は100MIPSです。
直感的な説明
CPUは、クロックというリズムに合わせて処理を進めます。
600MHz の CPU なら、1秒間に
600,000,000 クロック
動けると考えます。
ただし、1命令を実行するのに、必ず1クロックで済むわけではありません。
命令A:4クロックかかる
命令B:8クロックかかる
この「1命令に何クロックかかるか」がCPIです。
MIPSを求めるときは、平均して1命令に何クロックかかるかを考えます。
命令列の実行時間を求めるときは、実行する命令のCPIを順番に足します。
命令
↓ CPI
必要クロック数
↓ 1クロックの時間
実行時間
定義・仕組み
MIPS は、Million Instructions Per Second の略です。
日本語では、1秒間に実行できる命令数を百万命令単位で表したものです。
CPI は、Cycles Per Instruction の略です。
CPI
= 1命令を実行するために必要なクロック数
MIPSを求める基本式は次です。
実行可能な命令数/秒 = クロック周波数 ÷ 1命令あたりの平均クロック数
MIPS = 実行可能な命令数/秒 ÷ 1,000,000
命令列の実行時間を求める場合
命令ごとのCPIと、1クロックの時間が与えられている場合は、次の式を使います。
命令列の実行時間
= 各命令のCPIの合計 × 1クロックの時間
例えば、次の命令列を考えます。
p → r → q → p → r → s
各命令のCPIが次のとおりだとします。
| 命令 | CPI |
|---|---|
| p | 5 |
| q | 3 |
| r | 4 |
| s | 7 |
まず、命令列全体に必要なクロック数を求めます。
5 + 4 + 3 + 5 + 4 + 7
= 28クロック
1クロックが12ナノ秒なら、実行時間は次です。
28クロック × 12ナノ秒/クロック
= 336ナノ秒
同じ命令が複数回登場する場合は、登場した回数だけ数えます。
p:2回
r:2回
q:1回
s:1回
命令の種類だけを一度ずつ数えるのではありません。
平均CPIを使う場合との違い
大量の命令を実行するときに、命令ごとの実行頻度が与えられる場合は、平均CPIを求めます。
平均CPI
= 各命令のCPI × 実行頻度 の合計
一方、命令列が具体的に示されている場合は、平均CPIを出さず、各命令のCPIを直接足す方が簡単です。
実行頻度が与えられる
→ 平均CPI
具体的な命令列が与えられる
→ CPIを順番に合計
類題風の例で確認
クロック周波数:600MHz
命令A:4クロック、実行頻度50%
命令B:8クロック、実行頻度50%
まず、平均クロック数を求めます。
4 × 0.5 + 8 × 0.5
= 2 + 4
= 6クロック
次に、1秒間に実行できる命令数を求めます。
600,000,000 ÷ 6 = 100,000,000命令/秒
最後にMIPSへ直します。
100,000,000 ÷ 1,000,000 = 100MIPS
公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、MIPSやCPIはCPU性能や命令実行時間の計算として出題されやすいです。
見るべきポイントは次の3つです。
- MIPSは1秒間の命令実行数を百万単位で表す
- 命令ごとのクロック数が違う場合は、平均CPIまたはCPIの合計を使う
- 問われているものが性能か実行時間かを先に確認する
試験中は、次の順番で考えると安定します。
MIPSを求める問題
1. GHz・MHzをクロック/秒に直す
2. 平均CPIを求める
3. クロック/秒 ÷ 平均CPI
4. 100万で割ってMIPSにする
命令列の実行時間を求める問題
1. 命令の実行順を確認する
2. 同じ命令も登場した回数だけ数える
3. 各命令のCPIを合計する
4. 1クロックの時間を掛ける
実行頻度が違う場合
単純平均ではなく、重み付き平均を使います。
平均クロック数
= 各命令のクロック数 × 実行頻度 の合計
例えば、4クロックの命令が80%、8クロックの命令が20%なら、
4 × 0.8 + 8 × 0.2
= 3.2 + 1.6
= 4.8クロック
となります。
クロック周波数とMIPSを同一視しない
600MHz
≠ 必ず600MIPS
1命令に複数クロックかかる場合があるためです。
どんな場面で使う?
MIPSは、CPUが一定時間にどれだけ多くの命令を処理できるかを比較するときに使います。
CPIは、CPUが命令を実行するために必要なクロック数を考えるときに使います。
ただし、異なる命令セットや異なる種類の処理では、1命令の内容が同じとは限りません。
そのため、MIPSが高いCPUが、どの処理でも必ず速いとは限りません。
FE試験では、現実のCPU比較の細かな限界よりも、次の計算関係を正しく読むことが中心です。
クロック周波数が高い
→ 使えるクロック数が多い
平均CPIが小さい
→ 1命令あたりの負担が小さい
CPIの合計が大きい
→ 命令列の実行時間が長くなる
よくある誤解・混同
MHzやGHzをそのままMIPSとする
誤りです。1命令に何クロックかかるかを考慮する必要があります。
実行頻度を無視する
| 間違い | 理由 |
|---|---|
| 最小CPIだけで考える | 他の命令も実行される |
| 最大CPIだけで考える | よく実行される命令の影響を無視している |
| 単純平均する | 実行頻度が異なる場合は重み付けが必要 |
| 100万で割らない | MIPSは百万命令単位 |
命令の種類だけを1回ずつ数える
命令列の実行時間を求めるときは、同じ命令でも実行された回数だけCPIを加えます。
p → r → p
なら、pのCPIは2回分必要です。
CPIの合計をそのまま実行時間とする
CPIの合計はクロック数です。
問題が時間を求めているなら、さらに1クロックの時間を掛けます。
クロック × ナノ秒/クロック
= ナノ秒
命令数にクロック時間を掛ける
1命令が1クロックとは限りません。
命令数
≠ 必要クロック数
CPIを確認してから計算します。
MIPSが高ければ、異なるCPU間でも必ず性能が高い
命令セットや処理内容が異なる場合、単純比較できないことがあります。
選択肢を切るときは、まず次を確認します。
何を求める問題か?
平均CPIか、CPIの合計か?
単位はMIPSか、秒か、ナノ秒か?
まとめ(試験直前用)
- MIPSは、1秒間に実行できる命令数を百万単位で表す指標
- CPIは、1命令を実行するために必要なクロック数
- 実行頻度が与えられたら、重み付き平均で平均CPIを求める
- 命令列が与えられたら、同じ命令も含めてCPIをすべて足す
- 命令列の実行時間は、CPIの合計に1クロックの時間を掛ける
- MHzやGHzをそのままMIPSとしてはいけない
CPU性能を求める
→ クロック周波数 ÷ 平均CPI
命令列の実行時間を求める
→ CPIの合計 × 1クロック時間