マルチコアとマルチプロセッシング
デバイス開発者は難しい課題に直面しています。より低コストで優れた機能を備えた製品を開発すると同時に、厳しい電力消費目標を達成しなければなりません。例えば、コンシューマ向け機器では、コンシューマは統合とコネクティビティ―メディアプレイヤーとデジタルカメラの機能を兼ね備えた携帯電話―を求めています。ネットワーキング業界では、IT管理者は自社システムで使用するサーバ数の削減を望んでいます。
ウインドリバーには、これまで取引したすべての業種でマルチプロセッシングシステムを実現してきた長年にわたる実績があります。当社がこれまでに開発した主要なマルチプロセッシングテクノロジは、以下の設計目標の達成に重要な役割を果たしました。
- タスクの特殊化による効率の向上
- サーマルエンベロープ(熱設計範囲)内でのパフォーマンス向上
- プロセッサの統合に加え、必要なハードウェアサポートの軽減によるコスト削減
- システムの密度およびスケーラビリティの改善
マルチプロセッシングは命令のコンカレントプロセッシングを可能にします。既存のインプリメンテーションモデルには基本的に2つのモデルがあります。
SMP: メモリや周辺機器などのシステムリソースを共有する、同一のプロセッシング要素を使用するハードウェアベースのインプリメンテーションで、対称マルチプロセッシング(SMP)システムと呼ばれます。プロセッサはシステムの別々のカードに搭載することも、複数のプロセッサを同じカード上に一体化することもできます。マルチコアは、同じチップ上に複数の同一プロセッシングコアを一体化します。
AMP: 異なるタイプのプロセッシング要素を使用するハードウェアベースのインプリメンテーションで、非対称マルチプロセッシング(AMP)システムと呼ばれます。AMPでは、汎用プロセッサや共同プロセッサ、あるいはDSPを組み合わせた混成システムを構築できます。携帯電話はAMP型システムの好例で、ユーザインターフェースを実行するメインプロセッサとベースバンドを実行する専用DSPの混成システムとなっています。
設計者は、ハードウェアアーキテクチャを最大限に活かす、オペレーティングシステムのインプリメンテーション方法も決定しなければなりません。設計者には以下の選択肢があります。
緊密に連携するマルチプロセッシング: オペレーティングシステム(OS)の単一のインスタンスが全プロセッサをコントロールします。
緩やかに連携するマルチプロセッシング:各プロセッサがOSの個別インスタンスを持ち、プロセッサ間通信(IPC)を通じてリソースを共有します。設計者は、緩やかに連携するマルチプロセッサ内で、すべてのプロセッサに同じOSを使用するか(ホモジニアスMP)、各プロセッサがそれぞれ異なるOSを使用するか(ヘテロジニアスMP)を選択できます。ホモジニアスとヘテロジニアスのいずれの場合でも、SMPもしくはAMPのいずれかのハードウェア・コンフィギュレーション上に実装できます。
ホモジニアスAMPおよびSMPからヘテロジニアスAMPに至るまで、マルチプロセッシングデザインを導入する開発者のニーズに応えるため、ウインドリバーは、Workbench開発環境やVxWorksおよびLinuxランタイムプラットフォーム、プロセス間通信テクノロジを含め、マルチプロセッシングテクノロジやマルチコアテクノロジをサポートする、多種多様な製品を提供しています。
マルチコア・プロセッシング・イニシアティブ
ウインドリバーのマルチコア・プロセッシング・イニシアティブは、ウインドリバーのDSO戦略上きわめて重要であり、マルチコアを採用することによって、より高い性能を発揮するデバイス開発を可能にするソフトウェア・ソリューションの提供を目指しています。
ウインドリバーには、25年以上にわたるデバイスソフトウェアの最適化の経験があり、ソフトウェアの実行環境の観点からマルチコア・プロセッサの価値を引き出せるという強みがあります。ウインドリバーは、機器メーカーが、マルチコア・プロセッサを搭載した製品を、より良い品質、より高い機能で、より素早く市場に出荷することができるよう、中心的な役割を担っていきます。ウインドリバーのマルチコア・プロセッシング・イニシアティブは、マルチコア・プロセシングの抱える問題を解決するために、次の5つの方針を打ち出しています。
1: 他の標準化組織との連携をもって、業界の標準化を推進する
ウインドリバーは、Eclipseファンデーションやマルチコア・アソシエーションなどの複数の標準化団体でリーダ的な役割を果たしている唯一のデバイス・ソフトウェアベンダーです。ウインドリバーはEclipse内のDSDPプロジェクト(Device Software Development Platform)を通じて、マルチコア・デバイスの開発および開発環境の進化に貢献したり、また、マルチコア・アソシエーションにおいては、デバッグ APIの仕様策定の際のビジョンを示すなど、リーダーシップを発揮しています。また、TIPCコンソーシアム、OSDLモバイルLinuxイニシアティブ、Kernel.orgなどのでも積極的に活動しています。
2: マルチコア搭載の機器開発に最適化されたツールを提供することによって、開発の効率化を促進する
マルチコア搭載の機器におけるソフトウェア開発は、シングルコアと比較して非常に複雑となり、従来とは異なる考え方が必要となります。ウインドリバーが提供するEclipseベースの開発環境「Workbench」には、最新のマルチコア・プロセッサやマルチ・OS搭載の機器開発およびデバッグを行うことが可能です。さらに、動的診断ツール「Workbench Diagnostics」では、マルチプロセッシングのアクセス競合のような解決が困難で時間を要する問題に、ピンポイントで対処できるように設計されています。
3: マルチコア搭載の機器開発に対する柔軟で多様なOS方式を提供する
マルチコア搭載の機器開発のためのオペレーシング・システムにはいくつかの選択肢があります。ウインドリバーは、まず、LinuxとVxWorksをベースとした実行環境の提供や、SMP(対称型マルチプロセッシング)、AMP(非対称型マルチプロセッシング)およびVirtualized OS(仮想OS)をサポートによって、マルチコア機器開発におけるより柔軟なOSの選択肢を提供しています。
4: オープンで検証済みのマルチコアおよびマルチプロセッシング・パートナー・エコシステムを提供する
ウインドリバーは、ブロードコムやフリースケールを含む主要な半導体メーカーとの協業により、最新のアーキテクチャやプロセッサに対応したプラットフォームを提供しています。今後、更に発展させ、マルチコア・プロセッサ対応のレファレンスデザインやボード、BSP(ボード・サポート・パッケージ)を提供していきます。さらに、ウインドリバーはALTソフトウェア、データライト、Kukaコントロールズ、ソリッド・インフォメーション・テクノロジー、ティルコンなどの企業との協業により、ソフトウェアのパートナー・エコシステムも実現しています。
5: マルチプロセシングに精通したエンジニアによるグローバルなサービスとサポートを提供する
ウインドリバーのグローバル・サービスとサポートでは、お客様が短期間で製品化できるように、マルチプロセッシングに精通したエンジニアが対応する体制を築きます。テクニカルサポートのみならず、システム統合やマルチコア・デバイス・ソフトウエアの最適化、さらに、コンサルタントなど幅広くお客様のニーズに応じた対応が可能となります。
マルチコアテクノロジ
ウインドリバーは、マルチコアやマルチプロセッシング開発環境に対して、柔軟性の高いツール、ランタイム環境、そしてプロセス間通信プロトコルなどのテクノロジを提供いたします。
Wind River Workbench
統合され、オープンで、かつ拡張性の高いソフトウェア開発環境
開発のあらゆる段階に対して、Eclipseフレームワークをベースとした開発環境、Workbenchに統合された、強力な視覚化、分析、診断ツールを提供することにより、製品の品質や信頼性を早期から作りこむことを可能とします。Workbenchは、ウインドリバーの20年以上に渡るデバイスソフトウェア業界における経験や、グローバルなテクニカルサポート、更に経験豊かなエンジニアによるプロフェッショナルサービスなどに支えられお客様にとって最適な開発環境をご提供いたします。
マルチコアJTAG、システムレベルのデバッッギング・ソリューション
Wind River Workbenchと、Wind River ICEをお使いいただくことにより、 マルチコア・デバッギングが容易に行えます。
Wind River ICEは、業界初のマルチコア/マルチセッション/マルチ JTAG エミュレータです。LANに接続されたUNIXまたはWindowsベースのプラットフォーム上で動作可能です。
Wind River ランタイムプラットフォーム
Linuxプラットフォーム
ウインドリバーは、商用グレードのLinuxプラットフォームを提供します。Linuxプラットフォームは、kernel2.6ベースのテスト・検証されたLinuxディストリビューションです。オープンなクロスビルドシステム、Linux SMP対応などマルチプロセッサの開発に最適なプラットフォームです。
VxWorksプラットフォーム
ウインドリバーは、世界で最も広範囲に使用されているリアルタイムOS、VxWorksをベースとした商用グレードのVxWorksプラットフォームを提供します。高い拡張性、ディターミニスティック、ハード・リアルタイムカーネル、更に、スモールフットプリント、ハイパフォーマンスの特長を有する VxWorksを活用することにより、迅速にまた容易に製品開発の主要件、コスト、品質、性能/機能を満たす製品開発を可能とします。
プロセス間通信
Wind River TIPC
マルチコアCPUやマルチプロセッサ構成のシステムにおいて、それぞれを、独立したメモリ、独立した個々のOSで構成する場合に、コネクション指向、双方向通信の全く新しいメッセージングメカニズムを提供します。VxWorks Linuxに従来より存在する通信メカニズムを用いて各タスク、プロセスはメモリの境界、異種のOS間を超えて通信できます。
異なるOS、異なるプロセス、異なるCPUコア上に存在する各タスクやプロセス、もしくはカーネルが相互にコネクションを結び、位置に非依存の通信が可能です。
Wind River VxMP
ウインドリバーのVxMPは、高速、ライトウエイトな、AMPを実現するシェアドメモリーベースのフレームワークです。各々のCPUコアには、VxMPをコンフィグレーションで有効したVxWorksカーネルイメージのコピーを個々に動作させます。これにより別のコア上に存在するタスク間でセマフォやメッセージキューを使って同期メカニズムや通信メカニズムを提供します。
VxMPを使うメリットは、トランスペアレントのインターフェースを持つ共有メモリ・オブジェクトを用いることで従来のアプリケーションと同じ操作でセマフォやメッセージキューを使えることです。更に、パケットの交換を必要しないハイパフォーマンス性、共有メモリをどのプロセッサ上のメモリでも、独立したメモリカードであっても実現できる柔軟性が挙げられます。