# メモリウォール・電力の壁・ILP の壁 現代プロセッサの性能向上を制限する**3 つの根本的な壁**。どれも「やればやるほど逓減する」という性質を持ち、アーキテクチャ設計のトレードオフの核心にある。 --- ## 1. メモリウォール(Memory Wall) プロセッサのクロックが高速化するほど、相対的に**主記憶(DRAM)アクセスのレイテンシが長く**なる問題。 ### 実際の数字(DDR5-6400 + 4 GHz CPU) ``` アドレス送信: 1 バス周期 RAS-to-CAS 遅延: 30 バス周期 CAS レイテンシ: 30 バス周期 データ返送: 1 バス周期 CPU 内部処理: ~30 CPU クロック 合計: (1+30+30+1) × (4000 MHz/3200 MHz) + 30 ≒ 108 CPU クロック ``` **6 GHz** のプロセッサでは **147 クロック**以上になる。コンシューマ向け低速メモリでは **200 クロック超** もあり得る。 ### なぜ解消が難しいか - 光速の制限: 信号の往復距離は物理的に縮められない。 - DRAM の構造: セル内の微小コンデンサの充放電速度に物理的上限がある。 - 帯域 vs レイテンシの分離: バス幅を増やしても往復時間(レイテンシ)は下がらない。 ### SDRAM のパイプライン化 非同期 DRAM から SDRAM への移行で、複数のメモリアクセスをパイプライン化できるようになり**実効帯域**が 2〜3 倍向上。レイテンシは微減にとどまったが帯域向上でスループットが改善。 ### 帯域 vs レイテンシ - **帯域向上**: バス幅拡大・デュアル/クアッドチャネル → 画像処理・科学計算向け。 - **レイテンシ改善**: 困難。「金で神を買収できない(you can't bribe god)」。 - キャッシュ階層・3D V-Cache・HBM が実用的な対策。 --- ## 2. 電力の壁(Power Wall) クロック周波数を上げると消費電力が**超線形に増加**する問題。 ``` 消費電力 ∝ f × V² (f = 周波数、V = 電圧) ``` - クロック 30% 増 → 消費電力が約 2 倍になりうる(トリプルワーミー: 切り替えが増え + 電圧も上げ + 漏れ電流も増える)。 - 漏れ電流: オフ状態でも電流は完全にゼロにならず、温度が上がると漏れも増える(正帰還)。 ### 電力の壁の実際の天井 | 用途 | 電力上限の目安 | |---|---| | デスクトップ / サーバー | 150〜200 W | | プロ向けラップトップ | ~50 W | | 薄型ラップトップ | ~15 W | | タブレット | ~10 W | | スマートフォン | < 5 W | Pentium 4(31 段パイプライン・3.8 GHz)は電力の壁に激突した代表例。Athlon 64(2+ GHz)は低クロックながら高 IPC で Pentium 4 を超えた。→ [[Brainiac設計]] --- ## 3. ILP の壁(ILP Wall) OOO スーパースカラーがいくら賢くても、実アプリには**十分な命令レベル並列性が存在しない**という限界。 - 4-issue スーパースカラーには毎サイクル 4 つの独立命令が必要。 - 実際: L1 キャッシュのロードレイテンシ(3〜5 クロック)だけでほとんどの ILP を消費する。 - SPECint の平均 IPC: **2 未満**(ベンチマーク向けに最適化されたコードでも)。 - OOO による向上幅: インオーダーに対し **20〜40%** 程度(期待より低い)。 「ポインタチェーシング」コードでは、データ依存のロードが連鎖するため 1 IPC を維持することさえ困難。 ### 投機実行の無駄というエネルギーコスト([[@2019__CACM__A New Golden Age for Computer Architecture]]) ILP の壁を追求する投機実行(分岐予測に基づく先行実行)自体が、ミス時にエネルギーを浪費する構造的な弱点を持つ。15段パイプライン・4命令発行の現代的コアでは、パイプライン内に常時最大60命令(うち約15分岐、実行命令の約25%)が存在する。Intel Core i7 上の SPEC integer ベンチマーク群の測定では、平均で**19%**の命令が投機ミスにより無駄になる(個別ベンチマークでは最大39%程度に達する)。分岐予測が完璧なら投機はエネルギーコストをほぼ生まないが、ミス時には誤投機命令とプロセッサ内部状態の復元にエネルギーを浪費する。無駄を10%に抑えるには各分岐を**99.3%**の精度で予測する必要があり、汎用プログラムでそこまでの予測精度を持つ分岐は少ないと指摘される。 --- ## 3 つの壁の相互関係 ``` 高クロック追求 → 電力の壁 ↓ ILP 追求 → ILP の壁 ↓ メモリアクセス → メモリの壁 ``` 現在のアーキテクチャトレンドはこれら 3 つへの**総合的な対応**: | 対策 | ターゲットとする壁 | |---|---| | 非対称マルチコア(big.LITTLE) | 電力の壁・ILP の壁 | | 大容量 LLC・3D V-Cache | メモリの壁 | | HBM・広帯域メモリ | メモリの壁(帯域) | | SIMD ベクトル化 | ILP の壁(DLP で補完) | | SMT | ILP の壁(TLP で補完) | | チップレット | 電力の壁・製造歩留まり | --- ## 横断的知見 - Modern Microprocessors ガイドは「電力の壁」を f×V²の式で定性的に説明するが、[[@2019__CACM__A New Golden Age for Computer Architecture]] は同じ電力問題を Dennard スケーリングの終焉という半導体物理レベルの原因(単位面積あたり消費電力が2007年頃から上昇に転じた実測データ)まで遡って定量的に裏付ける。両ソースを合わせると、「クロック追求 → 電力の壁」という因果の川上に Dennard スケーリングの終焉があることが分かる(Source: [[Modern-Microprocessors-A-90-Minute-Guide|Modern Microprocessors: A 90-Minute Guide]], [[@2019__CACM__A New Golden Age for Computer Architecture]])。 - ILP の壁について、Modern Microprocessors ガイドは SPECint の平均 IPC が2未満・OOO による向上幅が20〜40%程度と報告するのに対し、[[@2019__CACM__A New Golden Age for Computer Architecture]] は同じ ILP 追求の限界を「投機ミスによる無駄命令19%」という異なる角度(実行はしたが無駄になった命令の割合)から定量化しており、ILP の壁が単に並列度不足だけでなく投機の誤りによるエネルギー浪費という側面も持つことを補強する(Source: [[Modern-Microprocessors-A-90-Minute-Guide|Modern Microprocessors: A 90-Minute Guide]], [[@2019__CACM__A New Golden Age for Computer Architecture]])。 ## 未解決の問い - Dennard スケーリング終焉後、電力の壁への対策として両ソースが挙げる非対称マルチコア・DSA・チップレットは、それぞれどの壁(電力・ILP・メモリ)にどの程度の改善効果を持つか定量的に比較できるか。→ [[ムーアの法則とデナードスケーリングの終焉]]、[[ドメイン固有アーキテクチャ]] ## 関連 - キャッシュによる対策 → [[メモリ階層とキャッシュ]] - ILP・TLP の基礎 → [[Brainiac設計]]、[[同時マルチスレッディング]] - 先進パッケージング → [[チップレット]] - 電力の壁の物理的根本原因 → [[ムーアの法則とデナードスケーリングの終焉]] - 壁への対処としての DSA → [[ドメイン固有アーキテクチャ]]