---
title: "RISC-VとArm・x86の違いを比較｜ライセンス・命令長・OS対応で選ぶ【2026年】"
url: "https://www.issoh.co.jp/tech/details/7617/"
published: 2025-07-09
updated: 2026-10-18
categories: ["アーキテクチャ"]
publisher: "株式会社一創"
---

# RISC-VとArm・x86の違いを比較｜ライセンス・命令長・OS対応で選ぶ【2026年】

RISC-V・Arm・x86の違いは、性能よりも先に「誰が仕様を持ち、誰に何を払うか」と「どのOS・バイナリがそのまま動くか」で表れます。RISC-VはISA（命令セットアーキテクチャ）の利用料が0で誰でも実装でき、Armは契約に応じてライセンス料とロイヤルティを払い、x86はIntelとAMDが実装を握っています。

この記事では3つのアーキテクチャをライセンス・命令セット・マイコン・ソフトウェア互換の順に比較し、同じCコードを64ビットCPU向けとマイコン向けにコンパイルしたコードサイズの実測も載せます。Armそのものの世代や系列を知りたい場合は[ARMアーキテクチャの解説記事](/tech/details/10467/)が詳しく扱っています。

## まとめ：RISC-V・Arm・x86の違いと選び方の要点

| 比較軸     | RISC-V               | Arm                   | x86             |
| ------- | -------------------- | --------------------- | --------------- |
| 仕様の管理者  | RISC-V International | Arm社                  | Intel・AMD（主要実装） |
| ISAの利用料 | 0（商標利用は別条件）          | ライセンス料＋ロイヤルティ         | 外部向けの窓口なし       |
| 命令長     | 32bit（C拡張で16bitも）    | A64は32bit固定           | 1〜15バイト可変       |
| SIMD    | V拡張（RVA23で必須）        | NEON／SVE              | SSE／AVX／AVX10   |
| マイコン    | RV32IMC等（採用が拡大中）     | Cortex-M（M0+〜M85）     | ほぼ使われない         |
| 主な採用先   | MCU・独自SoC            | スマホ・Mac・サーバー          | PC・サーバー         |
| ソフト資産   | Linux中心で整備途上         | Android・macOS・Windows | Windows・既存業務アプリ |

結論を先に書くと、既存のバイナリ資産を持ち込むならx86、スマートフォン・Mac・省電力サーバーならArm、命令を自社で足したいマイコンや専用SoCならRISC-Vです。マイコンではRISC-VのコードサイズはCortex-Mと同じ水準まで来ており、差を決めるのはISAの名前より「どの拡張を積んだ実装か」です。RISC-Vは「無料のCPU」ではなく「無料で実装してよい仕様」なので、コアIPを買えば費用は発生します。

## RISCとCISCの区別から見るRISC-V・Arm・x86の立ち位置

### RISC-VとArmはRISC、x86はCISCという分類の意味

RISC（縮小命令セット）は、演算をレジスタどうしで行い、メモリの読み書きを主にロード命令とストア命令に任せる設計です。CISC（複合命令セット）のx86は、1命令でメモリ上の値を読んで演算するような複合命令を持ち、命令の長さも一定ではありません。RISC-VとArmのA64はRISC、x86はCISCに分類されます。

分類の違いが今もはっきり残るのは命令の長さです。A64は32ビット固定、ここで比較するRISC-Vの標準命令は32ビットと圧縮命令の16ビット、x86は1〜15バイトです。RISC-Vの符号化方式自体は、さらに長い命令への拡張も想定しています。x86では命令の長さを読み解くまで次の命令の開始位置が決まらず、この違いは後の実測章のコードサイズにも表れます。

### RISC-Vの成り立ちとRISC-V Internationalの位置づけ

RISC-Vはカリフォルニア大学バークレー校で始まったISAで、仕様は非営利団体のRISC-V Internationalが管理しています。批准済みの非特権ISA・特権ISA仕様は、2026年1月付の Version 20260120 が2026年10月時点の公式リリースです。仕様を決める団体と、チップを作って売る企業が分かれている点がArmやIntelとの構造上の違いで、SiFiveやAndesのようなコアIP企業、Espressifやルネサスのようなチップメーカーが、同じ仕様に沿った別々の実装を出しています。

## ライセンスとビジネスモデルの比較：無償の仕様・Armの契約・IntelとAMDの相互ライセンス

### RISC-V：ISA利用料0と、コアIPの費用は別という区別

