コンピュータの設計 / 03.2
CPU 性能評価
「速い CPU」とはどういう意味か。クロック周波数だけが性能ではない——命令数・CPI・アムダールの法則で、性能を数字で捉える。
所要:25–35分
難易度:★★☆
前提:アーキテクチャ入門
01
CPU 性能の基本式
プログラムの実行時間は、独立した3つの要素の掛け算で決まる。
どれか1つを見ただけでは「速い」とは言えない、というのがこの章の出発点である。
IC
命令数(Instruction Count)
プログラムの実行に必要な命令の総数。アルゴリズムの効率と ISA(命令セット)で決まる。同じ計算でも RISC と CISC では IC が違う。
依存:プログラム × ISA
CPI
クロック/命令(Clocks Per Instruction)
1命令の実行に必要なクロック数の平均。パイプライン設計・キャッシュミス・ハザードで変わる。理想的なパイプラインなら CPI ≈ 1。
依存:CPU 実装 × プログラム
tclk
クロック周期(Clock Cycle Time)
1クロックの長さ(秒)。周波数 f の逆数 t = 1/f で、半導体プロセスで決まる。3 GHz なら t = 0.333 ns(333 ps)。
依存:ハードウェア技術
3つはトレードオフの関係にある:
クロック周波数を上げると消費電力が増えて発熱し、かえって CPI が悪化することがある。
IC を減らそうと複雑な命令を足せば(CISC 化)CPI が増える。
だから1つの指標だけで CPU の性能は評価できない。
02
クロック周波数を体感する
「3 GHz」がどれくらいの速さなのか、数字だけではピンと来ない。スライダーを動かしてみてください。
1サイクル = 1マス(10 ns に 30 サイクル)
右端の数字に注目してください。3 GHz では1クロックのあいだに光でも 10 cm しか進めない。
CPU の端から端まで信号を届けるのがやっとの距離である。周波数を上げにくい理由の1つがここにある。
03
性能計算機
T = IC × CPI / f を実際に計算してみましょう。3つのうちどれを改善すると一番効くのかが、下の比較で分かる。
CPU 実行時間 T = IC × CPI / f
666.667 ms
04
アムダールの法則
「コアを増やせば速くなる」——どこまで本当でしょうか。並列化の効果には、必ず数式で決まる上限がある。
アムダールの壁:
並列化できない部分(1−P)が残る限り、プロセッサをいくら増やしても高速化には上限がある。
P = 90% でも、N を無限に増やして最大 10倍 どまり。残り 10% の逐次部分がボトルネックになるからである。
スライダーで P を 50% にして N を 64 まで上げてみてください——ほとんど伸びない。
05
ベンチマークと現代の壁
実際の CPU の性能は、代表的なプログラムを走らせて測る。そして 2000 年代半ば以降、性能向上の仕方そのものが変わった。
主なベンチマーク
SPEC CPUシングルスレッドの整数・浮動小数点演算性能。CPU の純粋な処理能力を測る業界標準。
LINPACK線形代数(行列演算)の浮動小数点性能。スパコン TOP500 の指標(FLOPS)。
Cinebench3D レンダリングによるマルチコア性能評価。シングル・マルチの両方を測定。
MLPerfAI・機械学習の推論/学習速度。GPU・NPU の評価に使われる新しいベンチマーク。
性能向上の3つの壁
電力の壁(Power Wall)
クロック周波数を上げると消費電力が急増する。2004年頃に限界を迎え、以後マルチコア化へ方針転換した。
メモリの壁(Memory Wall)
CPU の演算速度とメモリ帯域幅の差が開き続け、処理の多くがメモリ待ちになる。次章の主題。
ムーアの法則の鈍化
トランジスタ数が倍増するペースが落ちてきた。チップレットや3D 積層で対応が進む。
35年ぶんの実機を並べると、「壁」がどこで効いたかが読み取れる。
周波数が 2000 年で頭打ちになり、代わりにコア数が伸びていることに注目してください。
| CPU / 世代 | 周波数 | コア数 | プロセス | TDP | 特記 |
| Intel 486 (1989) | 25–100 MHz | 1 | 1 µm | 5 W | 初期 x86 |
| Intel Pentium 4 (2000) | 1.5–3.8 GHz | 1 | 180 nm | 115 W | GHz 競争の頂点 |
| Intel Core 2 Duo (2006) | 1.8–3.0 GHz | 2 | 65 nm | 65 W | マルチコア時代へ |
| Apple M1 (2020) | 3.2 GHz | 8 (4P+4E) | 5 nm | 15 W | RISC(ARM)の逆襲 |
| AMD Ryzen 9 9950X (2024) | 4.3–5.7 GHz | 16 | 4 nm | 170 W | 現行ハイエンド x86 |
Pentium 4(2000年)と Apple M1(2020年)を見比べてください。周波数はほぼ同じなのに、
M1 は 8 コアを 15 W で動かしている(P4 は 1 コアで 115 W)。
性能の伸びが「周波数」から「並列度と電力効率」へ移ったことが、この表1つで分かる。