Bulldozer (マイクロアーキテクチャ)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/01/30 01:32 UTC 版)
生産時期 | 2011年10月から |
---|---|
販売者 | AMD |
設計者 | AMD |
生産者 | GF |
プロセスルール | 32nm |
アーキテクチャ | x86 |
マイクロアーキテクチャ | Bulldozer |
命令セット | AMD64 |
コア数 |
4から16 (スレッド数:4から16) |
ソケット |
Socket AM3+ Socket C32 Socket G34 |
コードネーム |
Zambezi Zurich Valencia Interlagos |
前世代プロセッサ | K10 |
次世代プロセッサ | Piledriver |
L1キャッシュ |
コアあたりデータ16KB モジュールあたり命令64KB |
L2キャッシュ | モジュールあたり最大2MB |
L3キャッシュ | 最大16MB |
ブランド名 |
AMD FX Opteron |
Bulldozerマイクロアーキテクチャ(ブルドーザー マイクロアーキテクチャ)とは、アドバンスト・マイクロ・デバイセズによって開発されたマイクロプロセッサのマイクロアーキテクチャである。2011年10月12日に正式発表され、AMD FXプロセッサとして製品化された[1]。
Bulldozerは、K10マイクロアーキテクチャの次世代CPUコアに与えられたコードネームのひとつで、TDPは10Wから125Wを目標としていた。このアーキテクチャはゼロから完全に新しく作られた物で、AMDは、HPCアプリケーションに Bulldozerコアを用いる事で、1Wあたりの性能を劇的に向上させる事ができると主張している。
概要
AMDによると、BulldozerベースCPUはグローバルファウンドリーズ32nm SOIプロセス技術に基づき、マルチタスク性能のために賛否が分かれるDECのアプローチを再利用した。プレスノートによれば、「パフォーマンスをスケーリングするためにチップ上で簡単に複製できる非常にコンパクトで、ユニット数の多い設計を提供するためコンピューターリソースの専占と共有のバランスを取った」[2]。言い換えれば、マルチコア設計に自然に忍び寄る「冗長」要素のいくつかを排除することにより、AMDは、より少ない電力を使用しながらハードウェア機能をより有効に活用することを望んでいた。 HKMG(High-k/Metal Gate)を使用して32nmSOI上に構築されたBulldozerベースの実装は、サーバーとデスクトップの両方で2011年10月に到着した。サーバーセグメントにはコードネームInterlagos(Socket G34用16コア)デュアルチップとコードネームValencia(Socket C32用4、6、または8コア)シングルチップOpteronプロセッサが含まれていたが一方、Zambezi(4、6、および8コア)は、Socket AM3+のデスクトップを対象としていた[3][4]。BulldozerはAMDがK8プロセッサを発売した2003年以来AMDプロセッサアーキテクチャ初の主要な再設計であり、1つの256ビットFPUに組み合わせることができる2つの128ビットFMA対応FPUも備えている。この設計には、それぞれ4つのパイプラインを持つ2つの整数クラスターが付属している(フェッチ/デコードステージは共有される)。Bulldozerはまた、新しいアーキテクチャに共有L2キャッシュを導入した。 AMDはこの設計を「モジュール」と呼んでいる。 16コアプロセッサの設計では、これらの「モジュール」のうち8つを備えているが[5]、オペレーティングシステムは各「モジュール」を2つの論理コアとして認識する。 モジュラーアーキテクチャは、マルチスレッド対応共有L2キャッシュと同時マルチスレッディングを使用するFlexFPUで構成されている。 2つの仮想同時スレッドが単一の物理コアのリソースを共有するIntelのハイパースレッディングとは対照的に、各物理整数コアはモジュールごとに2つシングルスレッドである[6][7]。
特徴

