COMPUTEX 2016におけるCortex-A73とMali-G71と同じタイミングで、ARMは新たなライセンス形態「Built on ARM Cortex Technology License」を発表した。今回は、このARM Cortex Technology Licenseに関する説明を行いたい。

図1が、現在のARMのCortexプロセッサに関するライセンスの一覧である。それぞれの意味は以下のとおり。

図1 従来のARMのCortexプロセッサ向けライセンスの種類と形態

Cortex License

Cortexプロセッサを利用するためのライセンス。ARMからは対応するCortexプロセッサのRTLが提供される形で、このRTLを(オプションとして設定されている幾つかのパラメータを除き)変更する事は出来ない。ただしあくまでもRTLなので、それをどう物理的に実装するかは、ライセンスを受けたカスタマの自由である。

  • Lead:プロセッサの設計当初から、それの利用を約束するライセンス。設計そのものに対しての影響力もある。
  • Subscription:複数年の、CPUファミリ全体の利用が可能なライセンス。
  • Perpetual:ある特定のCPUに対する無制限の利用が可能なライセンス
  • Term:ある特定のCPUに対する無制限の利用(ただし期限付き)が可能なライセンス
  • Single/Multi Use:ある特定のCPU(1つまたは複数)に対する制限付きライセンス。
  • Fast Track:ある特定のCPUのみの、簡単なライセンス。

Architecture License

カスタマが独自に、ARM互換のCPUを設計することができるライセンス。ARMからは命令セット(ARM v7/v8/…)の仕様書が提供されるだけで、特定のプロセッサコアのRTLなどは一切提供されないし、また既存のプロセッサコアのRTLを変更する事も出来ない。あるいは、勝手にARMのソフトウェアプログラミングモデルを変更する事もできない。さらに、設計した独自プロセッサは、ARM architecture validation(そのプロセッサがARMの命令を正しく処理できる事の検証)を取得する必要がある。

  • Term:Architecture Licenseは基本的に期限付きライセンスとなる。

各ライセンスの概要はこのような具合である。

もちろんこれは原則であって、実際にはこれがすべてのプロセッサファミリに通用するわけでは無い。例えばFast TrackはCortex-M0のみに提供されるライセンスで、その他のコアには提供されていない。またCortex-Mファミリに対するArchitecture Licenseは「提供は可能だが、現実にはこれを欲するクライアントは今の所居ない」(ARMのNandan Nayampally氏)ということで、基本はCortex Licenseのみである。また、中には複数のライセンスを受けている企業もある。例えばBroadcomの16 FF+(TSMCの16nm FinFET Plus)ベースのVulcanの話を見る限り、Broadcomは単にARM v8-AのArchitecture Licenseのみならず、恐らくはSubscription Licenseも取得していることが見て取れる。AMDやQualcomm、Cavium、APMなども同様であろう。ちなみに、最終的にASICを作らない(つまりFPGAのまま出荷する)製品の場合であれば、Cortex-M1コアに関しては対応するFPGAさえ購入すればロイヤリティフリーで利用できる。多分ライセンスに関して一番低コストなのはこの方法だろう。