連載
» 2016年09月20日 07時00分 UPDATE

SYSTEM DESIGN JOURNAL:可能性と複雑性に満ちあふれた「AMP」へようこそ (1/5)

「AMP」(非対称型マルチプロセッシング)は今まさに注目すべき技術ですが、AMPとは何であり、なぜ必要なのでしょう。何より、組み込みシステムにおいてAMPの実装にはどんな利点や課題があるのでしょうか。

[Ron Wilson,(Editor-in-chief,Altera),MONOist]

 「AMP」(Asymmetric Multi Processing:非対称型マルチプロセッシング)は、2016年を代表する技術略語の選抜候補リストに載っています。しかし、そもそもAMPとはどのようなもので、なぜ必要なのでしょうか。より有益な疑問として、AMPを組み込みシステムに実装する際、どのような考慮事項や課題があるのでしょうか。

AMPの定義

 まずはAMPの定義から始めましょう。対義的な存在である「SMP」(Symmetric Multi Processing:対称型マルチプロセッシング)のシステムは、全てのプロセッサがアプリケーションレベルより下、もしくはほとんど同じであるシステムで、基本的にソフトウェアスタック、インストラクションセット、メモリコンフィギュレーション、CPUハードウェアは同じです(図 1)。

 ほとんどのSMPシステムでは、CPUごとに異なるアプリケーションやスレッドを実行し、別のペリフェラルと割り込み要求の接続を行えます。しかし、それ以外は全て同じです。

図 1 図 1. SMPシステムは、1つのL2キャッシュとバス構造を共有する同一CPUのバンクを備えていることが多い

 SMPはデータセンターでよく用いられます。均一性により、何万ものCPUコア間でタスクを割り当てる際に高い柔軟性が得られるからです。組み込みシステムの世界でSMPは、多数のスレッドを並列実行することにより、豊富なタスクの速度を向上させることができます。また、冗長システムで比較または投票回路(voting circuitry、多数決回路)とあわせて使用して信頼性を高めることも可能です。

 では、AMPとはどのようなものなのでしょうか。簡単に言えば、AMPシステムはアプリケーションレベルより下がほぼ異なるマルチプロセッシングシステムで、OS、メモリ、またはプロセッシングハードウェアすらも異なることがあります。

非対称型が選ばれる「3つの動機」

 SMPは簡潔性とある程度の洗練性を備えています。それを台無しにする理由があるのでしょうか。なぜタスクを特定のプロセッサに縛り付けるのでしょうか。IntelのWindRiver製品ライン担当マネジャーであるMichel Chabroux氏によれば、いくつかの正当な理由があり「AMPの採用例において、ほとんどの場合、目的はタスク間の分離を維持すること」だと言います。

 アーキテクトはリアルタイムデッドラインがあるものを含む複数タスクを統合することがあります。その場合、稼働する2つのCPUコアに「一方はLinux、もう一方はRTOS」と別OSの採用を検討します。

 別の状況として、コアの物理的な分離が重要な場合が考えられます。レイテンシが重要なタスクを別のコアに移動すれば、システムレベルの割り込みからこのタスクを保護できます。Chabroux氏が提案するよう、自律走行車の安全監視タスクを別のCPUコアで実行すれば、残りのシステムが停止した場合でも、安全監視タスクの継続を確保できるでしょう。

       1|2|3|4|5 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.