RISC-V の新しい結果! openKylin コミュニティが RV64G アーキテクチャのサポートを完了

openKylin コミュニティと Deepin Intelligence が共同で、デフォルトで openKylin 1.0 オペレーティング システムを搭載した世界初の RISC-V ラップトップ DC-ROMA をリリースした後、最近、Suzhou Ruixin Company と協力して、RV64G アーキテクチャをサポートするために openKylin プラットフォームが正式に展開されました。後続の RV64G は Compression 命令セットの愛好家がコミュニティ プラットフォームを通じて独自のコードを開発、コンパイル、デプロイできます。

RISC-V は無償の命令セットです。ハードウェア メーカーは、国際財団が認めた標準に基づいて独自に拡張できます。現在、市場の多くのメーカーが RV64GC ベースの製品を生産していますが、RV64G ベースの製品を生産しているメーカーも存在します。国内メーカーと協力 市場の需要に応え、openKylin コミュニティが率先して RV64G アーキテクチャのサポートを開始しました。

 

1. RV64G アーキテクチャの概要

現在組み込み小型デバイスで広く使用されている RV64GC (より一般的な riscv64) と比較して、RV64G は一般的なコンピューティング シナリオ機能、サーバーまたはデスクトップ システムに重点を置いています。で:

  • 「RV」はRISC-Vの略です。
  • 「64」は、サポートされる命令が 64 ビットであり (実際、クロスコンパイラーは、コード生成時に生成されるターゲット コードの長さを減らすために 32 ビット命令を使用する場合があります)、アドレス長とレジスタ長が両方とも 64 であることを意味します。ビット。
  • 「G」はジェネラル コンピューティング プラットフォームの略です。実際、「G」は「IMAFD」に相当し、「I」は整数 (Integer) 計算命令、整数ロード、整数ストア、および制御フロー (分岐ジャンプなど) 命令を表します。これらの命令はどの RISC でも使用できます。 -V 実装は必須です。「M」は Multiply を表します。つまり、プラットフォームは乗算と除算演算をサポートします。「A」は、アトミック拡張を表し、レジスタに対するアトミックな読み取り、変更、およびアトミックな書き込み操作をサポートします。これらの操作は次のとおりです。マルチコア設計で非常に便利です。「F」は単精度浮動小数点 (Float) 演算サポートを表し、「D」は倍精度浮動小数点 (Double) 演算サポートを表します。

RV64G と RV64GC の主な違いは、圧縮命令セット (C 命令セット) が含まれていることです。RV64GC は、RV64G に基づいた C 命令セットを追加します。これらの命令は、命令の長さを短縮し、コードのフットプリントを減らすために使用されます。RV64G にはこれらの圧縮命令が含まれていないため、RV64G アプリケーションは RV64GC ハードウェア上で実行できますが、その逆はできません。

比較すると、RV64GC は RV64G よりコード密度が高く、プログラムのフットプリントが小さく、メモリ空間をより効率的に使用できます。これらの特性により、RV64GC 命令は組み込みアプリケーションでより有利になります。一方で、RV64G のハードウェア実装では、 RV64GC よりもシンプルです。簡素化された命令デコード ロジックを使用すると、命令プリフェッチ モードの予測が容易になり、メモリ アクセス数が減少し、命令実行速度が向上し、消費電力が削減されます。設計者は、ハイパフォーマンス コンピューティングをより適切に最適化できます。

 

2. 開発プロセス

1. 基本的なツールチェーンの変換、コンパイル、検証。

最初の段階では、gcc、glibc、binutils ソース コード パッケージの修正とコンパイルを含む基本的なコンパイル ツールの適応と、新しい RV64G アーキテクチャに適応するための技術調査が含まれます。新しくコンパイルされた gcc バージョンを実行し、関連する出力パラメータを確認して、---with-arch=rv64imafd が変更が成功したことを意味していることを確認します。

2. stage0/bootstroop ステージ関連パッケージのコンパイル。