[RISC-V InternationalのFAQ](https://riscv.org/about/faq/)は、ISAの利用に料金はかからないと明記しています。仕様に準拠していれば、実装をオープンソースにしてもプロプライエタリにしても構いません。ただしRISC-Vの商標やロゴを製品に使うには別の条件があります。

誤解されやすいのは「RISC-Vを選べばCPUのコストが0になる」という読み方です。無償なのはISAという仕様であって、検証済みのコア設計ではありません。コアを自社で設計しない場合は、SiFiveやAndesなどの商用IPを買うか、Raspberry PiのHazard3のように設計ファイルが公開されたオープンソースのコアを使います。どちらでも、SoCへの統合と検証の費用は自社側に残ります。RISC-Vが削るのは「ISAを使う権利への支払い」と「特定ベンダーへの依存」で、開発費そのものではありません。

### Arm：TLA・ALAの2つの契約とFlexible Accessの利用枠

Armの[SEC提出の四半期報告書](https://www.sec.gov/Archives/edgar/data/1973239/000197323926000114/arm-20260630.htm)によると、主な契約は2種類です。TLA（Technology Licensing Agreement）はArmが設計したCPUなどのIPを使う契約、ALA（Architecture License Agreement）はArm ISAに準拠した独自のCPUを設計できる契約です。Qualcommのように自社コアを作る企業はALAを結んでいます。

これに加えて[Arm Flexible Access](https://www.arm.com/products/flexible-access)があり、年間アクセス料は0ドルからです。ただし0ドルは条件を満たす初期段階のスタートアップや大学の研究者向けで、一般企業向けのStandard Tierは年8.5万ドルと公表されています。有償IPのライセンス料はテープアウト（製造用データの確定）時、ロイヤルティは製品出荷時に発生するので、下がるのは試作までの初期費用で、量産後のロイヤルティは残ります。

契約の範囲をめぐる係争も続いています。ArmがQualcommを訴えた件では、2024年12月の陪審評決がQualcommはNuviaのALAに違反していないと認定し、Armは2026年6月30日終了四半期のSEC提出資料で、第3巡回区控訴裁判所への控訴が係属中と報告しています。逆にQualcommがArmを訴えた別件では、2026年10月13日にデラウェア連邦地裁の陪審が、ArmはQualcommとのALAに違反し、Metaとの取引関係に不当に干渉したと認定しました（[Qualcomm側代理人Paul, Weissの公表](https://www.paulweiss.com/insights/client-news/qualcomm-wins-jury-verdict-in-breach-of-contract-and-interference-trial-against-arm)）。一方Armは、陪審が4件の請求でArm側を支持し、Qualcommが勝った残り2件の損害賠償は各1ドルだったと[自社のニュースルームで公表](https://newsroom.arm.com/news/arm-qualcomm-legal-dispute)しています。契約を評価する際は、技術資料の提供義務や終了条件まで確認する必要があります。

### x86：IntelとAMDのクロスライセンスとx86 Ecosystem Advisory Group

x86 CPUの主要な実装企業はIntelとAMDで、中国のZhaoxin（兆芯）もx86互換のプロセッサを出しています。IntelとAMDは2009年11月11日に特許のクロスライセンス契約を結び、AMDの開示資料によると、契約発効から5年後（2014年11月11日）より前を最初の有効出願日または優先日とする相互の特許を、非独占・ロイヤルティフリーで使えます。RISC-VのFAQやArm Flexible Accessのような、第三者が申し込める公開の窓口はありません。

2024年10月15日には両社が x86 Ecosystem Advisory Group を設立し、汎用レジスタを32本に増やすIntel APXや、128・256・512ビットを扱うAVX10の足並みをそろえています。x86はIntelとAMDの協調で進化する体系で、利用者が命令を追加する余地はありません。

## 命令セットの構成比較：命令長・拡張の仕組み・ベクトル演算

### 命令長：32bit基本のRISC-V、32bit固定のA64、1〜15バイトのx86

RISC-Vの基本ISAは固定長32ビットの命令で、標準のC拡張（圧縮命令）を入れると16ビット命令が混ざります。ArmのA64はすべての命令が32ビットで、マイコン向けのCortex-Mは16ビットと32ビットが混在するThumb命令を使います。x86は1命令が1〜15バイトの可変長で、AMD64のマニュアルにもその範囲が明記されています。

C拡張の効果は後の2つの実測章で数字にしています。フラッシュ容量が数百KB単位のマイコンでは、コードサイズの差がそのまま搭載できる機能の量に効きます。

### モジュール拡張とプロファイル：RV64GCからRVA23へ

RISC-Vは、必須の整数命令（RV32IやRV64I）に、乗除算のM、アトミックのA、浮動小数点のFとD、圧縮命令のCといった拡張を足していく構成です。IMAFD（とZicsr・Zifencei）をまとめてG、さらにCを加えたものがRV64GCと呼ばれます。マイコンは必要な拡張だけを載せて面積を削り、アプリケーション向けCPUは多くの拡張を積みます。

この自由度は、OSやアプリの配布側から見ると「どの拡張があるか分からない」という問題になります。そこで拡張の組み合わせを固定したのがプロファイルです。RVA23プロファイルは2024年10月21日に批准が発表され、RVA23U64ではベクトル拡張（V）をはじめ、Zicond・Zcb・Zfaなどが新たに必須になりました。Armのように「Armv9-Aなら何が使えるか」が決まっている状態に、RISC-Vはプロファイルで近づこうとしています。

### ベクトル演算：RVVとSVEは可変長、NEONとSSEは固定長

ArmのNEONは64ビットか128ビットの固定幅で、SVEは実装ごとに128〜2,048ビットのベクトル長を持ち、長さに依存しない書き方（VLA）ができます。RISC-Vのベクトル拡張（RVV）1.0は2021年11月に批准され（公表は同年12月）、SVEと同じく、ベクトル長に依存しないコードを書けます。必要な要素型・命令・実行環境が共通なら、ハードウェアのベクトル長（VLEN）が異なるCPU間でも同じバイナリを実行できます。x86のSSEやAVXは命令ごとにビット幅が決まっている固定長の系統です。RVVの方式がなぜ移植性と性能を両立できるのかは、[RVVの可変長ベクトル方式の解説記事](/tech/details/12398/)で命令単位まで説明しています。

## 同じCコードを3アーキテクチャでコンパイルした実測：命令数とコードサイズ

ISAの違いが実際のコードにどう出るかを確かめるため、int32の配列を合計する短い関数を、zig 0.16.0に同梱のclang 21.1.0で64ビットの5構成向けにコンパイルしました。ループ展開の有無で比較がぶれないよう `-fno-unroll-loops` を付けています。

```
#include <stdint.h>
int64_t sum(const int32_t *a, int n) {
    int64_t s = 0;
    for (int i = 0; i < n; i++) s += a[i];
    return s;
}
```

```
python3 -m pip install ziglang==0.16.0
python3 -m ziglang cc -target riscv64-linux-musl -mcpu=generic_rv64+m+a+f+d+c \
  -O2 -fno-unroll-loops -fno-asynchronous-unwind-tables -g0 -fomit-frame-pointer -c sum.c -o rv64gc.o
python3 -m ziglang cc -target riscv64-linux-musl -mcpu=generic_rv64+m+a+f+d \
  -O2 -fno-unroll-loops -fno-asynchronous-unwind-tables -g0 -fomit-frame-pointer -c sum.c -o rv64g.o
python3 -m ziglang cc -target riscv64-linux-musl -mcpu=generic_rv64+m+a+f+d+c+v \
  -O2 -fno-unroll-loops -fno-asynchronous-unwind-tables -g0 -fomit-frame-pointer -c sum.c -o rv64gcv.o
python3 -m ziglang cc -target aarch64-linux-musl -mcpu=generic \
  -O2 -fno-unroll-loops -fno-asynchronous-unwind-tables -g0 -fomit-frame-pointer -c sum.c -o a64.o
python3 -m ziglang cc -target x86_64-linux-musl -mcpu=x86_64 \
  -O2 -fno-unroll-loops -fno-asynchronous-unwind-tables -g0 -fomit-frame-pointer -c sum.c -o x64.o
```

上のCコードを `sum.c` として保存し、各コマンドを実行します。命令数は同じオプションで `-c` を `-S` に替えて出力したアセンブリから、ラベルとディレクティブを除いた関数全体の命令を数えました。`.text` のサイズはELFオブジェクトのセクションヘッダーから読み取っています。

```
import struct, sys
for path in sys.argv[1:]:
    d = open(path, "rb").read()
    shoff = struct.unpack_from("<Q", d, 0x28)[0]
    size, num, stridx = struct.unpack_from("<HHH", d, 0x3A)
    secs = [struct.unpack_from("<IIQQQQIIQQ", d, shoff + i * size) for i in range(num)]
    base = secs[stridx][4]
    for sec in secs:
        name = d[base + sec[0]:d.index(b"\0", base + sec[0])].decode()
        if name == ".text":
            print(path, sec[5], "bytes")
```

| 構成（-mcpu）              | ループのSIMD化 | 命令数（関数全体） | .textサイズ |
| ---------------------- | --------- | --------- | -------- |
| RISC-V rv64g（+m+a+f+d） | なし        | 10        | 40バイト    |
| RISC-V rv64gc（+c）      | なし        | 10        | 24バイト    |
| RISC-V rv64gcv（+c+v）   | RVV       | 43        | 134バイト   |
| AArch64（generic）       | NEON      | 34        | 136バイト   |
| x86-64（x86\_64）        | SSE2      | 33        | 113バイト   |

1つ目の読み取りは、C拡張だけで同じ10命令が40バイトから24バイトに縮んだことです。命令数は変わらず、4バイト命令の多くが2バイト命令に置き換わっています。

2つ目のほうが実務では重要です。AArch64とx86-64は基本命令にNEONとSSE2が含まれるため、CPUを指定しなくてもループがベクトル化されました。一方、RV64GCにはベクトル命令が無く、ループ本体は `lw`・`addi`・`add`・`bne` の4命令というスカラーのコードになりました。V拡張を付けた構成では `csrr a2, vlenb` で実行時にベクトル長を読み、`vwadd.wv` と `vredsum.vs` で合計する、VLENに依存しないコードになりました。

RV64GCの命令だけで生成したコードは、Armやx86なら標準で得られるSIMDの恩恵を受けられません（実行時にCPUの拡張を検出して処理を切り替える実装は別です）。UbuntuがRVA23（V拡張必須）へ要件を引き上げた背景には、この差があります。なお、この比較はコンパイル結果の静的な命令数とサイズで、実行速度は測っていません。

## マイコン（MCU）で比べるCortex-MとRISC-V：構成の対応・コードサイズ・開発環境

マイコンでは、フラッシュに収まるコードの量、セキュリティ機能の有無、開発ツールの対応を比較します。信号処理やAI推論では、Cortex-MのDSP命令やHeliumなどのSIMD機能も選定対象です。

### Cortex-Mの世代とRV32の構成の対応関係

| 用途の段階   | Arm Cortex-M                | RISC-V（例）        |
| ------- | --------------------------- | ---------------- |
| 最小・低価格  | Armv6-M（M0／M0+）             | RV32EC・RV32IMC   |
| 汎用・DSP  | Armv7-M（M3）／Armv7E-M（M4／M7） | RV32IMAC（＋F・Zb系） |
| セキュリティ  | Armv8-M（M23／M33）            | PMP・Smepmp       |
| ベクトル・AI | Armv8.1-M（M52／M55／M85）      | V拡張の組込み向け構成      |
| 独自命令    | Arm Custom Instructions     | custom-0〜3の命令空間  |

Cortex-Mは世代（アーキテクチャ版）とコア名で機能がほぼ決まりますが、RISC-Vは同じ「RV32」でも積む拡張が製品ごとに違います。RISC-Vのマイコンを比べるときは、コア名ではなく `RV32IMAC` のような拡張の並びをデータシートで読むのが出発点です。

### CoreMark本体をCortex-MとRV32向けにコンパイルした実測：C拡張とZcb・Zcmpの効果

マイコンでのコードサイズを比べるため、EEMBCのベンチマーク[CoreMark](https://github.com/eembc/coremark)（コミット1f483d5）の本体4ファイル（リスト・行列・状態機械・CRC）を、前章と同じclang 21.1.0でマイコン向けの7構成にコンパイルしました。最適化はマイコンで一般的なサイズ優先の `-Os` です。

```
SRC=./coremark   # eembc/coremark を展開したディレクトリ
build() {
  name=$1; shift
  for f in core_list_join core_matrix core_state core_util; do
    python3 -m ziglang cc "$@" -Os -ffreestanding -fno-asynchronous-unwind-tables -g0 \
      -include stddef.h -DPERFORMANCE_RUN=1 -DITERATIONS=0 -I$SRC -I$SRC/barebones \
      -c $SRC/$f.c -o ${name}_$f.o
  done
}
build m0plus  -target thumb-freestanding-eabi -mcpu=cortex_m0plus
build m4      -target thumb-freestanding-eabi -mcpu=cortex_m4
build m33     -target thumb-freestanding-eabi -mcpu=cortex_m33
build rv32im  -target riscv32-freestanding-none -mcpu=generic_rv32+m
build rv32imc -target riscv32-freestanding-none -mcpu=generic_rv32+m+c
build rv32emc -target riscv32-freestanding-none -mcpu=generic_rv32+e+m+c
build rv32imc_zcb_zcmp -target riscv32-freestanding-none -mcpu=generic_rv32+m+c+zcb+zcmp
```

| 構成                  | 命令の形式       | .text合計（-Os） |
| ------------------- | ----------- | ------------ |
| Cortex-M0+（Armv6-M） | Thumb       | 3,080バイト     |
| Cortex-M4（Armv7E-M） | Thumb-2     | 3,336バイト     |
| Cortex-M33（Armv8-M） | Thumb-2     | 3,344バイト     |
| RV32IM（C拡張なし）       | 32bitのみ     | 5,056バイト     |
| RV32IMC             | 32bit＋16bit | 3,386バイト     |
| RV32EMC（レジスタ16本）    | 32bit＋16bit | 3,534バイト     |
| RV32IMC＋Zcb＋Zcmp    | 32bit＋16bit | 2,998バイト     |

サイズは各オブジェクトの `.text` 系セクションをELF32のセクションヘッダーから合計した値です。C拡張の無いRV32IMは5,056バイトとCortex-M4より5割以上大きく、C拡張を足すと3,386バイトでCortex-M4・M33とほぼ同じになりました。さらに、仕様書が[マイコン向けに設計した圧縮命令群（Zce）](https://github.com/riscv/riscv-isa-manual/blob/main/src/unpriv/zce.adoc)の一部であるZcbとZcmp（関数の入口と出口のレジスタ退避を1命令にまとめるpush・pop）を加えると2,998バイトとなり、7構成で最小でした。RP2350のRISC-VコアHazard3は、[公開リポジトリ](https://github.com/Wren6991/Hazard3)によるとこのZcbとZcmpを実装しています。レジスタを16本に減らすRV32Eは、面積を削る代わりにコードは4%大きくなりました。

ただし、この順位は最適化オプションで変わります。`-O2` で同じ比較をすると、Arm側だけで行列演算のループ展開が大きく働き、Cortex-Mの3構成が12,702〜12,942バイト、RV32IMCが5,338バイトと逆転しました。ループ展開を止めた `-O2 -fno-unroll-loops` では Cortex-M4が4,562バイト、RV32IMC＋Zcb＋Zcmpが4,760バイトで、Arm側が小さくなります。コードサイズを比べるときは、ISAより先にコンパイラと最適化オプションをそろえてください。なお、これはCoreMarkのスコアではなく、本体4ファイルの未リンクオブジェクトに含まれる.text系セクションだけの比較です。起動処理、実行時ライブラリ、定数データなどを含む最終ファームウェアのフラッシュ使用量とは異なります。

### 性能指標CoreMark/MHzの読み方：Cortex-M・ルネサス・Hazard3の公表値

マイコンの処理性能は、1MHzあたりのCoreMarkの値で比べるのが一般的です。[ArmのCortex-M比較表（2023年版）](https://documentation-service.arm.com/static/655e085f2c8b3557fee7048f?token=)では、M0+が2.46、M4が3.54、M33が4.10、M85が6.28です。RISC-Vでは、ルネサスが2024年3月26日に発表した[自社開発コア搭載のR9A02G021](https://www.renesas.com/ja/about/newsroom/renesas-introduces-industry-s-first-general-purpose-32-bit-risc-v-mcus-internally-developed-cpu-core)が3.27（最大48MHz）、Hazard3がRP2350の構成で4.15と公表されています。

この値はコアの比較であってISAの比較ではありません。Hazard3の4.15は、GCC 15.1の `-O3` とループ全展開に加え、C拡張を外した構成で測った値です。つまり、前の実測でコードを小さくした圧縮命令を、性能の計測では外しています。速度とサイズは同じ設定では最大化できないので、データシートのCoreMark/MHzと自社のビルド設定が一致しているかを確認してから比べてください。

### セキュリティ・割り込み・カスタム命令：TrustZoneとPMP、CDEとcustom-0〜3

Armv8-MのTrustZoneは、[Armの資料](https://documentation-service.arm.com/static/5f872f18405d955c5176dec9?token=)が「任意のセキュリティ拡張（optional Security Extension）」と書く機能で、Cortex-M33を選べば必ず使えるとは限りません。RISC-Vでは、特権ISA仕様が物理メモリ保護（PMP）を任意のユニットとして定め、その強化版のSmepmpは Version 20260120 で批准済みのモジュールに含まれています。どちらも「載っているか」と「領域数」を製品のデータシートで確認する点は同じです。セキュア領域と通常領域を分ける仕組みは[TEE（Trusted Execution Environment）の解説記事](/tech/details/9006/)でTrustZoneを含めて説明しています。

割り込みは差が出やすい部分です。Cortex-MはNVICがアーキテクチャで決まっているため、RTOSやドライバの移植が楽です。RISC-Vは割り込みコントローラが製品ごとに異なり、GigaDeviceのGD32VF103はECLIC、WCHのCH32V003は割り込みのネストが2段階までです。

カスタム命令はRISC-Vだけの機能ではありません。RISC-Vの非特権ISA仕様は custom-0〜custom-3 のオペコードを将来の標準拡張で使わないと定め、実装者が独自命令を置ける場所を空けています。Armにも[Arm Custom Instructions](https://www.arm.com/architecture/cpu/m-profile)があり、Cortex-M33・M52・M55・M85で任意に実装できます。搭載済みのマイコンで利用できるかは製品ごとの確認が必要です。違いは自由度で、RISC-Vは自社でコアを設計すれば命令を一から決められ、Armは用意された命令の枠に自社の演算回路をつなぐ方式です。

### 主要なRISC-Vマイコン製品と開発環境の対応状況

RISC-Vマイコンは、ルネサスのR9A02G021、WCHのCH32Vシリーズ、GigaDeviceのGD32VF103、EspressifのESP32-C3・C6（どちらも最大160MHzのRISC-Vコア）など、量産品として手に入ります。Raspberry PiのRP2350は2基のArm Cortex-M33と2基のHazard3を載せ、どちらで起動するかを選べる、同じチップでArmとRISC-Vを比べられる珍しい製品です。RP2350を積んだボードの違いは[Raspberry Pi Pico Wの解説記事](/tech/details/11676/)で整理しています。車載・産業向けでは、Bosch・Infineon・Nordic Semiconductor・NXP・STMicroelectronics・Qualcommが出資するQuintaurisがRISC-Vの普及を目的に2023年12月22日に法人化されました。

開発環境は、Cortex-M向けの [Keil MDK v6](https://developer.arm.com/Tools%20and%20Software/Keil%20MDK) がArmベースのマイコン向け製品であるのに対し、IAR Embedded Workbench for RISC-V（3.4x系はRV32I・RV32E・RV64Iに対応）や、RV32とRV64の両方に対応する[SEGGER J-Link](https://www.segger.com/products/debug-probes/j-link/technology/cpus-and-devices/risc-v-support/)が使えます。GCCとLLVMは両方に対応しているので、商用ツールにこだわらなければ差は小さくなっています。Cortex-MのマイコンをVS Codeで開発する流れは[STM32をVS Codeで開発する記事](/tech/details/6859/)が参考になります。IoT機器のマイコン選定からファームウェア・クラウド連携までまとめて相談したい場合は、[一創のAI/IoTソリューション](/service/ai/iot/)でも対応しています。

## ソフトウェア互換とエコシステム：Linux・Android・Windows・macOSの対応状況

### Linuxディストリビューション：Debian 13の公式化とUbuntuのRVA23必須化

[2025年8月9日に公開されたDebian 13「trixie」](https://www.debian.org/News/2025/20250809)で、riscv64が初めて公式サポート対象のアーキテクチャになりました。Ubuntuは25.10からRISC-V版の要件をRVA23S64プロファイルに引き上げ、2026年4月23日公開の[26.04 LTSのリリースノート](https://documentation.ubuntu.com/release-notes/26.04/)も、RVA23S64を実装したハードウェアだけをサポートし、満たさないシステムでは実行できないと明記しています。同じリリースノートは、2026年4月時点でRVA23S64のハードウェアはまだ無く、サポート対象はQEMUの `-cpu rva23s64` だけとも書いています。

RISC-Vでは「OSが動くか」が拡張の有無で分かれます。UbuntuのRISC-V版では、この要件変更が旧世代ボードからの移行制約になります。Armやx86でも、更新先のディストリビューションが要求するCPU機能と機種対応の確認は必要です。

### RISC-Vボードの選び方：UbuntuのRVA23要件と機種ごとの対応版

Ubuntuの[RISC-V向けダウンロードページ](https://ubuntu.com/download/risc-v)は、2026年10月時点でボードを2つに分けています。26.04 LTS以降が動くRVA23の機種は、SiFiveのBigSky、SpacemiTのK3を積んだCoM260・picoITX・DeepComputing FML13V05（K3系は26.10から対応）、それにQEMUです。K3を積んだFramework Laptop 13用のメインボード DC-ROMA RISC-V Mainboard III は2026年5月12日に正式発売され、SiFiveのBigSky開発サーバーは2026年8月24日から数量限定で提供されています。

一方、StarFive VisionFive 2・VisionFive 2 Lite、Milk-V Mars、Pine64 Star64、SiFive Unmatched、Sipeed LicheeRV Dock、Allwinner Nezha、Microchip PIC64GX1000 Curiosity Kit などのRVA20世代のボードは、Ubuntu 24.04.5 LTSでのサポート継続という扱いです。手頃なRISC-Vボードの多くはこちらに入ります。学習用や24.04 LTSで足りる用途ならこれらで十分です。RVA20機でもUbuntu 24.04 LTSのサポート期間中は更新を受けられますが、26.04 LTS以降へ移行する予定の開発機なら、RVA23対応と明記された機種を選んでください。

### Android：GKIのriscv64対応削除と、AOSPに残る開発用構成

AndroidのRISC-V対応は、Linuxよりも慎重に見る必要があります。Googleは2024年4月30日の[Android共通カーネルのコミット](https://android.googlesource.com/kernel/common/+/9cf3c3120558c10b8ed7a1d735809713fc22f97b)で、riscv64のGKI（汎用カーネルイメージ）対応を削除しました。一方で、Googleの[android-riscv64リポジトリ](https://github.com/google/android-riscv64)は開発をAOSPで直接進めると書いており、AOSPには2026年10月時点でも `aosp_riscv64` の構成が残っています。開発は続いていますが、商用端末向けの正式サポートを示す公式発表は見当たりません。Android端末を作る、あるいはAndroidアプリを動かす前提の製品では、RISC-Vは候補から外すのが現実的です。

### WindowsとmacOS：Prismの互換性とRosettaの提供終了予定

Windows 11 on ArmはArm64ネイティブアプリに加え、変更していないx86・x64アプリをエミュレーションで動かせ、24H2でPrismというエミュレータが入りました。Appleは[開発者向けニュース](https://developer.apple.com/news/?id=w5ngl9k2)でmacOS 27を汎用のRosettaを提供する最後のリリースとし、その次のmacOSではIntel専用アプリが動かなくなると告知しています（古いゲーム向けの一部機能は残ります）。

Windowsの業務アプリ資産があるならx86かWindows on Arm、Macの開発ではArm64ネイティブへの移行が前提です。デスクトップのRISC-Vは、前述のFramework用メインボードのような開発者向け製品にとどまります。

## スマートフォン・PC・サーバーでの採用状況：Armとx86が占める領域

スマートフォンとMacはArm、WindowsのPCとデータセンターはx86が主流で、サーバーではArmの採用が広がっています。AWSのGravitonはその代表で、[AmazonのGravitonをAI半導体として読み解く記事](/tech/details/11928/)で大型契約の中身を扱っています。Armは2025年5月15日に、インフラ向けNeoverse、PC向けNiva、モバイル向けLumex、車載向けZena、IoT向けOrbisという市場別のブランドを発表しました。Arm自身がサーバーCPUに踏み込んだ例は[Arm AGI CPUの解説記事](/tech/details/11540/)にまとめています。RISC-Vのサーバーは、前述のBigSkyのような開発用の機材が出始めた段階です。

## RISC-Vを選ぶ場面と選ばない場面：アーキテクチャ選定の判断基準

判断は「何を再利用したいか」から始めるのが確実です。性能表の比較から入ると、ISAではなく個々の実装の差を比べることになります。

- 既存のWindowsアプリやx86向けバイナリをそのまま動かしたい：x86を選ぶ
- Android端末、Mac、スマートフォン向けの製品：Armを選ぶ
- クラウドで同じLinuxワークロードを安く回したい：Arm（Graviton等）とx86を価格で比べる
- 既存のCortex-M資産（RTOS・ドライバ・Keilのプロジェクト）があるマイコン：Armを続ける
- 独自の命令を足したい専用SoC、ロイヤルティを払いたくない量産マイコン：RISC-Vを検討する
- 特定国・特定企業のライセンスに依存したくない長期供給品：RISC-Vを検討する

RISC-Vを選ぶべきでない場面もはっきりしています。1つはAndroidを載せる製品で、前述のとおりGKIからriscv64が外れたままです。もう1つは、Ubuntuの新しいLTSへ更新し続ける前提なのに、RVA20世代のボードを選ぶ場合です。マイコンでは、C拡張の無いRV32IMがCoreMark本体の-Os実測でCortex-M4より5割大きくなりました。大小関係はソースとコンパイル条件で変わるので、圧縮命令（CやZcb・Zcmp）の有無を確かめてから比べてください。独自命令を足したコアも、コンパイラやOSがその命令を知らなければ使えず、ツールチェーンの保守まで自社で抱えることになります。

ハードウェアそのものを作り替えたい場合は、CPUのISAを選ぶ前に[FPGAの仕組みとCPU・ASICとの違い](/tech/details/9296/)を比べておくと、ソフトコアのRISC-Vを載せるのか専用回路にするのかを判断しやすくなります。

## よくある質問

### RISC-VとArmの性能はどちらが上ですか？

ISAだけでは決まりません。性能を左右するのはパイプラインやキャッシュなどのマイクロアーキテクチャ、製造プロセス、クロックで、同じRISC-Vでも実装ごとに大きく違います。マイコンの公表値では、Cortex-M33が4.10 CoreMark/MHz、RP2350のHazard3が4.15、ルネサスR9A02G021が3.27です。64ビットでは、V拡張の無いRV64GC向けにコンパイルするとループがベクトル化されず、NEONが標準のAArch64と差がつきました。比べるときはコア名と対応拡張、コンパイル条件をそろえてください。

### RISC-Vの欠点は何ですか？

拡張の組み合わせが実装ごとに違い、ソフトウェアがそろいにくいことです。Ubuntuは25.10からRVA23準拠のハードウェアしかサポートせず、手頃なRVA20世代のボードは24.04 LTS止まりです。Androidの共通カーネルからはriscv64のGKI対応が外れ、マイコンでは割り込みコントローラが製品ごとに違うためRTOSやドライバの移植に手間がかかります。ISAが無償でもコアIPや検証の費用はかかる点も、見落とされやすい弱点です。

### ArmとAMD（x86）の違いは何ですか？

AMDはIntelと同じx86系CPUを設計・販売する企業で、Armは主にISAとCPU設計をほかの企業にライセンスする企業です（近年はArm AGI CPUのように自社のチップ製品も出しています）。命令セットではx86が1〜15バイトの可変長のCISC、ArmのA64が32ビット固定長のRISCです。ソフトウェア面では、x86向けのWindowsアプリはArm版Windowsではエミュレーション経由で動きます。

### arm64とx64の違いは何ですか？

arm64（AArch64）はArmの64ビット命令セット、x64（x86-64、AMD64）はx86を64ビットに拡張した命令セットで、互いのバイナリは直接実行できません。Dockerイメージやインストーラーで両方が配布されているのはこのためです。AppleシリコンのMacやWindows on Arm機ではarm64版を、IntelやAMDのCPUを積んだPCではx64版を選びます。

### RISC-Vを使うのにライセンス料はかかりますか？

ISAの利用料はかかりません。RISC-V InternationalのFAQが明記しており、仕様に準拠した実装をオープンソースでもプロプライエタリでも作れます。ただしSiFiveやAndesなどのコアIPを買う場合はその契約の対価が、RISC-Vの商標やロゴを使う場合は別の条件が発生します。費用がかからないのは「仕様を使う権利」の部分です。

## 関連記事

- [ARMアーキテクチャとは？x86との違い・Armv9の世代とarm64移行の確認手順](/tech/details/10467/)
- [RISC-Vベクトル拡張（RVV 1.0）とは？vsetvli・LMULの仕組みとintrinsicsの書き方](/tech/details/12398/)
- [Raspberry Pi Pico Wとは？WH・Pico 2 Wとの違い、できることとWi-Fi接続【2026年10月】](/tech/details/11676/)
- [Arm AGI CPUとは？136コアの仕様・ソシオネクストとの関係と出荷状況【2026年10月】](/tech/details/11540/)
- [FPGAとは？LUTで回路を組む仕組みとCPU・ASIC・CPLDとの違い](/tech/details/9296/)

---

出典: [RISC-VとArm・x86の違いを比較｜ライセンス・命令長・OS対応で選ぶ【2026年】](<https://www.issoh.co.jp/tech/details/7617/>)（株式会社一創）
