後藤弘茂のWeekly海外ニュース

オースティンで開発されたARMの次期フラッグシップCPU「Cortex-A72」

Cortex-A72ではマイクロアーキテクチャの拡張と設計最適化で性能を伸ばす

ARMのNoel Hurley氏

 Qualcommは次期モバイル向けSoC(System on a Chip)に、ARMの最新CPUコア「Cortex-A72」を採用する。モバイルSoCのトップメーカーQualcommが採用したことで、Cortex-A72は、第2世代のARMv8アーキテクチャの主流になりそうだ。第1世代のARMv8 CPUコアでは、最大手のQualcommがCortex-A57を採用しており、Cortex-A57が主流となる見込みだ。QualcommがCortex-A72を採用することで、同社の独自設計コアからARM IPへと転換が明瞭になりつつある。

 Cortex-A72は、16nm FinFETプロセスを主なターゲットとしたCPUコアだ。Cortex-A57は28/20nmプレーナトランジスタプロセスを主なターゲットとしており、プロセス世代的には1世代進む。また、Cortex-A72は、Cortex-A57に対してマイクロアーキテクチャと回路設計も改良されている。もっとも、マイクロアーキテクチャの拡張は限られた範囲だ。

 「我々は、Cortex-A72では、最新のプロセスに最適化しただけでなく、Cortex-A57に対して、少数のマイクロアーキテクチャ拡張と、多数の最適化を行なった」とARMのNoel Hurley氏(GM CPU Product Group, ARM)は語る。

 第1世代のARMv8であるCortex-A57は、3命令デコードで8内部命令実行、整数演算で15ステージのパイプラインを備える。Cortex-A72もデコードと実行ユニットの構成は、Cortex-A57とよく似ているという。3命令同時デコードと、命令デコード幅は同じに留まる。「Cortex-A72は、アウトオブオーダ実行のスーパースカラで、シングルスレッドCPUだ。マイクロアーキテクチャ自体は、まだ詳細は言えないが、Cortex-A57とよく似ている」(Hurley氏)。

Cortex-A57のブロック図(PDF版はこちら)

 アーキテクチャをあまり拡張しなかった理由の1つは、一定の電力枠の中で性能を上げるために大幅な拡張を控えたためだという。Hurley氏は、昨年(2014年)10月のARM Techcon時のインタビューでは次のように説明している。

 「4命令デコードのマイクロアーキテクチャも、技術的にできない理由はない。しかし、マイクロアーキテクチャの開発担当者は、特定の消費電力枠の中でベストな性能を提供できるには何命令発行が適しているのかを考えている。

 スマートフォンの場合は2.5~3WがSoCの電力枠だ。タブレットではこれが4~5Wになり、クラムシェルでは7Wになる。そのため、スマートフォンまでカバーすることを考えると、CPUの電力枠は、コア当たり600mWがスイートスポットとなる。その枠内で、最大の性能を達成できる設計をしなければならない。そのため、最適な命令デコード幅が決まる。

 もし、純粋にサーバーだけをターゲットとして設計するのなら、異なる消費電力枠の中で設計することになる。実際、当社からアーキテクチャルライセンスを受けたパートナーは、600mW/コアにこだわる必要がない。彼らは、ターゲットとする市場に対して、我々とは異なる電力枠、例えば、コア当たり2Wなり3Wを選ぶことができる。その枠内で、アーキテクチャを拡張することができる。我々からアーキテクチャのライセンスを受けた、AMDやApplied Microなどは、そうしたプロセッサを開発している。

 しかし、ARMは600mW/コアにフォーカスして設計している。なぜなら、それがスマートフォン市場でうまく行く電力枠だからだ。その上で、実装上のテクニックで性能を向上させることで、一部のサーバーなど、より広い市場をカバーできると考えている。我々は、設計段階では、依然としてモバイルを中心に考えている」。

 ARMの判断は、理に適っている。それは、同社がコアIPをライセンスすることでビジネスを成り立たせているからだ。同社のビジネスモデル的には、ボリュームが出るモバイル向けのコアは成り立つが、ボリュームが限られたサーバー向けコアはビジネスとして成り立ちにくい。そうしたコアは、チップを自社開発するベンダーに任せた方が合理的となる。チップを自社開発するベンダーなら、特定用途向けのコアを自社開発しても利益を上げることができるからだ。

