このページの本文へ

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

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

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

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

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

大幅な性能改善に貢献した
チップレット周り

 さて次がチップレットの話。Zen 2ではメモリーコントローラーはCPUダイから外れ、I/O チップレット側に移動したという話はすでに説明した通り。

 ここでCPUチップレットとI/Oチップレットの間はインフィニティーファブリックで接続されるが、この帯域もまた32Bytes/サイクルである。これはメモリー帯域が32Bytes/サイクルなのでこれにあわせている。

逆に言えば、2つのCCD間の通信も32Bytes/サイクル以上のスピードにはならない、ということでもある

 ちなみにここでいうサイクルはCPUの動作周波数ではなく、インフィニティーファブリックの動作周波数になることに注意されたい(上の画像で言うところのfclk)。

 さて、この構造はメリットも多い一方で性能面へのインパクトもある。Ryzen ThreadripperでDynamic Local Modeが用意されたのも、複数チップに分散したことに起因するボトルネックを緩和するための方法の1つであるが、Zen 2でもこうした配慮が用意される。

ボトルネックの緩和策。Windows系はWindows 10のMay 2019 Updateでこれに対応するが、Linux系に対してのパッチがどうなっているかは現状不明

 1つはTopology Awareness。たとえばあるコアで新規スレッドを作成したときに、その新規スレッドが別のCCDで動いたりすると、猛烈な量のアクセスが2つのCCDの間で発生してしまう。

 これを防ぐため、同一プロセスに属するすべてのスレッドは、同じCOD(同じCCX)で動かすようにするという配慮がされる。これはハードウェア側の問題ではなく、OSのスケジューラーの問題である。

 ちなみにこれは単にRyzen 9 3900シリーズのみならず、従来のRyzen系でも有効であり、Ryzen Threadripperでも有効である。

 もう1つはClock Selectionである。ACPI 5.1でCPPC(Collaborative Processor Performance Controls)という機能が追加されており、これは2014年頃のCPUから広くサポートされるようになっているが、これを高速化したCPPC2という機能がACPI 6.0から追加になった。

 Zen 2ではこのCPPC2をサポートした結果として、従来30ms程度要していたClock Selectionを1~2msまで短縮できたという話である。

 ちなみにこの効果であるが、Topology Awarenessで15%の、CPPC2サポートで6%の性能改善が果たされた、としている。

Topology AwarenessはあくまでRyzen 9やRyzen Threadripperなどでのみ有効な機能で、Ryzen 7以下ではあまり意味はない。またCPPC2はそれこそApp Launchのようなケースでは効果を発揮するが、アプリケーションが一度稼働した後は基本関係ない

 ところで1ページ目のバッファ周りの画像で“Hardware-enhanced Security mitigation”という項目が上がっていたが、具体的な改善項目というのが下の画像だ。

セキュリティーに対する改善項目。この脆弱性の対策でけっこう性能が劣化するケースが多いので、これも大きく見れば性能改善の一助になっているとは言える

 もともとZen系列は、Spectre/Meltdownからスタートした一連の脆弱性に(インテルに比べると)特に対策なしで対応できるという強みがあったが、唯一OS周りの対策が必要だったSpectreに対してハードウェアでの対応を強化したという話である。

カテゴリートップへ

この連載の記事