2023 年度 TOPPERS コンテスト「活用アイデア部門」

RISC-V プロファイルに沿った
RISC-V 64 ビットプロセッサ向け TOPPERS カーネル標準化
代表者 北九州市立大学 国際環境工学部 山崎 進

背景RISC-V はオープンで拡張可能な ISA である．Intel や ARM などにライセンス料を支払わずに自由に CPU を実装できるため，大いに注目されている．既存の ISA の欠点を見極めた上で仕様を策定しているため，実装しやすく，低消費電力化や高性能化を図りやすいという利点もある．その特性から，自動車産業でも採用が広がりつつある．RISC-V CPU メーカーの大手である SiFive 社も，自動車産業向けのソリューションを強化すると表明している．
日本でもルネサス エレクトロニクス株式会社が RISC-V 32 ビットの MCU・MPU を販売している．
RISC-V は拡張命令セットをモジュール化して定義することができ，そのような拡張命令セットが多数提供されている．一方で，カーネルやアプリケーションの開発者にとっては，検証すべき ISA の組み合わせが膨大になってしまう問題がある．
その問題を踏まえて，RISC-V プロファイルという，ほとんどのユーザーに最大の価値をもたらすような ISA の共通セットが標準化されている．これにより，カーネルやアプリケーションの開発者が考慮すべき拡張命令セットを限定することができる．
したがって，RISC-V プロファイルの定義にしたがって，TOPPERS カーネルの RISC-V サ
ポートの仕様を定めることで，特に 64 ビットプロセッサについて，特定ボードに依拠しない，適切な標準化を図ることができると考えられる．
2023 年 6 月現在，
RISC-V プロファイルは 64 ビットプロセッサ向けを中心に RVI20, RVA20,RVA22 の各プロファイルが定義されており，RVA23 プロファイルが審議中である．

目的

1.

RISC-V プロファイルに基づいて，特定ボードに依拠しない，TOPPERS カーネルのRISC-V サポートの仕様を定める

2.

1 について検討・審議し，標準化を図る WG を立ち上げる

計画

次のような計画で進める．
1.

TOPPERS コミュニティに呼びかけ，活動方針に賛同する会員を募集し，WG を組織する．

2.

各プロファイル向けのコンパイラ・アセンブラ・エミュレータを整備する．
(ア) 既存処理系で既にサポートされている場合には，指定するオプションを特定する(イ) そうでない場合には，一旦既存処理系をそのままにしてアドホックに解決して進める．並行して既存処理系に Issue を投げ，該当技術コミュニティに積極的に働きかける．

3.

TOPPERS/ASP カーネルについて，既存の RISC-V サポートのコードを参考に，各プロファイルをサポートするために必要なタスクを同定し，技術的課題を特定する．

4.

WG にて，分担を決め，見積もりを行って活動計画を立案し，必要な研究開発費の算段を立てる．

5.

4 で見積もった研究開発費を TOPPERS プロジェクトホームページで公表し，企業からの協賛金を募り，各種補助金・助成金等を申請することで，研究開発費と活動費用を集める．

6.

各分担にて，研究開発を遂行する．

7.

年度ごとに活動報告レポートを TOPPERS カンファレンス・総会にて説明し，その後，TOPPERS プロジェクトホームページで公表する．

8.

適宜，主に TOPPERS 会員向けに RISC-V の勉強会を主催し，普及と利用促進を図る．

現状 (主に 2023 年の代表者の研究進捗)⚫

TOPPERS カーネルのコンフィギュレータを macOS 上でコンパイルする方法を確立した．特に最新版の Boost を用いてコンパイルする方法を高田光隆氏にご教示いただ
いた．
https://qiita.com/zacky1972/items/aa4507d6613a0e8bbf11⚫

GCC において，任意の RISC-V 拡張に対応させてクロスコンパイルする方法を確立した． https://qiita.com/zacky1972/items/0cbfdf4e400e0205aa7b⚫

RISC-V の標準エミュレータである spike と pk について，macOS と Ubuntu 上で動作させることができた． https://qiita.com/zacky1972/items/6d433bdbef737d1e300f⚫

GCC インラインアセンブルを用いて，RISC-V ベクタ拡張(RVV)のアセンブリコードを記述する方法を確立した．
https://qiita.com/zacky1972/items/eabbcae5af04e24c2cc0⚫

RVV において，条件分岐を書く場合には，ベクトルマスクレジスタを用いることを突き止め，記述方法を確立した．
https://qiita.com/zacky1972/items/4ca65dfafbd2a1bc6913⚫

RVV 向け auto-vectorization を持つ Clang 16 を Ubuntu でビルドする方法を確立した．
https://qiita.com/zacky1972/items/6aa01b8a85e0f86dbafd⚫

