Quantative Approach コンピュータアーキテクチャ

Decrypt history, Encrypt future™

Quantative Approach コンピュータアーキテクチャ

コンピュータ・アーキテクチャの基本公式と経験則を、性能・電力・歩留まり・メモリ階層の観点から整理する。

基本公式(Computer Architecture Formulas)

1. CPU実行時間(CPU time)

[text{CPU time} = text{Instruction count} times text{CPI} times text{Clock cycle time}]
  • 意味: プログラムの実行時間を決定する3大要素を表す基本式です。
  • 構成要素:
    • Instruction count: 実行される命令数(アルゴリズムやコンパイラ、命令セットアーキテクチャに依存)
    • CPI(Clock cycles per instruction): 1命令を実行するのに必要な平均クロックサイクル数(CPUの内部構造・マイクロアーキテクチャに依存)
    • Clock cycle time: クロック周期(動作周波数の逆数 (1/text{Frequency})。半導体プロセスや回路設計に依存)
  • 要点: 性能向上のためには、命令数を減らす、CPIを下げる、クロック周波数を上げる(周期を短くする)のいずれかが必要ですが、これらはトレードオフの関係にあります。

2. 性能比の定義(X is (n) times faster than Y)

[n = frac{text{Execution time}_Y}{text{Execution time}_X} = frac{text{Performance}_X}{text{Performance}_Y}]
  • 意味: 「マシンXがマシンYより (n) 倍高速である」ことの定義です。
  • 要点: 性能(Performance)は実行時間(Execution time)の逆数です。実行時間が短いほど性能が高いため、時間の比率と性能の比率は分子・分母が逆になります。

3. アムダールの法則(Amdahl’s Law)

[text{Speedup}_{text{overall}} = frac{text{Execution time}_{text{old}}}{text{Execution time}_{text{new}}} = frac{1}{(1 – text{Fraction}_{text{enhanced}}) + frac{text{Fraction}_{text{enhanced}}}{text{Speedup}_{text{enhanced}}}}]
  • 意味: システムの一部を高速化した際に、システム全体で得られる性能向上の限界を示す法則です。
  • 構成要素:
    • (text{Fraction}_{text{enhanced}}): 改良が適用される部分の実行時間の割合((0 le text{Fraction} le 1))
    • (text{Speedup}_{text{enhanced}}): その改良部分自体の高速化率
  • 要点: 改良部分を無限大に高速化しても、全体の高速化率は (1 / (1 – text{Fraction}_{text{enhanced}})) で頭打ちになります。高速化したい部分が全体の実行時間に占める割合が小さければ、いくらそこを高速化しても全体の効果は限定的です。

4. 動的エネルギー(Dynamic Energy)

[text{Energy}_{text{dynamic}} propto frac{1}{2} times text{Capacitive load} times text{Voltage}^2]
  • 意味: CMOS回路において、トランジスタが0から1(または1から0)にスイッチングする1回あたりに消費されるエネルギーです。
  • 要点: 電源電圧(Voltage)の2乗に比例するため、動作電圧を少し下げるだけで消費エネルギーを大幅に削減できます。

5. 動的電力(Dynamic Power)

[text{Power}_{text{dynamic}} propto frac{1}{2} times text{Capacitive load} times text{Voltage}^2 times text{Frequency switched}]
  • 意味: 単位時間あたりに消費される動的電力(ワット)です。
  • 要点: 動的エネルギーに「スイッチング周波数」を掛けたものです。クロック周波数を高めると電力消費と発熱が線形に増大するため、周波数の引き上げによる性能向上に限界(電力の壁)が生じました。

6. 静的電力 / リーク電力(Static Power)

[text{Power}_{text{static}} propto text{Current}_{text{static}} times text{Voltage}]
  • 意味: トランジスタがスイッチング動作をしていなくても、微細化によってオフリーク電流(漏れ電流)が流れることで消費される電力です。
  • 要点: プロセスの微細化に伴い、待機電力・リーク電力の抑制がプロセッサ設計における大きな課題となっています。

