このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第332回

AMD次期プロセッサーZenの内部構造をパイプライン構成から推察

2015年11月30日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

パッチから推定できるZenの内部構造

 ここまでの情報を元にWaldhauer氏が作成したZenの内部構造推定図がこちらである。基本これは大きく外れてはいないと思うのだが、いくつか考慮すべきポイントが残されていると筆者は考えており(この件でもWaldhauer氏とメールで議論した)、これを反映させた筆者の推定図が下の画像である。

筆者が推定するZenの内部構造図

 さて、まずFetchはおそらく32バイト/サイクルで1次キャッシュから命令を取り込むと予想される。

 実際のところ、本当にフルにx86を4命令/サイクルで処理しようとすると32バイト/サイクルでも足りない可能性はあるのだが、だからといって倍の64バイト/サイクルに帯域を増やすと間違いなく消費電力の観点で破綻しかねない。

 インテルはNehalemの世代で4命令/サイクルのデコーダーと32バイト/サイクルの帯域でうまく性能をマッチさせているから、現実問題として32バイト/サイクルがあれば十分と判断したのだろう。

 ここからFetchを経てDecode #1に入る。実際はこの手前にEarly Decode、あるいはPickと呼ばれる処理が入るかもしれない。

 これは命令ストリームを解釈して、命令の切れ目にフラグを立てることでデコードをしやすくする処理であるが、大きく見ればFetchの一部ということでまとめてある。

 Decode #1は、x86命令をおそらく中間言語に変換する処理になると筆者は予想する。ここでは先に説明した通り4つのデコードが同時に動き、Fast Pathの命令はそのまま変換してInstruction Re-organizationへ、Vector TypeはそこからVector Pathに命令を送り出してこちらで処理する形になるであろう。

 では次のInstruction Re-organizationとはなにか? であるが、実はAMDはK8/K10の時代にこれに近いものを実装していた。

 下の画像はMicroProcessor Forum 2001におけるK8のアーキテクチャー図であるが、Pickの後で2段のデコードを経て、一度“Pack”と呼ばれる段階を経てもう一度デコードしているのがわかる。

2001年10月のMicroProcessor Forumで、当時のCTOだったFred Weber氏が公開したK8の内部構造。この写真はこの講演の後で行なわれたAMDとのラウンドテーブルの際にもらったスライドのコピーである

 これは、まずx86命令を一度分解し、この中で一緒に実行できる命令を組み合わせて(これがPackのステージ)、それからいわゆるmicroOpに変換するという仕組みだ。

 要するにInstruction Fusion(インテルではMacroOps FusionおよびMicro Ops Fusionと呼んでいるもの)の処理を行なっていたと想像される。

 筆者はZenにもこれに似た構造が盛り込まれていると考えている。ただしその理由はやや異なる。Waldhauer氏はK12コアとZenコアがかなりの部分共通と考えている(関連リンク)。

 筆者もその考えには賛成であるが、ということはスケジューラーから下はK12と共通になるという意味である。この場合両者の違い、つまりx86/x64とAArch32/AArch64の差をデコード段だけで吸収して直接microOpを生成する、というのはやや処理的に重いように思われる。

 むしろデコード段ではx86/x64やAArch32/AArch64を、比較的処理のしやすい中間命令に変換し、その後にその中間命令を実行に適したmicroOpに変換する、という2段構えの方が実装しやすいように思える。

 また、Instruction Fusionを行なうためには、一度デコードの結果を付き合わせる必要があり、その場合にもいきなりmicroOpを生成しないほうが効果的である。これはK8/K10と同じである。

 ただし、必ずしもx86/x64命令のすべてがうまく中間命令→microOpの形で変換できるとは限らない。これはAArch32/AArch64の場合も同じだが、2種類のまったく違う命令形態なので、完全に1つのmicroOpに変換するのは難しいと考えるのが普通だ。

 こうした場合の例外処理が、先に出てきたVector Typeと思われる。Vector Typeを通る命令の場合、整数演算ならALU 0/1/2/3とAGU 0/1が必ず同期する(この6つの実行ユニットすべてを専有して処理される)し、浮動小数点演算ならFPU 0/1/2/3とAGPU 0/1が同期することになる。

 これまでこうした処理の仕方は見たことがなかった。逆に言えば、こんな処理の仕方を導入すること自体が、K12とZenでかなりの部分を共通化していることの傍証になるのではないかと思う。

 もう1つ理由を挙げると、昨今のプロセッサーはいずれもフロントエンド(Fetch→Decode)がIn-Order、バックエンド(Schedule→Execute→Retirement)がOut-of-orderの構成になっている。

 この際に、両者の間に比較的大きなバッファを設けることで、動作を分離する手法が一般的である。例えばCortex-A7のようなローエンドのプロセッサーですら、デコーダーにInstruction Queueを設けることで、効率化を図っている。

 インテルの場合、Nehalemで実装されていたLSD(Loop Stream Detector)がSandy Bridge以降ではDecoded microOps Cacheに進化してこれを実現しており、Zenにもないかしらこうしたバッファ機構が必要と思われる。

 そう考えるとInstruction Re-organizationに付属する形で中間言語キャッシュが設けられているのではないか、と想像する。

 さて、この後は再びデコード(今度は中間言語をmicroOpに変換)して、それぞれのスケジューラーに分配する形になる。

 ちなみに本来ならこの前にReorder Bufferなども入るはずであるが、このあたりは実装の仕方次第ということでRoBの機能も含めてスケジューラーとしている。

 このスケジューラーからそれぞれの実行ユニットに対して命令を発行するが、ALUが4つ独立で動作し、FPUも4つが独立して動作可能で、SSE系ならば2つで1組のSSEユニットを、AVXならば4つまとめて動作することになるだろう。これはK12の場合、FPUならば独立、NEONなら2つで1組という形で動作すると思われる。

