スウェーデンに本社を持つIAR Systems Groupは、「IAR Engineering Workbench」という統合開発環境で、主に組み込み向けのソフトウェア業界では非常に有名な企業であるが、このIAR Systems Groupの日本子会社であるIARシステムズが10月29日、「IAR DevCon Tokyo 2019」を開催した。

通常であれば、ここで基調講演などカンファレンスの様子をお届け…という話題になるのだが、実のところ今回のカンファレンスでは特段の新製品などの発表があった訳ではなかったことなどもあり、IAR DevConそのもののレポートではなく、台湾Andes Technologyと米SiFiveがRISC-Vをテーマとした招待講演を行ったので、このSiFiveの招待講演の内容を中心に、昨今のRISC-Vの立ち位置と今後の動向についてレポートしたい。

日本は2~3年遅れとなるRISC-Vへの取り組み

SiFive(と日本のパートナーであるDTSインサイト)の招待講演はSiFive Representive in Japanの石井敦氏の登壇でスタートしたが、冒頭「日本は2~3年遅れ」という話が出た。

中国あるいは韓国では2~3年前から実際のプロジェクトで利用がスタートしているのに、日本ではやっと今年になって実際に使おう、というプロジェクトが出始めたからというのがその根拠であるが、実際すでに中国ではRISC-VベースのMCUが少なからず出回っている事を考えると、実際その程度のタイムラグはありそうに思える。

ちなみに石井氏によれば風向きが変わった、つまり日本企業がRISC-Vの検討を始めたのは、ソフトバンクによるArmの買収が切っ掛けだったとする。また昨今で言えば、例えば米中貿易紛争に絡んで、HuaweiがArmコアの利用を制限されるといった話も出ていた(この制限が解除された、という報道もある)が、今後こうした話が他の中国企業でも持ち上がらないという保証はない。こうなると、中国向けの製品にArmベースでシステムを構築した場合、それそのものがリスクになるという可能性も浮上した形だ。こうした事が、日本においてもRISC-Vを真剣に検討する要因になった、としている。

ちなみにHuaweiの製品のうち、ことスマートフォン側はともかくサーバ側に関しては、「現在のHiSiliconが自分でコアを開発できるとは考えられない」というのが石井氏の見解で、しかしながらx86はそもそも利用できないし、Armも(とりあえず直近では再び利用可能になったとはいえ)長期的に利用するにはリスクがある。となると、可能性としてHuaweiが自社製品をRISC-Vベースで構築する事は当然あり得ると思われる。こうした諸々が、RISC-Vへの追い風として作用しているのが現状という訳だ。

さて、SiFiveそのものについては、Hisa Ando氏のRISC-V Tokyo 2018のレポートなどをお読みいただければ十分かと思うので今回は省略させていただく。

ちなみにその際に提示されたSiFiveの現状を示すスライドだが、今回の発表では少々アップデートされ(Photo01)、従業員数は350名以上、テープアウト数は300以上になっているが、石井氏によれば、この従業員数とテープアウト数は同社が2018年に買収したOpen-Siliconの分が含まれているそうだ。Open-Siliconは買収時に250名ほどの従業員が居たので、これがそのまま加算されている形となっている。同様にテープアウト数もOpen-Siliconの時代のものが含まれているとか。それでも純粋にSiFiveによるテープアウト数も130を超えたそうで、これはかなりの数である。

  • RISC-V

    Photo01:拠点としてはフランスのニースが新たに追加されている

そのSiFive、10月24日にサンタクララで開催されたLinley Fall Processor Conference 2019で従来製品(U7)と比べて1.5倍の性能/面積比と同じく1.5倍の性能/消費電力比を実現するという、3命令のSuperscalar/Out-of-Orderコアである「U8」を発表した

ちなみにU8は12段のパイプライン構造(U7は8段)で、MP構成では最大9コアが可能という話であった。他にも、その前日の10月23日にはArmで言うところのTrustZoneに相当するSiFive Shieldを発表、さらに1999年末~2020年初頭を目指して、自動車向けなどに機能安全の提供を予定しているとする。

