世界を動かす技術を、日本語で。

RISC-V: もっと良く知っておくべきだった

2026年8月14日原文(dmitry.gr)

概要

  • RISC-V の設計や拡張性に対する批判的視点
  • 低価格マイコン 用途でのRISC-Vの弱点
  • 命令圧縮やエンコーディング の問題点
  • 高性能サーバー用途 でのRISC-Vの限界
  • 拡張仕様 による断片化や標準化の課題

RISC-V:知っておくべきだったこと

  • RISC-Vは「すべての用途に最適」と主張されるが、 万能なISAは存在しない 現実

  • 高性能CPU低価格マイコン では求められる設計要件が真逆

  • RISC-Vが 安価なシングルユースマイコン市場 を支配するのは設計の優秀さではなく、8051からの世代交代に過ぎない現状

    • 低価格マイコンでは 割り込み遅延の短縮コアサイズの縮小 が最重要
    • ROMやSRAM上での実行が前提となるため、 コード密度 が重要
    • 数学演算や特権分離は不要、 RV32ICやRV32EC が該当するが、割り込み処理には Zicsr 拡張が必須
    • Zicsrなしでは 割り込みハンドラ の実装が煩雑化し、MIPSやCortex-M0より劣る
  • 割り込み処理の サイクル数比較 では、RISC-VはCortex-M0に大きく劣後

    • RISC-V: 44サイクル以上
    • Cortex-M0: 27サイクル
    • RV32Eを使っても 38サイクル で依然として劣る
  • 命令圧縮(Compressed Instructions) の設計不備

    • 16ビット命令でのオフセット範囲が極端に狭い(例:バイトストアで 0~3 のみ)
    • Cortex-M0はより広い範囲(例:バイトで 0~31)をサポート
    • 圧縮命令でさえ Zcb など別拡張扱い、標準化されていない
  • サーバーコア では スループット重視、命令デコードの効率性が重要

    • 現代の高性能コアは 4バイト固定長命令 が最適(例:AArch64、MIPS)
    • 圧縮命令は 大規模コアでは逆効果、デコード効率悪化
    • RISC-Vの命令長識別は「簡単」だが、 固定長命令の即時性・効率性 には敵わない
  • アドレッシングモード の不備

    • 配列アクセスで 複数命令を要する (例:シフト→加算→メモリアクセス)
    • ARMやx86のような [reg + reg × シフト] 型モードがない
    • 後付けで Zba拡張 が追加されたが、依然として 命令数・コードサイズで不利
  • 標準化されていない 拡張仕様 (CLIC、Zcb、Zba等)の乱立

    • ベンダーごとに 非標準シリコン を実装する必要があり、エコシステムの断片化が進行
    • 標準の不備を各社が独自拡張で補う状況

RISC-Vの今後と展望

  • RISC-Vが 全用途を支配する という主張は現実的でない
  • 低価格マイコン市場 では8051の後継として普及は進む見込み
  • 高性能サーバー用途標準化の完成度 では、依然として課題が多い
  • 拡張仕様の 乱立と断片化 による標準の弱体化リスク

結論

  • RISC-Vは 設計思想や拡張性 で多くの課題を抱える
  • 特定用途では有望だが、 万能なISA としての地位は確立できていない
  • 標準化とエコシステムの成熟が 今後の成否の鍵

(本記事は筆者個人の見解であり、所属組織・猫の意見を代表するものではありません)

Hackerたちの意見

基本的にMIPSの再来だね。結論は正直で、もちろんどんなISAでも無理やり役割を持たせることができる。昔はその理由でx86が大嫌いだったけど、今は年を取ったからか、ゲームを尊重するようになったよ。

MIPSはいい例だと思うけど、RISC-Vが持ち込む奇妙なISAの選択肢の二分化はないと思う。自分も年を取った者として、ほぼ50年にわたって「ISA Xはx86よりもずっと優れていて、ISA Xが未来でx86はすぐに死ぬ(今のx86のバージョンが何であれ)」って言われてきたのを思うと、ただ首を振るしかないよ。「それが起こったら教えて」って感じ。物議を醸す意見だけど(歴史が証明していることだけど):ソフトウェアが重要で、ISAは関係ない。

x86は、速くて効率的なRISC-Vチップを作れるという最良の証拠だよ…だってx86の命令セットはもっと大きな混乱だから。デザイナーが過去からの明らかに分かりやすい教訓を学ばないときは、本当に驚くよ。「複雑さは悪」や「速いパスを最も一般的な使用ケースと重ねる」こと、「N個のオプション拡張を持つ標準は実際にはN!(Nの階乗)個の標準である」みたいな基本的なことね。とはいえ、実際のアーキテクチャには messy corners や warts があるのは確か。RISC-Vはそれを取り除くチャンスだったのに、結局そうはならなかったのかな?

