教育・資格支援

【図解】MIPSとは?計算方法をCPI・クロック周波数から解説

結論:順にたどれば必ず解ける

MIPSとは、1秒間に実行できる命令数を100万命令単位で表した、CPUの処理性能の指標です。
出発点は「クロックサイクル時間 = 1 ÷ クロック周波数」という逆数の関係ひとつ。
ここにCPI(1命令あたりのクロック数)を掛ければ1命令の実行時間が出て、その逆数が1秒間の実行命令数になります。
最後に106で割ればMIPS。この流れと、命令ミックスの加重平均さえ押さえれば大丈夫です。

今回は、ITパスポートの上位問題と基本情報技術者試験(科目A)で定番中の定番である、「MIPS(CPU性能)の計算」を解説していきます。

「公式は覚えたのに、GHzとnsが出てきた瞬間に手が止まる」「命令ミックスの問題だけ毎回落とす」——この2つは本当に相談が多いです。

逆にいえば、「単位の扱いと加重平均」さえ理解すれば、ここは確実に点が取れる分野です。この記事には数値を入れるだけで答えが出る計算機も置いたので、読んだあとに自分で手を動かして確かめられます。

この記事でわかること

・MIPS・クロック周波数・サイクル時間・CPIの関係を図解で整理
・MIPSを求める公式3本と、計算を速くする書き換えのコツ
・GHz・MHz・ns・μsの換算(この分野の失点原因No.1)の攻略法
・命令ミックスから平均CPIを求める加重平均の手順
・単位を選んで入力できるMIPS計算機と、練習問題4問


1. MIPSとは?CPUの「速さ」を測るものさし


仕組み

MIPSとは、1秒間に実行できる命令の数を、100万命令を1単位として表したCPUの性能指標です。読み方は「ミップス」、Million Instructions Per Second の略になります。

つまり1 MIPS = 1秒間に100万命令(106命令)を実行できるということ。100 MIPSなら1秒間に1億命令です。

試験で「このCPUの処理性能は何MIPSか」と問われたら、1秒間に何命令こなせるかを求めて、最後に100万で割る——これがゴールだと思ってください。


講師視点|「百万単位」の変換を忘れるのが最初の関門

僕が初学者に説明する時は以下のような伝え方をしています。

ポイント

・MIPSの「M」はメガ(100万)。単位の中に「÷100万」が最初から入っている
・「5,000万命令/秒」は50 MIPS。ゼロを6個消してから答える
・答えの桁が3桁を大きく超えたら、たいてい106で割り忘れている

「1秒間の実行命令数を出したところで安心して、そのまま答えにしてしまう」というミスをする方が結構多い印象です。

5,000万命令/秒を「5000万MIPS」と書いてしまうパターンですね。MIPSは百万命令が1単位だと、計算の最後にもう一度思い出しておきましょう。


2. クロック周波数・サイクル時間・CPI・MIPSの関係【図解】

この分野で覚える用語は4つだけです。しかもバラバラではなく、1本の流れでつながっています。まず全体像を見てください。

表でも整理しておきます。

用語基本の単位意味求め方
クロック周波数Hz1秒間に刻むクロックの回数仕様として与えられる
クロックサイクル時間クロック1回分の時間1 ÷ クロック周波数(逆数)
CPI回(単位なし)1命令の実行に必要なクロック数与えられる/命令ミックスから算出
平均命令実行時間1命令にかかる時間CPI × クロックサイクル時間
MIPS百万命令/秒1秒間に実行できる命令数(百万単位)(1 ÷ 平均命令実行時間)÷ 106

流れとしてはクロック周波数 →(逆数)→ サイクル時間 →(×CPI)→ 平均命令実行時間 →(逆数)→ 1秒間の実行命令数 →(÷106)→ MIPS。この順番さえ頭に入っていれば、どこから問われても対応できます。

ここで大事なのは、周波数と時間は互いに逆数という一点だけ。GHzやnsといった単位はあくまで数字を読みやすくするための表記で、関係そのものは単位に左右されません。


3. MIPSの公式3本と裏技


覚えるべき公式は3本だけ

ポイント

