マルチコアアソシエーションは 2005 年に設立されました。マルチコア アソシエーションは、システム開発者やプログラマがアプリケーションにマルチコア テクノロジーをより容易に採用できるようにするオープン スタンダードAPI、仕様、ガイドラインの作成に重点を置いた、会員資金による非営利の業界コンソーシアムです。
このコンソーシアムは、プロセッサ、インフラストラクチャ、デバイス、ソフトウェア、アプリケーションなどのマルチコア関連製品に関心を持ち、それらを使用しており、またはそれらを普及させているベンダーや開発者に中立的なフォーラムを提供します。メンバーは、プロセッサ、オペレーティング システム、コンパイラ、開発ツール、デバッガ、ESL / EDAツール、シミュレータのベンダー、およびアプリケーションおよびシステム開発者を代表しています。
完了したプロジェクト
2008 年、マルチコア通信 APIワーキング グループは、コンソーシアムの最初の仕様であるMCAPI をリリースしました。MCAPI は、密集して分散された (チップ上の複数のコアや回路基板上のチップ)組み込みシステムに必要な通信と同期の基本要素をキャプチャするメッセージ パッシングAPI です。MCAPIの対象システムは、複数の次元の異質性(コアの異質性、相互接続ファブリックの異質性、メモリの異質性、オペレーティング システムの異質性、ソフトウェアツールチェーンの異質性、プログラミング言語の異質性など) にまたがっています。
2011 年、MCAPI ワーキング グループは MCAPI 2.0 をリリースしました。この拡張バージョンでは、ルーティング用のドメインなどの新機能が追加されています。MCAPI バージョン 2.0 では、「ドメイン」の導入により、ノードのネットワークに階層レベルが追加されています。ドメインは、特定のチップ上のすべてのコアを表す場合や、トポロジをパブリック領域とセキュア領域に分割する場合など、実装固有のさまざまな方法で使用できます。MCAPI 2.0 では、3 つの新しいタイプの初期化パラメータ (ノード属性、実装固有の構成、初期ネットワーク トポロジや実行中の MCAPI バージョンなどの実装情報) も追加されています。MCAPI WG の議長は Sven Brehmer です。
2011 年、マルチコア リソース管理 APIワーキング グループは、MRAPI と呼ばれる最初の仕様をリリースしました。MRAPI は、アプリケーション レベルの重要なリソース管理機能を指定する業界標準 API です。マルチコア アプリケーションでは、次の状況でシステム リソースへの協調的な同時アクセスを可能にするためにこの API が必要です。(1) 個々のタスクまたはプロセッサに割り当てるリソースが十分でない、および/または (2)ランタイム (プログラム ライフサイクル フェーズ)システムがリソース共有の協調のための均一にアクセス可能なメカニズムを提供しない。この API は、SMP および AMP 組み込みマルチコア実装の両方に適用できます (AMP はソフトウェアとハードウェアの両方で異種を意味します)。MRAPI (他のマルチコア アソシエーション API と併用) は、アプリケーションの実装だけでなく、フル機能のリソース マネージャーやその他の階層化サービスの実装にも役立つツールです。MRAPI WG の議長は Jim Holt でした。
2013 年、マルチコア タスク管理 API (MTAPI) ワーキング グループが最初の仕様を発表しました。MTAPI は、同種および異種のコアを持つ組み込み並列システムでのタスクの調整をサポートするアプリケーション プログラム インターフェイス (API) の標準仕様です。MTAPI のコア機能は、ランタイム スケジューリングとプロセッサ コアへのタスクのマッピングです。MTAPI は動的動作をするため、マルチコア システムのスループットを最適化することを目的としており、ソフトウェア開発者はレイテンシと公平性を考慮してタスク スケジューリング戦略を改善できます。このワーキング グループの議長は、Siemensの Urs Gleim が務めました。
2013 年、マルチコア プログラミング プラクティス(MPP) ワーキング グループは、マルチコアプログラミングの問題の一貫性と理解の向上に役立つ、業界向けのマルチコアソフトウェア プログラミング ガイドを発表しました。MPP ガイドは、 C / C++言語を活用したベスト プラクティスを提供し、マルチコア プログラミングに取り組むエンジニアにとって真に価値のあるガイドを生み出します。このワーキング グループの議長は、 NXP Semiconductorsの Rob Oshana 氏とCriticalBlueの David Stewart 氏が務めました。
2015年に、マルチコア/メニーコア向けソフトウェア/ハードウェアインターフェース(SHIM)ワーキンググループは、ソフトウェア設計に役立つアーキテクチャ記述標準を定義する仕様を発表しました。SHIMが記述するアーキテクチャの特徴には、プロセッサコア、アクセラレータ、キャッシュ、コア間通信チャネルなどのハードウェアトポロジと、各要素の選択された詳細、および命令、メモリ、通信パフォーマンス情報があります。このワーキンググループは、eSOLの権藤正樹氏が議長を務めました[1]。
アクティブなワーキンググループ
- マルチコア通信 API ( MCAPI ) ワーキング グループは現在、バージョン 2.x の MCAPI の有用性を拡大するために、より多くの機能を追加しています。ワーキング グループは、共有メモリを使用した「アプリケーションとアプリケーション」間の双方向の相互作用や、「アプリケーションとドライバー」間の双方向の相互作用など、相互運用性と「ゼロ コピー」機能に取り組んでおり、これは PolyCore Software の Sven Brehmer が主導しています。
- 仮想化ワーキング グループは、ハイパーバイザーと通信するための一連の準仮想化情報と機能の定義と最適化に焦点を当てます。また、マルチコア プロセッサ内を含むさまざまな仮想化機能と機能を分類するシステムにも焦点を当てます。このワーキング グループの議長は、Cavium Networksの Rajan Goyal 氏とNokia Networksの Surender Kumar 氏が務めます。
- Open Asymmetric Multi Processing (OpenAMP)ワーキンググループは、API の標準化、仕様の詳細なドキュメントの提供、OpenAMP の機能拡張に重点的に取り組みます。このワーキング グループの議長は、Xilinxの Tomas Evensen が務めます。
オープンAMP
OpenAMPマルチコアフレームワークは、非対称マルチプロセッシング(AMP)システムアプリケーションソフトウェアを開発するためのオープンソースフレームワークです。 [1]対称マルチプロセッシングシステム用のOpenMP に似ています。 [2]
OpenAMP マルチコア フレームワークには複数の実装があり、それぞれが OpenAMP API を介して他のすべての実装と相互運用するように設計されています。マルチコア フレームワークの 1 つの実装は、もともと Xilinx Zynq用に開発され、OpenAMP オープン ソース プロジェクトでオープン ソース化されています。[3] [4] Mentor Embedded Multicore Framework (MEMF) は、OpenAMP 標準の独自の実装です。[4]
OpenAMP API標準は、Multicore Associationの傘下で管理されています。[4]
参考文献
- ^ 「OpenAMP」
- ^ Peng Zhang. 「先進的な産業用制御技術」p. 210。
- ^ 「open-amp リポジトリ」
- ^ abc Felix Baum、Arvind Raghuraman。「新興の ARM ベースの異種マルチコア SoC を最大限に活用する」。第 8 回ヨーロッパ組み込みリアルタイム ソフトウェアおよびシステム会議 (ERTS 2016)、2016 年 1 月、フランス、トゥールーズ。ffhal-01292325
外部リンク
- マルチコア協会の公式ウェブサイト
- マルチコア プラットフォームのベンチマーク - EEMBC