2023 年 7 月の情報処理学会組込みシステム研究会にて，「RISC-V ベクタ拡張を用いたCORDIC アルゴリズムによる三角関数の実装」を発表予定．概要は次のとおり:
三角関数は，自動運転車や VR 機器に必要な 3D 処理や，画像処理で広く用いられるFFT などで使われている．その典型的な使い方の一つは，複数の角度に対する sin 関数と cos 関数の値を同時に求める使い方である．本研究では，このような目的に使えるように，sin 関数と cos 関数を同時に求める CORDIC アルゴリズムを，バージョン 1.0の RISC-V ベクタ拡張を用いて，複数同時に求めることができるように実装した．固定小数点数を用いて sin 関数のみを求める場合で，エミュレート実行を元にして求める値の数(n)と実行するのにかかる命令数の相関関係を調べたところ，36.932n+406.53 となり，相関係数は 0.9611 であった．このことから，提案手法で三角関数をまとめて計算するサーバープロセスを形成する方式で運用するのが妥当そうであることがわかった．RVV 向け Auto-vectorization をサポートする Clang 16 で，C 言語固定小数点数版を RVV 命令の生成を意図したオプションを与えてコンパイルしてアセンブリコードを確認したところ，RVV 命令は生成されたが効率が悪かった．現時点では RVV 命令をハンドコーディングすることに意味がありそうである．中尾と武内による三角関数専用コプロセッサを用いた先行研究と比べた時，条件によっては提案手法の方がより高速である可能性がある．

⚫

現在，信号処理への応用研究と，独自の RISC-V CPU の設計を行なっている．

市場性について⚫

2023 年 3 月公開の記事 “The Evolving Automotive Experience Made Possible by RISCV”にて，MIPS CEO が，自動車分野の先進運転システム(ADAS)や車載インフォテインメントにおいて特に，RISC-V 採用事例が急速に増え続けていると表明．
https://riscv.org/blog/2023/03/the-evolving-automotive-experience-made-possibleby-risc-v/⚫

SiFive 社は 2022 年末に「RISC-V の立ち上がりは早く、2024 年には RISC-V の出荷コ
ア数が Arm を上回り、逆転するのではないか」と記者会見で述べていた．
https://eetimes.itmedia.co.jp/ee/articles/2212/28/news053.html⚫

RISC-V AI SoC は、2027 年までに 73.6％の年平均成長率（CAGR）を維持し、250 億個の累積出荷数と Semico が予測 「SIP、SoC、AI、および設計開始のための RISCV CPU 市場の分析」（CC330-21）よりhttps://riscv.org/blog/2022/02/semico-researchs-new-report-predicts-there-will-be25-billion-risc-v-based-ai-socs-by-2027/
https://riscv.or.jp/2022/05/semico2027/⚫

NASA が RISC-V に基づいて設計されたプロセッサ「SiFive Intelligence X280」を次世
代 高 性 能 宇 宙 飛 行 コ ン ピ ュ ー テ ィ ン グ (HPSC: High Performance SpaceflightComputing) のコア CPU として宇宙ミッションに活用することを公表
https://www.sifive.com/press/nasa-selects-sifive-and-makes-risc-v-the-go-toecosystem
https://note.com/shinichm/n/n8be45945c218⚫

Intel は同社の FPGA 向け RISC-V ソフトプロセッサ Nios V を持つ
https://www.intel.co.jp/content/www/jp/ja/products/details/fpga/niosprocessor/v.html⚫

一方で，Intel は Intel Pathfinder for RISC-V プログラムを 2022 年に開始するも，2023年 1 月末に突然終了．

⚫

おそらく Intel は，x86_64 を売り続けたいものの，RISC-V の急速な成長には一目置いており，イニシアティブを取りつつ，動向を警戒していると見ることができる．

⚫

Google が 2023 年に RISC-V を Android のプラットフォームとみなすことを表明，実現には数年かかるとの見通し
https://arstechnica.com/gadgets/2023/01/google-announces-official-android-supportfor-risc-v/⚫

Apple は 2021 年に RISC-V 関連の求人募集．Apple Silicon に採用される可能性あり．

今後の展望(個人的な研究の展望)
この活動を通して，TOPPERS プロジェクト会員のみなさまと技術交流できれば，ありがたいと考えています．
2022 年度の特別会員の計画に挙げたように，宇宙機器に搭載するコンピュータシステムを設計・実装する将来構想を持っています．JAXA は TOPPERS/HRMP3 カーネルを次世代宇宙機向けマイクロプロセッサに採用するとしているので，このコンピュータシステムにTOPPERS/HRMP3 カーネルを搭載して，JAXA や民間企業に提案できればと考えております．
独自の RISC-V CPU を開発する計画も持っています．最初は FPGA で考えています．低消費電力・高性能な CPU を提案できればと考えています．関連する特許も出願予定です．
並列処理に長け，フォールト・トレラントであるプログラミング言語 Elixir と，その IoT フレームワークである Nerves を，TOPPERS カーネルと共存させて統合する研究も進めてまいりたいと思います．