riscv.org で紹介されていた、"11 Myths About the RISC-V ISA" が少し面白かったので紹介。
RISC-V についてあまりわかっていない人のために、ありがちな誤解を解くための記事? なかなか面白いので、翻訳してみた。
ここで取り上げられているような、ひどい勘違いをしている人はあまりいないと思うけど、ハードルを下げるきっかけになればなあ。
といいつつ、最初に言っておくけど、こんなに良い事ばかりじゃないよ。。。 資料少ないし、情報少ないし、一筋縄では行かないよ。。
これは著者が読んだ内容をまとめているだけなので、誤訳、理解不足により誤っている可能性があります!鵜呑みにしないようにお願いします。
RISC-V ISAを理解するための、テクノロジ、ツール、アーキテクチャをより理解するために必要ないくつかの作り話(勘違い)について、見ていく。 そして、イノベーションを加速し、コストを削減するための方法について見ていこう。
(図1. RISC-VはオープンでフリーなISAである。オープンスタンダードコラボレーションにより、新しいプロセッサイノベーションの時代導く)
1. RISC-Vはプロセッサデザインのことである (RISC-V is another processor design)
RISC-VはオープンなISAのことであり、すでに仕様は固まっている。標準的な拡張命令はオプションとして実装することが出来るが、ベースとなっているISAの部分は永久にFixされている。 ISAが固定されているので、ソフトウェアは1度開発すればよく、どのようなRISC-Vコアでも実行することが出来る。 オープンなISAが台頭することにより、イノベーションを加速させることが出来る。 特定のアプリケーション用に、デザインを最適化してカスタマイズすることが出来る。 Linuxがオープンソースソフトウェアとしての道を歩んできたように、RISC-Vはオープンハードウェアなのである。
2. RISC-Vは純粋に学術研究目的で作られており、産業向けではない。 (RISC-V is purely for use in academia, not industry.)
複数の企業が、事業化のためにRISC-Vのコアを実装している。 Andes Technology, Codasip, Bluespec, CortusなどのIPベンダがシリコンへの実装用のRISC-Vコアを提供している。 SiFiveはライセンス可能なIPと、カスタマイズ可能な32bitのRISC-V SoCを含んだシリコンベースのRISC-Vコアを提供している。
Microsemi(図.2), Rumble Development, VectorBox はFPGA上で動作するソフトマクロのRISC-Vコアを提供している。 例えば、2016年11月30日に開催された第5回RISC-V カンファレンスでは、IGLOO2 FPGA上で実行可能な、RISC-Vコアを使用したフルプロダクション向けのタイムラプスカメラのシステムを発表した。
(図2. MicrosemiのIGLOO2 FPGAはRISC-Vコアを搭載することができるという特徴がある)
3. RISC-Vを評価するためのFPGAコアや統合開発環境は存在しない (There are no FPGA cores or integrated design environments that I can use to evaluate RISC-V.)
Microsemiはこの領域をリードしており、RISC-VコアをサポートしたFPGA、統合開発環境(Integrated development environment: IDE)である SoftConsoleを提供している。 この環境では、同社のRTG4, IGLOO2, PolarFire FPGA上で動作するRISC-V ISAのソフトウェア開発およびデバッグを行うことが出来る。 RISC-Vを評価するための仮想環境プラットフォーム(ソフトウェアシミュレーション)も揃っている - Imperasは32bitおよび64bitのRISC-VのモデルおよびIDE (M*SDK)をRISC-Vのソフトウェア開発・デバッグ、およびテスト向けに提供している。 これらのモデルはOpen Virtual Platformのウェブサイトから入手可能である。 さらに、RISC-Vのデザインを評価するためには、潜在ユーザ向けのSiFiveから提供されているRISC-Vベースの、Arduino互換のボードであるHiFive1を使用することが出来る。
4. RISC-Vを使用するためには、ライセンス費を払う必要がある (RISC-V requires you to pay for a license to use it.)
RISC-Vコアを使用したい人は、自由に使うことが出来る - RISC-V ISAを使うにあたりライセンス費は発生しない。 例えば、多くのRISC-VソフトコアはMicrosemiのGitHubサイトや他のサイトから自由にダウンロードすることが出来る。 商業向けや製品向けに、RISC-VのトレードマークやRISC-Vのロゴの使用については、RISC-V FoundationメンバーシップのAgreementによって許可されたライセンスの下でのみ使用することが出来る。 キーとなるのは、ISA自身は「許容的な」ライセンスであると言うことである。
5. RISC-Vコアを構築した企業は、そのIPを顧客と共有しなければならない (Companies that build RISC-V cores have to share their IP with customers.)
RISC-V ISAを使用して実装したどのようなIPも、Grant-Backを行う必要は無い。 設計者は商業化のために独自の実装を行っても良いし、公開されているオープンソースの実装を使っても良い。 RISC-V Foundationはどちらのタイプの実装も推奨している。
同様に、RISC-Vをサポートするソフトウェアツールには、特定のIPが含まれている。 AntmicroやImperasが提供しているこれらのツールは一般的に、Berkeley Software Distribution(BSD)ライセンスと似ているライセンスを使用している。 IPのオープンなリリースは必要としない。
6. x86やARMプロセッサのほうが、RISC-Vプロセッサよりも高速かつ効率が良い (RISC-V processors aren’t as fast or efficient compared to x86 or ARM processors.)
プロセッサの速度や効率は、マイクロアーキテクチャデザイン、回路デザイン、半導体プロセスなども含む実装の品質に依存する。 基本的に、RISC-Vの実装はx86やARMよりも効率が悪いものではない; 事実、RISC-VのISAデザインのモジュール性により、x86やARMなどのようなレガシーなISAよりも効率が高い。 RISC-V ISAはオープンなため、個々のアプリケーションに応じて実装を最適化するために、最適なマイクロアーキテクチャライセンスを持っている。
7. RISC-V向けのソフトウェアツールは存在しない (Software tools for RISC-V don’t exist.)
2017年の5月に、RISC-VのサポートはGNU/GCCおよびGNU/GDBに追加された。 Low Level Virtual Machine(LLVM)ツールはRISC-Vのウェブサイトを通して入手可能である。 これらのどちらも、RISC-Vソフトウェアツールのページから入手可能である。
AntmicroはRISC-Vの命令セットシミュレータ(ISS)を持っている。 QEMUもISSの環境としてRISC-Vをサポートしている。 ImperasはM*SDKツールと一緒にソフトウェア開発環境をベースとし完全仮想プラットフォームを提供している。 MicrosemiはRISC-Vソフトウェア開発のためのEclipseベースのSoftConsole IDEを提供している。
SiFiveは無料の、EclipseベースのFreedom Studioと呼ばれるIDEを提供している。
8. 複数のRISC-Vコアを、同じデザイン内で取り扱うことは出来ず、他のプロセッサと協調することが出来ない (Multiple RISC-V cores can’t operate in the same design and they can’t operate with another processor.)
RISC-Vおよび他のプロセッサは同時に動作させることが出来る。 例えば、SiFiveはRISC-Vのマルチコアソリューションとして、32bitと64bitを混在させている環境をアナウンスした。 RISC-Vコアはインオーダとアウトオブオーダどちらでも動作することが出来る。 RISC-VコアはAthena TeraFire 暗号プロセッサと共に、マイクロコントローラとしても使用されている。 っこれはPolarFire FPGA上で実装され、TeraFireコアを搭載しているが、32bit RISC-Vコアはセキュアなデータ通信を担当している。
9. RISC-Vコアを信頼するのは危険である (It’s dangerous to trust a RISC-V core.)
レジスタトランスファレベルのIPが入手でき、よく知られた、オープンな仕様に則っているならば、そのIPコアは検査され、解析することが出来る - これはデザインのセキュリティにとって重要である。 FPGA向けのソフトコアのRISC-Vコアを使用するときは、セキュリティのためにRTLデザインの全体をレビューすることができる。 クローズドなプロセッサアーキテクチャでは、ソフトコアでもハードコアでもこのようなことができない。 これは、RISC-VがARMやIntel、さらに他のRTLが公開されていないソフトコアよりも非常にセキュアであると言うことができる。
10. RISC-VにはLinux OSのサポートが無い (There’s no Linux OS support for RISC-V.)
対照的に、YoctoなどのいくつかのLinuxの派生系はRISC-Vをサポートしている。 現在のRISC-VのLinuxの開発はLinuxの4.6バージョンを元に開発がされており、RISC-Vのパッチは4.14のカーネルのマージウィンドウに乗っている。 これは、RISC-VはLinuxのメインストリームのプラットフォームに乗ることを意味している。 独自開発のISAと比べて、RISC-V ISAのオープンかつ協力的な体制により、Linuxや他のOSのサポートの効果を得ることができ、全員のソフトウェア開発経験を向上させ、コストを下げることが出来る。
11. RISC-Vのデザインは、FPGAからASICに移植することは出来ない (It’s impossible to port a RISC-V design from an FPGA to an ASIC.)
IPベンダのいくつかは、FPGA上で動作するエミュレーションプラットフォームを持っている。 CodasipとSiFiveはカスタムシリコンに移植することができるコアのFPGAプロトタイプを持っている。 FPGAベンダとしては、MicrosemiがRISC-VソフトコアのRTLを提供している。 RTLを使えば、ASICに直接移植することが出来、IPライセンスやロイヤリティを支払う必要が無い。