CPUのニュースニュース

AMD Zen vs Zen 2 vs Zen 3 vs Zen 4 vs Zen 5コアアーキテクチャ:Ryzen 9000への道

AMDのZenコアアーキテクチャの5番目のイテレーションは、今月後半にリリースされる予定です。Zen 5は、 2017年のZenのリリースから始まり、Ryzenプロセッサの約7年を迎えます。それ以来、Zen+、Zen 2、Zen 3、Zen 4がRyzen 2000、3000、5000、7000シリーズのCPUの中心となっています。Ryzen 9000のラインナップに搭載されているZen 5コアは、フロントエンド設計のアーキテクチャの 最大のオーバーホール であり、これまで以上に幅広く、より速く、より効率的になっています。ここでは、Zenの5つのイテレーションを見てみましょう。

AMD Zen vs Zen 2 vs Zen 3 vs Zen 4 vs Zen 5:CPUフロントエンド

分岐予測子と I-Cache

上部には分岐 予測器があり、船の 航海士のように命令フローを制御します。

if 条件
    {dosomething}
else
    {dosomethingelse}
  • 次の命令が 分岐であるかどうかを予測し、分岐がある場合は、どのような種類(条件付き/無条件)かを予測します。
  • 分岐は通常、条件付きまたは無条件 (常に分岐) です。
  • 次のステップは、命令の アドレス (通常はキャッシュ内)を計算することです。
  • ここでは、分岐ターゲットバッファ(BTB)が役立ちます。これには、最後のn個のブランチ(取得されたかどうか)の履歴と、命令の宛先アドレス(PC)が含まれています。
  • 分岐予測子を使用すると、CPU は次の命令の位置が生成される前でも実行を続行できます。これは 、アウト・オブ・オーダー 実行と呼ばれます。
フェッチ/デコード
  • Zen コア アーキテクチャは 、3 レベルの BTB を使用する ハッシュ パーセプトロン 分岐予測子を使用します。
    • Zen および Zen 2 の分岐予測子は、BTB エントリごとに最大 2 つの分岐を格納します。
    • L0 BTBは、 前方に4 つの分岐と後方に取られた 4 つの分岐を保持します。L1 BTBは 256 エントリー、L2は 4096エントリーです。
    • 間接ターゲットの 1024 エントリを持つ間接ターゲット配列もあります。
    • 64 KB の L1I キャッシュは、8 エントリの L0、64 エントリの L1、および 512 エントリの L2 TLB とペアになっています。
  • Zen 2 は、L1ハッシュパーセプトロンとL2 TAGE 予測子を使用します。
    • L0 BTBは、 8 つの前方分岐と 8 つの後方分岐を保持します。L1 BTBは 512、L2 BTBは 7168 エントリーです。
    • ITAは 1024 のエントリーで倍増しています。
    • L1I キャッシュは 32 KB で、64 エントリの L1 TLB と 512 エントリの L2 TLB があります。
  • Zen 3 は、分岐予測の精度と帯域幅を改善し、予測ミスのペナルティを減らします。ほとんどのブランチには、ゼロバブルペナルティがあります(パイプラインを失速させません)。
    • L1 BTB は最大 1024 エントリを保持し、L2 BTB は最大 6.5K エントリを保持します。
    • ITAは50%拡大され、 1536 エントリーになりました。
  • Zen 4 は、サイクルごとに 2 つのブランチを取ることができます。
    • L1 BTB は最大 1536 個、L2 BTB は 7168 個のエントリを保持できます。
    • ITAは、約 3K エントリに拡張されます。
  • Zen 5 は、最大 2 つのテイクブランチと 2 つの先行ブランチを実行できます。
    • L1I キャッシュ サイズは変更されませんが、サイクルごとに L2 キャッシュから最大 32B x2 (以前は 32B) のデータをフェッチできます。

デコーダー、オペキャッシュ、およびオペキュー

デコーダは 、命令キャッシュから命令キューを介して命令(複素数)を取得し、それらを より単純なマイクロ演算に分割します。これらは micro-op キューに渡され、op キャッシュにも格納されます。Micro-ops を micro-op キューに含め、実行バックエンドにディスパッチします。