→次のページヘ続く (Zenのクロックは3GHzと予想

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,413
2
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥7,313
3
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,899
4
CIO フラットスパイラルケーブル CtoC (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps 形状記憶 iPhone 17 / 16 / 15 Macbook Pro/Air/iPad用/ノートパソコン Galaxy Google Pixel Android (ライトブラック, 1.5m)
CIO フラットスパイラルケーブル CtoC (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps 形状記憶 iPhone 17 / 16 / 15 Macbook Pro/Air/iPad用/ノートパソコン Galaxy Google Pixel Android (ライトブラック, 1.5m)
¥2,290
5
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
6
Anker Zolo USB-C & USB-C ケーブル (240W, 高耐久ナイロン) 1.8m ブラック iPhone 17 / 16 / 15 Galaxy iPad Pro MacBook Pro/Air 各種対応
Anker Zolo USB-C & USB-C ケーブル (240W, 高耐久ナイロン) 1.8m ブラック iPhone 17 / 16 / 15 Galaxy iPad Pro MacBook Pro/Air 各種対応
¥1,590
7
Anker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-C ケーブル) (USBタップ 電源タップ) 【PSE技術基準適合】MacBook iPad iPhone Galaxy Android ブラック
Anker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-C ケーブル) (USBタップ 電源タップ) 【PSE技術基準適合】MacBook iPad iPhone Galaxy Android ブラック
¥9,990
8
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
9
Verbatim バーベイタム 1回録画用 ブルーレイディスク BD-R 25GB 50枚+3枚増量パック インクジェットプリンタ対応 ホワイト 片面1層 1-6倍速
Verbatim バーベイタム 1回録画用 ブルーレイディスク BD-R 25GB 50枚+3枚増量パック インクジェットプリンタ対応 ホワイト 片面1層 1-6倍速
¥2,480
10
ソニー ゲーミングイヤホン INZONE Buds:WF-G700N Fnatic監修/ワイヤレス / 低遅延2.4GHzワイヤレス接続 USBType-Cトランシーバー同梱/LE Audio対応/アクティブノイズキャンセリング/立体音響 / 最大約24時間バッテリー / 急速充電/マイク付き / PS5 スマホ PC Switch グラスパープル
ソニー ゲーミングイヤホン INZONE Buds:WF-G700N Fnatic監修/ワイヤレス / 低遅延2.4GHzワイヤレス接続 USBType-Cトランシーバー同梱/LE Audio対応/アクティブノイズキャンセリング/立体音響 / 最大約24時間バッテリー / 急速充電/マイク付き / PS5 スマホ PC Switch グラスパープル
¥20,800

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン