後藤弘茂のWeekly海外ニュース
ARM CPUコアアーキテクチャ刷新の土台となる「DynamIQ」の実態
2017年3月28日 13:30
次世代Cortex-Aのプラットフォームとなる「DynamIQ」
ARMが新しいCPUクラスタアーキテクチャ「DynamIQ」を発表した。DynamIQは、今後登場する新世代の「Cortex-A」CPUコアファミリの土台となるクラスタアーキテクチャだ。
ポイントは、CPUクラスタの規模を最大8コアに拡張、クラスタ内で異なるCPUコアが混在するヘテロジニアスマルチコア構成を可能とした点。従来のARMのCPUクラスタは、最大4コアで、同一種のCPUコアだけのホモジニアス構成のみだった。
結果として、DynamIQベースの新Cortex-Aファミリでは、より大規模なマルチコア構成が容易になる。「big.LITTLE(大型CPUコアと小型CPUコアの組み合わせ)」のヘテロジニアスマルチCPUコア構成でのコア切り替えが高速かつ効率的になり、よりきめ細かなCPU制御によって電力をさらに抑えられるようになり、CPUコア自体をより高性能設計にすることが容易になる。
ARMは、DynamIQに沿った新しいCortex-AファミリCPUコアを、今年(2017年)発表すると見られる。新世代Cortex-Aでは、CPUマイクロアーキテクチャが変わるだけでなく、命令セットにも拡張が加えられる(ベースはARMv8-A命令)。
DynamIQは、AI(Artificial Intelligence)やML(Machine Learning)との関連を強調したARMのマーケティング戦略によって、AI/MLに特化したアーキテクチャのようなイメージを持たれた。
しかし、DynamIQの実態は、AI/MLワークロードに特化したものではなく、多コア時代のCPUコア群を統合するための汎用的なクラスタアーキテクチャだ。適用範囲は、サーバー&ネットワークインフラからローコストモバイルまで幅広い。
もっとも、新CPUで加わる命令拡張はAI/MLをターゲットとしたものとなる。その意味では、DynamIQ世代のCortex-AはAI/MLに適したコアとなる。ただし、AI/MLワークロードを加速するアクセラレータコアやGPUコアなどは、DynamIQクラスタには統合されない。
DynamIQは、CPUコアのクラスタアーキテクチャで、ほかのコアはコヒーレントインターコネクトで接続される。ただし、DynamIQクラスタ外のアクセラレータとのレスポンスも、DynamIQ世代では高速化されるという。
進む多CPUコア化とデータ量の増大に対応する新アーキテクチャ
ARMがDynamIQを打ち出した背景には、ARM CPUコアの市場がますます拡大し、多コア化が急速に進んでいる現状がある。
今後5年間に出荷が予想されるチップの数は1千億に上る。用途はセンサーからスーパーコンピュータまで広がり、通信は5G時代に突入することでデータ量が爆発する。
こうした指数関数的なコア数やデータ量の増大に対応するためには、ARMのCPU IP側も変革しなければならない、とARMのNandan Nayampally(ナンダン・ナヤンパリー)氏(Vice President and General Manager, Compute Product Group, ARM)は説明する。
DynamIQはそうした状況に対するARMの解答の第1段だ。実際には、DynamIQの後に、DynamIQ対応の新世代Cortex-AファミリCPUが続く。DynamIQプラットフォームの全貌は、そうした要素がすべて出揃う今年(2017年)中盤以降に明らかになるだろう。
しかし、目指すところは明快だ。DynamIQクラスタへと切り替えることで、ARMはCPUコアのマイクロアーキテクチャも刷新し、big.LITTLEのヘテロジニアスマルチコアを効率的にし、電力効率をより高め、より多くのCPUコアを搭載できるようにし、クラスタ内のスループットを高めようとしている。
DynamIQでは、ビッグ(大型)CPUコアとリトル(小型)CPUコアを組み合わせたbig.LITTLE構成のヘテロジニアスマルチコアの設計自由度が高まる。3種類のCPUコアの組み合わせや、1個のビッグCPUコアと、3個のリトルCPUコアといった小構成のbig.LITTLEシステムが容易になる。
また、big.LITTLEを使わない場合も、クラスタサイズが大きくなるため、DynamIQクラスタを複数搭載することで、より大規模なマルチCPUコア構成を効率的に実現できる。これは、サーバーやネットワークインフラストラクチャ向けのチップでは効果が大きい。
クラスタあたりのCPUコアの数が増えるだけでなく、DynamIQに対応したCortex-Aには命令拡張が加わる。そのため、AI/MLワークロードでは、今後3~5年間で性能が最大で50倍に上がるという。これは、低データ精度に対応したSIMD(Single Instruction, Multiple Data)によって、インファレンス(推論)アクサラレートを行なうものと推測される。
今回のDynamIQに含まれていないのは、CPUクラスタから外側の要素だ。GPUコアやAI/MLアクセラレータコア、オンダイインターコネクト、メモリインターフェイスなどの拡張は、今回の発表には含まれていない。
DynamIQは、あくまでも次世代Cortex-Aファミリのプラットフォームクラスタであり、CPU以外の要素は入っていない。また、Cortex-RやCortex-Mなど下位のクラスのCPUも、DynamIQのサポート範囲ではない。
big.LITTLEの弱点をカバーするDynamIQ
DynamIQは、big.LITTLE型のヘテロジニアスマルチコア構成と、通常のホモジニアスマルチコア構成のどちらのクラスタにも対応できる。このDynamIQの特徴は、現在のbig.LITTLEシステムの抱える問題点の解決策になる。
big.LITTLEアーキテクチャは、ARMが提唱して提供しているヘテロジニアスマルチコアアーキテクチャだ。ビッグCPUコアとリトルCPUコアを搭載。負荷の高いタスクはビッグCPUコアで実行し、負荷の小さなタスクはリトルCPUコアで実行。2つのコアを自由に使い分けたり切り替えることで、最適な性能と電力を実現する。
big.LITTLEでは、負荷の高いタスクをリトルコアからビッグコアに移したり、その逆にビッグからリトルに移すケースが発生する。このタスクマイグレーションが効率的かつ高速にできると、big.LITTLEの有効性が高まる。ソフトウェアサイドでは、現在はOSのスケジューラでタスクの割り振りを行なっている。
しかし、現在のbig.LITTLEでは、ビッグCPUコアとリトルCPUコアは、別なCPUクラスタとなっている。現在のクラスタアーキテクチャでは、CPUコア毎にキャッシュ階層がある。クラスタ間では、キャッシュコヒーレンシプロトコルによってコヒーレンシを取る。クラスタをまたいだ共有キャッシュは、一部を除けばサポートされていない。
そのため、ビッグCPUとリトルCPUとの間でタスクをマイグレートした場合には、キャッシュが足かせとなる。
例えば、ビッグCPUコアから、タスクをリトルCPUコアにマイグレートした直後は、クラスタが変わりキャッシュが異なるため最初はキャッシュが効かない。
また、タスクが必要とするメモリ内容がもとのビッグクラスタにキャッシュされている場合、クラスタ間のキャッシュスヌープとデータ転送のロスが生じる。キャッシュミスによる性能低下と、余計なトラヒックによる電力消費の増大となる。
このように、クラスタ毎に分割されたキャッシュ階層は、クラスタをまたぐ現在のbig.LITTLEシステムの弱点となっていた。しかし、DynamIQはこの問題を根底から解決すると見られる。
ARMは現在、まだDynamIQのキャッシュ階層については詳細を明らかにしていない。しかし、コア間でシェアードメモリになることは明示されている。DynamIQクラスタの内部では、すべてのCPUが、クラスタ内のラストレベルキャッシュを共有する仕組みになることは間違いない。
Cortex-A CPUのメモリ階層アーキテクチャの刷新
こうした背景があるため、DynamIQはARMにとって、CPUのキャッシュ階層を根底から改革するきっかけとなる。
ARMの従来のCortex-A系CPUクラスタは、クラスタ内に共有L2キャッシュと、CPUコアそれぞれにL1キャッシュの2階層キャッシュとなっていた。L3キャッシュについては、ARMはSoCのインターコネクトファブリックにL3キャッシュを統合したソリューション(CCN-508など)を提供してきたが、それは限られた用途向けだった。
DynamIQクラスタのキャッシュ階層はまだわからないが、クラスタ内のキャッシュが最大3階層になる可能性がある。実際、ARM関係者はDynamIQ世代でL3キャッシュも視野に入れていることを示唆する。
また、キャッシュの容量の自由度も高まる。これまでは、キャッシュ容量を大きくすると、タスクをコア間で移行させた場合のロスが大きくなってしまっていた。しかし、DynamIQが、異なるコア間でのキャッシュ共有を可能とするなら、そうした制約もなくなる。
DynamIQがキャッシュメモリを共有するbig.LITTLE構成を実現するなら、CPUコア間でのタスクマイグレーション時のキャッシュのペナルティが非常に小さくなる。
ARMは、それ以外にもタスクマイグレーションを高速化する仕組みをDynamIQに取り入れると説明している。そのため、DynamIQ世代では、より高速なタスクマイグレーションによる効率的なbig.LITTLE制御が可能になるという。
また、DynamIQ世代のCortex-Aでは、細粒度で細かなステップでの動作周波数/電圧切り替えが、各コア単位で可能となり、電力効率が上がるという。スリープステイトへのイン/アウトなど電力ステイトの遷移も高速化される。メモリの電力制御も自動的に最適化される。DynamIQプラットフォームでのCPUコアの電力効率化は段階的に進み、後の世代になるにつれてより効率的になるだろうという。
ビッグ-ミディアム-リトルの3階層構成も容易に
CPUタイプ毎にクラスタが分かれる従来のbig.LITTLEでは、2種以上のCPUコアを混在させた構成が難しかった。
大型のビッグCPUコアと小型のリトルCPUコア以外に、中型のミディアムCPUコアを挟み込んだ3層のbig.Medium.LITTLE構成の場合、CPUクラスタは3つに分かれることになる。クラスタ毎にキャッシュが分割されるため、3ギアでのタスクマイグレーションは効率が悪くなる。
MediatekはモバイルSoC「Helio X20」において高性能Cortex-A72を2個、ミドルレンジのCortex-A53を4個、低電力実装のCortex-A53を4個の3階層のヘテロジニアスマルチコア構成を取った。そのために、3つのCPUクラスタをコヒーレントインターコネクトに接続した。現在のARM Cortex-Aアーキテクチャでは、3種のヘテロジニアスマルチコア構成は、この方法しか実現する手段がない。
しかし、DynamIQでは、すべてのコアがキャッシュを共有すると見られるため、3階層の3ギア構成のbig.LITTLE設計がより容易になる。
タスクマイグレーション時のキャッシュミスがなくなるため、3段階に小刻みにコアを切り替えてもロスが小さい。無駄なスヌープトラフィックもなくなる。そもそも、ARMの設計では、2種までのbig.LITTLE構成しかサポートされておらず、Mediatekのような3階層big.LITTLEはイレギュラーだったが、DynamIQでは公式サポートとなる。
「DynamIQでは、従来とは異なるデザインポイントのbig.LITTLEが可能となる。たとえば、2個のビッグコアと2個のミディアムコア、4個のリトルコアといった構成だ。モバイルシステムでは、こうした構成も望まれている」とIan Smythe氏(Senior Director of Marketing Programs, ARM)は説明する。
低価格スマートフォンのシングルスレッド性能を向上させるDynamIQ
DynamIQでは、big.LITTLEが効率的になるだけではない。DynamIQを採用することで、big.LITTLE構成を、低価格のスマートフォン向けSoCにも拡張できるという。
big.LITTLEによる、大型CPUコアと小型CPUコアの組み合わせは、ハイエンドのモバイル向けSoCでは一般的となっている。しかし、ローコストモバイル向けSoCでは、小型CPUコアだけの構成が依然として多い。
従来のアーキテクチャでは、big.LITTLE構成を取るためには、CPUクラスタを2個搭載することになり、CPUコア数が少ない場合は設計上効率的ではなかったからだ。だが、DynamIQでは、小構成のbig.LITTLEが容易となる。
「big.LITTLEはプレミアムからミドルまでのモバイルには浸透した。しかし、DynamIQでは、big.LITTLEがローコストデバイスの設計にも浸透できる。ローコストモバイルでは、現在の設計では(小型CPUコアであるため)シングルスレッド性能が低い。こうしたローコストデバイスでは、1個のビッグCPUコアを載せるだけで、コンシューマ市場では十分なだけのシングルスレッド性能に高めることができる。
ローコストモバイルでは、(コストを抑えるため)よりシンプルなCPU構成が求められる。DynamIQでは、例えば、1+3、つまり、1個のビッグコアと3個のリトルコアといった構成が可能になる。そのため、ローコストモバイルにも、ビッグコアを搭載することが容易になる。DynamIQによってCPUコアの制御がきめ細かくなることで、電力もセーブできる」とSmythe氏は語る。
従来アーキテクチャでは、1個のビッグコアと3個のリトルコアは2クラスタになってしまうため、回路的にムダが多く効率的な実装とは言えなかった。
しかし、DynamIQでは、こうした構成も現実的な実装となる。ローエンドスマートフォンにまで、big.LITTLEアーキテクチャが浸透し、結果として低価格スマートフォンのシングルスレッド性能が向上する可能性がある。
CPUクラスタの外は既存のインフラストラクチャが使える
1つ重要な点は、DynamIQで変わるのは、CPUクラスタの内部だけに限られる点だ。「クラスタの外側はすべて現在と同一のものが使える。同じ、AMBA、同じACEだ。変わるのはクラスタの中だけだ」Ian Smythe氏(Senior Director of Marketing Programs, ARM)と説明する。
ARMは、SoCのコンポーネントの多くと、それらを結ぶインターコネクトのIPも提供しており、インターフェイスも規格化して公開している。これらのプラットフォームは、DynamIQ世代クラスタでも変わらない。
ARMのSoCオンチップインターコネクトは、オープン化された「AMBA(Advanced Microcontroller Bus Architecture)」規格に沿っている。AMBAは、SoCを構成するために必要なインターフェイスやファブリックの一連の規格群で構成されており、世代がある。現在主流となっているのは「AMBA 4」で、用途や機能が異なる複数のインターフェイス規格がある。
AMBA 4において、CPUクラスタから内部バスへのインターフェイスの規格は「AXI4(Advanced eXtensible Interface)」規格が定義されている。また、サブセットの「AXI4-Lite」や、マスタからスレーブへの一方向「AXI4-Stream」がある。
AXI4はキャッシュコヒーレンシがサポートされている。AXI4での双方向コヒーレンシのプロトコル規格は「AXI Coherency Extensions (ACE)」、I/Oコヒーレンシまたは一方向コヒーレンシの規格は「ACE-Lite」となっている。
ACEによるコヒーレンシは、現在のクラスタ間big.LITTLEには欠かせない。また、より広帯域で拡張性の高いインターフェイスとして「AMBA 5」世代の「CHI(Coherent Hub Interconnect)」がある。
AMBAでは、SoCの内部で各コアやユニットを接続するインターコネクトの規格も策定されている。「CoreLink Interconnect」ファミリで、モバイルで採用されている「CoreLink CCI (Cache Coherent Interconnect)」、サーバーやインフラストラクチャ製品向けの「CoreLink CMN (Coherent Mesh Network)」、「CoreLink CCN (Cache Coherent Network)」、より低速な「CoreLink NIC (Network Interconnect)」などがある。
DynamIQでは、これらのインターフェイスやインターコネクト、またDRAMコントローラなどの周辺ユニットは変更がない。すべてはCPUクラスタ内だけの閉じた変革となっている。ちなみに、ARMのAMBAはオープン化されているが、ARMはCPUクラスタ内のインターコネクトはオープンにしていない。
DynamIQクラスタは、新世代Cortex-Aファミリのためのものだ。新Cortex-AファミリCPUコアのIPライセンスをARMから受けたチップベンダーは、DynamIQのクラスタのライセンスも受けることができる。
しかし、ARMからのアーキテクチャルライセンスを受けて、チップベンダーが自社開発したCPUコアを、ARMのDynamIQクラスタにはめ込むことはできない。
実際には、ARMはこれまで、CPUクラスタの形でファウンダリからのハードマクロの提供や、ファウンダリの特定プロセスに最適化した「POP(Process Optimization Pack)」の提供を行なってきた。DynamIQについても、新世代Cortex-Aと同時に、こうしたマクロやPOPの提供も行なわれると見られる。
DynamIQの登場により、ARMが今年からCortex-Aファミリのアーキテクチャ刷新を行なうことが明確になった。ARMのCortex-Aファミリの新たな発展が見られる年となる。
アーキテクチャルライセンスを受けた他社(Qualcomm、Apple、Samsung、NVIDIA)などがいずれも命令並列度の高い高性能コアを出す中、ARMのCortex-A系は性能面ではやや大人しいラインとなっている。DynamIQ世代でそれが変わるかどうかがカギとなる。