最近RV64IMAエミュレーターを書いたよ。Linuxをブートできる仮想CPUコアが必要だったから、RV64IMAが一番簡単な方法だと思ったんだ。実際、そうだと思う。でも、既存のツールチェーンやバイナリと互換性を持たせたくなって、ISAプロファイルをRV64GCに拡張する必要が出てきた。大したことじゃないけど、ソフトフロートライブラリを取り込む必要があった。それでAlpine Linuxをブートできるところまでは行ったんだけど、次はUbuntuをブートしたくなって、RVA23が必要になった。これは比較的大変で、ベクター命令セットなど色々なことが絡んでくる。今思うと、aarch64をエミュレートした方が良かったかも。

Ubuntu 24.04 LTSは存在していて、RV64GCだけで動くし、これからも何年もサポートされて強化される予定だよ。DebianもRV64GC以上を要求する予定はないみたい。RVA23は特定の市場ではすごく良いことだけど、個人プロジェクトでサポートする必要はないよ。

RISC-Vは…まあまあだね。趣味でCPUを設計する者としてのISAに対する2つの要件を満たしてるんだ。1. メインラインのLLVMとGCCでサポートされていること。2. 弁護士からラブレターが来ないこと。その他のことは後で修正できるし、拡張に良いアイデアがたくさんあるから、競争力のあるパフォーマンスとコード密度を持つ、シンプルな実装の組み込みISAを作ることができると思う。Dmitryの指摘はほぼ的を射てるけど、RISC-VのJフォーマットのビットフィールド図が含まれるすべての主張には、ArmのT32 BLエンコーディングの同様の図も添えてほしいといういつもの法定苦情は出しておくね。

RISC-Vは…まあまあだね。 その通り。 > 趣味でCPUを設計する者としてのISAに対する2つの要件を満たしてる… たぶん、ツールチェーンの可用性や「実際にコードを実行できるほど十分に審査されている」といった、明示されていない要件もあるよね。RISC-Vは、何らかの理由(利益追求やセキュリティがトップ)でx86やArmのエコシステムを離れたい人々にとってのシェリングポイントになっている。

RISC-Vって、いろんな面で法的に異なるMIPSみたいなもんだよね。基本の命令セットから、特定の拡張が後のMIPSの追加にすごく似たクルージを導入するところまで。MIPSの技術的な欠陥を改善して、ARMv8に対抗できるチャンスを逃したのは確かに大きなミスだと思うけど、RISC-Vの主な目的は法的な問題を解決することだってことも忘れちゃいけないよね。特にASICの分野では、ゾンビ企業に追いかけられる心配がない、標準化された(たとえ不完全でも)PlayStation 1時代の命令セットをシリコンに実装できるのは大きな価値があると思う。Dmitryも認めてるけど、8051コアのためにKeil C51のコピーとたくさんの忍耐が必要なよりは、何でもマシだし。カスタム拡張を追加することになっても、自分だけのISAを考えてツールチェーンを構築するよりはずっと良いスタート地点だよ。

相互に互換性のないエンコーディングの重複は、ポストでは修正できないよ。

100%同意。理想的かって言うと、そうじゃないけど。ちょっとした手間で成功した製品を立ち上げられるかって言うと、はい!私たちのシステムの心臓部は、家庭用の有名なデバイスを動かすRISC-VのマルチハートSoCだよ。結構色々やってる - 少し計算して、少しDSPも。完璧なフィットではないけど、安いし、十分に機能してる。私たちにとって最大のギャップは、ARMのデータウォッチポイントトレースのような良いデバッグ機能がないことだったけど、もしかしたらそれ用の拡張がもうあるかもね?

  1. 弁護士からラブレターが来ることなく実装できる。何が彼らを止めてるの? 彼らは簡単に特許侵害を主張できるのに…

RISC-Vは…まあまあだね。8051もそうだったけど、あれもダメだったよね :-)。この愚痴を一つの場所にまとめてくれてありがたい。悪いアーキテクチャに対して愚痴るのは、いつもカタルシスがあって、でも全く無駄なんだよね。だって、悪いアーキテクチャを作った人たちがそのアーキテクチャを支持してるから、愚痴るとただイライラさせるだけなんだよね。親コメントと同じように、RISC-Vは「便利」だと思う。ほとんどの基盤が「箱から出してすぐに」使えるツールが揃ってるから、自分で作る必要がないんだ。最も興味深いのは、RISC-VがISAに対して人々がどれだけ無頓着かを示していることだね。gccスイートでクロスコンパイルができて、オープンソースでプログラムやデバッグができる限り、特注のISAやコンピュータアーキテクチャに取り組むことは、論文や会議の発表以外には「進まない」ことが多かった。でも今は、主流になる可能性がゼロじゃないって証拠があるんだ。 :-)

Hacker Newsで議論の続きを見る