ブログ

RISC-Vに断片化はない 

多様性と互換性の融合 

これまでのプロセッサ・ベンダは常に、自社製品の周りに大規模なソフトウェア エコシステムを作ろうとしてきました。なぜなら、それはベンダ・ロックインとして機能し、専用ソフトウェアの作成に投資した多数の顧客を自然に「囲い込み」できるからです。この効果は、製品あたりのソフトウェアの量が増え続けるにつれて時間とともに大きくなり、結果現在の自動車には1億行以上のコードが存在しています! 

ハードウェアとソフトウェア間の接点は、選択した命令セット アーキテクチャ(ISA)です。歴史的にプロセッサ設計者がこれを強力に保護してきた理由を紐解きましょう。ISAはプロセッサに価値をもたらし、より高い販売価格の理由となりました。 

RISC-V ISAが複数のプロセッサ・ベンダによって自由に使用され、共有されるとしても、このストーリーに違いは生じません。その価値はRISC-V互換コードの蓄積によってもたらされます。ただし、カスタマイズが可能になったことに対して、これをアーキテクチャの弱点として断片化のリスクを訴える競合他社もいます。事実を検証し、クレームの真偽を明らかにしましょう。 

固定されたISAからの脱却 

従来のプロプライエタリなISAは、そのエコシステムを守るため、ソフトウェアの互換性を確保するために、ユーザーをあらかじめ決められた規格内に閉じ込め、逸脱されることを何としてでも避けてきました。現代とはシステムと制約がまったく異なっていた1970年代の痕跡が、現代のプロセッサ アーキテクチャの一部に残っているのは、このためです。これは大きな非効率を生んでいます。RISC-Vアーキテクチャは、オープンでカスタマイズ可能なISAを提供することで、この状況を変えています。RISC-Vの最も魅力的な側面の1つは、命令セットのカスタマイズを可能にする機能であり、これは多くの企業が要求している機能でもあります。この機能は、次の図に示すように、多くの利点をもたらします。 

ユーザーにとってこれは非常に魅力的に見えるため、固定ISAを展開するプロセッサ・ベンダは互換性に関する懸念を提起することで自社の立場を守ろうとします。もしユーザーの誰もがアーキテクチャを変更し始めたら、ソフトウェアとハードウェアの互換性がなくなり、エコシステムが分断されてしまうのでしょうか? 

Benefits of customizing the RISC-V ISA
Benefits of customizing the RISC-V ISA

確認してみましょう 

これは当然の懸念ですが、まずは事実関係を確認してみましょう。 

  1. 断片化: 事実 

第一に、多くのアプリケーションにおいて、ISAに本当に依存しているソフトウエアはほとんどない(一部にはある)ことを認識するべきです。ソフトウェア開発者は、可能な限り生産性を高めたいと考えているため、多くは高級言語で開発を行い、ISAに依存するアセンブリ コードはコンパイラに生成させます。これら高級言語には、潤沢なソフトウェア環境が揃っています。アプリケーションを別なISAに移植するということは、単にアプリケーションと共にライブラリを再コンパイルすることを意味します。しかしアプリケーションをカスタム命令が加えられたプロセッサにリターゲットするためには、カスタム命令に追従する優れたカスタム コンパイラが必要です。カスタム コンパイラを構築するには、非常に熟練した高コストの開発エンジニアが必要になる可能性があり、これは実際にトリッキーなポイントです...しかし幸いなことに、Codasip Studioはカスタム プロセッサと共にカスタム コンパイラを自動生成します!  

ISA依存のコードが必要なこともある 

ISA依存のコードが必要になるケースはいくつかあります: 

  • 厳密に最適化されたコードの場合、一定レベルのパフォーマンスを保証するために各サイクルのカウントが厳格な場合 
  • 大規模なソフトウェア システム、たとえば、データセンターにおけるアプリケーションのコンテナや、コンピュータやモバイル デバイスのアプリなど、コンパイル済アプリケーションを実行する場合 
  • オペレーティング システムが、コンテキストやスレッド切り替えなどの ISA固有のコードを含む場合  
cases where you will want ISA-dependent code
Cases where you will want ISA-dependent code

このようなケースでは、実際に別のISAからRISC-Vに移植する作業が必要になりますが、RISC-Vはカスタマイズと互換性を念頭に置いて設計されているため、一旦移植した後はカスタマイズが邪魔になることはありません。しかし、その方法を説明する前に、カスタム命令の効果により移植したいコードが最適化され大幅に改善することがよくあるため、改善と移植のトレードオフを正しく見極めることよう注意しましょう。 

RISC-Vに断片化はない 

互換性を確保するために、RISC-Vは次のアプローチを採用しています: 

1. 標準化されたベースISA 

RISC-Vは保証された標準ベース命令セットを定義しています。これにより、異なる実装間でも共通ベースラインの一貫性を保つことが保証されます。この基本的な互換性は、非常に小さなデバイスから非常に複雑なサーバークラスのマルチコア プロセッサまで、あらゆる範囲に及びます。カスタマイズは、互換性を崩すことなく、これらの標準の上に構築することができます。 

2. モジュラー設計 

RISC-Vのモジュール設計アプローチは、ISAを機能セット毎に分割し、互換性を確保するための拡張機能を明確に定義しています。例えば、あるソフトウェアが浮動小数点演算ユニットを必要とする場合、浮動小数点演算ユニットを持つRISC-Vプロセッサであれば、そのままバイナリを実行できます。 

3. プロファイル 

RISC-Vはいくつかの複雑なプロファイルを定義しており、各プロファイルには様々な拡張機能が指定され、デバイスの種類に対する互換性の条件を簡素化しています。これは、コア命令セットの基本的な互換性の複雑さを配慮しないハイエンド アプリケーションには不可欠です。カスタム命令加えたプロセッサは「基本の」プロセッサのスーパーセットにすぎないため、このメカニズムにより、他のRISC-Vプロセッサ用に開発されたソフトウェアとの互換性が得られます。この互換性によりRISC-V開発コミュニティは、多くのベンダのプロセッサ上で開発されるコードの相乗効果を享受することができます。これは検証済みRISC-V準拠プロセッサをカスタマイズするというコダシップのソリューションが非常に強力であることも示しています。設計者は互換性を維持しながら、カスタマイズによる効率アップを享受することができます。

Avoiding fragmentation with RISC-V by ensuring compatibility
Avoiding fragmentation with RISC-V by ensuring compatibility

断片化というストーリーは存在しない! 

RISC-V は、カスタマイズと互換性は排他的であるという概念を打ち破りました。オープンでモジュール式の標準化された設計により、開発者はソフトウェアの互換性を維持しながら特定のニーズに応えるカスタム ソリューションを作成できます。断片化というストーリーは存在しません。RISC-Vアーキテクチャは、産業界がベンダ固有の制約から解放され、以前は想像もできなかった方法でイノベーションを推進できる方法を実現しました。より多くの業界が RISC-V の可能性を受け入れ、当社コダシップのような企業がカスタマイズ プロセッサへの容易な道を提供するためにさらに努力を重ねるにつれ、カスタム コンピュートの隆盛の時代が到来すると予想されます。 

Other blog posts