2023 年 12 月 12 日 Linux 技術ネタ
技術にはクローズドなものとオープンなものがあります。OSS という用語に代表されるように、オープンというとソフトウェアを連想する方が多いのではないでしょうか。しかし 1970 年代にはソフトウェアもコード非公開のクローズドなものでした。今のオープンソースの流れは 1980 年代に利用者が立ち上げた流れを汲むものです。
一方、ハードウェア、特に CPU は、高度な専門性が必要なため、長年 アーム, Intel に代表される企業がシェアを持つブラックボックス、クローズドな技術でした。RISC-V は、CPU の回路情報をオープンにし、誰でも開発できるようにしようという現状に一石を投じる活動です。歴史を振り返ってみると、商用 Unix の時代に一石を投じた Linux に似ています。オープン OS としてソフトウェアの分野で普及し、地位を確立した Linux のように、将来 RISC-V もハードウェアの分野で普及し、ソフトもハードもオープンな時代が来ることを期待します。
本ブログは 2 部構成となっており、前編では RISC-V の概要、特長とメリット・デメリットについて紹介します。
RISC-V は、2010 年にカリフォルニア大学バークレー校の Parallel Computing Laboratory (Par Lab) で開発が開始された新しい命令セットアーキテクチャ (ISA) です。
研究室や企業の垣根を超えて RISC-V に関する仕様の策定や研究開発などを推し進めるために、国際的な非営利団体として RISC-V Foundation(現在 RISC-V International)が発足しました。現在、RISC-V International のメンバーには世界中の IT 企業/半導体企業などが参加しており、仕様策定やプロセッサの設計、ソフトウェアのツールチェーンなど、RISC-V を取り巻くエコシステム全体が急速な成長を見せています。
現在、RISC-V の CPU コアを採用している SoC が様々な企業から発売されており、評価ボードも充実しつつあります。しかし現状としては、まだまだ x86 系/ Arm 系の命令セットアーキテクチャのシェアが大きいです。また性能面でも、x86 系や Arm 系のプロセッサに軍配が上がる状況となっています。
RISC-V 原典の第一章には、『普遍性を備えた ISA となること』がRISC-V の目標と書かれています(具体的には以下)。
RISC-V の特長として、主に以下の 2 点があります。
RISC-V では ISA に対して、ライセンス料もロイヤリティも支払う必要がありません。そのため誰でも自由に RISC-V のプロセッサを設計し、利用や公開、販売などを行うことが可能です。
オープンでない ISA として、アーム社の ISA があります。以下は、アーム社のビジネスモデルです。
プロセッサの設計には、高度な専門技術と工数が必要です。チップベンダーは、大きく以下2 つの費用をアーム社に支払うことによりアーム社のテクノロジーを購入し、それを搭載した自社チップを販売できるようになります。
① ライセンス料
現在のライセンスモデル「Arm Flexible Access」では、対象 IP コア(回路情報)に応じて 3 つのオプションが用意されており、それぞれライセンス料が異なります。
② ロイヤルティー
アーム社のテクノロジーを使用したチップ単位で、販売価格などに基づいた金額となります。「Arm Flexible Access」のどのオプションも対象です。
アーム 社のテクノロジーを購入するメリットとして、以下の点が挙げられます。
一方、デメリットとして、高額な費用負担が挙げられます。
RISC-V の場合は、これと全く逆になります。RISC-V は導入時のハードルが高いのですが、ある程度の知見を蓄積した後は、コスト面で有利になってくると考えます。このトレードオフを慎重に検討する必要があります。
RISC-V は国際政治において中立の立場をとっており、どの国や企業に対しても利用する機会が平等に与えられています。RISC-V に関する仕様の策定を主導している国際的な非営利団体として、RISC-V International(旧 RISC-V Foundation)が存在しています。現在この団体は永世中立国のスイスで法人化されており、RISC-V は特定の国や企業に依存せず政治的な影響を受けない命令セットアーキテクチャとしても注目されています。特定の国や企業の事情により、プロセッサの運命が決まってしまった過去の反省が活かされています。
SUMMIT WELCOME & RISC-V FOUNDATION OVERVIEW
RISC-V 原典の第一章には、RISC-V Foundation の目標は、『RISC-V の安定性を維持し、純粋に技術的な理由でのみ徐々に注意深く進化させ、OS で普及した Linux のような存在にハードウェア分野でなることである』と書かれています。
またRISC-V の仕様についての議論もメーリングリストなどオープンな場で行われており、誰でもアクセスすることができます。
参考:RISC-V International の Specification Status
RISC-V はモジュラー方式の ISA を採用しています。中核となる基本命令セットは不変で、目的に応じて拡張機能命令セットを取捨選択できます。これにより、プロセッサの設計者がユースケースに応じて不要な機能を削ぎ落としたミニマムなプロセッサを作ることが可能になり、プロセッサの実装サイズや生産コストなどを抑制することができます。
基本命令 + 拡張命令 という構造
基本命令名 | 意味 |
---|---|
RVWMO | メモリコンシステンシモデル |
RV32I | 32bit アドレス、整数命令(整数レジスタ32個) |
RV32E | 32bit アドレス、整数命令(整数レジスタ16個) |
RV64I | 64bit アドレス、整数命令 |
RV128I | 128bit アドレス、整数命令 |
The RISC-V Instruction Set Manual Volume I: Unprivileged ISA
また、RISC-V では独自の拡張機能命令セットを設計・実装することも自由に行えます。そのため、例えば機械学習や画像処理など、特定の分野に合わせた拡張機能命令セットを自前で設計及び実装し、性能を最適化することも比較的容易となっています。
モジュラー方式の ISA と対極にあるのがインクリメンタル方式です。x86 など様々なプロセッサが採用しています。インクリメンタル方式では、新しい ISA を生成するとき、その名前の通り、今あるものに新しい命令を追加する方法を取ります。こうすることで後方互換性が保たれ、過去に作成したプログラムの動作が保証されます。一方で、命令の削除ができないため、プロセッサのリリース時には、要否に関わらず、全ての命令に対してテストを実行しなければならないため命令数に応じてテスト工数が増大し、結果としてプロセッサの単価が高くなってしまいます。
第205回 Intelと互換プロセッサとの戦いの歴史を振り返る
RISC-V は、必要最低限の拡張命令にシュリンクすることにより、後方互換性が失われる可能性はありますが、その分テスト工数を削減でき、結果としてプロセッサの単価を抑えることができます。
後編に続きます。
2024 年 09 月 02 日 Vigiles サポート
2024 年 03 月 01 日 Vigiles サポート
2023 年 08 月 28 日 Vigiles サポート
2024 年 03 月 26 日 Yocto Project よもやま話
2023 年 07 月 25 日 Yocto Project よもやま話
2023 年 06 月 20 日 Yocto Project よもやま話
2024 年 01 月 10 日 Linux 技術ネタ
2023 年 12 月 12 日 Linux 技術ネタ
2023 年 03 月 31 日 Linux 技術ネタ
2024 年 07 月 26 日 イベントレポート
2024 年 07 月 09 日 イベントレポート
2024 年 06 月 03 日 イベントレポート
2023 年 05 月 30 日 リクルート
2022 年 12 月 27 日 リクルート
2022 年 09 月 27 日 リクルート
2024 年 08 月 20 日 信州リネオ便り
2024 年 08 月 07 日 信州リネオ便り
2024 年 06 月 26 日 信州リネオ便り
2019 年 12 月 10 日 ソリューション統括部
2019 年 12 月 10 日 ソリューション統括部
2019 年 12 月 10 日 ソリューション統括部
2019 年 12 月 13 日 マーケティング統括部
2019 年 04 月 25 日 マーケティング統括部
2018 年 12 月 18 日 マーケティング統括部