デコーダーは非常に電力を大量に消費するため、 オペキャッシュ をより効率的かつ正確にすることが重要です。オペキャッシュにキャッシュされた命令により、フロントエンドは デコーダをバイパスでき、スループットと効率が向上します。

  • Zenコアは4ワイドデコーダを使用しており、サイクルごとに4つの命令をデコードできます。
    • 20 x16B命令キューから供給され、最大4つの命令をデコーダに送金します。
    • op-cache には 2048 のエントリがあり、最大 8 つのマイクロ演算を op キューに送信できます。
    • マイクロ演算キューには 72 個のエントリがあり、演算キャッシュまたはデコーダから 8 個または 4 個のマイクロ演算 を取得します。
    • 最大 6 つのマイクロ演算 が整数/浮動小数点バックエンドにディスパッチされます。
  • Zen 2 では、演算キャッシュのサイズが 2 倍の 4096 エントリに増えています。
  • Zen 3 は、命令キューを 24 x16Bに増やします。
  • Zen 4 は、オペキャッシュ容量を 6.75K エントリに増やし、マイクロオペキューに最大 9つのマイクロオペを 供給できるようにします。
  • Zen 5 はデコーダーに大幅な変更を加えます。
    • 2x 4ワイドデコーダを搭載し、それぞれ最大4つのマイクロ演算を送信できます。
    • デコーダーは、 デュアルポート 命令フェッチによって供給されます。
    • マイクロ演算キャッシュは 6K に縮小されましたが、マイクロ演算キューに最大 12 個 (6×2) のマイクロ演算 を供給することができます。
    • ディスパッチは 8 ワイドに拡張され、 8 つのマイクロ演算 を実行バックエンドに送信できるようになりました。
    • SMT を有効にすると、各スレッドは 1 つの 4 幅デコーダを取得します。
Zen 5フロントエンド

ROB、スケジューラ、レジスタ

リオーダー バッファー (ROB) は、アウト オブ オーダー プロセッサの重要なコンポーネントです。これにより、命令が 最初の順序に従ってレジスタに書き込まれるようになります。これは、プログラム・シーケンスごとに命令とそのオペランドを保持するスケジューラーにフィードします。スケジュールされた命令の特定のセットのオペランドが使用可能な場合、オペランドは実行 のために実行ユニット に送信されます。

レジスタの名前変更 も OoO 実行の重要な部分です。2 つ以上の命令が同じメモリ位置 (レジスタ) に依存しているが、互いに独立している場合、プロセッサは 論理レジスタ を使用して、その異なるバリアントを作成します。名前が変更されたレジスタは、データの危険を引き起こさずに並列に実行されます。

Zen 2 から Zen 3 CCD
  • Zenコアは 、ROBに 192 のエントリを保持でき、整数と浮動小数点のスケジューラ/レジスタと実行ユニットが分離されています。
    • FP の名前変更は 6 幅で、整数の名前は 4 幅です。
    • 4x 14エントリ整数と2x 14エントリAGUスケジューラがあります。
    • FP スケジューリング キューには 96 のエントリがあります。
    • 整数レジスタ ファイルには 168 があり、浮動小数点ファイルには 160 のエントリがあります。
  • Zen 2 では、ROB サイズが 224 に増加し、浮動小数点データ パスが 2 倍になります。
    • 4x 16エントリ整数と1x 28エントリAGUスケジューラがあります。
    • 整数レジスタ ファイルが 180 に増加しました。
    • FP 側には、 64 エントリ の非スケジューリングと、スケジューラバッファに 36 エントリ があります。
  • Zen 3 のROBは 256 エントリーと少し幅が広くなっています。
    • 4x 24エントリ 整数+ AGUスケジューラ。
    • FP 側には、 64 エントリ のスケジューリング キューと 2x 32 エントリ のスケジューリング キューがあります。
    • 整数レジスタ・ファイルが 192 に増えました。
  • Zen 4 では、ROB サイズが 320 に増加します。
    • 整数レジスタ ファイルには 224 エントリがあり、FP 側には 192x 512 ビット レジスタがあります。
    • また、68エントリのAVX512マスクレジスタファイルもあります。
  • Zen 5 では、ROB サイズが 448 エントリに増加します。
    • FP の名前変更は 6 幅で、整数の名前は 8 幅です。
    • FP 側には、 3x 32 エントリ スケジューラと 96 エントリ の非スケジューリング キューがあります。
    • 整数レジスタファイルには 240(64b) のエントリがあり、FP側には 384(512b) のエントリがあります。
Zen 5バックエンドINT実行

実行ユニットとメモリサブシステム

実行ユニットは、プログラムの順序に従って、さまざまな算術計算、浮動小数点計算、アドレス生成計算、ロードストア計算、または分岐関連計算を実行して、最終結果を取得します。最新のCPUコアは、FADD、FMUL、FMAALUAGULD / STなど、特定の命令に特化した複数の独立した実行パスを備えています。取得された結果は、レジスタに書き込まれるか、リタイア キューにリダイレクトされます。

