14
Zenのすべて:AMDがHotChipsで新しいマイクロアーキテクチャを発表

AMDはIDF開催中のオフサイト会場でZenマイクロアーキテクチャとBristol Ridge CPUを披露したが、そのタイミングは絶妙で、Intelの発表会でその輝きを少しばかり奪うことができた。AMDは最新チップの詳細を明かしたものの、その成果は大まかな説明にとどめた。ただし、Blenderレンダリングベンチマークでは、ZenのIPCがIntelの高性能なBroadwell-E Core i7-6900Kと同等であることが示された。いずれにせよ、この発表は投資家や愛好家を数年ぶりにAMD熱に巻き込むには十分だった。

AMDは、その名にふさわしいHotChipsカンファレンスで、コアマイクロアーキテクチャの詳細をさらに掘り下げました。HotChipsカンファレンスは、プロセッサ業界の精鋭が集まる毎年恒例の業界イベントです。AMDはコアエンジンの詳細をさらに公開しましたが、メモリチャネル構成やPCIeサポートなど、AM4とSoCの基本的な詳細については依然として非公開です。慰めになるかは分かりませんが、AMDフェローでありZenの主任アーキテクトであるマイケル・クラーク氏と会談した際に、同社がAM4に関する詳細を近日中に発表する予定であると聞きました。これは理にかなっています。なぜなら、Bristol Ridgeを搭載したOEMシステム、つまりAM4マザーボードは、まもなくチャネルに登場予定だからです。

電力消費削減の種をまく

プレゼンテーションの中で、クラーク氏は設計プロセスについて鮮やかに考察し、Zenアーキテクチャの根底にある基本概念に彩りを添えました。クラーク氏は優れた能力を有しており、AMDが設計したすべての自社製x86プロセッサの開発に携わった経験を持ち、Zenの主任設計者として、このチップの命名を任されました。彼が「Zen」という名前を選んだのは、消費電力を抑えながらパフォーマンスを40%向上させるために、AMDが数々の要素の間で絶妙なバランスを保たなければならなかったことに敬意を表したためです。

クラーク氏は、AMDの現在の階層化されたCPUマイクロアーキテクチャからの移行は困難だったと述べた。セグメンテーションには高電力設計と低電力設計の両方が含まれているが、Zenはコンピューティングの全領域に対応できる単一のスケーラブルなアーキテクチャとして設計されている。同社は風水を実現するために白紙の状態からスタートしただけでなく、設計プロセス全体を再考する必要があった。

低消費電力のファンレスノートパソコンから最高速のスーパーコンピュータまで拡張可能なマイクロアーキテクチャの設計は困難を伴いますが、同時にIPCを40%向上させることはさらに困難です。厳格な消費電力エンベロープを定義することは問題をさらに複雑にするだけなので、AMDは設計プロセスを刷新し、初期段階からあらゆるアーキテクチャ上の決定を消費電力の観点から検討しました。

AMDはかつて、設計プロセスの後半で電力の改良を行っていましたが、残念ながら、最適化はアーキテクチャの基礎の大部分が既に構築された後に行われました。石膏ボードを張る前に配線を修正する方が常に容易であり、AMDは以前の設計フローで同様の問題を発見しました。クラーク氏は、目標は「電力を周波数やパフォーマンスと同等に扱うこと」だったと述べています。これにより、チームは既存の(そして根本的な)非効率性を抱えた設計を微調整するのではなく、設計プロセスの初期段階で電力の課題に対処することができました。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

電力優先の考え方は全く新しいものではない。業界では10年もの間、電力効率を謳い文句にしてきた。実際、Intelは同じステージで、老朽化し​​たSkylakeアーキテクチャ(Speed Shiftなど)の電力最適化の概要を発表したばかりだった。Intelは電力効率の基準を非常に高く設定しているため、AMDにはその期待に応えるか上回る責任がある。今のところ、AMDはExcavatorと同じ電力エンベロープ内での劇的なパフォーマンス向上について漠然とした説明をしているものの、その主張を裏付ける確かなデータ(TDPなど)は公開していない。Intelの新しいプロセス、アーキテクチャ、最適化サイクルにより、既存のSkylakeアーキテクチャをより電力効率の高いKaby Lake設計に微調整する時間が十分に得られると合理的に推測できる。つまり、AMDにとっては刻一刻と時間が迫っているということだ。