第 1 段階で完成した基本的なコンパイル ツール チェーンに基づいて、ブートストロー段階で関連パッケージのコンパイル作業が開始されます。apt、dpkg、llvm、python3、perl、cmake、make、openmpi、netplan.io、openssl、meson およびその他のソフトウェア パッケージのコンパイル作業が含まれます。

3. 上位層アプリケーション パッケージの初期コンパイル。

最初の 2 つのステップでソフトウェア パッケージのコンパイル作業が完了したら、ソフトウェア パッケージの数をさらに拡張する必要があります。ローカル コンパイル環境のスクリプトを通じて、より上位層のアプリケーション パッケージを層ごとにコンパイルします。同時に、RV64GC 関連の依存パッケージと既存の RV64G パッケージを使用した混合コンパイルに問題がないことを確認します。

4. プラットフォームのコンパイル環境のデバッグと運用を選択します。

OKBS プラットフォームの chroot 基本環境を構築するために再コンパイルされた新しい RV64G アーキテクチャ ソフトウェア パッケージを使用します。デバッグ プロセス中に、アーキテクチャ シンボルに関連する多くの問題が発生し、複数の再構築テストが必要になりました。プロセス中、常に変更を試みました。 chroot システム ファイル。rv64g.deb 形式のバイナリ ファイルが正常にコンパイルできるようになるまで。完成した chroot アドレスは次のとおりです。

http://api.build.openkylin.top/devel/openkylin/yangtze/rv64g

5. プラットフォームアーキテクチャの新規展開とコンパイラの構築。

既存の RV64GC アーキテクチャと区別するために、RV64G アーキテクチャに関連する構成データが OKBS システムに追加されます。新しいアーキテクチャに基づいて以前にコンパイルされたソフトウェア パッケージを使用して、コンパイル環境の依存関係ソースとして新しい source.list ソースを作成します。

6. 初期コンパイル環境のデバッグ。

立ち上げの初期段階では、新しいアーキテクチャ chroot と OKBS システムの統合やソース RV64G アーキテクチャ変更へのコンパイル依存などの問題が解決されました。

 

3. RV64G アーキテクチャサポートの利点

1. RV64G アーキテクチャのコード ソース コンパイルをサポートします。つまり、コードは 1 回送信されますAMD64、I386、ARM64、RV64GC、および RV64G の 5 つのアーキテクチャのバイナリ パッケージは、OKBS プラットフォーム上の同じソースからコンパイルできます。RV64G ソフトウェア ソースとコード ウェアハウスの別のセットを維持する必要がなく、効率が向上します。 RV64G アーキテクチャ コードの開発とメンテナンス。

 

2. RV64G アーキテクチャ ソフトウェア ウェアハウスの同一オリジン リリースをサポートし、RV64G アーキテクチャ ソフトウェア ウェアハウスの管理、メンテナンス、アップグレードの効率を効果的に向上させます。

 

 

3.ミラーの作成とバージョンのリリースが統一され、標準化されますイメージ作成やバージョンリリース管理を他のアーキテクチャと同じプロセスで行うことができ、RV64Gアーキテクチャのバージョン構築仕様が統一されています。

 

4. RV64GC アーキテクチャとの名前の競合の問題が解決され、RISCV-V 仕様の 2 つの命令セット アーキテクチャのコンパイルと互換性が得られるようになりました。

5.コンパイラは RV64GC と RV64G アーキテクチャの両方をサポートできるため、コンパイラのリソース使用率が効果的に向上します。

 

 

将来的に、Suzhou Ruixin は引き続き openKylin コミュニティと協力して RV64G SIG グループを設立し、リソース投資を増やし、ソフトウェア パッケージのコンパイル プロセス中に遭遇する問題を解決し、アーキテクチャ イメージの作成、ハードウェアの適応、ソフトウェア ソースの管理、およびソフトウェア ソースの管理を完了します。エコロジカル・デマンド・ソフトウェア RV64G アーキテクチャに基づくデスクトップおよびサーバー・システムをさらに統合するための独立した構築など。興味のあるパートナー様はぜひご参加いただき、一緒に創りましょう!

おすすめ

転載: www.oschina.net/news/272960