① クロックサイクル時間[秒] = 1 ÷ クロック周波数[Hz]
② 平均命令実行時間[秒] = CPI × クロックサイクル時間[秒]
③ MIPS =(1 ÷ 平均命令実行時間[秒])÷ 106

この3本で、MIPSに関する問題はすべて解けます。計算はHzと秒で進めるのが基本で、GHzやnsは最後に読みやすく直すだけ、と考えてください。

③は「1秒間の実行命令数を出してから百万で割る」と読むと迷いません。平均命令実行時間が 2×10-9 秒(2ナノ秒)なら、

「1秒間の実行命令数」 = 1 ÷ (2×10-9) = 1 × 109 ÷ 2 = 5 × 108 命令/秒。

これを106で割って500 MIPS、という流れですね。


慣れてきたら|MHzで書くと割り算1回で済む

公式どおりでも解けますが、109や10-9を手で扱うと途中でズレやすいのも事実です。そこで、答えを速く出したいときや検算したいときのために、裏技的な色を2つ知っておくと便利です。

裏技

・周波数をMHz(106 Hz)で書くと … MIPS = 周波数[MHz] ÷ CPI
・平均命令実行時間をns(10-9秒)で書くと … MIPS = 1000 ÷ 実行時間[ns]

どちらも新しい公式ではなく、公式③を特定の単位で書き直しただけです。ただ、この式だと一発でMIPSが出せます。

理屈も確認しておきましょう。1秒間の実行命令数は f[Hz] ÷ CPI ですから、MIPS = f[Hz] ÷ CPI ÷ 106。ここで f[MHz] = f[Hz] ÷ 106 なので、MHzという単位が106の割り算をあらかじめ引き受けている、というだけの話です。nsの側も、10-9と106の差である103=1000が残っているだけですね。

本番では公式どおりに解いて、この書き換えで検算する。両方で同じ答えになれば安心です。余裕があれば・・・^^;


4. 単位の読み替え

正直なところ、この分野で点を落とす原因の第1位は公式忘れではなく単位の読み替えです。まず接頭語を整理しておきます。

接頭語記号倍率
キロk103=1,0001 kHz = 1,000 Hz
メガM106=100万1 MHz = 100万 Hz
ギガG109=10億1 GHz = 10億 Hz
ミリm10-31 ms = 0.001 秒
マイクロμ10-61 μs = 0.000001 秒
ナノn10-91 ns = 0.000000001 秒

そのうえで押さえておきたいのが、クロック周波数とクロックサイクル時間は逆数の関係だということです。代表的な組み合わせを並べておくので、換算の感覚をつかんでおいてください。

周波数が2倍になればサイクル時間は半分、周波数が半分になればサイクル時間は2倍。

周波数[Hz] × サイクル時間[秒] = 1になるので、換算した数値を掛けて1にならなければどこかで間違えている、と判定できます。


講師視点|まずHzと秒に直してから計算に入る

僕が初学者に説明する時は以下のような伝え方をしています。

ポイント

・問題文を読んだら、まず10nの形(2.5GHz = 2.5×109 Hz)に書き出す
・「GHz と ns」「MHz と μs」はセットの相棒(掛けると1になる組み合わせ)
・答えが1000倍・1000分の1ズレていたら、まず疑うのは単位

「GHzの数値をそのまま公式に入れてしまう」というミスをする方が結構多い印象です。

問題用紙の余白に「2.5GHz = 2.5×109 Hz」と書いてから解き始めるだけで、この事故はほぼ起きなくなります。指数の形にしておくと、途中の掛け算・割り算も指数の足し引きで済むので手も速くなりますよ。


5. 手順どおりに解く(2.5GHz・CPI 5の例)

では実際に、公式3本を順番に使って解いてみます。題材は「クロック周波数 2.5GHz、平均CPIが5のCPUの処理性能は何MIPSか」です。

手順やること計算結果
1周波数をHzに直す2.5 GHz = 2.5×109 Hz2.5×109 Hz
2サイクル時間(逆数)1 ÷ (2.5×109)4×10-10 秒(0.4 ns)
3平均命令実行時間5 × 4×10-102×10-9 秒(2 ns)
41秒間の実行命令数(逆数)1 ÷ (2×10-9)5×108 命令/秒
5百万単位に直す5×108 ÷ 106500 MIPS
裏技MHzでの書き換え形2,500[MHz] ÷ 5[CPI]500 MIPS ★一致