もちろん、1世代で40%のIPC向上は、Intelが数世代にわたって着実に積み重ねてきた、比較的地味な改善に比べればはるかに印象的です。しかし、40%の向上でZenがCore i7-6900Kと同等か、わずかに上回る程度(ただし、多少の誤差は許容範囲です)にとどまっているという事実は、AMDがいかに遅れをとっているかを如実に示しています。

誰もが弱者を愛するが、それは勝った場合のみだ。AMDが立ち直るためにどのような措置を講じたのか、詳しく見てみよう。

基本

消費電力削減への第一歩は、AMDがExcavator/Steamrollerマイクロアーキテクチャで採用していた28nmプロセスを廃止し、GlobalFoundriesの14nm FinFETプロセスを採用することでした。14nm FinFETへの道は既に確立されており、同社はPolaris GPUからFinFETへの道を歩み始めました。

14nm FinFETは、同等の電力エンベロープ内でより高いパフォーマンスを提供し、このパフォーマンス向上こそが、全体的な消費電力削減の鍵となります。パフォーマンスの向上は「アイドル状態へのレース」を加速させます。IPCが高いほど、CPUはワークロードをより速く処理できるため、チップの一部を素早くシャットダウンできます。AMDは、コアの一部がビジーでないときに消費電力を削減するマルチレベルクロックゲーティング戦略を採用しています。クロックゲーティングには常に多少のパフォーマンスのトレードオフが伴い、バグの発生も懸念されるため、適切なバランスをとることが重要です。クラーク氏は、クロックゲーティングがチップのスピードパスや重要な領域に影響を与えないようにするために、チームが尽力したと述べています。

大まかに言えば、同社は前述の電力最適化と並行して、より優れたコアエンジンとキャッシュシステムの設計に注力しました。AMDは、各コアにスレッドを追加することでコアエンジンを強化し(同時マルチスレッディング)、マイクロオペレーションキャッシュを追加することでILP(命令レベル並列性)を向上させました。AMDによると、このアーキテクチャにより、スケジューリング能力が75%向上し、命令幅が50%増加しました。また、分岐予測の改良もパフォーマンス向上に貢献しています。さらに、キャッシュアーキテクチャを徹底的に見直し、パフォーマンス向上を図り、L1およびL2の帯域幅を2倍に拡張したとしています。さらに、パイプ幅の拡大により、L3キャッシュ帯域幅も5倍に向上しました。 

高レベルのブロック図は、コア全体のフローを示しています。すべては分岐予測から始まり、64K 4ウェイ命令キャッシュに命令が送られます。データはデコードに流れ込み、デコードからサイクルごとに4つの命令がマイクロオペレーションキューに送られます。マイクロオペレーションはオペレーションキャッシュにも格納され、オペレーションキャッシュは頻繁に実行されるオペレーションをキューに送ります。この手法はパイプラインのステージ数を減らすことでパフォーマンスを向上させ、消費電力を削減します。予想通り、クラーク氏はパイプラインの具体的な長さについてはコメントを控えましたが、オペレーションキャッシュ方式によってパイプラインを短縮できると述べました。

オペレーションキャッシュは大きな進歩ですが、設計者たちはオペレーションキャッシュの密度を高め、パフォーマンス向上をさらに加速させる仕組みも考案しました。Zenはオペレーションキャッシュ内に分岐融合技術を採用し、2つのオペレーションをシングルオペレーション形式で保持することができます。このキャッシュは、2つの命令(比較命令と分岐命令)を1つのマイクロオペレーション(スケジュール命令と実行命令)に融合し、ディスパッチ時に展開されるまでこの融合されたマイクロオペレーションを保持します。

マイクロオペレーションキューは、1サイクルあたり6オペレーションを整数キューと浮動小数点(FP)キューに送ります。これは、以前のアーキテクチャにおける4オペレーションのディスパッチよりも改善されています。整数セクションとFPセクションはそれぞれ独立した実行パイプ、リネーム、スケジューラ、レジスタファイルを備えているため、実質的には別々のコプロセッサとして機能します。フローは、512KBの8ウェイL2キャッシュを備えた32KBの8ウェイDキャッシュ(データキャッシュ)へと続きます。

フェッチ

