第253回 10年ぶりのアーキテクチャ刷新、「Armv9」で何が変わる?:頭脳放談
Armが久しぶりに新しいアーキテクチャ「Armv9」を発表した。v9は、現在主流のv8と何が違うのか、技術的にどのような進化があるのかを筆者が読み解く。Armはどこに向かおうとしているのだろうか。
Armv9の構成
Armv9の最初の世代では、big.LITTLEの構成として、LITTLEに「Cortex-A510」、bigに「Cortex-A710」、さらに上位に「Cortex-X2」を組み合わせた構成となる。図版は、Armの Processors blog「The foundation of Total Compute: First Armv9 Cortex CPUs」より。
Armが、新しいアーキテクチャ「Armv9」の新製品を発表し、話題になっている(Armv9に関するプレスリリース「AI、セキュリティ、用途特化型コンピューティングの未来を切り拓く、Armの最新アーキテクチャv9を発表」、Armv9採用のプロセッサに関するプレスリリース「広範なコンシューマ機器に最適なパフォーマンス、セキュリティ、およびArmv9のメリットを提供するArm Total Computeソリューションを発表」)。
ArmのWebページ「Armで構築される世界へ向けて」の「Armアーキテクチャの未来」ビデオで、バージョンが上がるにつれて、箱が大きくなるプレゼン資料をそのまま素直に受け取れば、新たなアーキテクチャの最新製品は、格段によいものの登場という印象を受けるだろう。しかし、型番とかシリーズ名称とかの変更には、ビジネス上の理由が必ずある。端的な技術を見る前に一歩引いて考えてみるのもいいだろう。新しいアーキテクチャは新たなビジネス方針のスタートラインでもあるのだ。
「v9」とバージョンを変えた背景はビジネス?
まずは、「v9」というナンバリングだ。これが出ることで「v8」は「確実に旧世代」と認識され、これからは「v9の時代」とみなさんが捉えることになる。
仮に同じアーキテクチャが「v9」でなく、「v8.x」(つい最近までArmはv8.xというナンバリングでアーキテクチャ拡張を継続的に行ってきていた)というネーミングであったならばどうだろうか。地味な印象でこれほど注目を集めなかったのではないかと思う。
いまや旧世代になってしまった「v8」は、それ以前の「v7」とは一線を画した大規模なアーキテクチャ変更であった。「v8」は、「v7」以前とは一線を画する64bit化を果たしたメジャーな変更であったからだ。
しかし、その大きな一歩と比べてしまうと、「v9」は「v8.x」なるマイナーなネーミングで積み重ねてきた改良の集大成といった感じがする。筆者の勝手な意見だが、「v8.x」的なネーミングであっても、決して据わりは悪くなかったのではないかと思う。
「v9」と「大きく」バージョンナンバを変えたのには、明らかにビジネスの匂いがする。ライセンシー各社の個別の契約は知らない。ただ、下世話な話になるが、メジャーなバージョンアップは、Armかライセンシー各社への「またライセンス料を払ってついてきてね」という請求書と同じに思えるのだ。
この誘いに乗らざるを得ないところは多いはずだ。例えば、同じ市場向けに同じArmコアで製品を出している競合他社が、いち早く新しいアーキテクチャに更新すれば、それだけで差がついてしまう。市場から脱落しないためには、新アーキテクチャの使える契約に更新せざるを得ないと想像する。
また、製造を考えてもそうせざるを得ないかもしれない。昔だったら1種類のCPUコアが複数のプロセス世代に移植され続けるような状況はあった。しかし、最近では特定バージョンのコアは特定のプロセスに引っ付いているように見えるからだ。
だいたい最先端のArmコアのSoC製品を製造しようと思ったら、現状、TSMCかSamsung Electronicsに頼むしかない。「最先端の製造プロセスの性能を享受するためには、最先端のArmコアを選択するしかない」ともいえる。
ただ、Armがそういう下世話で、端的なセールスのみを考えてナンバリングを変えたわけではない、と断言しておこう。ArmはIP(半導体設計)ベンダーなので、毎年毎年、改良したコアのリリースをし続け、メンテナンスフィーとか、サポートフィーとか、新たなコアのライセンスフィーとかを売って成り立つ会社なのだ。ロイアルティのみに安住しているわけではない。
つまり、下世話なセールス(失礼)はいつものことであり、今回のような大きなネーミングの変更には、何らかのビジネス方針の変更というものが隠されているはずなのだ。
v9では新たに高性能なコアが登場
そう思ってArmv9を観察すると状況証拠がいろいろと上がってくる。まず、長いことArmは、「Cortex-A53」「Cortex-M3」「Cortex-R8」といった具合に、その製品ラインの頭文字に「A」「R」「M」のめでたい3文字を当ててきた。その後の数字は、1桁もしくは2桁である(Armv9では、3桁になったが)。数字の大きい方が新しくて性能がよい、という雰囲気を醸し出してきた。
それが、ここにきて「V」「N」「X」などという新たな頭文字が登場してきている。「V」「N」はサーバ機など向けで、「X」がスマホやPC向けだと思う。実は、これらの頭文字はArmv9に先んじて、Armv8世代のコアとArmv9世代にまたがって登場してきている。
その中で今回、「X2」登場である。Armv9アーキテクチャの最新製品だ。「X」という文字は、既存のAシリーズの「上」に位置付けたいという明確な意思表示に違いない。そして、Armv9コアのAシリーズについては、桁数を3桁にしてきた。2桁の番号を使い切ってしまったわけではないと思うが……。
さらに、Arm伝統のbig.LITTLEが大分込み入ったことになってしまっている。本来、big.LITTLEは全く同じ命令セットを持つが、big=高性能(けれど消費電力が多い)コアとLITTLE=低消費電力(性能はそこそこで低消費電力)のコアを切り替えて、性能と電池の持ちの両立を図るものだった。しかし、今回からはbigの上にX2がいるのだ。いつの間にかbigは本物のbigではなく、真ん中のコアに格下げになってしまっている。
Armv9ではbig.LITTLEに変化が
Armv9ではbig.LITTLEの上にさらに高速なCortex-Xシリーズが配置される。それぞれのCPUが最適なワークロードを実現するとしている。図版は、Armの Processors blog「The foundation of Total Compute: First Armv9 Cortex CPUs」より。
前回、このような「ネーミング」の変更がなされたのは、Armv7の時代に、「A」「R」「M」の頭文字の3シリーズが制定されたときであった。このときのv7は、当初は技術的にはv6の延長上に位置するような感じであった。
ここで、Armのビジネススタンスが大きく変わったと思う。それ以前の「v6」までは、高性能のコア向けにマイクロアーキテクチャを新設計し、その度にバージョンが上がっていくという雰囲気であった。だから高性能なものは、最先端のバージョンが採用された。一方、組み込みの低コストなものは、過去の古いアーキテクチャの製品がそのまま生き残ることが多かったのだ。
しかし「v7」では、スマートフォンなどの製品向けの「A」、高度なリアルタイム制御向けの「R」、そして低コストなマイコン向けの「M」と、明確にマーケットのセグメント向けにシリーズを分けていた。そして、それぞれのシリーズが独自の発展を遂げている。
その成功例が「M」だ。かつては各社がそれぞれ独自のコアでビジネスしていたマイコン業界において、Armコアのマイコンが各社の自社コアを駆逐した(しつつある)のは、まさにMシリーズが独立したおかげだと思う。
Mシリーズなどを見ていると、一応、「v6」「v7」「v8」みたいな世代分けはされているのだが、基本的に「v6」から変わっていない。後の世代は、オプションを盛っただけ、という気がしないでもない。
いまにして思えば、ネーミングの変更はテクノロジーの更新というよりも、売り方、市場との向き合い方の変更であった。もちろん、こういう名称上の切り替えは単なる名前の変更でなく、ビジネス上(多くは契約書と金額)の変更を伴うものだ。
アーキテクチャの技術面には何か変化がある?
さてアーキテクチャの技術的な面も、少々触れておこう。
世間的には、Armという一本の筋の上に小から大へと整然と並んでいるように捉えている人も多いようだ。しかし、あえて異論を唱えさせてもらえば、Armアーキテクチャには系統分岐が多く、オプション的な扱いとなっていた部分では袋小路となった道筋もある。
また、大きな変化が起こった場合、その裏には名目はともかく実質的に「捨て去った」ものが必ずある。逆に言えば、「捨てた」ものがなかったときは技術的には継続、小幅な変化だ。
Copyright© Digital Advantage Corp. All Rights Reserved.