Zen (マイクロアーキテクチャ)

Zenとは、AMDによって開発されたマイクロアーキテクチャである。2017年3月発売のRyzenシリーズのCPUから使われている。Zenベースの最初のシステムは、E3 2016にてデモンストレーションが行われた。Zenは長らく開発が停滞していたBulldozer以来となる、ゼロから完全に新しく設計されたアーキテクチャである。

1. 設計
-----

AMDによると、Zenの主な目標はコアあたりのパフォーマンスの向上である。

新しい特徴と改善された点は以下の通りである。

ライトバック方式のL1キャッシュ
従来のライトスルー方式に比べ、レイテンシがより低くなり、帯域がより増加する。
同時マルチスレッディング
Bulldozerで使われていたCMTとは異なり、1コアあたり2スレッドで処理できる。これは以前からIBM、インテル、オラクルのプロセッサに使われている。
大容量の内部命令キャッシュ
すべてのコアがサイクルあたり最大6の整数演算、最大4の浮動小数点演算を実行可能。
キャッシュメモリの帯域の増加
L1・L2では2倍、L3では最大5倍となった。
クロック・ゲーティング
より大きなリタイア、ロード、ストアキュー
Bobcatに似たパーセプトロンによる、分岐予測の改善
フェッチステージから分離された分岐予測機
専用のスタックポインタを編集するため、インテルのHaswellやBroadwellに似たスタックエンジンを使用している。
Move elimination
電力消費を削減するために、物理的なデータの移動を削減する。
RDSEED命令への対応
高性能なハードウェア乱数生成器であり、インテルのCPUではBroadwell以降から搭載されている。
DDR4 SDRAMへの対応すべてのZenコアはクロックサイクルあたり4命令実行でき、μOPSキャッシュから整数、浮動小数点スケジューラに命令を供給する。すべてのコアは2つのアドレス生成ユニット、4つの整数・浮動小数点ユニットをもち、FPUのうち、2機は加算器として、残りの2機は乗算機として使われる。分岐予測機も改善されている。L1キャッシュは1コアごとに命令用に64KiB、データ用に32KiB、L2キャッシュは512KiB、L3キャッシュはコアあたり2MiB提供される。L3キャッシュは以前のAMDの設計と比較して5倍の帯域を提供する。

2. 開発と歴史
--------

2012年8月、AMDはZenマイクロアーキテクチャの開発を、ジム・ケラーの再雇用の直後に計画した。2015年、AMDはZenマイクロアーキテクチャの存在を正式に発表した。

ジム・ケラーは、2015年9月にAMDを退職するまでの3年間、Zenの開発を担当していたチームのリーダーを務めていた。

Zenは、本来であれば2017年にK12プロセッサーの後に登場する予定であったが、2015年のFinancial Analyst Dayにおいて、AMDはZenの設計をK12プロセッサーの開発よりも優先させるために、K12プロセッサーの登場を遅らせることを発表した。当時は、AMDは2016年10月頃に最初のZenベースプロセッサーを市場に投入するとしていた。

2015年11月、AMDはZenのテストを終え、「全て期待通りで、目立ったボトルネックは無かった」と評価した。

2015年12月、SamsungがAMDの14nm FinFETプロセスのプロセッサーであるZenとPolarisアーキテクチャのGPUの製造を担う契約をするかもしれないという噂が流れた。その後、2016年6月に、AMDの「Samsungの14nm FinFETプロセスでの製造が成功した」というアナウンスにて、Samsungも製造を担当することが正式に判明した。

3. 前世代と比較しての利点
--------------

Zenアーキテクチャは、以前のBulldozerアーキテクチャとはまったく異なり、インテル製のプロセッサ向けに最適化されているソフトウェアでのパフォーマンスを向上させるために、さまざまな機能の変更や強化が行われている。

3.1. 製造プロセス
-----------

Zenアーキテクチャは14nm・12nm FinFETプロセスで製造される。これは、AMD FXや旧世代のAPUで使われていた32nmプロセスおよび28nmプロセスよりも歩留まりが良いとされる。

3.2. パフォーマンス
------------

Zenは、コアあたりの性能の向上のために、クロックあたりの命令実行数をExcavatorと比較して40%以上向上させるという目標があった。Excavatorのときは、Steamrollerと比較して、4～15%程度の改善しか見られなかったが、Zenは最終的にExcavatorと比較して52%ものIPCの改善がなされた。このような大きな改善を成し遂げることができた要因の一つに、SMTによるマルチスレッド処理が挙げられる。これにより、スループットが向上し、これまで以上のリソースが利用できるようになった。

Zenベースのプロセッサは、周波数や電圧の動的な制御のために、チップに内蔵されたセンサーを用いている。これにより、CPUの冷却能力に余裕がある場合、設定されたブースト周波数を超えた周波数での動作が可能となる。

AMDは、8コア16スレッドのZenベースのプロセッサが、Blenderのレンダリングや、HandBrakeのベンチマークにおいて、同クロックのIntel Broadwell-Eプロセッサよりも優れていることを実証した。

3.3. メモリ
--------

Zenは最大で8チャネルのDDR4メモリをサポートする。

3.4. 電力消費と熱出力
-------------

Zenベースのプロセッサは、AMD FXや旧世代のAPUよりも消費電力や熱出力が削減され、同じ電力消費と熱出力でより多くの演算が可能になった。

Zenは、消費電力の削減のために、クロック・ゲーティングを使用し、コアが使われていない時の周波数を下げている。これは「SenseMIテクノロジー」という機能によるもので、CPUに内蔵されたセンサーを使用し、周波数や電圧を動的に制御することにより実現している。

3.5. 強化されたセキュリティと仮想化支援
----------------------

ZenはSecure Memory EncryptionとSecure Encrypted Virtualizationのサポートが追加されている。SMEは、システム起動時、オンボードにあるプロセッサを用い、ページテーブル毎に実行されるメモリをリアルタイムに暗号化する機能で、DDR4の暗号化を可能にしている。これにより、メモリ内容のスヌーピングやコールドブートアタックを防ぐことができる。

3.6. 接続性
--------

Zenは、SATA、USB、PCI Express、NVMeなど、サウスブリッジの大半をSoCとして組み込んでいる。

AMDは、Radeon Instinctの発表において、今後リリースされる、コードネームNaplesのZenベースCPUが、ディープラーニングシステムの構築に最適化されることを発表した。Naples CPUは、PCI Expressを最大64レーン提供し、PCI Express x16 コネクタに接続するInstinctカードを最大4枚接続できるようになるとされる。これに対して、インテルのXeonは、提供するPCI Expressは最大でも40レーンとなっている。

4. 製品群
------

Zenは、デスクトップやノートパソコン向けにはRyzenやAPUとして、サーバー向けにはEPYCという新たなブランドとして展開される。

5. 脚注
-----

5.1. 出典
-------

6. 関連項目
-------

Ryzen
EPYC
AMD K10
Steamroller 
ジム・ケラー

7. 外部リンク
--------

[1] - AMD