1秒間に実行できる命令数を百万単位で表す性能指標
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は分かりやすい指標ですが、「命令の数」しか見ておらず、命令1つの仕事量(重さ)を無視しているという大きな弱点があります。
具体的には次のような問題があります。
・命令の質の違いを無視:簡単な命令を大量に実行するCPUのほうがMIPSは高く出るが、実際の仕事が速いとは限らない
・CPU間で命令体系が違う:CISCとRISCのように1命令の仕事量が違うCPU同士をMIPSで直接比べても公平でない
・浮動小数点演算を反映しない:科学技術計算の速さは別指標(FLOPS)で見る必要がある
身近な例で言うと、「1時間に運んだ荷物の個数」だけで配送業者を比べるようなものです。小さな封筒ばかり大量に運ぶ業者は数では勝りますが、大きな家具を運ぶ業者のほうが仕事量は多いかもしれません。だからMIPSは「揶揄して Meaningless Indicator of Processor Speed(無意味な指標)」と呼ばれることもあります。
MIPSだけで性能を比較することはできません。実際の性能評価では、用途に近い処理を実行して測るベンチマークや、浮動小数点演算の速さを表すFLOPSなどを併用します。