MIPS・ns・GHzの計算をつなげて理解する
コンピュータの性能計算では、次の3つがよく出てきます。
MIPS
1秒間に何百万命令を実行できるか
平均命令実行時間
1命令を実行するのに平均何秒かかるか
クロック周波数
1秒間に何回クロックが動くか
この3つは、別々に覚えるよりも、
1秒間に何命令できるか
という考え方でつなげると理解しやすくなります。
まず覚える単位
計算に入る前に、単位をそろえます。
1秒 = 1,000,000,000ナノ秒
1ナノ秒 = 10^-9秒
1マイクロ秒 = 1,000ナノ秒
1マイクロ秒 = 10^-6秒
1GHz = 1,000,000,000Hz
1GHz = 10^9Hz
MIPSは、
Million Instructions Per Second
の略です。
つまり、
1 MIPS = 1秒間に100万命令
です。

問題1
平均命令実行時間が20ナノ秒のコンピュータがある。
このコンピュータの性能は何MIPSか。
ア 5
イ 10
ウ 20
エ 50
問題1の考え方
平均命令実行時間が20ナノ秒ということは、
1命令に20ナノ秒かかる
という意味です。
MIPSを求めるには、
1秒間に何命令できるか
を考えます。
20ナノ秒を秒に直す
20ナノ秒 = 20 × 10^-9秒
つまり、
1命令 = 20 × 10^-9秒
です。
1秒間に実行できる命令数を求める
1命令に20ナノ秒かかるので、1秒間にできる命令数は、
1 ÷ (20 × 10^-9)
です。
計算すると、
1 ÷ 0.000000020 = 50,000,000
つまり、
1秒間に50,000,000命令
実行できます。
MIPSに直す
MIPSは「100万命令単位」です。
50,000,000命令 ÷ 1,000,000 = 50
したがって、
50 MIPS
です。
答えは、
エ 50
問題1のまとめ
20ナノ秒で1命令
↓
1秒間では50,000,000命令
↓
50,000,000命令 = 50MIPS
ポイントは、
ナノ秒を秒に直す
MIPSは100万命令単位に直す
ことです。
問題2
50MIPSのプロセッサの平均命令実行時間は幾らか。
ア 20ナノ秒
イ 50ナノ秒
ウ 2マイクロ秒
エ 5マイクロ秒
問題2の考え方
今度は、問題1の逆です。
50MIPSとは、
1秒間に50百万命令
という意味です。
つまり、
1秒間に50,000,000命令
実行できるプロセッサです。
1命令あたりの時間を求める
1秒間に50,000,000命令できるので、1命令あたりの時間は、
1秒 ÷ 50,000,000命令
です。
1 ÷ 50,000,000 = 0.000000020秒
これは、
20 × 10^-9秒
です。
秒をナノ秒に直す
1ナノ秒 = 10^-9秒
なので、
20 × 10^-9秒 = 20ナノ秒
したがって答えは、
ア 20ナノ秒
です。
問題2のまとめ
50MIPS
↓
1秒間に50,000,000命令
↓
1命令の時間 = 1 ÷ 50,000,000秒
↓
20ナノ秒
問題1と問題2は、表裏の関係です。
平均命令実行時間 → MIPS
MIPS → 平均命令実行時間
を行ったり来たりしているだけです。
問題3
1GHzのクロックで動作するCPUがある。
このCPUは、機械語の1命令を平均0.8クロックで実行できることが分かっている。
このCPUは1秒間に平均何万命令を実行できるか。
ア 125
イ 250
ウ 80,000
エ 125,000
問題3の考え方
この問題では、MIPSではなく、
1秒間に平均何万命令か
を聞かれています。
使う情報は2つです。
クロック周波数:1GHz
1命令に必要なクロック数:0.8クロック
1GHzをクロック数に直す
1GHzは、
1秒間に1,000,000,000クロック
という意味です。
つまり、
1GHz = 10億クロック/秒
です。
1命令に0.8クロックかかる
問題文には、
1命令を平均0.8クロックで実行できる
とあります。
つまり、
0.8クロックで1命令
です。
では、1秒間に10億クロックあるなら、命令数はどう求めるでしょうか。
1秒間のクロック数 ÷ 1命令に必要なクロック数
です。
命令数を求める
1,000,000,000 ÷ 0.8
を計算します。
1,000,000,000 ÷ 0.8 = 1,250,000,000
つまり、
1秒間に1,250,000,000命令
実行できます。
「何万命令」に直す
問題は「何命令」ではなく、
何万命令
と聞いています。
1万命令は、
10,000命令
です。
したがって、
1,250,000,000 ÷ 10,000 = 125,000
よって答えは、
エ 125,000
です。
問題3のまとめ
1GHz = 1秒間に1,000,000,000クロック
↓
1命令に0.8クロック必要
↓
1,000,000,000 ÷ 0.8 = 1,250,000,000命令
↓
「万命令」に直す
↓
1,250,000,000 ÷ 10,000 = 125,000万命令
0.8クロックで1命令という表現について
初学者が引っかかりやすいのが、
1命令が0.8クロック?
1クロックより短いの?
という点です。
これは、1つ1つの命令が必ず0.8クロックで終わるというより、
平均すると、1命令あたり0.8クロックで処理できる
という意味で考えます。
CPUでは、パイプライン処理などによって、複数の命令を流れ作業のように処理できます。
そのため、平均値としては、
1命令あたり1クロック未満
という表現が出てくることがあります。
基本情報技術者試験では、深く悩みすぎず、
1秒間のクロック数 ÷ 1命令に必要なクロック数
で計算すれば大丈夫です。
3問をまとめて整理
問題1
20ナノ秒で1命令
→ 1秒間に50,000,000命令
→ 50MIPS
問題2
50MIPS
→ 1秒間に50,000,000命令
→ 1命令は20ナノ秒
問題3
1GHz = 1秒間に1,000,000,000クロック
1命令 = 0.8クロック
→ 1,000,000,000 ÷ 0.8
→ 1,250,000,000命令
→ 125,000万命令
試験での解き方のコツ
この分野では、公式を丸暗記するよりも、次の順番で考えると安定します。
1. 問題が聞いている単位を確認する
2. 秒・ナノ秒・GHzなどの単位をそろえる
3. 1秒間に何命令できるかを考える
4. MIPSや万命令など、指定された単位に直す
特に大事なのは、
MIPSは100万命令単位
万命令は10,000命令単位
GHzは1秒間のクロック数
ナノ秒は10^-9秒
です。
まとめ
問題1から3は、すべて
1秒間にどれだけ処理できるか
を考える問題です。
それぞれ見た目は違いますが、本質は同じです。
時間が分かる → 1秒 ÷ 1命令の時間
MIPSが分かる → 1秒間の命令数から1命令の時間を出す
クロックが分かる → クロック数 ÷ 1命令に必要なクロック数
この流れで整理すれば、MIPS・ナノ秒・GHzが混ざっても落ち着いて解けます。











ディスカッション
コメント一覧
まだ、コメントがありません