AetherEchoesEngineering
Engineering#02068 min2,1306 view

RISC-V の拡張機構は欠陥か資産か — 10 円 MCU に載せる側の目線で読む

Grinberg「RISC-V: They Should Have Known Better」への資源制約現場からの反論を運用者目線で読みます。圧縮命令や Zicsr の設計批判は正しい。でも 10 円の MCU から Linux まで同じ ISA で貫ける価値は別軸にある。CH32V003 の実価格と ARM との入手性差、断片化との付き合い方を整理します。

SoSoraEndo2026年8月17日 09:048 min2,130

動画で読む

RISC-V が安い MCU で勝つ理由は「符号化の美しさ」ではなく拡張機構にある

RISC-V が安価なマイコンで広がっている理由は、命令エンコーディングの綺麗さではありません。10 円の部品から Linux が動くチップまで、同じ命令セットの土台を共有できるという一点です。この視点を欠くと、設計批判はどれも正しいのに結論だけ的を外す、という奇妙なことが起きます。

組み込みエンジニアの Armstrong Subero が 2026 年に書いた反論記事を読んで、そこがはっきりしました。彼が反駁している相手は Dmitry Grinberg の「RISC-V: They Should Have Known Better」で、こちらは ISA(Instruction Set Architecture、命令セットの設計)としての RISC-V の詰めの甘さを列挙した文章です。私は最初、Grinberg 側に頷いていました。指摘はどれも技術的に妥当だからです。ただ Subero の「その批判が刺さる層と、RISC-V が効く層はそもそも違う」という切り返しで、見ていた軸がずれていたと気づきました。

Grinberg の批判は妥当 — 圧縮命令 / Zicsr / 拡張の断片化

先に言っておくと、Grinberg の技術的な指摘はおおむね正しいです。RISC-V の拡張機構は、放っておくと互換性の穴を増やす方向に働きます。

槍玉に挙がるのは主に 3 点です。圧縮命令(C 拡張、16bit 幅で命令サイズを縮める仕組み)のストアオフセットの取り方が素直でないこと。Zicsr(制御レジスタへのアクセス命令群)が本体から切り離された別拡張になっていて、明示的に選ばないと使えないこと。そして C 拡張からさらに Zcb が枝分かれするような、拡張の細分化そのものです。加えてベンダが独自に割り込みハードウェアを載せ替えるので、同じ「RISC-V」と名乗るチップ同士で挙動が揃わない。この断片化は、複数ベンダのチップを一つのコードベースで面倒みる立場からは、素直に頭が痛い話です。ローカルで破壊的コマンドを止める dcg を実運用で評価した回 でも書きましたが、環境ごとに前提が変わる作りは、動かない時の切り分けに時間を溶かします。

拡張の「積み木」が価格帯をひとつの ISA で貫かせる

Subero の反論の核心は、その断片化こそが機能だ、という点にあります。拡張が積み木のように足し引きできるからこそ、10 円の部品と、保護付きマルチプロセス OS が動くチップが、同じ命令セットの上に並べるわけです。

彼の言い回しが的確でした。「小さな部品が大きな部品の荷物を背負わずに済むからこそ、ひとつの命令セットが 16 本のレジスタしか持たない 10 セントの部品にも、保護されたマルチプロセス OS を走らせるチップにも収まる」。ARM はここで製品境界を引きます。Cortex-M(マイコン向け)と Cortex-A(アプリケーションプロセッサ向け)はそもそも別アーキテクチャで、MMU(Memory Management Unit、仮想記憶の土台)が要るなら Cortex-A のライセンスが要る。RISC-V では MMU も特権モードも、仕様上はチェックボックスひとつです。だから CH32V003 のような極小マイコンから Linux が動く SBC まで、同じ ISA の延長線として登っていける。Kakehashi で macOS バイナリを Linux ARM 上で動かす翻訳層の回 で見た「境界をまたぐと途端に別世界になる」構図の、逆を行くのが RISC-V だと言えます。

観点RISC-VARM
ベース ISAマイコンから Linux まで統一ARMv6-M / v7-M / v8-A で分断
MMU / 特権モード仕様上のオプションCortex-A ライセンスが必要
価格帯の登り方同一 ISA で連続コアごとに別物
ライセンスオープン / ロイヤリティ無しCortex-A はライセンス契約

手が届くという価値 — CH32V003 が 10 円で買える意味

RISC-V の本当の勝ち筋は、符号化の優雅さではなく、価格と入手性と開放性です。設計論争の外側にいる人にとっては、そこだけが現実的な差になります。

