RISC-V(リスクファイブ)は、
カリフォルニア大学バークレー校で開発された、オープンソースの命令セットアーキテクチャ(ISA)です。従来のISAとは異なり、使用料が不要で自由に利用できるため、多くの企業や研究機関で採用が進んでいます。本稿では、
RISC-VのISAとしての特徴だけでなく、その実装(
RISC-Vコア)、エコシステム(対応OSや開発ツール)についても詳しく解説します。
概要
RISC-V ISAの最大の特徴は、その
オープンソースライセンスです。多くの既存のISAがライセンス料を必要とするのに対し、
RISC-Vは無償で利用できます。このため、ハードウェアメーカーやソフトウェア開発者が自由に
RISC-Vベースの製品やシステムを開発でき、関連するエコシステムの拡大を促進しています。また、オープンソースの
オペレーティングシステムや一般的なソフトウェアツールチェーンも
RISC-Vをサポートしています。
命令セット(ISA)がRISC
RISC-Vは、縮小命令セット
コンピュータ(
RISC)の原則に基づいて設計されています。ロードストアアーキテクチャ、CPU内のマルチプレクサを簡素化するビットパターン、IEEE 754浮動小数点、アーキテクチャ的に中立な設計、符号拡張の高速化などが特徴です。命令セットは幅広い用途に対応できるように設計されており、可変幅で拡張可能です。
32ビット、64ビット、12
8ビットの3つのワード幅をサポートし、それぞれのワード幅でサブセットの定義が若干異なります。これにより、小型の
組み込みシステムから、スーパー
コンピュータや大規模並列
コンピュータまで、さまざまな規模のシステムに対応できます。
命令セットスペースの拡張
RISC-V ISAでは、12
8ビット拡張版の命令セットスペースが確保されています。これは、過去の命令セット設計において、メモリアドレス空間の不足が致命的な問題となるケースが多かった経験に基づいています。12
8ビットISAは、2016年時点では未定義のままですが、大規模なメモリシステムに関する実用的な経験が少ないため、将来的な拡張に備えるための措置です。
実用的な使用に使える設計
RISC-Vプロジェクトは、2010年に
カリフォルニア大学バークレー校で開始されました。貢献者の多くは大学関係者以外のボランティアです。
RISC-VのISAは、単に説明を簡単にするだけでなく、実用的な
コンピュータでの使用を前提に設計されています。2019年6月には、ユーザスペースISAのバージョン2.2と特権ISAのバージョン1.11が凍結され、ソフトウェアとハードウェアの開発を進めることができるようになりました。デバッグ仕様はドラフトバージョン0.13.2が公開されています。
開発動機
オープンなISA
ISAは、ハードウェアとソフトウェアのインターフェースであり、良好なISAはソフトウェアの再利用性を高め、コストを削減します。また、ハードウェア製造者間の競争を促進し、開発リソースをより有効に活用できます。従来のISAは、ARMやMIPSのようにライセンス料が高額であり、設計の自由度も制限されていました。このような背景から、オープンで自由に利用できるISAへの需要が高まっていました。
RISC-Vは
BSDライセンスを採用することで、チップ設計や派生物をオープンまたはクローズドに開発することを可能にし、この需要に応えています。
実用可能かつシンプルなISA
RISC-Vの設計は、過去40年間の命令セット設計の知見に基づいており、実用的な
コンピュータに最適化されています。設計の簡略化は、速度向上だけでなく、コストや電力消費量の削減にもつながります。
RISC-VのISAには、ロードストアアーキテクチャ、CPU内のマルチプレクサの単純化、標準ベースの浮動小数点、アーキテクチャ的に中立な設計、符号拡張の高速化といった特徴があります。
命令セットは3種類のワード幅
RISC-Vは、
32ビット、64ビット、12
8ビットの3種類のワード幅に対応しており、幅広いユーザー層を対象としています。各サブセットの定義は、ワード幅によってわずかに異なります。これにより、
組み込みシステムからスーパー
コンピュータまで、さまざまな用途に対応できます。
命令セットは可変長幅
RISC-Vの命令セットは可変長で拡張可能です。12
8ビットまで拡張できるスペースが確保されており、過去の命令セット設計におけるメモリアドレス空間の不足という課題に対応できます。ただし、12
8ビットISAは、2016年時点では未定義のままです。
教育上も有効
RISC-Vのシンプルさは、教育分野でも有効です。整数命令のサブセットはシンプルで、学生が初歩的な練習をするのに適しています。また、可変長のISAは、学生による拡張を可能にし、OSの研究もコンパイラを再設計せずにサポートできます。オープンな知的財産であるため、設計を公開、再利用、修正することも可能です。
歴史
先行開発
「
RISC」という用語は1980年頃に登場しましたが、シンプルな設計の
コンピュータが効率的であるという認識はそれ以前から存在しました。
RISC命令セットのDLXは、1990年に『
コンピュータ・アーキテクチャ 設計・実現・評価の定量的アプローチ』のために作成されました。著者のデイビッド・パターソンは、後に
RISC-Vを支援しました。DLXは教育目的でしたが、
RISC-Vは実用的な
コンピュータでの使用を目指しています。
RISC-V財団とRISC-V International
カリフォルニア大学バークレー校のクルステ・アサノヴィッチは、2010年に
RISC-Vの開発を開始しました。デイビッド・パターソンも協力し、初期開発にはDARPAが資金を提供しました。2015年には
RISC-V財団が設立され、2020年にはスイスに
RISC-V Internationalが設立されました。
RISC-V Internationalは、
RISC-Vの仕様を公開し、会員組織には「
RISC-V Compatible™」ロゴの使用を許可しています。
実装
RISC-Vオーガニゼーションは、
RISC-VのCPUとSoCの実装リストを管理しています。以下は、既存の商用実装の例です。
- - Xuantie-910: アリババグループによる2.5GHz 16コア64ビットアウトオブオーダー型プロセッサ。
- - N25/NX25: Andes Technology Corporationによるプロセッサ。
- - CodasipとUltraSoC: CodasipのRISC-VコアとUltraSoCのデバッグツールを組み合わせたIP。
- - GD32Vシリーズ: GigaDeviceによるRV32IMAC実装。
- - GAP8: GreenWaves Technologiesによる32ビットSoC。
- - SCR1: SyntacoreによるRV32I/E[MC]実装。
- - SweRV Core: Western Digitalによるインオーダー2ウェイスーパースカラプロセッサ。
- - ESP32-S2 ULPコプロセッサ: Espressifによる。
開発環境
開発ツール
- - IAR Embedded Workbench for RISC-V: IAR SystemsによるRISC-V開発ツール。
- - SEGGER: J-Linkデバッグプローブ、Embedded Studio、RTOS embOSなどのツールを提供。
- - FPGAコアのインスタントSoC: C++で定義されたRISC-Vコアを含むSystem On Chip。
開発会社
- - SiFive: RISC-Vハードウェア開発に特化した企業。
- - CloudBEAR: 独自のRISC-Vコアを開発するプロセッサIP企業。
- - Syntacore: RISC-V Internationalの創設メンバーであり、最初の商用RISC-V IPベンダーの1つ。
開発中
- - ASTC: 組み込みIC用のRISC-V CPUを開発。
- - Centre for Development of Advanced Computing, India (C-DAC): 64ビットのアウトオブオーダーのクアッドコアRISC-Vプロセッサを開発。
- - Cobham Gaisler: NOEL-V 64ビットプロセッサを開発。
- - ケンブリッジ大学コンピュータ研究所: FreeBSDを64ビットRISC-Vに移植。
- - Esperanto Technologies: RISC-Vベースの高性能コア、エネルギー効率の高いコア、グラフィックスプロセッサを開発。
- - チューリッヒ工科大学とボローニャ大学: PULPinoプロセッサを共同開発。
- - European Processor Initiative (EPI): RISC-V Accelerator Stream。
- - インド工科大学マドラス校: 6つの用途に合わせて6つのRISC-VオープンソースCPU設計を開発。
- - lowRISC: 64ビットRISC-V ISAベースのオープンソースハードウェアSoCを開発。
- - Nvidia: GeForceグラフィックスカードのFalconプロセッサをRISC-Vに置き換える計画。
- - SiFive: アウトオブオーダー高性能CPUコア「U8シリーズプロセッサIP」を発表。
オープンソース
多くのオープンソースの
RISC-V CPU設計(IP)が存在します。
ソフトウェア
ツールチェーン
RISC-Vのソフトウェアには、ツールチェーン、
オペレーティングシステム、ミドルウェア、設計ソフトウェアなどが含まれます。以下のようなツールが利用可能です。
- - GNU Compiler Collection (GCC) ツールチェーン
- - LLVMツールチェーン
- - OVPsimシミュレータ
- - Spikeシミュレータ
- - QEMU内のシミュレータ
- - UEFI仕様v2.7のRISC-Vバインディング
- - seL4マイクロカーネルのポート
OSサポート
RISC-Vは、
Linuxカーネル、FreeBSD、
NetBSDなどのOSをサポートしています。特権モード命令は標準化されていませんが、暫定的な対応が進められています。FreeBSDの移植版はFreeBSD 11.0で公開され、Debianや
Fedoraへの移植も安定しています。
参考文献
- - RISC-V Publications
- - David Patterson & John Hennessy: "Computer Organization and Design (RISC-V Edition)"
- - David Patterson & Andrew Waterman: "RISC-V reader: an open architecture atlas"
- - John Hennessy & David Patterson: "Computer Architecture (6th Edition)"
- - デイビッド・パターソン、アンドリュー・ウォーターマン、成田 光彰 (訳):「RISC-V原典 オープンアーキテクチャのススメ」
関連項目
- - OpenCores
- - OVPsim
- - OpenSPARC
- - OpenRISC
- - OpenRISC 1200
- - オープンソース・コンピューティング・ハードウェア
外部リンク