RTLレベルと物理設計レベルの最適化

 マイクロアーキテクチャ的にはCortex-A72はCortex-A57のマイナーバージョンアップだが、回路設計はチューンナップされた。「回路設計の最適化と言っているのは、RTL(Register Transfer Level:レジスタ転送レベル=ソフトマクロ)の最適化だ。最適化によって、Cortex-A72は性能/電力が向上した。また、同じプロセスならCortex-A57よりも面積が小さくなった」とARMのHurley氏は語る。

 ARMは、通常はRTLでCPUコアをライセンスしている。RTLはどのプロセスでも設計可能だ。RTLレベルでの最適化によってPPA(電力、性能、面積)が向上したのなら、Cortex-A72のライセンスを受けたベンダーは、等しく最適化の恩恵を受けることができる。Cortex-A72の面積がCortex-A57より小さくなるという点からも、Cortex-A72のアーキテクチャ拡張が大きなものではないことが分かる。

チップの設計フロー。RTLは抽象度が高く、物理設計から独立している(PDF版はこちら)

 加えて、ARMは物理設計面の最適化も、POP(Process Optimization Pack)として提供する。ただし、POPはTSMC(Taiwan Semiconductor Manufacturing Company)の16nmプロセス「16FF+」系だけしか、まだ発表されていない。Samsung SemiconductorとGLOBALFOUNDRIESの16nm FinFETは、今のところPOP提供はなし。また、同じTSMCのFinFETプロセスでも、第1世代の「16FF」にはPOPが提供されない。

 「我々は、コアIPを、我々のパートナーが最も採用すると見られるプロセスに合わせて最適化する。今回の場合はそれが16FF+だったため、同プロセスにPOPを用意した」とARMのHurley氏は語る。実際、TSMCの顧客の大半は、16FFではなく16FF+で設計に入っており、16FF+が主流になると見られる。16FF+には、相対的に低電力の16FFLL+と、相対的に高性能なFFGL+があるが、まず、16FFLL+からPOPが提供される見込みだ。

 もっとも、Cortex-A72向けのARMのライブラリ自体は、各社の各プロセスに提供される。そのため、RTLライセンスを受けたベンダーは、ARMライブラリを使ってCortex-A72を実装できる。Cortex-A72は16FF+にしか提供されないわけではなく、あくまでも設計を容易にするPOPの提供が16FF+に限られるというだけの話だ。20nmプロセスについては、20nmプロセスが比較的短命で、16nm FinFETへの移行が進むという事情があると見られる。

プロセスロードマップ。TSMCのFinFETには16FFと16FF+の2系統があり、それぞれLLとGLがある(PDF版はこちら)
今回のプロセス移行は市場と価格帯で様相が異なる。20nmはハイエンドモバイルSoCとハイエンドディスクリートGPUなど一部に留まる見込み(PDF版はこちら)

big.LITTLEが標準的な構成になるCortex-A72世代

 Cortex-A72は、現世代のCortex-A57と、命令セットアーキテクチャ的には完全互換だ。命令セットアーキテクチャの拡張は一切加えられていない。そのため、big.LITTLE構成では、Cortex-A53と組み合わせることができる。big.LITTLEでは、プロセッサコア間でシームレスにスレッドを移すために、命令セット互換が必須だからだ。現状では、ビッグコアがCortex-A57からCortex-A72へと進化しても、リトルコアはCortex-A53に留まっている。また、Cortex-A53は16FF+のPOPは提供されない。

 「Cortex-A53は小さなコアで実装上の問題もそれほどハードではない。より複雑なコアは、PPA(電力、性能、面積)に気を配らなければならず、そのためにPOPを提供している。しかし、Cortex-A53は、そこまで最適化する必要が薄い、もっと緩やかなエンジニアリングだ」(Hurley氏)。

 ARMはbig.LITTLEアーキテクチャを推進してきたが、Cortex-A57とそれに続くCortex-A72世代では、big.LITTLEが標準的に浸透する見込みだ。その背景には、big.LITTLEのソフトウェア面でのサポートが充実してきたという側面がある。現在は、big.LITTLE構成で、CPUコア群を自由にOSが割り当てることができるため、ビッグコアとリトルコアの構成をハードベンダーが自由にできる。

