第253回 10年ぶりのアーキテクチャ刷新、「Armv9」で何が変わる?頭脳放談

Armが久しぶりに新しいアーキテクチャ「Armv9」を発表した。v9は、現在主流のv8と何が違うのか、技術的にどのような進化があるのかを筆者が読み解く。Armはどこに向かおうとしているのだろうか。

» 2021年06月18日 05時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

Armv9の構成 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アーキテクチャの未来」ビデオで、バージョンが上がるにつれて、箱が大きくなるプレゼン資料をそのまま素直に受け取れば、新たなアーキテクチャの最新製品は、格段によいものの登場という印象を受けるだろう。しかし、型番とかシリーズ名称とかの変更には、ビジネス上の理由が必ずある。端的な技術を見る前に一歩引いて考えてみるのもいいだろう。新しいアーキテクチャは新たなビジネス方針のスタートラインでもあるのだ。

Armのアーキテクチャの流れ Armのアーキテクチャの流れ
アーキテクチャが刷新されるたびに新しい機能が追加されている。図版は、「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に変化が
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アーキテクチャには系統分岐が多く、オプション的な扱いとなっていた部分では袋小路となった道筋もある。

 また、大きな変化が起こった場合、その裏には名目はともかく実質的に「捨て去った」ものが必ずある。逆に言えば、「捨てた」ものがなかったときは技術的には継続、小幅な変化だ。

 今回、「Armv9」という名になったが、世間に知られたArmの歴史は、Armv4から始まる。それ以前もArmはあったが、世間に知られた存在ではなかったのだ。さてヨーロッパ起源の携帯電話のおかげで世界に認められたArmv4だ。すなわち「ARM7TDMI」の頃である。このプロセッサの売りといえば、Arm命令とThumb命令の切り替えである。

 32bit幅の記述力の高いArm命令と16bit幅のフットプリントの小さなThumb命令を適宜「切り替えて」使用できるというのが、メモリを潤沢に搭載できなかった時代の売りだったわけだ。

 いまでもThumb、Armの切り替えは32bit OSのRaspberry Piの上で遊んでみることができる。しかし、現在のマイコン向けのArmコアでは「なくなった機能」なのだ。Armv6の頃だったと記憶する「Thumb-2」という命令セットの登場とともに実質切り捨てられたのである。

 Thumb-2は、Thumbの改良版(?)のようなネーミングなので、だまされる人が多いのだと思うが、16/32bit可変長の異なる命令セットである。以前のThumb命令の範囲の処理は、Thumb的な16bit幅、それで記述できない部分はArm的な32bit幅の命令を混在使用できる。考え方は似ているので混乱する。それ以前は、分岐するごとにArmかThumbかを決めていたのだ。

 よって、全く同じ処理を書く方法が、ArmとThumbと2通り存在する。また、Arm命令でないと記述できない処理のためには、わざわざ分岐を設ける必要があった。要するに、無駄が多かったのだ。Thumbのようなフットプリント削減は、Cortex-Mシリーズのような組み込み向けのマイコンでこそ必要な機能だ。現在主流のCortex-Mシリーズマイコンは、Thumb-2のみのサポートである。

 次に捨てられたのは、32bitのArm命令だ。いまでも32bit OS用には残っているので「捨てられた」と書くと反発も大きいかもしれない。

 しかし、これでv4の頃の命令セットは2つとも捨てられたことになるのだ。もともとのArm命令はRISCとしてはかなり独特なものである。条件付き実行、汎用レジスタに割り当てられたプログラムカウンタなどを特徴としていた。

 汎用レジスタ本数は、表面的には16本だが、変なレジスタ構成なので実際には13本である。Z80的割り込み対応裏レジスタ的なものまであった。そんなArm命令セットはスーパスカラー化、スペキュラティブ化していく上位のArmプロセッサにおいて、厄介者であったに違いない。ハッキリ言って性能の足を引っ張っていたと想像する。

 そこに機会が訪れた。32bitのメモリ空間(4GB)では、もはや収まらなくなり、64bitのメモリ空間に移行しなければならなくなったのだ。つまりは、Armv8の登場だ。その際、64bitモードでは、それらArmの特徴であったはずのものをバッサリ切り捨てた。新規ではあるが、どちらかというと普通のRISC的な32本の汎用レジスタを使えるA64命令セットに移行したのだ。邪魔者がいなくなり、マイクロアーキテクチャ的にはすごく設計しやすくなったはずだ。

 いまでもArm命令セットは互換性のために残されてはいるものの、既に上位機種は、みんな64bit OSだろう。64bit命令への移行は、単にメモリ空間を広げるだけでなく、性能の足かせを外すためでもあったのだ。

ナンバリングとネーミング上ではArmv7以来の大きな変革

 そういううがった目で今回のArmv9を見てみる。確かに性能的には向上しているが、常に新製品では20%や30%は向上するものだ。世界最高性能をたたき出した日本のスーパーコンピュータ「富岳」に端を発する命令セットも取り込まれてはいる。

 しかし、過去もたびたびSIMD命令セットは追加、更新されてきた。セキュリティでは見るべきものが多いが、v8.xというネーミング下で、積み重ねてきた改良の集大成の上にあるものに見える。

 筆者の節穴な目で見ると、過去のメジャーなアーキテクチャのバージョンアップに存在した「バッサリ切り捨て」はない。そんな断絶は見えないのだ。技術的には、取りあえず現時点では、いままでの延長、マイナーバージョンアップだ。

 しかし、ナンバリングとネーミング上ではArmv7以来の大きな変革となる。Armは微妙に立ち位置を変えようとしているように思われてならない。どこへ向かおうとしているのか。今回のArmv9というのは、向かう方向を変えたという宣言だろう。技術的な変革は、ネーミングの後から、ターゲット市場に適合する中で培われていくのではないかと思う。

筆者紹介

Massa POP Izumida

日本では数少ないx86プロセッサのアーキテクト。某米国半導体メーカーで8bitと16bitの、日本のベンチャー企業でx86互換プロセッサの設計に従事する。その後、出版社の半導体事業部などを経て、現在は某半導体メーカーでヘテロジニアス マルチコアプロセッサを中心とした開発を行っている。


Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。