Zen 4バックエンド
  • Zenコアには10個の実行ポートがあります。
    • 整数側には 、4x ALU ポートと 2x AGU ポートがあります。
    • FP側には、 2x FMUL/FMA2x FADD 実行ユニット(128ビット)があります。
    • ロード・バッファには 72 個、ストア・バッファには 44 個のエントリがあります。
    • Zen は、 2x 128 ビット ロードと 1x 32B ストアに対応しています。
    • これは、 32 KB の 8 ウェイ データ キャッシュと 512 KB の L2 キャッシュによって支えられています。
  • Zen 2 には 11 個の実行ポートがあります。
    • 整数側には 、4x ALU ポートと 3x AGU ポートがあります。
    • FP側には 、2x FMA ユニットと 2x FADD ユニット(256ビット)があります。
    • 48エントリのストアキューがあります。
    • ロード/ストア帯域幅は、サイクルあたり 256 ビット に増加します。
  • Zen 3 には 14 の実行ポートがあります。
    • 整数側には、 4x ALU3x AGUおよび1x分岐 実行ユニットがあります。
    • FP側には、2x FMA2x FADD、および2xストアユニットがあります。
    • ストア キューには 64 個、ロード キューには 116 個のエントリがあります。
    • 負荷帯域幅は最大 3x 64 ビット (または 2x 256 ビット) で、 2x 64 ビット (または 1x 256 ビット) に格納されます。
  • Zen 4 は、14幅の実行バックエンドを保持します。
    • Zen 4は、256ビット幅の浮動小数点ユニットをダブルポンピングすることにより、 AVX512 命令が可能です。
    • L2 キャッシュは 8 ウェイで 1 MB に増加します。
  • Zen 5 には 16 個の実行ポートがあります。
    • 整数実行は、 6x ALU ポートと 4x AGU ポートで構成されます。
    • FP側には、2x FMUL、2x FADD、および2x intD/StD実行ポートがあります。
    • Zen 5は、 512b データパスを使用したネイティブAVX512実行をサポートしています。
    • サイクルごとに 4x 64 ビットまたは 2x 256 ビット ストアと 2x 128 ビット/256 ビット ストアまたは 1x 512 ビット ストアが可能です。
    • また、L1 データ キャッシュを 12 ウェイで 48 KB に増やし、サイクルごとに 4 回の読み取りと 2 回の書き込みを行います。
    • L1 から L2/FP への帯域幅は、サイクルあたり 64 バイト に倍増しました。
Zen 5バックエンドFP実行

AMD Zen 1 vs Zen 2 vs Zen 3 vs Zen 4 vs Zen 5:フロントエンドの概要

ゼン2ゼン3ゼン4禅5
L1Iキャッシュ64キロバイト32キロバイト32キロバイト32キロバイト32キロバイト
ITLB エントリー64 L1/512 L264 L1/512 L264 L1/512 L264 L1/512 L264 L1/512 L2
BTBエントリー256 L1/4K L2512 L1/7K L21024 L1/6.5K L21536 L1/7K L2?
インストラクションQ20x 16B20x 16B24×16B24×16B?
デコーダーの幅4ワイド4ワイド4ワイド4ワイド2x 4 幅
Micro-op キャッシュ エントリ2K解像度4K解像度4K解像度6.75K 閲覧数6K解像度
Op Cache BW (uops)88892×6
ディスパッチ (uops)66668

AMD Zen 1 vs Zen 2 vs Zen 3 vs Zen 4 vs Zen 5:バックエンドの概要

ゼン2ゼン3ゼン4禅5
ROB エントリ192224256320448
INTスケジューラ6x 14エントリ4x 16エントリー(1x 28エントリーAGU)4x 24エントリ4x 24エントリエントリー88名(AGU56名)
FPスケジューラ96エントリ36 エントリー2x 32エントリー2x 32エントリー3x 32エントリ
INTレジスタ168 エントリ180 エントリー192 エントリ224 エントリー 240 エントリー
FPレジスタ160 エントリー160 エントリー160 エントリー192x 512ビット(68 512bマスク)384x 512ビット
ALUポート444 (+1 BR)4 (+1 BR)6
AGU ポート23334
FPポート4 (128b) 4 (256b)44 (+2 F2I)4 (+2 標準 IntD)
LD/STのQ72/44 エントリエントリー数: 72/48116/64 エントリー136/64 エントリー?
LD/STのbw32B/2x 128b2x 256b2x 256b/256b2x 256b/256b2x 512b/512b
L1Dの32キロバイト32キロバイト32キロバイト32キロバイト48キロバイト
L2512キロバイト512キロバイト512キロバイト1メガバイト1メガバイト

参考文献:

Intel Golden Cove vs Raptor Cove vs Redwood Cove vs Lion Cove: Intel の P コア アーキテクチャの比較

Areej

Processors, PC gaming, and the past. I have been writing about computer hardware for over seven years with more than 5000 published articles. Started off during engineering college and haven't stopped since. Find me at HardwareTimes and PC Opset.
Back to top button