big.LITTLEの制御方式の違い(PDF版はこちら)

 このことが、ARMが今回、Cortex-A57/72系とCortex-A53系の中間に当たるコアを提供していないことと関係している。32-bitのARMv7アーキテクチャでは、ビッグのCortex-A15とリトルのCortex-A7の間に、中間サイズのコアのCortex-A9/12/17がある。しかし、ARMv8では、Cortex-A9/12/17に当たるコアサイズのIPがない。それはbig.LITTLEのためだという。

 「実際のところ、我々はbig.LITTLEが非常によく受け容れられていると考えている。どのベンダーもbig.LITTLEで構成している。当初は、big.LITTLEは4ビッグと4リトルの対称型の構成だけだった。しかし、現在はソフトウェアサポートがあるため、ミッドレンジでは、2ビッグと4リトルの構成が浸透し始めている。2ビッグと4リトル構成は、Cortex-A57タイプの性能を、より低い価格ポイントで提供する助けになるだろう」とARMのHurley氏は指摘する。

 以前なら、中間サイズのコアのクアッドコア構成だった製品カテゴリが、今は2ビッグ+4リトルの構成でできるようになっている。そのため、ミッドレンジのコアの必要性が薄れたという認識だ。実際には、ミッドレンジのコアは、モバイルSoCだけでなく、ハイエンド組み込み分野でも必要であるため、最終的には提供される可能性が高いが、モバイルでは必然性が薄れたと見ているようだ。

 また、このことは、ARMが今回のCortex-A72で、コアの大型化を避けたことと結びつく。ミッドレンジ市場を2ビッグ+4リトルの構成でカバーしようとするなら、ビッグコアは一定サイズに留める必要性があるからだ。

世界に分散するARMの設計センター

 Cortex-A72の設計を行なったのは、ARMが米オースティンに持っている設計センターだとARMのHurley氏は説明する。ARMはCPUの開発を世界に分散しており、各CPUコアはそれぞれ異なる設計センターで開発されている。Hurley氏によると、英Cambridge(ケンブリッジ)、仏Sophia Antipolis(ソフィア・アンティポリス)、米Austin(オースティン)の3カ所が主なCPU設計拠点で、昨年(2014年)、台湾のCPU設計センターが加わった。

 ARMの本来の開発拠点であるケンブリッジの設計センターは、Cortex-A5、Cortex-A7、Cortex-A53、それにCortex-M7までのCortex-MとCortex-Rを担当しているという。ARMのCPUコアのうち相対的に消費電力が低いコア群を開発しているが、開発コア数が最も多い。

 ソフィア設計センターは、イギリス外の設計センターとしては歴史がある。ARM11など、より高性能なCPUコアを担当しており、マルチプロセッサバスもNECの協力を得て同センターで設計された。Cortex系では、Cortex-A9、Cortex-A12/17が同センターの開発だ。南フランスの風光明媚なIT産業団地にあり、環境がいい。

 オースティン設計センターは、IBMやIntel、AMDなどが周囲にあり、プロセッサ技術者を得やすい地の利を活かして設立された。Cortex-A8からスタートし、Cortex-A15、Cortex-A57、Cortex-A72と、その時点で最高性能のCPUコアを設計している。

 こうして並べると、設計センターによって、CPUコア設計に若干のクセがあるように見えて面白い。このほか、昨年開設された台湾設計センターは、今後のCortex-Mシリーズの設計を行なっている。ただし、最新のCortex-M7は、まだケンブリッジ設計だ。ちなみに、CPUコア以外では、GPUコアの設計センターがノルウェーのTrondheim(トロンヘイム)にあり、そのほか、さまざまなIPの開発センターも世界に散らばっている。

ARMのワールドワイドの展開。設計センターも分散している(PDF版はこちら)

(後藤 弘茂 (Hiroshige Goto)E-mail