フェッチパイプは分離分岐予測を採用しています。AMDはTLBを階層内の他のユニットよりも上位に移動することで、命令キャッシュからのプリフェッチを最適化しました。AMDはBTB(分岐ターゲットバッファ)エントリごとに2つの分岐を格納し、間接分岐にはITA(間接ターゲットアレイ)を採用しています。64KBの命令キャッシュは、1サイクルあたり32バイトのデコード処理を行います。 

デコード

デコードユニットは、オペキャッシュの主要な利点のいくつかを際立たせています。左側では、データは命令バイトバッファ、ピックステージ、そして4命令デコードユニットへと流れ出ます。対照的に、オペキャッシュはマイクロオペレーションをマイクロオペレーションキューに直接渡すため、3段階の処理を回避できます。また、前述の分岐融合技術も採用しています。パイプラインが短いため、比較的電力消費量の多いデコードユニットへの負荷が軽減され、リダイレクトレイテンシが「数サイクル」短縮され、消費電力も削減されます。

スタックエンジンは誤った依存関係を排除するのに役立ち、メモリファイルはディスパッチ時にストアからロードへの転送を提供します。ディスパッチは、整数/実行エンジンに1サイクルあたり6マイクロオペレーションを提供します。 

実行する

整数ユニットには合計6つのスケジューラが搭載されています。4つの整数ユニット(ALU)はそれぞれ独自のスケジューラを持ち、2つのAGU(アドレス生成ユニット)はそれぞれ独立したスケジューラを備えています。整数スケジューラはすべて14エントリの深さで、AGUはロード/ストアキューにデータを送ります。ロード/ストアキューは1サイクルあたり2回のロードと1回のストアをサポートします。

実行エンジンは192個のエントリおよびリタイアキューを備えています。このアーキテクチャは、SMTモードとシングルスレッドモードの両方で、1サイクルあたり2つの分岐を実行します。興味深いことに、このアーキテクチャは1サイクルあたり6つのオペレーションを受け取りますが、一度に8つをリタイアできるため、パイプラインのストール時にパフォーマンスを回復するのに役立ちます。

ロード/ストアとL2

フローは、実行ユニットから分割TLBデータパイプ(2つのAGUから供給)を介してロード/ストアおよびL2領域へと移動します。この設計は72回のアウトオブオーダーロードを許容し、最適化されたL1およびL2プリフェッチャーを備えています。 

浮動小数点ユニット

浮動小数点ユニットには実際には2段階のスケジューラが搭載されています。NSQ(非スケジューリングキュー)は、192エントリ/リタイアキューを介して整数ユニットへの命令ディスパッチを可能にします。オペレーションは非スケジューリングキューからスケジュールすることはできませんが、ロード/ストアキューは浮動小数点演算が準備できていない場合でも動作を開始できます。AMDは、この技術により、命令ウィンドウを使用せずに浮動小数点側でスケジュール可能なデータの準備が整うことが保証され、IPCが向上すると述べています。

通常のSQ(スケジューリングキュー)は、演算を2つのMULユニットと2つのADDユニットにスケジューリングします。浮動小数点スケジューラは160エントリの物理レジスタファイルを備えています。興味深いことに、このユニットでは8ビット幅のリタイアオプションが再び採用されています。また、暗号化を強化する2つのAESユニットにも注目してください。

キャッシュ階層

キャッシュアーキテクチャもまた劇的な改善が見られ、異なるレベル間で1サイクルあたり32バイトの転送が可能になりました。より広いパイプにより、すべてのコアをL3ビクティムキャッシュに接続するのに十分なスループットが確保されています。このアーキテクチャでは、L1およびL2ミスを処理するためにより大きなキューが採用され、AMDはL1キャッシュを低速なライトスルー方式からライトバック方式に移行しました。

コアコンプレックスへ

AMDはCPUコンプレックス(CCX)を4つのコアに分割し、各コアは16ウェイアソシエイティブの8MB L3キャッシュに接続されています。このキャッシュは4つのスライスに分割されています。すべてのコアはL3キャッシュプール全体にアクセスできます(平均レイテンシは同じとされています)。各コアには512KBのプライベートL2キャッシュも搭載されています。AMDは複数のCCXを接続することでコア数を増やしており、例えばプレゼンテーションで使用された8コア/16スレッド(CCX 2基)のSummit Ridge CPUは、合計16MBのL3キャッシュを搭載していました。

AMD は過去に CCX を結合するために老朽化した HyperTransport インターコネクトを使用していましたが、Zen アーキテクチャで使用している技術についてはコメントしませんでした。

SMTの概要

