FE EXAM

MIPS(Million Instructions Per Second)

1秒間に実行できる命令数を百万単位で表す性能指標

INTERACTIVE VISUALIZATION
周波数
CPI
MIPS
周波数
2.00 GHz
CPI
2.0
MIPS = 周波数 / (CPI × 10⁶)
1000.0 MIPS
クロック周波数2.00 GHz
100 MHz5 GHz
CPI(1命令あたりのサイクル数)2.0
1.010.0
プリセット
= 1000.0 MIPS周波数を上げるか、CPIを下げるとMIPSは大きくなります。MIPSが大きいほど1秒あたりにこなせる命令数が多い=高速ですが、命令の「中身(重さ)」は無視されるので注意が必要です。
クロック周波数2,000,000,000 HzCPI × 10⁶2,000,000÷MIPS1000.0
MIPS = 周波数 ÷ (CPI × 10⁶)
     = 2,000,000,000 ÷ (2 × 1,000,000) = 1000.0 MIPS
※ 1秒あたり約 1,000,000,000 命令を実行
解説

📌
MIPSとは

1秒間に実行できる命令数(百万単位)1秒間命令×何百万例: 1000 MIPS= 10億命令/秒

MIPS(Million Instructions Per Second)とは、CPUが1秒間に実行できる命令の数を、百万(106)単位で表した性能指標です。「ミップス」と読みます。たとえば「100 MIPS」なら、1秒間に1億(100×100万)個の命令を処理できることを意味します。

身近な例で言うと、「工場が1秒間に作れる製品の個数」のようなものです。数が大きいほどたくさんさばける=速いCPU、というイメージです。命令の数が大きすぎて扱いにくいので、百万でまとめて数えているのがポイントです。

上のツールで周波数とCPIのスライダーを動かすと、MIPSがどう変化するかを確かめられます。周波数を上げる、またはCPIを下げると、MIPSが大きくなるのを観察してみてください。

📐
計算式と意味

MIPSはクロック周波数CPIから求めます。式は次のとおりです。

MIPS = 周波数(Hz) / (CPI × 10⁶)

式の意味を分解すると、こうなります。
周波数 ÷ CPI:1秒あたりに実行できる命令数(拍の数 ÷ 1命令あたりの拍数)
÷ 106:その値を「百万単位」に直す
・つまり「1秒に何拍打てるか」を「1命令に何拍必要か」で割れば命令数が出る、というだけの話です。

計算例: 2 GHz・CPI 2 の場合

周波数 = 2 GHz = 2,000,000,000 Hz
1秒の命令数 = 2,000,000,000 ÷ 2
            = 1,000,000,000 命令
MIPS = 1,000,000,000 ÷ 1,000,000
     = 1000 MIPS

「周波数とCPIからMIPSを求める」「MIPSと命令数から実行時間を求める」といった計算では、106 で割るのを忘れないのが間違いを防ぐコツです。

⚠️
性能指標としての限界

命令の「中身(重さ)」は数えない軽い命令ばかりMIPSは高い重い命令でも数だけ数える

MIPSは分かりやすい指標ですが、「命令の数」しか見ておらず、命令1つの仕事量(重さ)を無視しているという大きな弱点があります。

具体的には次のような問題があります。
命令の質の違いを無視:簡単な命令を大量に実行するCPUのほうがMIPSは高く出るが、実際の仕事が速いとは限らない
CPU間で命令体系が違う:CISCとRISCのように1命令の仕事量が違うCPU同士をMIPSで直接比べても公平でない
浮動小数点演算を反映しない:科学技術計算の速さは別指標(FLOPS)で見る必要がある

身近な例で言うと、「1時間に運んだ荷物の個数」だけで配送業者を比べるようなものです。小さな封筒ばかり大量に運ぶ業者は数では勝りますが、大きな家具を運ぶ業者のほうが仕事量は多いかもしれません。だからMIPSは「揶揄して Meaningless Indicator of Processor Speed(無意味な指標)」と呼ばれることもあります。

MIPSだけで性能を比較することはできません。実際の性能評価では、用途に近い処理を実行して測るベンチマークや、浮動小数点演算の速さを表すFLOPSなどを併用します。

関連コンテンツ