7. 可用性(Availability)

[text{Availability} = frac{text{MTTF}}{text{MTTF} + text{MTTR}}]
  • 意味: システムが正常に利用可能である時間の割合(稼働率)を示します。
  • 構成要素:
    • MTTF(Mean Time To Fail): 平均故障時間(故障するまでに連続稼働する平均時間)
    • MTTR(Mean Time To Repair): 平均修復時間(故障してから復旧するまでにかかる平均時間)
  • 要点: 可用性を高めるには、故障しにくくする(MTTFを伸ばす)だけでなく、障害発生時に素早く復旧させる(MTTRを短くする)ことも同等に効果的です。

8. ダイ歩留まり(Die yield)

[text{Die yield} = text{Wafer yield} times frac{1}{(1 + text{Defects per unit area} times text{Die area})^N}]
  • 意味: シリコンウェハーから製造された半導体チップ(ダイ)のうち、欠陥がなく正常に動作する割合(Bose-Einsteinモデル)です。
  • 構成要素:
    • Wafer yield: ウェハー自体の歩留まり
    • Defects per unit area: 単位面積あたりの欠陥数
    • Die area: ダイの面積
    • (N): プロセスの複雑度係数(2011年時点では11.5〜15.5程度)
  • 要点: ダイ面積が大きくなると歩留まりは急激に低下します。近年のCPUが巨大な1チップを作らず、小さなダイに分割して配線する「チップレット構造」を採用する理論的根拠です。

9. 各種平均値(Means)

  • 算術平均(Arithmetic Mean: AM): (text{AM} = frac{1}{n} sum_{i=1}^n text{Time}_i)
    • 全てのベンチマークプログラムの実行時間を単純平均したもの。
  • 加重算術平均(Weighted Arithmetic Mean: WAM): (text{WAM} = sum_{i=1}^n text{Weight}_i times text{Time}_i)
    • 各プログラムの使用頻度や重要度(重み (text{Weight}_i))を考慮した平均実行時間。
  • 幾何平均(Geometric Mean: GM): (text{GM} = sqrt[n]{prod_{i=1}^n text{Time}_i})
    • 基準マシンに対する速度比(スピードアップ値)を平均化する際に使用されます。基準となるマシンを変えても評価結果の順序関係が狂わない特性を持っています。

10. 平均メモリアクセス時間(AMAT: Average Memory-Access Time)

[text{AMAT} = text{Hit time} + text{Miss rate} times text{Miss penalty}]
  • 意味: キャッシュ階層において、メモリ参照1回あたりに平均してどれだけの時間がかかるかを計算する式です。
  • 構成要素:
    • Hit time: キャッシュにデータがあった場合(ヒット時)のアクセス時間
    • Miss rate: キャッシュにデータがなかった割合(ミス率)
    • Miss penalty: ミスが発生した際に、下位メモリ(主記憶など)からデータを読み出す追加時間

11. 命令あたりのミス数(Misses per instruction)

[text{Misses per instruction} = text{Miss rate} times text{Memory access per instruction}]
  • 意味: 1命令の実行あたりに平均何回のキャッシュミスが発生するかを表します。
  • 要点: キャッシュミス率そのものだけでなく、「命令あたり何回のメモリアクセス(ロード/ストアや命令フェッチ)を行うか」を掛け合わせることで、プログラム全体の実行効率への影響を正確に評価します。

12. キャッシュのインデックスサイズ(Cache index size)

[2^{text{index}} = frac{text{Cache size}}{text{Block size} times text{Set associativity}}]
  • 意味: キャッシュのセット数(=インデックスビット数で指定できるエントリ数)を求める式です。
  • 要点: メモリアドレスは「タグ」「インデックス」「ブロック内オフセット」に分割されます。総キャッシュ容量を「ブロックサイズ × セット連想度(Way数)」で割ることで、キャッシュのセット数((2^{text{index}}))が得られ、インデックスに必要なビット幅が求まります。

