このページの本文へ

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

判明した第3世代Ryzenの内部構造を大解説 AMD CPUロードマップ

2019年06月24日 12時00分更新

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

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

新たにAGU2制御を追加した
Load/Storeユニット周り

 ALUに関しては今回特に言及がなかった。ということで、次はLoad/Storeユニットになる。以前の構造と比較するとわかるが、以下のような違いがある。

Load/Storeユニットの構造。よく見ると、以前の画像もこの画像もいくつか矢印が抜けてる、あるいは線が抜けてる部分があるので、脳内補完してみてほしい。AGUを追加した理由は、AVX256命令をサポートするためには256bit×2のLoadと256bitのStoreを1サイクルで実行できないといけないためである。でないと、AVX256命令の処理がLoad/Storeでストールすることになる。

  • 新たにAGU2からの制御が追加された
  • Store Pipe Pick周りの構造が少し変わった(Store Pipe Pickはプリフェッチからのデータは参照しない。プリフェッチは直接STP:Store Pipeにリクエストを出す)

 ちなみに3つのAGUであるが、以前は2つのAGUについて、Storeに関してはAGU0ないしAGU1からStore Queueにリクエストを出すだけだった。

AGU0 基本はLoadでTLB 0/Data 0に直接アクセス可能。ただStore Queueにリクエストを出すこともできる。
AGU1 やはり基本はLoadで、TLB1/Data 1に直接アクセス可能。ただStore Queueにリクエストを出すこともできる。

 これがZen 2ではAGU2が新たに追加された。

AGU2 基本はStoreで、Store Pipeに直接アクセス可能。ただLoad Queueにリクエストを出すこともできる。

 これを利用して、AGU0/1がLoad、AGU2がStoreをそれぞれ発行することで、256bit Load×2と256bit Store×1が同時に発行できるようになった形だ。

 ただLoad/Store Queue経由では、かならずしもAGU0/1がLoad、AGU2がStoreである必要はなく、その意味ではインテルのAGUに比べると柔軟性は高いと言える。

広帯域になったキャッシュ周り

 さて、次がキャッシュ周りだ。Zen 2では1次/2次/3次キャッシュがすべて32Bytes/サイクルで接続されるという、けっこう広帯域な構成になっている。

キャッシュ周りの構造。3次キャッシュはCCXの4つのコアで共有、という構造は同じ

 ちなみに1次/2次キャッシュはSharedだが、2次/3次キャッシュはVictimの構成になっているのは従来と同じ。余談ながら、このVictimキャッシュが理由で、3次キャシュへのプリフェッチの機能は実装されていないそうである。

 キャッシュ周りでは、3種類の制御命令が新たに追加されている。これは性能改善というよりは、例にもあるようにNVDIMMやアクセラレーター、あるいは将来のOSの利用に向けたもので、どちらかといえばRyzen系列というよりはEPYC系列向けの機能と言えよう。

3種類の制御命令が追加。ついにキャッシュ制御にまでQoS(Quality of Services)の概念が入ったか、という感じである

カテゴリートップへ

この連載の記事