COMPUTEX TAIPEI 2019前日にあたる5月27日、英ArmはProcessor IPのCortex-A77とGPU IPのMali-G77、そしてDisplay IPのMali-D77とArm ML Processorを発表した。今回はこのうち、Cortex-A77について紹介する。

Cortex-A77は2018年発表のCortex-A76をベースにIPCを20%以上引き上げ(Photo01)た製品である。ことML(Machine Learning)に関していえばCortex-A55比で35倍もの性能改善となる(Photo02)ほか、絶対性能という観点では、2013年のCortex-A15比でいえば4倍もの改善を実現した(Photo03)という。

  • Photo01:これは同一プロセス、同一周波数での比較だそうである

  • Photo02:Cortex-A55はInt 8のDot 8のサポートなども入っていないから当然ではある。逆にML関連でいえばCortex-A76からの大幅な改善がないので、性能比はIPC比に近い25%の向上となっている

  • Photo03:この向上の最大の要因はプロセスの微細化に伴う高速化であるが、IPCの改善も大きい

さて、このような性能向上をどのように実現したのか。Cortex-A77はCortex-A76をベースとした構成である。つまり4命令同時デコードのSuper Scalar/Out-of-Orderの構成である(Photo04)。以下が変更点としてあげられている(Photo05)。

  • Macro-Op Cacheの搭載(1.5M Ops)
  • 6 MicroOpsの同時発行
  • ALUを強化するとともに、Dual Branch Predictionをサポート
  • Photo04:ただしPipelineは1段増えて11段になったとのこと

  • Photo05:この図だとMicroOps CacheがまるでDecode前に置かれているように見えるが、これは単に図の都合であり、もちろんDecodeを澄ましてMicroOpsに変更した後の命令をCacheする

Front Endでは、Branch Predictionの強化(Photo06)とMicroOps Cacheの搭載(Photo07)が挙げられる。特にループなどに入っている間はこれが効果的に作用するうえ、その間はデコード段を止められるので省電力化にも貢献=その分動作周波数をあげられるということで性能改善に大きな効果がある。

  • Photo06:Dual Branch Unitの搭載に合わせて、Branch Predictionの帯域が倍増されている。"Next-generation improvements"の詳細は不明だが、こちらもPerceptronベースとかになっているのかもしれない。BTBも随分大型化された

  • Photo07:ただMacro-Op Cacheはレジスタに近い速度でアクセスされるから、結構なトランジスタ数を食いそうでもあり、1.5Mopはそれなりにエリアサイズにインパクトがありそうではあるが

次がDecode→Rename→Dispatchで、ここは6命令に拡張された。これはSamsungのM3などに並ぶ幅であり、これに合わせてIn-Flightの命令数も160 Entryに拡張されている(Photo08)。

  • Photo08:Arm64命令ベースでは4命令/cycleであるが、これを展開した結果を最大6命令/cycleで処理するという意味であり、その意味では6命令のSuperScalarとも言える

実行段(Photo09)では4つ目のALUが追加され、その意味では真の4命令/cycleのプロセッサになったともいえるが、加えて2つ目のBranch Unitが搭載され、Nested Branchの場合にも投機実行が可能になった形だ。

  • Photo09:AESパイプラインが追加されたり、Instruction Queueが分離されたり、一部の命令ではLatencyが削減されたり、といった改良も施されている

これを支えるL1/L2キャッシュも、Load/Store Unitの強化が施されており(Photo10)、さらにData Prefetcherを強化することで実効帯域を増強したとする(Photo11)。

  • Photo10:以前はLoadStore UnitのキューがLoad 68entry/Store 72entryの構成だったが、これを増強した。帯域そのものは32Bytes/cycleで変わらないが、ここをいじったら消費電力が大きく増えることを避けたものと思われる

  • Photo11:単純なPrefetchではなく、かなり複雑なパターンのアクセスに対応した模様

こうした効果により、Cortex-A76比で20%以上(アプリケーション次第)の性能改善がなされた、というのがCortex-A77の主な改良点である(Photo12)。

  • Photo12:当然アプリケーションによって性能改善比は変わるが、Geekbench V4の様なアプリケーションで15%以上の性能改善がなされているのはなかなか大きな数字と言える

駆け足で簡単に紹介したが、基本的にはCortex-A76の改良といいつつ、内部構成はずいぶんとリッチになっている。おそらくこれはCortex-A76設計時に、こうした拡張を多少考慮していたのではないかという気がする。

そろそろPC向けプロセッサと同一周波数では性能的に並ぶところまで来たのではないか、という感じの構成になっているのがお分かりいただけるかと思う。