13. 電力使用効率(PUE: Power Utilization Effectiveness)

[text{PUE} = frac{text{Total Facility Power}}{text{IT Equipment Power}}]
  • 意味: データセンター全体の電力効率を示す国際標準指標です。
  • 要点: 理想値は (1.0)(施設内の全電力がサーバ等のIT機器のみで消費され、冷却や照明のロスがゼロの状態)です。最新の大規模データセンターでは1.1〜1.2前後を目指して設計されます。

経験則(Rules of Thumb)

  1. アムダール / ケースの法則(Amdahl/Case Rule)
    • CPU性能1 MIPSあたり、約1 MBの主記憶容量と約1 MbpsのI/O帯域幅を用意するとバランスの良いシステムになるという設計指針(別名「1-1-1の法則」)。ジーン・アムダール(Gene Amdahl)とリチャード・ケース(Richard Case)がIBM System/360の設計現場などで導き出した経験則です。
    • 誤解しやすい点: これは「命令(instruction)自体のサイズを1 Mbpsにする」という意味ではありません。命令長は通常、1命令あたり16ビット、32ビット、64ビットなどの固定長または可変長で決まり、「1 Mbps」という速度の単位で定義されるものではありません。
    • 各要素の意味:
      • 1 MIPS(Million Instructions Per Second): CPUが1秒間に100万個の命令を実行する計算処理能力
      • 1 MB(Main Memory): 主記憶(RAM)の容量
      • 1 Mbps(I/O Bandwidth): ディスクやネットワークなどの外部入出力の転送速度(帯域幅)
    • マクロなデータ流動比率: 一般的なワークロードにおいて、CPUが命令を100万回(1 MIPS分)処理するあいだに、外部ストレージやネットワークとの間でやり取りされるデータ量は平均しておよそ1メガビット(約128キロバイト)発生する、という統計的な事実を指します。
    • 本質(ボトルネックを防ぐ): プロセッサ単体だけを強化しても意味がない、という警告です。
      • アンバランスな例: CPUだけを100 MIPSに強化したのに、I/O帯域が1 Mbpsのままだと、CPUは必要なデータを読み書きできずに処理の大部分を「I/O待ち」で浪費します。
      • バランスの取れた設計: CPUが100 MIPSなら、メモリは100 MB、I/O帯域も100 Mbpsを用意して初めて、プロセッサの性能を十分に引き出せます。
    • 要点: CPU性能(MIPS)を引き上げたなら、それに見合うだけのメモリ容量(MB)とI/O速度(Mbps)をセットで拡張しなければ、システム全体が詰まるというハードウェア構成の黄金比です。
  2. 90/10の局所性の法則(90/10 Locality Rule)
    • プログラムは、全体のわずか10%のコード領域で実行時間の約90%を費やすという経験則。ループ処理などのホットスポットの最適化やキャッシュの有効性を裏付ける根拠です。
  3. 帯域幅の法則(Bandwidth Rule)
    • 通信やメモリにおいて、帯域幅(スループット)の向上ペースは、レイテンシ(遅延)の短縮ペースの少なくとも2乗に比例して速く進化する(レイテンシの改善は物理法則の壁があり難しいが、帯域幅は並列化で広げやすいため)。
  4. 2:1 キャッシュの法則(2:1 Cache Rule)
    • 容量 (N) のダイレクトマップキャッシュのミス率は、容量が半分の (N/2) である2ウェイ・セットアソシアティブキャッシュのミス率とほぼ同等になるという経験則。連想度を上げると容量を削減できる効果を示しています。
  5. 信頼性の法則(Dependability Rule)
    • 単一障害点(Single Point of Failure: 1箇所壊れたら全体が停止する箇所)を作らない設計を徹底せよという原則。
  6. ワット・年則(Watt-Year Rule)
    • データセンターにおいて、電力代と冷却設備の償却費を含めると、1ワットの電力を1年間稼働させ続けるためのコストは約2ドル(2011年北米基準)になるというインフラ運用の見積もり基準。