2つの整数演算ユニット、1つのFPU、1つの命令デコーダ、1つのL2キャッシュなどからなるモジュール(Bulldozerコア)を基本単位として構成されるクラスタードアーキテクチャとなる[8]。命令キャッシュからデコーダまでのフロントエンドと、FPU及びL2キャッシュが2つの整数演算ユニットで共有されており、2つの整数演算ユニットと2つのL1データキャッシュのみがBulldozerコア毎(ごと)に独立している構造になっている。そのため、(整数のみ)完全なデュアルコアと(FPUとその他が)SMTと中間的な構造である。その他特徴的な点として、浮動小数点の積和算をサポートしている。1サイクルに従来命令換算で、4つの128ビット演算を行えるため、モジュール単位でPhenom II 1コアと比較して2倍のスループットを得られる。整数演算装置が2/3の性能で、IPCがK10より下がるため、クロックを上げて性能を補う、近年のAMDには珍しいスピードデーモン寄りのアーキテクチャとなり、K10と比べてクロックが25%ほど上昇している。
L2キャッシュは1モジュールにつき2MBとなる。デスクトップ向けの Zambezi は、L3は8MBで、メモリはDDR3-1866デュアルチャネルに対応する。
液体ヘリウムを使用したオーバークロックを行った結果、8.461GHzを達成し、ギネス世界記録となった[9][10]。
アーキテクチャの詳細
Bulldozerコア
Bulldozerはプロセッサのある一部は2つのスレッドの間で共有され、またある一部はスレッドごとに固有である技法、「クラスタード・マルチスレッディング(CMT)」を駆使する。型破りなマルチスレッディングへのそのようなアプローチの以前の例は、2005年のサン・マイクロシステムズのUltraSPARC T1プロセッサにまで遡ることができる。 ハードウェアの複雑さと機能性の観点から、ブルドーザーCMTモジュールは、整数演算能力においてデュアルコアプロセッサと、浮動小数点演算能力の点においては、同じCMTモジュールで実行されている両方のスレッドの浮動小数点命令でコードが飽和しているかどうかそして、FPUが128ビットまたは256ビットの浮動小数点演算を実行しているかどうかに応じて、シングルコアまたはハンディキャップのあるデュアルコアプロセッサのいずれかと同等である。この理由は、つまり同じモジュール内に、2つの整数コアごとに、128ビットFMAC実行ユニットの対からなる単一のFPUが存在するためである。
CMTは、ある意味でSMTと単純だが、類似した設計哲学である; どちらの設計も、実行ユニットを効率的に利用しようとする; どちらの方法でも、2つのスレッドが一部の実行パイプラインをめぐって競合すると、1つかそれ以上のスレッドのパフォーマンスが低下する。専用の整数コアにより、Bulldozerファミリーモジュールは完全に整数であるか、整数と浮動小数点の計算が混在するコードのセクションで、ほぼデュアルコアの、デュアルスレッドプロセッサのように動作した; ただし、SMTは共有浮動小数点パイプラインを使用するため、モジュールは、浮動小数点命令で飽和スレッドのペアについてシングルコアのデュアルスレッドSMTプロセッサ(SMT2)と同様に振る舞う(これらの最後の2つの比較はどちらもプロセッサがそれぞれ、整数単位と浮動小数点単位で、等幅で同等能力のある実行コアを持っていることを前提としている)。
CMTとSMTはどちらも整数と浮動小数点コードをスレッドのペアで実行しているときに最大の効果を発揮する。CMTは両方共に整数コードから成るスレッドのペアで作業している間、最高の効果を維持し、一方SMTの下では、整数実行ユニットの競合により一方または両方のスレッドのパフォーマンスが低下する。CMTの欠点はシングルスレッドの場合にアイドル状態の整数実行ユニットの数が増えることである。シングルスレッドの場合、CMTはモジュール内の整数実行ユニットの最大半分を使用するように制限されているが、SMTはそのような制限を課していない。2つのCMTコアと同じ幅で高速な整数回路を備えた大規模なSMTコアは、理論上、シングルスレッドの場合に瞬間的に最大2倍の整数パフォーマンスを発揮する(一般的なコード全体としてより現実的には、ポラックの法則は
この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。
- Bulldozer_(マイクロアーキテクチャ)のページへのリンク