Subero は Trinidad and Tobago から書いていて、この視点が効いています。彼の挙げる数字は具体的で、CH32V003 はデバッガ内蔵で 1 個約 0.10 ドル、50 個まとめても 7 ドル程度。対して ARM 側で相当のことをしようとすると、STM32H747 に加えて J-Link デバッガ(教育版でも 200 ドル、通常版は 600 ドル超)が要り、しかも国によっては送料が 60〜200 ドル上乗せされ、リードタイムが 20 週という世界になる。垂直方向のスタックをまるごと 100 ドル以内で触れるかどうかは、裕福でない市場のエンジニアにとって、入口に立てるかどうかの分かれ目です。「誰かのデモボードを眺めるしかなかった人の手に、組み込みが届く」という彼の一文が、記事全体の主張を要約しています。

私も金曜の夜に、手元の MacBook Air(M2)から CH32V003 の開発ボードを 1 枚ぽちりました。数百円です。届いてから WCH 純正ツールチェーンのクセにしばらく手こずり、Linux 側の udev ルールを書き直してようやく書き込めたのですが、コーヒー代より安い部品で「電源を入れて LED が光る」ところまで自力で行けるのは、素直に面白い体験でした。10 セントの石が文鎮になっても、痛いのは指先ではなく好奇心の方だけです。ここで気づいたのは、Grinberg の批判は「この石をどう美しく設計すべきか」の話で、Subero の反論は「この石が誰の手に届くか」の話だ、ということでした。同じ RISC-V を見ていても、評価軸がまるで違う。

運用者としての受け止め — 断片化とどう付き合うか

結論としては、RISC-V の断片化は「開放性の請求書」だと割り切って、ベンダロックの薄さと引き換えに互換性の検証を自分で持つ、という受け止めが現実的です。設計の美しさと運用の楽さは、必ずしも同じ方向を向きません。

私の付き合い方はこうです。まず対象チップが実装している拡張を仕様書で確定させ、C 拡張や Zicsr の有無をビルドフラグに明示して、他ベンダのボードに載せ替えた時に暗黙の前提が壊れないようにする。ベンダ独自の割り込み周りは抽象化層で薄く包んで、移植の差分を 1 ファイルに閉じ込める。これは 間違った抽象より重複を選ぶ で書いた判断と地続きで、無理に共通化せず、境界のはっきりした重複を許す方が、断片化した世界では壊れにくい。ちなみにこのサイト自体、AI が下書きを起こし、私が公開前に確認して直してから出しています。RISC-V も同じで、オープンで自由な土台ほど、最後に人の手で前提を確かめる工程が効く、というのが今回の読後感でした。開放性は無料ではなく、検証という形で後から請求が来ます。それを払える人にとっては、10 円の入口はやはり安い。

よくある質問

RISC-V の拡張が別々に分かれているのは欠点ですか?
見る軸によります。互換性の検証を自分で持つ運用者からは断片化として頭が痛い一方、10 円の極小マイコンから Linux が動くチップまで同じ ISA の土台を共有できるのは、拡張を積み木のように足し引きできるからです。欠陥と資産の両面があります。
CH32V003 はなぜそんなに安いのですか?
デバッガ内蔵の極小 RISC-V マイコンで、1 個約 0.10 ドル、50 個で 7 ドル程度です。ARM で相当のことをすると J-Link デバッガ(教育版 200 ドル / 通常 600 ドル超)や STM32H747 が要り、国によっては送料とリードタイムも重くなります。
ARM と RISC-V の一番大きな違いはどこですか?
技術より製品境界の引き方です。ARM は Cortex-M と Cortex-A で別アーキテクチャに分け、MMU が要るなら Cortex-A ライセンスが必要です。RISC-V は MMU も特権モードも仕様上のオプションで、マイコンから Linux まで同じ命令セットで連続的に登れます。
断片化した RISC-V を実務でどう扱えばいいですか?
対象チップの実装拡張を仕様書で確定し、C 拡張や Zicsr の有無をビルドフラグに明示するのが基本です。ベンダ独自の割り込み周りは抽象化層で薄く包み、移植の差分を 1 ファイルに閉じ込めると、他ベンダのボードに載せ替えても前提が壊れにくくなります。

参考文献

  1. A 3rd World Embedded Engineer Responds to "RISC-V They Should Have Known Better" (Armstrong Subero)
  2. RISC-V: They Should Have Known Better (Dmitry Grinberg)
  3. CH32V003 — WCH low-cost RISC-V MCU (official product page)

Reaction

Share

X (Twitter)