Bulldozer (マイクロアーキテクチャ)
Bulldozer (ブルドーザー) とは、アドバンスト・マイクロ・デバイセズ(以下AMDと略)のx86系、AMD64実装のマイクロプロセッサアーキテクチャである。AMDのCPUのFXに採用されている。
Bulldozer は、K10マイクロアーキテクチャの次世代CPUコアに与えられたコードネームのひとつで、TDPは10Wから125Wを目標としている。 このアーキテクチャはゼロから完全に新しく作られた物で、AMD は、HPCアプリケーションに Bulldozer コアを用いる事で、1Wあたりの性能を劇的に向上させる事ができると主張している。
目次 |
概要 [編集]
二つのコア、FPU、命令デコーダ、L2キャッシュなどからなるモジュール(Bulldozer モジュール)を基本単位として構成されるクラスタードアーキテクチャとなる。 命令キャッシュからデコーダまでのフロントエンドと、浮動小数点数演算ユニット及びL2キャッシュが二つのコアで共有されており、整数演算ユニットとL1データキャッシュのみがコアごとに独立している構造になっている。 そのため、完全なデュアルコアとSMTとの中間的な構造である。 その他、特徴的な点として、浮動小数点の積和算をサポートしている。1サイクルに従来命令換算で、4つの128ビット演算を行えるため、モジュール単位でPhenom II 1コアと比較して2倍のスループットを得られる。 整数演算ユニットが2/3の性能で、IPC(Instructions Per Clock)がK10アーキテクチャより下がるため、クロックを上げて性能を補う、近年のAMDには珍しいスピードデーモン寄りのアーキテクチャとなり、K10と比べてクロックが25%ほど上昇している。
液体ヘリウムを使用したオーバークロックを行った結果、8.461GHzを達成し、ギネスレコードとなった。
製造技術 [編集]
32nm HKMG (High-k/Metal Gate) SOIプロセスで製造される。
性能 [編集]
L2キャッシュは2コア(1モジュール)につき2MBとなる。デスクトップPC向けの Zambezi は、L3は8MBで、メモリはDDR3-1866デュアルチャネルに対応する。
OSの対応 [編集]
旧来のどのアーキテクチャとも異なる構成なのでIntel HTTの時と同じようにOSスケジューラの対応が必要となる場合がある。
Windows [編集]
Windowsのスケジューラは空いているコアに対してスレッドを割り振るが、対策前のWindowsでは「Bulldozer Module」の特性(フロントエンドや浮動小数点数演算ユニットの共有)を考慮していないため、同一モジュール内かどうかを考慮せずにスレッドを割り振る。このために空いているモジュールがあるにもかかわらず、同一モジュールにスレッドを割り振ってフロントエンドや浮動小数点数演算ユニットがボトルネックになり性能低下が起こる事があった。
2012年1月、マイクロソフトは、KB2645594とKB264606」のパッチを公開しこの問題に対応した。KB2645594はBulldozer Module1基を物理1コア論理2コアと見立てるように修正するパッチで、KB2646060はKB2645594の副作用でBulldozer Moduleが頻繁にC6ステートに入ってしまい,結果,マルチスレッド化があまり進んでいない環境で性能が低下する問題を修正するパッチである。
このパッチ群により性能低下への対応は行われたが、対策後のWindowsからは 物理コア数=Bulldozer Module数のSMTタイプCPUとして扱われるため、本来の性能を発揮しているかどうかは未知数である。
AMDはWindows 8でBulldozerアーキテクチャへの最適化がなされるようマイクロソフトと協力しているという。
Linux [編集]
1モジュールあたり1コア2スレッドのSMTプロセッサとして扱われる。
参考資料 [編集]
- 後藤弘茂のWeekly海外ニュースついにベールを脱いだAMDの「Bulldozer」と「Bobcat」
- 適用で8コアのAMD FXが「4コア」に!? Microsoftの「Bulldozerアーキテクチャ最適化パッチ」を試す
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||