Arm「Custom Instruction」の衝撃、RISC-Vへの徹底抗戦を貫く:Arm最新動向報告(6)(1/3 ページ)
2019年10月6〜8日にかけてArmが年次イベント「Arm TechCon 2019」を開催した。本連載では、同イベントの発表内容をピックアップする形で同社の最新動向について報告する。まずは、Armのこれまでの方針を大転換することとなった、ユーザーに独自命令を組み込むことを許す「Custom Instruction」について紹介しよう。
2018年12月〜2019年5月まで、米国で開催されたArmの年次イベント「Arm TechCon 2018」の発表をテーマごとにピックアップして「Arm最新動向報告」というミニ連載を展開してきた。そして2019年も10月6〜8日にかけて、米国サンノゼコンベンションセンターで「Arm TechCon 2019」が開催されたので、「Arm最新動向報告」として引き続き紹介を続けて行こうと思う。
初日のCEO基調講演で大きな戦略転換を発表
さて、色んな意味でプロセッサ業界に大きな影響力を誇るようになっているArmであるが、今回のArm TechCon 2019も地味ながらいろいろ重要な発表が行われている。まず初回は「Custom Instruction」の話である。
初日に行われた同社 CEOのサイモン・シガース(Simon Segas)氏の基調講演で、いきなりこんなスライド(図1)に次いで示されたのがこちら(図2)。「Cortex-M」向けに、ユーザーが独自命令を組み込むことを許す、という大きな戦略転換が行われたことが発表された。
どうしてこれが大きな戦略転換なのか? というと、Armはこれまでかたくなに命令セットを守ってきたからだ。もちろん、これはArmに限った話ではなく、x86とかCPUベンダー各社の独自アーキテクチャにもいえる話ではある。ただし、シリコンとして提供されるCPUの命令セットはともかく、プロセッサIPの形で提供されるものに関しては、命令セットを自由にカスタマイズできるようにするのが一般的だ。
例えば、シノプシス(Synopsys)の「DesignWare ARC」とか、台湾Andes Technologyの「AndeStar V3」などは独自命令セットを顧客が自由に追加できるようになっているし、最近オープン化された「PowerPC(PowerISA)」や「OpenMIPS」なども、命令拡張機能が提供されている。
ところが、Armはこうした命令拡張の余地を一切提供しない、というのが従来の基本的なポリシーであった。辛うじて命令カスタムの余地(というか、可能性)があるものとしては、2016年に発表された「Cortex Processor Technology License」があるだろう。ちょっとこちら、知名度が低いので簡単に紹介する。
もともと、ArmのプロセッサIPのライセンス形態は、「Cortex License」と「Architecture License」の2つがある(図3)。図3の左側にあるCortex Licenseは、「Armの設計したプロセッサIPをそのまま利用する権利」である。こちらもいろいろなレベルがあり、一番安価な「Fast Track」(ただし利用できるIPなどに制限がある)から、プロセッサIPの正式発表前に他社に先駆けて利用可能な「Lead License」まで、できることに応じて価格が上がる形である。
これとは別に、Architecture Licenseがあるが、こちらはArmの命令セットに応じて自分でプロセッサIPを設計できる権利である。ただしここで設計できるのは、あくまでもArmの命令セットに準じたもので、独自命令などの拡張は出来ない。また既存のCortexプロセッサをカスタマイズすることもできない(そもそもArchitecture LicenseにはCortexプロセッサの利用権が入っていない)。いろいろと厳しい要件なわけだ。
ところが2016年、新しくCortex Processor Technology Licenseが追加された(図4)。これはLead Licenseを持つ顧客の中で、さらに限られた数社に絞られるようだが、このライセンスを得ると何ができるのか? というと、「Cortexプロセッサの設計に口が出せる」だ。一例として、In-Flight(仕掛かり中)命令を格納するレジスタウィンドウの数を変化させる、といったことが可能になる。もちろん、プロセッサIPはある程度までは構成をカスタマイズ可能(例えばキャッシュの容量とか)であるが、そうした枠を超えてさらにいろいろ設計を変更させられる。
これはもちろん、顧客とArmが協議を行いながら変更を行っていくわけだが、こうした協議の場で、命令セットそのものに口を出すことは少なくとも不可能ではない(それが反映されるかどうかはまた別の問題である)。ただし、ここまで説明したように、これは「ユーザーが自由に命令セットを定義できる」という状況からは程遠い。これが一転してカスタム命令をサポートするという方針を決めたわけで、これは非常に大きな変化である。
Copyright © ITmedia, Inc. All Rights Reserved.