1サイクルに2つの条件分岐を処理することができる。8wideリタイヤは4つのALU命令とLSユニットから3本の矢印が書かれているので、ロードストアが3マイクロOp命令とBranch命令が1命令というカウントであろうか。Move Eliminationはレジスタ間でデータを移動するのではなく、レジスタのリネームでデータ移動と同じ効果を得る手法と思われる。

Zenコアの整数演算部の構造

ロードストア部は72個のOut-of-Orderのロードを処理することができ、44エントリのストアキューを持つ。TLBは64エントリのL1 TLBと1.5KエントリのL2TLBの2階層になっている。データキャッシュは32KB、8wayで、128bit幅の2つの同時アクセスをサポートする。L2キャッシュは512KBで、L1、L2キャッシュのプリフェッチは最適化されている。

Zenコアのロードストア部の構造

浮動小数点演算部は1つのスケジューラで、2つのFMULと2つのFADDユニットをスケジュールする。物理レジスタファイルは160エントリとなっている。これも2 SMTでシェアするとなると、それほど大きい訳ではない。

浮動小数点演算部は、命令としてはSSE,AVX1、AVX2をサポートし、AESやSHA命令もサポートされている。

Zenコアの浮動小数点演算部の構造

Zenのキャッシュ階層は、64KBの命令キャッシュと32KBのデータキャッシュがあり、それらの1次キャッシュを512KBのI/D共用のL2キャッシュがバックアップしている。ここまではコアごとのキャッシュであり、チップ全体の3次キャッシュは8MBで、2次キャッシュを追い出されたデータをキャッシュするヴィクティム(犠牲者)キャッシュとなっている。キャッシュ自体の高速化やキャッシュ間のデータ転送を高速化したり、L1、L2キャッシュのミス処理を扱うキューを大きくするなどの性能改善を図っている。

Zenコアのキャッシュ階層

次の図はCPUコンプレックスの配置を示す図で、コアとL3キャッシュスライスのペアが4個並んだ構造となっている。L3キャッシュは4つのスライスで構成され、低位のアドレスでインタリーブを行う構造となっている。これは1つのスライスにアクセスが偏らないようにするための標準的な手法である。

L3キャッシュは、容量は8MBで16wayとなっている。

4コアのZenの配置

次の図は、SMTの場合、プロセサの中のブロックが、スレッド間でどのようにシェアされるのかを色分けで示した図である。赤は、競争的にシェアされ、空色も競争的にシェアされるが、SMTのスレッドごとにタグをつけて管理される。青のブロックは、一定の規則に従って、競争的にシェアされる。緑のブロックは静的にスレッドごとに分割して使用される。

緑のブロックは静的にスレッドごとに分割して使用される。その他のブロックは、割り当て方法に多少の違いはあるが、基本的には複数のスレッドで共用され、早い者勝ちで使用される

Zenでは、Excavatorコアではサポートされていなかった8つの命令が追加される。最初の6命令は、Intelが追加した命令をサポートするものであるが、キャッシュラインをクリアするCLZEROと4Kのページテーブルを32KのページにまとめるPTE CoalescingはAMD独自の命令である。

なお、ZenはSIMD演算のAVXやAVX-2、ビット操作のBMI1、BMI2命令はサポートしている。

Zenでは8つの命令が新たにサポートされた。最初の6命令はIntelの追加した命令で、最後の2つはAMD独自の命令である。この2つの命令は普通のアプリケーションで使う命令ではない

まとめであるが、Zenプロセサは完全に新規設計の高性能コアである。そして、スループットを高めるため、同時マルチスレッド(SMT)をサポートしている。そして、新設計の高バンド幅、低レーテンシのキャッシュシステムを備えている。FinFETを使うエネルギー効率の高い設計であり、クライアントから企業のサーバまでに適したプロセサとなっている。

Zenは完全な新設計コアであり、SMTをサポートする。そして、高バンド幅、低レーテンシのキャッシュシステムを持ち、エネルギー効率が高く、クライアントからサーバまでスケールするプロセサである

そして、最後に、Excavatorコアに比べて40% IPCが向上していることを強調し、さらにその先にZen+があることを示唆した。

ZenはExcavatorと比べてIPCが40%高いことを強調した。そして、その先にはZen+が出てくることを示唆した