さて、そのSiFiveは、ではArmと同じようなIPプロバイダを目指しているのか? というと、そこからもう一歩踏み出す事を想定している。

SiFiveが将来的に提供しようとしているサービスがPhoto02となる。一番左のProcessor Factoryは、要するにSiFiveのプロセッサIPを提供するという、従来SiFiveが行ってきたビジネスである。真ん中のSubsystem Factoryは、CPU IPに加えて周辺回路のIPも一緒に提供するというものである。これは例えばArmにしても、インターコネクト他のIPに加えてArtisan Physical IPの提供を行っているため、別に珍しい訳ではないのだが、面白いのはSiFiveでは自社製のSubsystem IPに加え、3rd PartyのSubsystem IPもまとめて提供するという形を取っている事だ。

  • RISC-V

    Photo02:肝は、このすべてがWebベースで可能ということ

さらに、このSubsystem IPのライセンスや支払いはすべてSiFiveが代行する、いわばワンストップサービスを提供することで、顧客からすればSiFiveとだけ契約すればよい形になるとする。加えて、その先を見据えたのが、一番右のChip Factoryである。これはOpen-Siliconを買収したからこそ可能となるサービスである。もっともArmの場合はデザインハウスと協業することでこれと同じサービスを提供できているため、どちらが良いのかは難しい所ではあるが、今のところRISC-VはArmほどにノウハウが広く普及している訳ではなく、エコシステムそのものもまだ小さい事を考えると、少なくとも現時点でSiFiveがSoC全体のデザインまで引き受ける事は合理的ではあろう。

もっとも現状、まだChip Factoryのサービスは開始できておらず、これは将来の提供という事になる。その代わりというか、それまでの繋ぎというか、現状で提供されているのがChip Designerである。

元々同社はCore Designer(Photo03)と呼ばれるWebベースのCPU IPのカスタマイズツールを提供しており、Webベースでコアや簡単な周辺回路まで含めた全体の設計を行い、FPGAのBitstream生成まで可能としていた。これをもう一段進めて、SoC全体をWebベースで設計可能にしたのがChip Designerとなる。

  • RISC-V

    Photo03:Photo02で言えば、Processor Factory用がこのCore Designer、Subsystem Factory用がChip Designerという形だろうか

このChip Designerでは、Cadence/SynopsysのEDAツールもオンラインで利用可能となっており、自社でEDAツールベンダーからCADやらシミュレータやらを購入しなくても、必要な環境がすべてWebベースで揃う事になるそうだ。現状この先はファウンダリorデザインハウスと契約して製造ということになるが、今後はChip Factoryがこの部分を担う事になる。

ちなみにSiFiveの場合、IPはサブスクリプションベースでの支払いとなっている。ArmがFlexible Accessを発表したのはまさにこのSiFiveのライセンスへの対抗という位置づけになるあたり、これが業界に大きな影響を与えている事は間違いない。

  • RISC-V

    Photo04:まぁこちらにしても、そもそものサブスクリプションの費用がいくらなのか? で議論は色々あるのだが

Armによる対抗、という意味ではCustom Instruction Extention(Photo05)も重要だろう。

  • RISC-V

    Photo05:RISC-Vの拡張Fieldに対するSiFiveの実装方法。このあたりはArmv8MのCustom Extentionと同じ、というかPowerPCなども含めて拡張命令の実装は大体こんな感じになる

もともとRISC-Vの命令セットには拡張命令用のFieldが用意されている(Photo06)。

  • RISC-V

    Photo06:これは後で行われたIAR Systemsの「RISC-Vプロセッサ導入を決める前に知っておけば安心、商用開発環境の概略とメリット」というセッションのスライドより。実は右下の、Inst[4:2]が110、Inst[6:5]が10/11のFieldにもCustom命令フィールドが定義されている(ただしRV128と共用)

SiFiveではこの拡張命令Fieldを利用するにあたり、コアに拡張命令用のI/F(というか、API)を最初から用意しており、簡単に独自命令を追加できるようにしている。結果から言えば、ArmとRISC-Vがお互いに競い合う事で、ユーザーメリットが出る事になったという具体的な例の1つが、このCustom Instructionと言えるかもしれない。