やっていることは「逆数 → ×CPI → 逆数 → ÷106の4動作だけです。指数のまま進めれば途中の桁も見失いません。


逆に問われるパターン(実行時間・命令数・必要性能)

MIPSは「求めさせられる」だけでなく、「与えられて別のものを求める」パターンも頻出です。3つまとめて押さえておきましょう。

問われ方公式答え
実行時間を求める実行時間[秒] = 命令数 ÷(MIPS × 106100 MIPSのCPUで1,000万命令を実行107 ÷ 108 = 0.1 秒
命令数を求める命令数 = MIPS × 106 × 実行時間[秒]50 MIPSのCPUが2秒で実行する命令数5×107 × 2 = 1億命令
必要な性能を求めるMIPS = 命令数 ÷ 実行時間[秒] ÷ 1063億命令を0.5秒で処理したい3×108 ÷ 0.5 ÷ 106 = 600 MIPS

3本とも「MIPS × 106 = 1秒間の実行命令数」という同じ関係を、どこを未知数にするかで並べ替えただけです。丸暗記せず、まず1秒間の実行命令数に直す、と考えると迷いません。


6. 命令ミックスから平均CPIを求める

実際のCPUは、命令の種類によって必要なクロック数が違います。そこで「どの命令がどのくらいの割合で使われるか」を示した命令ミックスから、平均CPIを求めさせる問題が出ます。ここが差のつくポイントです。


パターンA:命令ごとの「クロック数」が与えられる場合

例として、クロック周波数1GHz(=109 Hz)のCPUで、次の命令ミックスだとします。

命令の種類出現率実行クロック数寄与クロック数(出現率×クロック数)
転送命令40%20.8
演算命令30%41.2
分岐命令20%61.2
その他10%80.8
合計100%4.0 ← 平均CPI

平均CPIは4.0。1秒間に109回クロックが刻まれ、1命令に4クロック使うので、1秒間の実行命令数は 109 ÷ 4 = 2.5×108 命令/秒。これを106で割って250 MIPSです。サイクル時間は1ns、平均命令実行時間は4nsなので、書き換え形の 1000 ÷ 4 = 250 でも一致しますね。


パターンB:命令ごとの「実行時間」が与えられる場合

クロック数ではなく実行時間が与えられることもあります。この場合は平均命令実行時間を加重平均で出して、その逆数を取るだけです。

命令の種類出現率実行時間[ns]寄与時間[ns]
命令A50%84.0
命令B30%103.0
命令C20%153.0
合計100%10.0 ← 平均命令実行時間

平均命令実行時間は10ns = 10-8 秒。逆数を取ると 1 ÷ 10-8 = 108 命令/秒なので、100 MIPSです。1秒間に1億命令を実行できる計算になります。


講師視点|単純平均で出すと必ず間違える

僕が初学者に説明する時は以下のような伝え方をしています。

ポイント

・平均CPI = Σ(出現率 × クロック数)。これは加重平均
・計算前に「出現率の合計が100%か」を必ず確認する

「クロック数を全部足して種類の数で割ってしまう」という誤解をする方が結構多い印象です。上のパターンAなら (2+4+6+8) ÷ 4 = 5.0 として計算してしまうパターンですね。

実際の平均CPIは4.0ですから、出現率を掛けてから足す——この順番を守りましょう。しかも試験では、この単純平均で出した値がきっちり選択肢に用意されていることが多いです。


7. MIPS計算機|数値を変えて確かめてみよう

ここまでの内容を、実際に数字を動かして確かめられるツールを用意しました。クロック周波数は単位を選んで入力できます(Hz・kHz・MHz・GHz)。必要な入力は周波数とCPIの2つだけで、内部ではHzと秒に直して計算し、結果は読みやすい単位に自動で換算して表示します。

右側に計算式も出るので、どの値をどう使ったのかを確認しながら使ってください。

MIPS計算機
① 入力(数値を書き換えると即座に再計算されます)
② 計算結果
処理性能MIPS= 1秒間の実行命令数 ÷ 1,000,000
クロック周波数 Hz= 入力値をHzに換算
クロックサイクル時間 = 1 ÷ クロック周波数[Hz]
平均命令実行時間 = CPI × クロックサイクル時間
1秒間の実行命令数 命令/秒= 1 ÷ 平均命令実行時間
③ 必要性能の逆算(この時間内に終わらせたい場合)
命令
必要な処理性能 MIPS= 命令数 ÷ 実行時間[秒] ÷ 1,000,000
※ 入力欄が空欄・0・マイナスのときは「―」と表示されます。

ポイント

・初期値(1 GHz・CPI 4)なら250 MIPS。第6章のパターンAと同じ条件です
・単位をMHzに切り替えて1000と入れても結果は同じ。表記が変わっても中身は同じ周波数
・CPIを4→2に変えると500 MIPS。CPIが半分になれば性能は倍
・周波数2GHz・CPI 5にすると400 MIPS。練習問題①と同じ条件です

数値を動かしてみると、MIPSは周波数に比例し、CPIに反比例することが体感できると思います。この感覚があると、選択肢を見た瞬間に「桁がおかしい」と気づけるようになります。


8. 試験対策|練習問題で確認しよう

以下は、IPA試験の出題傾向を踏まえて作成したオリジナルの練習問題です(IPA公式の問題そのものではありません)。本番形式に慣れるための練習として活用してください。実際の問題はIPA公式サイトで公開されています。


練習問題①(基本情報レベル)

(問題) クロック周波数が2GHz、平均CPIが5のCPUがある。このCPUの処理性能は何MIPSか。

ア.0.4 MIPS イ.400 MIPS ウ.2,000 MIPS エ.400,000,000 MIPS

👉 正解を見る

正解:イ(400 MIPS)

解説:まず 2GHz = 2×109 Hz。サイクル時間は 1 ÷ (2×109) = 5×10-10 秒、平均命令実行時間は 5 × 5×10-10 = 2.5×10-9 秒です。その逆数が 4×108 命令/秒なので、106で割って400 MIPS。MHzで書き換えた 2,000 ÷ 5 = 400 でも一致します。アはGHzの数値のまま 2 ÷ 5 を計算して単位を直し忘れた値。ウはサイクル時間0.5nsを平均命令実行時間と取り違えた場合の値です。エは1秒間の実行命令数(4億命令/秒)を106で割り忘れた値で、典型的なひっかけになっています。


練習問題②(ITパスポートレベル)

(問題) 1命令あたりの平均実行時間が20ナノ秒のCPUがある。このCPUの処理性能は何MIPSか。

ア.0.05 MIPS イ.20 MIPS ウ.50 MIPS エ.500 MIPS

👉 正解を見る

正解:ウ(50 MIPS)

解説:20ナノ秒 = 2×10-8 秒。その逆数が 1 ÷ (2×10-8) = 5×107 = 5,000万命令/秒です。これを106で割って50 MIPS。アは秒とナノ秒の換算をせずに 1 ÷ 20 とした値、イは実行時間の数値をそのまま答えたもの、エは桁を1つ間違えた値です。


練習問題③(命令ミックス)

(問題) クロック周波数1GHzのCPUで、命令の出現率と実行クロック数が「転送命令 70%/4クロック、演算命令 20%/6クロック、分岐命令 10%/10クロック」であるとき、このCPUの処理性能は何MIPSか。

ア.150 MIPS イ.200 MIPS ウ.250 MIPS エ.1,000 MIPS

👉 正解を見る

正解:イ(200 MIPS)

解説:平均CPIは加重平均で求めます。0.7×4 = 2.8、0.2×6 = 1.2、0.1×10 = 1.0 で、合計 5.0 が平均CPIです。1GHz = 109 Hz なので、1秒間の実行命令数は 109 ÷ 5.0 = 2×108 命令/秒。106で割って200 MIPSです。アは単純平均 (4+6+10) ÷ 3 = 約6.67 で計算してしまった値で、この問題の本命のひっかけです。ウは出現率の最も高い転送命令の4クロックだけで計算した値、エはCPIを考慮せずクロック数をそのまま命令数として答えた値になります。


練習問題④(実行時間を求める)

(問題) 100 MIPSのCPUで、2,000万命令からなるプログラムを実行した。実行時間は何秒か。

ア.0.02秒 イ.0.2秒 ウ.2秒 エ.20秒

👉 正解を見る

正解:イ(0.2秒)

解説:100 MIPS = 1秒間に 100×106 = 1億命令(108命令/秒)。プログラムは 2,000万 = 2×107命令なので、2×107 ÷ 108 = 0.2秒です。ミリ秒に直すと200msですね。アとウは106と107の桁をずらして計算した値、エは命令数を2億命令と読み違えた場合の値です。「MIPS × 106 = 1秒間の実行命令数」に直してから割る、と手順を固定すると事故が減ります。


9. 実務ではどう使われている?

MIPSは試験専用の指標ではなく、現場でもざっくりした性能見積りに使われます。特に組込み分野では、「このマイコンで1秒間にこの処理が何回まわるか」を検討する段階で、クロック周波数とCPIから概算するのは今でも普通の作業です。

CPUを選定する前に机上で当たりを付けられるのが強みですね。

一方で注意点もあります。MIPSが数えているのは命令の個数だけで、1命令がどれだけの仕事をするかは考慮されません。ところが命令セットはCPUごとに違い、1命令で多くの処理をこなすCPUもあれば、同じ処理に何命令も要するCPUもあります。

そのため命令セットが異なるCPU同士は、MIPSの数値だけで「こちらが速い」と判断できません

実務の性能比較で、実際のプログラムを動かす実測ベンチマークが併用されるのはこのためです。

また、CPU単体のMIPSが高くてもメモリからデータが届かなければ性能は出ません。キャッシュの書き込み方式(ライトスルー/ライトバック)のような周辺の設計も、体感速度を大きく左右します。合わせて押さえておくと、CPU性能の話が立体的に見えてきます。


こちらもCHECK



【3分で理解】ライトスルーとライトバックの違いを初心者にもわかりやすく

続きを見る


10. まとめ|一言で覚えるポイント

ポイント

・クロックサイクル時間 = 1 ÷ クロック周波数(周波数と時間は互いに逆数)
・平均命令実行時間 = CPI × サイクル時間。その逆数が1秒間の実行命令数
・最後に106で割ればMIPS。命令ミックスは加重平均(単純平均は必ず選択肢に紛れている)

最後に、解いたあとの見直しで使えるチェックリストを置いておきます。

ポイント

・周波数をHz、時間を秒に直してから計算に入ったか
・命令ミックスを加重平均で計算したか
・最後に106で割って百万単位に直したか
・問われているのはMIPSか、実行時間か(設問の最後の一文を読み直す)

CPU性能の計算は、公式そのものより単位の扱いと加重平均で差がつく分野です。逆にいえば、この2つを潰しておけば毎回確実に得点できる「サービス問題」になります。応用情報以上を狙う方は、命令セットの違いでMIPSが比較指標として不十分になる点や、実測ベンチマークとの使い分けまで踏み込んでおくと安心です。

それではまた!

一人で悩まず、相談しながら合格を目指したい方へ

「計算問題になると急に手が止まる…」「単位換算のどこで間違えたのか自分では分からない…」
そんな方向けに、エンジニア歴20年・現役講師の僕が運営する無料LINEコミュニティを用意しています。資格学習のコツ・勉強法・キャリア相談まで、気軽に質問できる場所です。

▶ ITキャリアラボに参加する(無料)

ITキャリアラボ

【無料】ITの悩みを気軽に相談できるコミュニティ・ITキャリアラボ

続きを見る

  • LINE
    • この記事を書いた人
    • 最新記事

    ユウイチ

    20年間ソフトウェアエンジニアとして働いた後、フリーランスを経て現在は1人社長として活動。 プログラミング講師やIT教育を中心に活動しながら、趣味でゲーム開発やシナリオ作成にも挑戦中。どちらも「創ることを通じて人を笑顔にしたい」という想いから始めた、大切なライフワーク。 「創造と教育で、人生に迷う人の“自由な一歩”を支援」を理念に発信中。

    -教育・資格支援