オープンソースを活用してLSIを開発

COOL Chips 21のプロセサアーキテクチャのセッションの中で、SiFive(サイファイブ)のYunsup Lee CTOが「Designing the Next Billion Chips: How RISC-V is Revolutionizing Hardware」と題する発表を行った。

IoTやエッジコンピューティング、マシンラーニング/AIなどでカスタムチップの必要性は高まっているが、次の図の右上のグラフのようにチップの開発費は微細化に伴って高騰しており、カスタムチップを作ることが難しくなってきている。結果として、右下の図のように新しく開発されるチップ数は減少傾向にある。

これに対して、ソフトウェアの方では、オープンソースでコミュニティ開発を行うなど、経済的な開発エコシステムができている。ハードウェアの開発も、これを真似しない手はないという。

  • カスタムチップの必要性は高まっているが、開発コストは高騰し続けている

    IoT、エッジコンピューティング、ML/AIなどでカスタムチップの必要性は高まっているが、開発費の高騰から、実際に開発される品種数は減少傾向である。ソフトウェアのコミュニティ開発を真似てハードウェアの開発を促進するべきという主張 (このレポートの図はCOOL Chips 21でのYunsup Lee氏の発表スライドのコピーである)

カリフォルニア大学バークレイ校はRISCアーキテクチャを開発した源流(David Patterson教授)の1つであり、RISC-Iから始まる長いプロセサアーキテクチャの研究、開発の歴史を持っている。その最新の第五世代のプロセサアーキテクチャが「RISC-V(リスク ファイブ)」である。

Armプロセサの場合は、命令セットを使用するのに高額のライセンス料とチップごとのロイヤリティを払う必要があるが、RISC-Vはライセンス、ロイヤリティは無料である。なお、プロセサコアやDRAMコントローラ、PCI Expressインタフェース、ROM、RAMなどのIPは、無料のものもあるが、大部分は有償であり、IPのライセンスやロイヤリティは必要である。

  • RISC-Vはカリフォルニア大学バークレイ校が開発した第五世代のRISCプロセサ

    RISC-Vはカリフォルニア大学バークレイ校が開発した第五世代のRISCプロセサである。命令セットの使用に関するライセンス料、製品ごとのロイヤリティは無料である

企業での採用も進む

このRISC-Vの普及を推進するためにRISC-Vファウンデーションが設立され、次の図のような企業や団体が加盟しており、メンバーの数は100を超えるという。

中でも、Western Digitalはディスクドライブに内蔵するコントローラをRISC-Vに置き換えるという方針をアナウンスしている。そして、NVIDIAもGPUに内蔵されているコントローラをRISC-Vに置き換えると発表した。また、RAMBUSはセキュリティの基礎となるRoot of Trust機能をRISC-Vで実現すると発表している。マイクロコントローラを大量に使用する企業ではロイヤリティが不要で、開発コミュニティーができつつあるRISC-Vは魅力的で、企業でのRISC-Vの採用が立ち上がり始めている。

  • RISC-V Foundationのメンバー

    RISC-V Foundationのメンバー

RISC-Vと他のCPUアーキテクチャの比較

次の図はSPECint2006をコンパイルしたコードのサイズを比較したもので、左は32bitアーキテクチャ、右は64bitアーキテクチャのコードサイズのグラフである。どちらもRISC-Vの基本アーキテクチャの圧縮コード(RV32C、RV64C)のサイズを100%としている。

32bitアーキテクチャではArmのThumbが101%でほぼ同等のサイズであるが、その他のx86やArm、MIPSのコードは20%以上サイズが大きい。64bitアーキテクチャの場合も他のプロセサのコードは約30%かそれ以上サイズが大きい。PCなどでは大量のメモリを持っているのでコードサイズはあまり気にならないが、組み込み用途の場合はROMにコードを書き込んで使うのが一般的で、コードサイズが小さければより多くのプログラムが格納できるので、大きなメリットである。また、コードサイズが小さければ、同じ容量の命令キャッシュに格納できる命令数が増え、キャッシュミスが減って性能が上がるというメリットもある。

なお、このグラフを見てわかるように、RISC-Vのコードサイズは圧縮をしない場合は140%程度であり、x86やArm-v7、あるいはx86-64やArm v8と比べても多少大きめであり、圧縮でコード密度を改善している効果が大きい。

  • 各種のプロセサのコードサイズの比較

    各種のプロセサのコードサイズの比較。左は32bitアーキテクチャ、右は64bitアーキテクチャのプロセサの比較である。RISC-Vのコードは、圧縮形にすると他社のものよりサイズが小さい

RISC-Vの命令アーキテクチャ

RISC-Vの命令アーキテクチャはbaseと呼ぶ基本セットに、各種の拡張命令セットを付け加える形になっており、必要な拡張だけを選んで付け加えればよい。拡張には、乗除算命令を加えるM拡張、アトミック命令を加えるA拡張、単精度浮動小数点演算を加えるF拡張、倍精度浮動小数点演算を加えるD拡張などがある。

さらには、ベクタ演算を加えるV拡張もある。ベクタ拡張は32個のベクタレジスタを持ち、混合精度の演算、スキャッタ/ギャザー、マスク付きの実行などをサポートしており、RISC-Vはスパコンにも適用できるアーキテクチャとなっている。

  • ベクタ命令拡張は、32個のベクタレジスタを持ち、混合精度の演算もサポートする

    ベクタ命令拡張は、32個のベクタレジスタを持ち、混合精度の演算もサポートする。そして、スキャッタ、ギャザー、マスク付きの実行もサポートしている