AMD は、シングルスレッドのパフォーマンスを向上させるためにすべての構造を完全に利用できるようにすることを目的とした従来のクラスター化マルチスレッド手法とは対照的に、Zen で SMT (同時マルチスレッド) 設計に移行しました。

色分けされたスライドは、マイクロアーキテクチャの共有部分を示しています。SMTへの移行には、スレッド間でキャッシュ、デコード、実行ユニット、スケジューラを「競合的に共有」する必要があります。プロセッサは一部のユニットを競合的に共有しますが、他のユニットはアルゴリズムによる優先順位付け技術によって優先順位付けされます。分岐予測ユニットとディスパッチインターフェースは、スレッドが十分なスループットを確保できるように、常にスレッドを監視します。スレッドの優先順位は必要に応じて調整されます。AMDは、スレッドごとにユニットを静的に分割することを避けようとしました。これは、構造を物理的に2つ(スレッドごとに1つ)に分割することを意味します。AMDは、ストアキュー、リタイアキュー、マイクロオペレーションキューを静的に分割する必要がありましたが、それでもSMTモードで高いスループットを維持できると主張しています。 

パワーファーストアーキテクチャの成果を享受できるか?未定

新しいアーキテクチャは大きな進歩を遂げているように見え、CPU市場のかつての競争の激しかった時代へと私たちを戻すかもしれません。しかし、AMDはプレゼンテーションで重要な詳細を依然として明らかにしておらず、クロック速度、PCIeレーンの割り当て、メモリチャネルのサポートなど、その他多くの重要な情報さえも明らかにされていないことは注目に値します。

最も注目すべきは、AMDが電力効率の向上というメッセージを伝えることに注力しているものの、具体的な内容はまだ示していないことです。14nm FinFETへの移行は素晴らしいスタートですが、オンダイ電力管理の複雑さ、そしてそれがSoC全体にどのように影響するかは、非常に困難です。 

8コアのSummit Ridge CPUがIntel i7-6900Kと激突したデモは期待を抱かせるものでしたが、明らかに選別されたワークロードの一つを浮き彫りにしたに過ぎません。より広範なベンチマークを実施すれば、このアーキテクチャの実力がより明確になるでしょうが、ExcavatorやBulldozerと比べて大きなパフォーマンス向上が期待できることはほぼ間違いありません。多くの人にとって真の試金石となるのは、Zenがオーバークロックにどれだけ耐えられるかですが、その判断を下すにはまだかなりの時間が必要です。

業界は切実に何か大きなものを求めています。デスクトップPC市場は長らく低迷を続けてきましたが、競争力のあるAMDが市場を席巻するかもしれません。支配的なIntelによるパフォーマンス向上のペースが遅いため、ほとんどの人にとってアップグレードする理由がなくなってしまいました。実際、私たちは最新のIntelフラッグシップよりも、依然として前世代のi7-5820Kを推奨しています。これは業界の現状を如実に物語っています。

これこそがZenの真髄です。AMDは全てのベンチマークでIntelに圧勝する必要はありません。価格と性能の適切なバランスを市場に投入するだけで十分です。競争力のあるAMDがIntelの行動を促し、価格を下げ、性能を大幅に向上させることを期待します。Intelの長期的なチクタクチクタクというリズムも、Zenの成功の鍵となるかもしれません。

Zen+は待機中

AMDは将来的に「Zen+」をリリースする予定ですが、おそらく同じ14nmアーキテクチャに微調整を加えたものになるでしょう。10nmプロセスはすぐにはリリースされないため、しばらくの間はZenとKaby Lakeの争いになると思われます。 

AMD幹部は、Zenのプレゼンテーションで2回にわたり「Zenは目的地ではなく、出発点である」というスローガンを繰り返したが、これは明らかに間もなく登場するZen+を予告する策略だった。Zen+での繰り返しが、初代Zenへの失望感を紛らわすための先制的な策略ではないことを願う。あらゆる市場セグメントに対応するために単一のマイクロアーキテクチャを設計するのはリスクの高い提案であり、AMDは人々の高まる期待に慎重に対応する必要がある。再び失望させれば、AMDは壊滅的な打撃を受ける可能性がある。

まずは、初代Zenで何ができるのか見てみましょう。

ポール・アルコーンはTom's Hardware USの編集長です。CPU、ストレージ、エンタープライズハードウェアに関するニュースやレビューも執筆しています。